Uses Algolia API to search Hacker News for high-score posts and discussions related to programming topics and solutions
Searches GitHub Issues API to find community solutions and discussions about coding problems, sorted by reactions and engagement
Integrates with Google's Gemini API for AI-powered synthesis of search results from community sources into actionable solutions
Supports OpenAI's GPT models for processing and synthesizing community-sourced programming solutions into structured responses
Uses Perplexity API with built-in web search capabilities to enhance community research with additional context and solutions
Searches programming-related subreddits using Reddit's JSON API to find community discussions and solutions to development problems
Searches Stack Overflow discussions and solutions using the Stack Exchange API to find real-world fixes and workarounds from the developer community
Community Research MCP
Street-smart tips, hacks, and workarounds from devs who've been there.
An MCP server that digs through Stack Overflow, GitHub Issues, Hacker News, and other developer watering holes to find battle-tested solutions, clever workarounds, and real-world patterns that actually work.
Quick Start • Features • Configuration • Tools • Troubleshooting
Quick Start
1. Install
2. Configure Claude Desktop
Drop this into your claude_desktop_config.json:
3. Use It
Just ask Claude:
"Search for Python async database connection pooling patterns"
The MCP taps into developer communities and surfaces ranked solutions with quality scores.
Recommended Model
Use Claude Haiku 3.5, NOT Opus 4.5
Opus 4.5 tends to ignore MCP instructions, rephrase your queries into something you didn't ask, and search for tangential topics instead of using the results it got. Haiku 3.5 follows the MCP's guidance much more reliably.
What It Does
Multi-Source Search
Hits 9 developer communities at once:
Source | What You Get | API Key? |
Stack Overflow | Q&A gold | No |
GitHub Issues | Bug reports, workarounds | Optional |
Hacker News | Tech war stories | No |
Lobsters | Deep technical dives | No |
Discourse | Language-specific forums | No |
Serper | Google Search results | Yes |
Tavily | AI-optimized search | Yes |
Brave | Privacy-focused search | Yes |
Firecrawl | Web scraping | Yes |
Quality Scoring
Every result gets a street-cred score (0-100) based on:
Signal | What It Means |
Source Authority | Stack Overflow accepted answers beat random blog posts |
Community Validation | Upvotes, reactions — the crowd has spoken |
Recency | Fresh fixes for fast-moving tech |
Specificity | Actual code, not hand-wavy explanations |
Evidence | Benchmarks, repro steps, real numbers |
Built-In Reliability
Feature | Why It Matters |
Circuit Breaker | Stops hammering dead APIs |
Auto-Retry | Exponential backoff for flaky connections |
Deduplication | Kills duplicate results (~20% noise reduction) |
Caching | 1-hour TTL so you don't burn through rate limits |
Configuration
Environment Variables
Create a .env file:
Source Weights
Tweak priorities in config.json:
Higher weight = more trusted for street-smart solutions.
MCP Tools
community_search
The main workhorse. Searches all enabled sources and returns ranked results.
get_source_status
Check what's up with all sources — enabled, has API keys, circuit breaker tripped, etc.
get_rate_limit_status
See how much quota you've burned through across all APIs.
clear_cache
Nuke the search cache when you need fresh results.
Rate Limits
Source | Free Tier | With API Key |
Stack Exchange | 300/day | 10,000/day |
GitHub | 10/min | 30/min |
Hacker News | 1000/hour | — |
Serper | — | 2,500/month |
Tavily | — | 1,000/month |
Brave | — | 2,000/month |
Project Structure
Development
Running Tests
Code Style
Adding a New Source
Create
api/yoursource.pywith an asyncsearch()functionExport from
api/__init__.pyAdd to source config in
community_research_mcp.pyAdd rate limit info
Troubleshooting
Make your query more specific (not just "performance" or "settings")
Check that API keys are set for web search sources
Run
get_source_statusto see if circuit breakers tripped
Chill and wait for the window to reset
Add API keys for higher limits
Rely on caching to avoid repeat searches
Check
get_source_statusfor circuit breaker stateBreaker trips after 5 failures, resets after 5 minutes
Sometimes sources just go down — it happens
Contributing
Fork the repo
Create a feature branch
Make your changes
Run tests and linting
Submit a PR
MIT License — see LICENSE for details.
Built for devs who want real solutions, not documentation fluff.