Stackoverflow MCP Server
A python mcp server for stackoverflow
Installation
npx stackoverflow-mcp-serverAsk AI about Stackoverflow MCP Server
Powered by Claude Β· Grounded in docs
I know everything about Stackoverflow MCP Server. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Stack Overflow MCP Server
This Model Context Protocol (MCP) server enables AI assistants like Claude to search and access Stack Overflow content through a standardized protocol, providing seamless access to programming solutions, error handling, and technical knowledge.
[!NOTE]
The Stack Overflow MCP Server is currently in Beta. We welcome your feedback and encourage you to report any bugs by opening an issue.
Features
- π Multiple Search Methods: Search by query, error message, or specific question ID
- π Advanced Filtering: Filter results by tags, score, accepted answers, and more
- π§© Stack Trace Analysis: Parse and find solutions for error stack traces
- π Rich Formatting: Get results in Markdown or JSON format
- π¬ Comments Support: Optionally include question and answer comments
- β‘ Rate Limiting: Built-in protection to respect Stack Exchange API quotas
Example Prompts and Use Cases
Here are some example prompts you can use with Claude when the Stack Overflow MCP server is integrated:
| Tool | Example Prompt | Description |
|---|---|---|
search_by_query | "Search Stack Overflow for Django pagination best practices" | Finds the most relevant questions and answers about Django pagination techniques |
search_by_query | "Find Python asyncio examples with tags python and asyncio" | Searches for specific code examples filtering by multiple tags |
search_by_error | "Why am I getting 'TypeError: object of type 'NoneType' has no len()' in Python?" | Finds solutions for a common Python error |
get_question | "Get Stack Overflow question 53051465 about React hooks" | Retrieves a specific question by ID, including all answers |
analyze_stack_trace | "Fix this error: ReferenceError: useState is not defined at Component in javascript" | Analyzes JavaScript error to find relevant solutions |
advanced_search | "Find highly rated answers about memory leaks in C++ with at least 10 upvotes" | Uses advanced filtering to find high-quality answers |
Prerequisites
Before using this MCP server, you need to:
- Get a Stack Exchange API key (see below)
- Have Python 3.10+ installed
- Install uv (recommended)
Getting a Stack Exchange API Key
To use this server effectively, you'll need a Stack Exchange API key:
- Go to Stack Apps OAuth Registration
- Fill out the form with your application details:
- Name: "Stack Overflow MCP" (or your preferred name)
- Description: "MCP server for accessing Stack Overflow"
- OAuth Domain: "localhost" (for local usage)
- Application Website: Your website or leave blank
- Submit the form
- Copy your API Key (shown as "Key" on the next page)
This API key is not considered a secret and may be safely embedded in client-side code or distributed binaries. It simply allows you to receive a higher request quota when making requests to the Stack Exchange API.
Installation
Installing from PyPI
# Using pip
pip install stackoverflow-mcp
# OR Using uv
uv venv
uv pip install stackoverflow-mcp
# OR using uv wihtout an venv
uv pip install stackoverflow-mcp --system
Installing from Source
# Clone the repository
git clone https://github.com/yourusername/stackoverflow-mcp-server.git
cd stackoverflow-mcp-server
# Install with uv
uv venv
uv pip install -e .
Adding to Claude Desktop
To run the Stack Overflow MCP server with Claude Desktop:
-
Download Claude Desktop.
-
Launch Claude and navigate to: Settings > Developer > Edit Config.
-
Update your
claude_desktop_config.jsonfile with the following configuration:
{
"mcpServers": {
"stack-overflow": {
"command": "uv",
"args": ["run", "-m", "stackoverflow_mcp"],
"env": {
"STACK_EXCHANGE_API_KEY": "your_API_key"
}
}
}
}
You can also specify a custom directory:
{
"mcpServers": {
"stack-overflow": {
"command": "uv",
"args": [
"--directory",
"/path/to/stackoverflow-mcp-server",
"run",
"main.py"
],
"env": {
"STACK_EXCHANGE_API_KEY": "your_api_key_here"
}
}
}
}
Configuration
Environment Variables
The server can be configured using these environment variables:
# Required
STACK_EXCHANGE_API_KEY=your_api_key_here
# Optional
MAX_REQUEST_PER_WINDOW=30 # Maximum requests per rate limit window
RATE_LIMIT_WINDOW_MS=60000 # Rate limit window in milliseconds (1 minute)
RETRY_AFTER_MS=2000 # Delay after hitting rate limit
Using a .env File
You can create a .env file in the project root:
STACK_EXCHANGE_API_KEY=your_api_key_here
MAX_REQUEST_PER_WINDOW=30
RATE_LIMIT_WINDOW_MS=60000
RETRY_AFTER_MS=2000
Usage
Available Tools
The Stack Overflow MCP server provides the following tools:
1. search_by_query
Search Stack Overflow for questions matching a query.
Parameters:
- query: The search query
- tags: Optional list of tags to filter by (e.g., ["python", "pandas"])
- excluded_tags: Optional list of tags to exclude
- min_score: Minimum score threshold for questions
- has_accepted_answer: Whether questions must have an accepted answer
- include_comments: Whether to include comments in results
- response_format: Format of response ("json" or "markdown")
- limit: Maximum number of results to return
2. search_by_error
Search Stack Overflow for solutions to an error message.
Parameters:
- error_message: The error message to search for
- language: Programming language (e.g., "python", "javascript")
- technologies: Related technologies (e.g., ["react", "django"])
- min_score: Minimum score threshold for questions
- include_comments: Whether to include comments in results
- response_format: Format of response ("json" or "markdown")
- limit: Maximum number of results to return
3. get_question
Get a specific Stack Overflow question by ID.
Parameters:
- question_id: The Stack Overflow question ID
- include_comments: Whether to include comments in results
- response_format: Format of response ("json" or "markdown")
4. analyze_stack_trace
Analyze a stack trace and find relevant solutions on Stack Overflow.
Parameters:
- stack_trace: The stack trace to analyze
- language: Programming language of the stack trace
- include_comments: Whether to include comments in results
- response_format: Format of response ("json" or "markdown")
- limit: Maximum number of results to return
5. advanced_search
Advanced search for Stack Overflow questions with many filter options.
Parameters:
- query: Free-form search query
- tags: List of tags to filter by
- excluded_tags: List of tags to exclude
- min_score: Minimum score threshold
- title: Text that must appear in the title
- body: Text that must appear in the body
- answers: Minimum number of answers
- has_accepted_answer: Whether questions must have an accepted answer
- sort_by: Field to sort by (activity, creation, votes, relevance)
- include_comments: Whether to include comments in results
- response_format: Format of response ("json" or "markdown")
- limit: Maximum number of results to return
Development
This section is for contributors who want to develop or extend the Stack Overflow MCP server.
Setting Up Development Environment
# Clone the repository
git clone https://github.com/yourusername/stackoverflow-mcp-server.git
cd stackoverflow-mcp-server
# Install dev dependencies
uv pip install -e ".[dev]"
Running Tests
# Run all tests
pytest
# Run specific test modules
pytest tests/test_formatter.py
pytest tests/test_server.py
# Run tests with coverage report
pytest --cov=stackoverflow_mcp
Project Structure
stackoverflow-mcp-server/
βββ stackoverflow_mcp/ # Main package
β βββ __init__.py
| |ββ __main__.py # Entry point
β βββ api.py # Stack Exchange API client
β βββ env.py # Environment configuration
β βββ formatter.py # Response formatting utilities
β βββ server.py # MCP server implementation
β βββ types.py # Data classes
βββ tests/ # Test suite
β βββ api/
β β βββ test_search.py # API search tests
β βββ test_formatter.py # Formatter tests
β βββ test_general_api_health.py # API health tests
β βββ test_server.py # Server tests
βββ pyproject.toml # Package configuration
βββ api_query.py # testing stackexchange outside of MCP context
βββ LICENSE # License file
βββ README.md # This file
Contributing
Contributions are welcome! Here's how you can contribute:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -am 'Add new feature' - Push to the branch:
git push origin feature/my-feature - Submit a pull request
Please make sure to update tests as appropriate and follow the project's coding style.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Stack Overflow MCP Server: AI-accessible programming knowledge
