@notalk-tech/stackoverflow-mcp v1.2.5
StackOverflow MCP Server
A Model Context Protocol (MCP) server that provides seamless access to StackOverflow's programming Q&A database using the FastMCP framework. This package serves as an NPX-compatible wrapper for the Python-based StackOverflow MCP server.
Quick Start
Using NPX (Recommended)
# Run directly with npx (no installation required)
npx @notalk/stackoverflow-mcp
# Skip installation prompts (useful for automation)
npx -y @notalk/stackoverflow-mcp
# Or install globally
npm install -g @notalk/stackoverflow-mcp
stackoverflow-mcpUsing Python Module Directly
# If you have the Python package installed
python -m stackoverflow_mcp
# Using uv (recommended for Python development)
uv run python -m stackoverflow_mcp๐ Prerequisites
- Node.js 14.0.0 or higher
- Python 3.12 or higher
- uv (recommended) or pip (Python package manager)
The NPX wrapper will automatically:
- Detect your Python installation
- Install the required Python package (
stackoverflow-mcp) - Handle environment setup and configuration
Installation
Option 1: NPX (No Installation)
npx @notalk/stackoverflow-mcp --helpOption 2: Global NPM Installation
npm install -g @notalk/stackoverflow-mcp
stackoverflow-mcp --helpOption 3: Local Development
git clone https://github.com/NoTalkTech/stackoverflow-mcp.git
cd stackoverflow-mcp
npm install
node cli.js --help๐ฏ Features
- ๐ Question Search: Search StackOverflow questions by keywords
- ๐ Question Details: Get detailed question content, answers, and metadata
- ๐ท๏ธ Tag-based Search: Find questions by programming language tags
- โก Rate Limit Management: Automatic detection and handling of API limits
- ๐ API Authentication: Support for StackOverflow API keys
- ๐ Auto-deployment: NPX-compatible with automatic Python environment setup
- ๐ Smart Configuration: Auto-discovery of config files and working directories
- ๐ง Development Mode: Enhanced logging and debugging features
- โก FastMCP Implementation: Simplified, elegant server using FastMCP framework (only implementation)
Usage
Basic Usage
# Start the MCP server with default settings
npx @notalk/stackoverflow-mcp
# Auto-confirm installation (useful for scripts/CI)
npx -y @notalk/stackoverflow-mcp
# Start on a specific port
npx @notalk/stackoverflow-mcp --port 8080
# Development mode with debug logging
npx @notalk/stackoverflow-mcp --dev --log-level DEBUG
# Use custom configuration file
npx @notalk/stackoverflow-mcp --config-file ./my-config.jsonPython Development with uv
For Python development, we recommend using uv for faster dependency management:
# Install dependencies with uv
uv sync
# Run the server with uv
uv run python -m stackoverflow_mcp
# Development mode with uv
uv run python -m stackoverflow_mcp --log-level DEBUGFastMCP Benefits:
- ๐ฅ Simplified Code: Clean, maintainable implementation
- ๐ฏ Decorator-based: Clean tool registration with
@mcp.tool() - ๐ Auto-schema: Type hints automatically generate schemas
- ๐ก๏ธ Built-in Error Handling: Consistent error responses
- ๐ฆ Better Separation: Clean architecture with focused responsibilities
Configuration
Create a .stackoverflow-mcp.json file in your project directory:
{
"host": "localhost",
"port": 3000,
"log_level": "INFO",
"stackoverflow_api_key": "your_api_key_here"
}Command Line Options
Options:
--host TEXT Host to bind the server to
--port INTEGER Port to bind the server to (auto-detect if not specified)
--log-level [DEBUG|INFO|WARNING|ERROR]
Logging level
--config-file PATH Path to configuration file (auto-discover if not specified)
--working-dir DIRECTORY Working directory (auto-detect if not specified)
--auto-port / --no-auto-port Automatically find an available port if specified port is in use
--dev / --prod Run in development mode (more verbose logging, auto-reload)
--health-check / --no-health-check
Enable startup health checks
--version Show the version and exit.
--help Show this message and exit.๐ง Configuration Files
The server automatically discovers configuration files in the following order:
.stackoverflow-mcp.jsonstackoverflow-mcp.config.jsonconfig/stackoverflow-mcp.json.config/stackoverflow-mcp.json
Example Configuration
{
"host": "localhost",
"port": 3000,
"log_level": "INFO",
"stackoverflow_api_key": "your_optional_api_key",
"max_requests_per_minute": 30,
"enable_caching": true
}๐ API Endpoints
Once running, the MCP server provides the following tools:
search_questions: Search StackOverflow questions by keywordsget_question_details: Get detailed information about a specific questionsearch_by_tags: Find questions filtered by programming language tagsget_user_info: Get information about StackOverflow users
๐งช Testing
# Test the npm package
npm test
# Test npm packaging
npm run test:npm
# Test global installation
npm run test:install
# Test Python module directly
python -m pytest tests/ -v๐ Development
Local Development Setup
# Clone the repository
git clone https://github.com/NoTalkTech/stackoverflow-mcp.git
cd stackoverflow-mcp
# Install Node.js dependencies
npm install
# Install Python dependencies
pip install -e .
# Run in development mode
npm start -- --devProject Structure
@notalk/stackoverflow-mcp/
โโโ cli.js # NPX wrapper (Node.js)
โโโ package.json # NPM package configuration
โโโ src/stackoverflow_mcp/ # Python MCP server
โ โโโ __main__.py # Python module entry point
โ โโโ main.py # CLI and server management
โ โโโ server.py # MCP server implementation
โ โโโ stackoverflow_client.py # StackOverflow API client
โโโ tests/ # Test files
โโโ README.md # This file๐ฆ Publishing
Semantic Versioning
This package follows Semantic Versioning:
- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes (backward compatible)
Release Process
# Update version
npm version patch|minor|major
# Publish to npm
npm publish
# Create GitHub release
git push --tags๐ค Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Support
- Issues: GitHub Issues
- Documentation: GitHub Wiki
- Discussions: GitHub Discussions
๐ Acknowledgments
- Model Context Protocol for the MCP specification
- StackOverflow for providing the API
- The open-source community for inspiration and contributions
Made with โค๏ธ for the developer community
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago
6 months ago