| # ๐ Stack Overflow MCP Server - Hackathon Demo | |
| ## ๐ฏ Project Overview | |
| This project demonstrates a **Stack Overflow MCP (Model Context Protocol) Server** built with Gradio for a hackathon. It provides both a beautiful web interface and an MCP server that AI assistants like Claude can use to programmatically search and analyze Stack Overflow content. | |
| ## ๐ Key Features | |
| ### ๐ **Multiple Search Methods** | |
| - **General Search**: Query-based search with tag filtering | |
| - **Error Search**: Specialized search for error messages and debugging | |
| - **Question Retrieval**: Get specific questions by ID | |
| - **Stack Trace Analysis**: Analyze stack traces to find solutions | |
| - **Advanced Search**: Comprehensive filtering with multiple criteria | |
| ### ๐จ **Beautiful Web Interface** | |
| - Clean, modern Gradio interface | |
| - Multiple tabs for different search types | |
| - Quick example buttons for easy testing | |
| - Real-time search results with formatted output | |
| - Support for both Markdown and JSON output formats | |
| ### ๐ค **MCP Server Integration** | |
| - Full MCP compatibility for AI assistants | |
| - SSE (Server-Sent Events) endpoint for real-time communication | |
| - 5 available MCP tools for different search scenarios | |
| - Easy integration with Claude Desktop and other MCP clients | |
| ## ๐ Live Demo | |
| **๐ Web Interface**: [https://c44b366466c774a9d5.gradio.live](https://c44b366466c774a9d5.gradio.live) | |
| **๐ MCP Server Endpoint**: `https://c44b366466c774a9d5.gradio.live/gradio_api/mcp/sse` | |
| ## ๐ ๏ธ Available MCP Tools | |
| | Tool | Description | Use Case | | |
| |------|-------------|----------| | |
| | `search_by_query_sync` | General Stack Overflow search | Find solutions by keywords and tags | | |
| | `search_by_error_sync` | Error-specific search | Debug specific error messages | | |
| | `get_question_sync` | Retrieve specific question by ID | Get detailed question information | | |
| | `analyze_stack_trace_sync` | Analyze stack traces | Find solutions for runtime errors | | |
| | `advanced_search_sync` | Advanced search with filters | Complex queries with multiple criteria | | |
| ## ๐ Demo Scenarios | |
| ### 1. **General Programming Search** | |
| ``` | |
| Query: "Django pagination best practices" | |
| Tags: python,django | |
| Filters: Minimum score 5, Must have accepted answer | |
| ``` | |
| ### 2. **Error Debugging** | |
| ``` | |
| Error: "TypeError: 'NoneType' object has no attribute 'length'" | |
| Language: Python | |
| Technologies: flask,sqlalchemy | |
| ``` | |
| ### 3. **Stack Trace Analysis** | |
| ``` | |
| Stack Trace: "ReferenceError: useState is not defined" | |
| Language: JavaScript | |
| ``` | |
| ### 4. **Advanced Search** | |
| ``` | |
| Query: "memory optimization" | |
| Include Tags: c++,performance | |
| Exclude Tags: beginner | |
| Min Score: 50 | |
| Sort By: votes | |
| ``` | |
| ## ๐ง Technical Architecture | |
| ### Frontend (Gradio) | |
| - **Framework**: Gradio 5.33.1 with MCP support | |
| - **Interface**: Multi-tab design with intuitive controls | |
| - **Features**: Real-time search, example buttons, format selection | |
| ### Backend (Stack Overflow MCP Server) | |
| - **API Integration**: Stack Exchange API with rate limiting | |
| - **MCP Protocol**: Full MCP compatibility with SSE transport | |
| - **Search Engine**: Multiple search strategies and filtering options | |
| - **Response Formatting**: Markdown and JSON output formats | |
| ### Infrastructure | |
| - **Package Manager**: UV for fast dependency management | |
| - **Deployment**: Gradio sharing with public URLs | |
| - **MCP Server**: Integrated MCP server with Gradio | |
| ## ๐ฎ How to Test | |
| ### Web Interface Testing | |
| 1. Visit the [live demo](https://a6f742bf182e4bae9b.gradio.live) | |
| 2. Try the different tabs: | |
| - **General Search**: Use example buttons or enter custom queries | |
| - **Error Search**: Test with common error messages | |
| - **Get Question**: Try question ID `11227809` | |
| - **Stack Trace Analysis**: Use the pre-filled JavaScript example | |
| - **Advanced Search**: Experiment with complex filters | |
| ### MCP Client Testing | |
| Configure your MCP client (like Claude Desktop) with: | |
| ```json | |
| { | |
| "mcpServers": { | |
| "stackoverflow": { | |
| "url": "https://c44b366466c774a9d5.gradio.live/gradio_api/mcp/sse" | |
| } | |
| } | |
| } | |
| ``` | |
| ## ๐๏ธ Local Development | |
| ```bash | |
| # Clone and setup | |
| git clone <repository> | |
| cd gradio_stack_overflow_client | |
| # Install dependencies | |
| uv add "gradio[mcp]" | |
| # Set your Stack Exchange API key | |
| export STACK_EXCHANGE_API_KEY="your_api_key_here" | |
| # Run the application | |
| uv run python gradio_app.py | |
| ``` | |
| ## ๐ฏ Hackathon Highlights | |
| ### Innovation | |
| - **Dual Interface**: Both web UI and MCP server in one application | |
| - **Smart Search**: Multiple specialized search strategies | |
| - **User Experience**: Intuitive interface with quick examples | |
| ### Technical Excellence | |
| - **Modern Stack**: UV, Gradio 5.33+, FastMCP integration | |
| - **Robust API**: Rate limiting, error handling, async operations | |
| - **MCP Compliance**: Full protocol implementation with SSE transport | |
| ### Practical Value | |
| - **Real-world Utility**: Solves actual developer problems | |
| - **AI Integration**: Ready for AI assistant workflows | |
| - **Extensible**: Easy to add new search methods and filters | |
| ## ๐ Future Enhancements | |
| - **Authentication**: User-specific search history | |
| - **Caching**: Redis caching for faster responses | |
| - **Analytics**: Search pattern analysis and recommendations | |
| - **Multi-platform**: GitHub, GitLab, and other developer platforms | |
| - **AI Features**: Semantic search and intelligent filtering | |
| --- | |
| **Built with โค๏ธ for the MCP Hackathon** | |
| *Demonstrating the power of combining beautiful web interfaces with powerful MCP server capabilities* | |