trackmcp
Back to directory
CodexVeritax

stackoverflow-mcp-server

View on GitHub

A python mcp server for stackoverflow

2 stars PythonServers & Infrastructure Updated Jul 1, 2025

Documentation

#

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:

ToolExample PromptDescription
`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:

1. Get a Stack Exchange API key (see below)

2. Have Python 3.10+ installed

3. Install uv (recommended)

Getting a Stack Exchange API Key

To use this server effectively, you'll need a Stack Exchange API key:

1. Go to Stack Apps OAuth Registration

2. Fill out the form with your application details:

    3. Submit the form

    4. 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

    Stackoverflow PyPI page

    bash
    # 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

    bash
    # 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:

    1. Download Claude Desktop.

    2. Launch Claude and navigate to: Settings > Developer > Edit Config.

    3. Update your `claude_desktop_config.json` file with the following configuration:

    json
    {
      "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:

    json
    {
      "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:

    bash
    # 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:

    code
    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.

    code
    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.

    code
    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.

    code
    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.

    code
    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

    Advanced search for Stack Overflow questions with many filter options.

    code
    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

    bash
    # 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

    bash
    # 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

    code
    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:

    1. Fork the repository

    2. Create a feature branch: `git checkout -b feature/my-feature`

    3. Commit your changes: `git commit -am 'Add new feature'`

    4. Push to the branch: `git push origin feature/my-feature`

    5. 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

    [python-badge]: https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue.svg

    [python-url]: https://www.python.org/downloads/

    [license-badge]: https://img.shields.io/badge/license-MIT-green.svg

    [license-url]: LICENSE

    Frequently asked questions

    What is stackoverflow-mcp-server?

    stackoverflow-mcp-server is A python mcp server for stackoverflow

    How do I install stackoverflow-mcp-server?

    Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

    Is stackoverflow-mcp-server open source?

    Yes โ€” it is hosted on GitHub at https://github.com/CodexVeritax/stackoverflow-mcp-server and has 2 stars.

    Related MCP tools

    Run your own MCP server? See who uses it and what to fix.

    Measure it with TrackMCP