@gscalzo/stackoverflow-mcp
A Model Context Protocol server that enables querying Stack Overflow for programming solutions, including search by error messages, tags, and stack trace analysis.
README
Stackoverflow MCP Server
A Model Context Protocol server for querying Stack Overflow. This server helps AI models find solutions to programming problems by searching Stack Overflow questions and answers.
Features
- Search by error messages
- Search by programming language and technology tags
- Stack trace analysis
- Filter results by score/votes
- Include question and answer comments
- Output in JSON or Markdown format
Installation
You can run the server directly using npx:
npx -y @gscalzo/stackoverflow-mcp
Or install it globally:
npm install -g @gscalzo/stackoverflow-mcp
Configure the Server
Create or modify your MCP settings file:
- For Claude.app:
~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - For Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json
Add the following configuration:
{
"mcpServers": {
"stackoverflow": {
"command": "npx",
"args": ["-y", "@gscalzo/stackoverflow-mcp"],
"env": {
"STACKOVERFLOW_API_KEY": "your-api-key-optional"
},
"disabled": false,
"autoApprove": []
}
}
}
Optional: Stack Overflow API Authentication
The server works without authentication but has rate limits. To increase the rate limits:
- Get an API key from Stack Apps
- Add the API key to your MCP settings configuration
Usage
The server provides three main tools:
1. search_by_error
Searches Stack Overflow for error-related questions:
interface SearchByErrorInput {
errorMessage: string; // Required: Error message to search for
language?: string; // Optional: Programming language
technologies?: string[]; // Optional: Related technologies
minScore?: number; // Optional: Minimum score threshold
includeComments?: boolean; // Optional: Include comments in results
responseFormat?: "json" | "markdown"; // Optional: Response format
limit?: number; // Optional: Maximum number of results
}
2. search_by_tags
Searches Stack Overflow questions by tags:
interface SearchByTagsInput {
tags: string[]; // Required: Tags to search for
minScore?: number; // Optional: Minimum score threshold
includeComments?: boolean; // Optional: Include comments in results
responseFormat?: "json" | "markdown"; // Optional: Response format
limit?: number; // Optional: Maximum number of results
}
3. analyze_stack_trace
Analyzes stack traces to find relevant solutions:
interface StackTraceInput {
stackTrace: string; // Required: Stack trace to analyze
language: string; // Required: Programming language
includeComments?: boolean; // Optional: Include comments in results
responseFormat?: "json" | "markdown"; // Optional: Response format
limit?: number; // Optional: Maximum number of results
}
Examples
Searching by Error Message
{
"name": "search_by_error",
"arguments": {
"errorMessage": "TypeError: Cannot read property 'length' of undefined",
"language": "javascript",
"technologies": ["react"],
"minScore": 5,
"includeComments": true,
"responseFormat": "markdown",
"limit": 3
}
}
Searching by Tags
{
"name": "search_by_tags",
"arguments": {
"tags": ["python", "pandas", "dataframe"],
"minScore": 10,
"includeComments": true,
"responseFormat": "json",
"limit": 5
}
}
Analyzing Stack Trace
{
"name": "analyze_stack_trace",
"arguments": {
"stackTrace": "Error: ENOENT: no such file or directory, open 'config.json'\n at Object.openSync (fs.js:476:3)\n at Object.readFileSync (fs.js:377:35)",
"language": "javascript",
"includeComments": true,
"responseFormat": "markdown",
"limit": 3
}
}
Response Format
JSON Output
Responses include:
- Question details (title, body, score, tags, etc.)
- Answers (sorted by votes)
- Optional comments for both questions and answers
- Links to the original Stack Overflow posts
Markdown Output
The markdown format provides a nicely formatted view with:
- Question title and score
- Question body
- Comments (if requested)
- Answers with acceptance status and score
- Answer comments (if requested)
- Links to the original posts
Development
- Build in watch mode:
npm run watch
- Run tests:
npm test
Contributing
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.