使用说明
Reddit Research MCP Server
An MCP server for general Reddit research — search, browse, analyze sentiment, discover patterns, and dive deep into problem spaces and solution gaps.
Features
General Research Tools
- search_reddit — Search Reddit with query, subreddit, sort, and time filters
- get_subreddit_posts — Browse a subreddit's posts (hot/top/new/rising)
- get_post_details — Fetch a post with full comment tree
- get_subreddit_info — Get subreddit metadata (description, subscribers, rules)
- get_user_info — Get user profile, karma, and recent activity
- get_trending_topics — Find high-engagement posts across subreddits
- analyze_subreddit_sentiment — Keyword-based sentiment analysis on recent posts
- discover_patterns — Find recurring themes across multiple queries or subreddits
Problem Space Research Tools
- find_pain_points — Search with curated pain-signal queries, scores by pain intensity and willingness-to-pay
- analyze_comments — Analyze a post's comment thread for pain signals, solution mentions, and buying signals
- find_solution_gaps — Find where current solutions are inadequate by analyzing recommendation and rejection patterns
Prerequisites
- Python 3.8+
- Reddit API credentials (Client ID and Client Secret)
Setup
1. Get Reddit API Credentials
- Go to Reddit Apps
- Click "create another app" or "create app"
- Select "script" as the app type
- Fill in name, description, and redirect URI (
http://localhost:8080) - Save your Client ID (under the app name) and Client Secret
2. Install Dependencies
cd reddit-mcp
uv pip install -r requirements.txt
3. Configure Environment Variables
Copy env.example to .env and add your credentials:
cp env.example .env
Edit .env:
REDDIT_CLIENT_ID=your_client_id_here
REDDIT_CLIENT_SECRET=your_client_secret_here
REDDIT_USER_AGENT=Reddit Research MCP/1.0
4. Configure MCP Client
Add to your MCP client config (e.g., OpenCode ~/.config/opencode/opencode.json):
{
"mcpServers": {
"reddit-research": {
"command": "uv",
"args": ["--directory", "/path/to/reddit-mcp", "run", "python3", "server.py"],
"enabled": true
}
}
}
Problem Space Research Workflow
A step-by-step guide to finding problems people would pay to solve.
Step 1: Find Pain Points
Use find_pain_points to auto-search with pain-signal queries:
find_pain_points(topic: "invoicing for freelancers", subreddits: ["freelance", "Entrepreneur"], time_filter: "month")
This searches with 8 curated queries like "invoicing frustrated", "looking for invoicing", "tired of invoicing" and scores posts by pain intensity and willingness-to-pay signals.
What to look for:
buying_signals > 0— Someone explicitly said they'd paystrong_pain_signalscount — High frustration posts- Posts with
pain_score >= 2and high engagement
Step 2: Deep Dive Into Comments
Take the top pain posts and use analyze_comments:
analyze_comments(post_url: "https://reddit.com/r/freelance/xyz/...", comment_limit: 50)
What the output tells you:
pain_signals.wtp_phrases— People who said "I'd pay for this"pain_signals.agreement_signals— "Same here", "me too" = widespread problemsolutions.mentioned— What tools people already usesolutions.rejection_signals— "I tried X but it sucks" = opportunitysolutions.has_solution_gap— True when people reject solutions without good alternatives
Step 3: Validate Solution Gaps
Use find_solution_gaps to check if the market has real holes:
find_solution_gaps(domain: "freelancer invoicing", subreddits: ["freelance", "smallbusiness"])
Key signals:
market_signals.existing_solutions_mentioned— What's already out theremarket_signals.total_rejection_signals— How many people are unsatisfiedgap_assessment.has_market_gap— True when rejections are high and solutions are fewgap_assessment.strongest_gaps— Posts with the clearest gap
Step 4: Cross-Validate with Sentiment
Use analyze_subreddit_sentiment to check if the problem is subreddit-wide:
analyze_subreddit_sentiment(subreddit: "freelance", limit: 100, sort: "hot")
If the subreddit has high negative sentiment on a specific topic, it's a systemic problem, not a one-off complaint.
Step 5: Track the Vocal Users
Use get_user_info on people who posted the strongest pain signals:
get_user_info(username: "frustrated_freelancer", include_posts: true, include_comments: true)
See what else they complain about. Frequent complainers across multiple related topics = your early adopters.
Example: "I want to build something for indie game developers"
Step 1: find_pain_points(topic: "game development", subreddits: ["gamedev", "indiegaming", "Unity3D"])
Step 2: analyze_comments(post_url: "<top pain post URL>")
Step 3: find_solution_gaps(domain: "game asset management", subreddits: ["gamedev"])
Step 4: analyze_subreddit_sentiment(subreddit: "gamedev", limit: 50)
Step 5: get_user_info(username: "<user with strongest pain signal>")
Signals That Indicate a Real Problem
| Signal | What it means | Action |
|---|---|---|
wtp_phrases not empty |
Someone said they'd pay | Strong validation |
agreement_signals > 5 |
Many people relate | Widespread problem |
rejection_signals > 3 |
People tried and gave up | Market gap exists |
has_solution_gap: true |
Rejections but few alternatives | Open opportunity |
| Negative sentiment > 40% | Community-wide frustration | Systemic problem |
All Tools Reference
General Research
| Tool | Purpose |
|---|---|
search_reddit |
Search with any query, sort, time filter |
get_subreddit_posts |
Browse hot/top/new/rising from a subreddit |
get_post_details |
Post + full comment tree |
get_subreddit_info |
Subreddit metadata and rules |
get_user_info |
User profile, karma, recent activity |
get_trending_topics |
High-engagement posts across subreddits |
analyze_subreddit_sentiment |
Sentiment distribution of recent posts |
discover_patterns |
Recurring themes across queries/subreddits |
Problem Research
| Tool | Purpose |
|---|---|
find_pain_points |
Pain-signal search with auto-generated queries |
analyze_comments |
Comment thread analysis for pain, solutions, WTP |
find_solution_gaps |
Market gap analysis via solution rejection patterns |
Dependencies
praw— Python Reddit API Wrappermcp— Model Context Protocol SDKpython-dotenv— Environment variable loading
License
MIT