MCP ExplorerExplorer

Stackoverflow Mcp

@gscalzoon 9 months ago
14 MIT
FreeCommunity
AI Systems
# A Model Context Protocol Server for Querying Stack Overflow to Assist AI Models in Finding Programming Solutions.

Overview

What is Stackoverflow Mcp

stackoverflow-mcp is a Model Context Protocol server designed for querying Stack Overflow, enabling AI models to find programming solutions by searching through questions and answers on the platform.

Use cases

Use cases include searching for solutions to specific error messages, retrieving answers based on technology tags, and analyzing stack traces to find relevant programming help.

How to use

To use stackoverflow-mcp, you can run the server directly using npx or install it globally via npm. After installation, configure the MCP settings file to include the server details and optionally set up Stack Overflow API authentication for higher rate limits.

Key features

Key features include searching by error messages, programming language and technology tags, stack trace analysis, filtering results by score/votes, including comments, and outputting results in JSON or Markdown format.

Where to use

stackoverflow-mcp can be used in software development environments, AI model training, and any application requiring quick access to programming solutions from Stack Overflow.

Content

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:

  1. Get an API key from Stack Apps
  2. 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

  1. Build in watch mode:
npm run watch
  1. Run tests:
npm test

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

MIT

Tools

No tools

Comments

Recommend MCP Servers

View All MCP Servers