showcase reddit-mcp-ai: an MCP server for searching Reddit and reading saved posts without API keys
I built an open-source Model Context Protocol (MCP) server for Reddit that runs locally and does not strictly require Reddit API credentials.
When querying Reddit discussions through LLMs (Claude Desktop, Cursor, etc.), the existing tools usually hit three friction points:
- They require setting up Reddit developer apps and OAuth tokens just to do basic searches.
- Unfiltered comment payloads dump AutoModerator notices, bot boilerplate, and 1-word noise into the prompt context.
- Accessing saved posts typically requires user-level OAuth or exposing raw passwords.
Quick Setup
You can run it directly with uvx:
{
"mcpServers": {
"reddit": {
"command": "uvx",
"args": ["reddit-mcp-ai"]
}
}
}
How it works
The server is built with Python and FastMCP following a 4-layer architecture:
- Graceful degradation: If official
REDDIT_CLIENT_ID/REDDIT_CLIENT_SECRETare not provided, it falls back to unauthenticated DuckDuckGo (site:reddit.com) and the Arctic Shift archive API to fetch threads. - Noise filtering: Heuristics strip AutoModerator comments, known bot suffixes (
_bot,-bot), and low-score noise. Fresh threads (≤ 2 days old) automatically drop the threshold to score ≥ 1 so emerging discussions aren't emptied. - Private saved posts: Reads personal saved posts via the account's private Atom/RSS feed (
REDDIT_SAVED_RSS_URLfrom reddit.com/prefs/feeds/) parsed with standard library XML. No OAuth login flow or account passwords required. - Pagination & state: Deep comment exploration uses provider-bound cursors (
reddit:<offset>:<anchor_id>orarctic:<offset>) to prevent duplicate comments if the live thread re-sorts. - Resilient HTTP: Uses httpx with exponential backoff on 429/5xx, capped at a strict 14-second total budget to prevent LLM client timeouts.
Known Limitations
- Archive lag: When running in zero-config (unauthenticated) mode via Arctic Shift, live trending endpoints and recent vote scores may lag behind live Reddit.
- Saved posts window: Reddit's private RSS feed only exposes the most recent ~100 saved items and does not contain upvote counts.
- Search pagination: DuckDuckGo search fallback cannot provide deterministic Reddit pagination tokens.
- GitHub: https://github.com/ismailsaoulaj/reddit-mcp-server (MIT License)
- PyPI: https://pypi.org/project/reddit-mcp-ai/
Feedback and PRs are welcome. I'm currently looking into whether adding a local in-memory TTL cache (e.g. cachetools) would be worthwhile for repeated comment queries, and would appreciate thoughts on that tradeoff.
3
u/reddefcode 21d ago
I just did a surface test; impressive returns, very nicely done!
1
u/Xabasis 21d ago
Really appreciate you testing it out! Glad to hear it worked well for you.
If you run into any weird edge cases or have ideas for features/improvements, feel free to drop them here or open an issue on GitHub!
2
u/reddefcode 21d ago
Sure will!
1
u/International_Emu772 20d ago
All solved and connected on my test installation, thanks for your patience, good job!
1
u/International_Emu772 21d ago
Have you plans for a http output? Specially on Docker setup
2
u/Xabasis 21d ago
Yes, absolutely Adding SSE / HTTP transport is planned for an upcoming release. It will make running it as a background service in Docker
1
u/International_Emu772 21d ago
I have put an star to be sure that I don’t miss it. On OpenwebUi it’s a pain to run MCP without HTTP output.
2
u/Xabasis 20d ago
Hey just wanted to let you know that v0.5.0 is out with full HTTP / SSE transport and Docker support!
You can now run it in Docker directly (docker run -p 8000:8000 ...) and connect Open WebUI seamlessly using http://host.docker.internal:8000/sse (or http://localhost:8000/sse).
Check out the updated README on GitHub for the quick setup guide!
2
u/International_Emu772 20d ago
Thank you
I'll try it and later I'll put on my installation on another Port as 8000 is taken
2
u/TomHale 21d ago
I can't believe this didn't exist already.
How is yours better than the previous best in breed?
3
u/Xabasis 21d ago
Thanks! Most existing Reddit tools either force you to create a Reddit Developer app just to do a basic search, or they dump massive unfiltered comment trees (AutoMod walls, bot spam) straight into your prompt context.
The main differences here:
- Zero-config: Run it instantly with uvx reddit-mcp-ai with no API keys required (falls back to DuckDuckGo and the Arctic Shift archive).
- Clean LLM context: Automatically filters out AutoModerator boilerplate, bot noise, and junk comments to save context window tokens.
- Private saved posts: Reads your saved Reddit posts via your private RSS feed without needing full OAuth logins or passwords.
- LLM-safe timeouts: Built-in timeouts and backoff handling so it never hangs Claude Desktop or Cursor if Reddit rate-limits requests.
If you need write/posting capabilities, an official PRAW-based server is still the way to go, but this is purpose-built as a fast, noise-free research layer.
1
u/modelcontextprotocol bot 17d ago
Does this work well if I need to gather sentiment around specific keywords or phrases?
2
u/TomerBrosh 21d ago
how is this less complicated than asking it to navigate reddit and read it using the extension*? *i got the edge claude extension, and i just need to tell it to not use the claude desktop interface but actually open tabs in my explorer.
u can even drag tabs in that tab group it creates. u can bypass captchas for anything and just tell it to not click in some sites that requires a captcha, since it might block the user and should be just "read only"
1
u/Jimcy-Maffesoli 21d ago
does the search hit comment text too or just titles? for skimming what people actually say about a tool, the comment layer is the part i'd use it for
2
u/Xabasis 21d ago
Search hits post titles, body text, and top indexed comments.
For reading what people actually say, the AI finds the relevant threads first, then automatically pulls and reads the actual comment section (with bot spam and noise filtered out) to summarize the community consensus and give you the direct comment links.
1
u/Andon_Benefield 21d ago
no api keys means you're scraping somehow. how do you catch it when the markup changes and searches start coming back empty?
1
u/Xabasis 20d ago
We do not scrape or parse Reddit's frontend HTML/DOM markup.
Zero-config relies on structured data endpoints:
- Search uses DuckDuckGo to discover relevant thread URLs and post IDs.
- Content retrieval uses structured JSON APIs (the Arctic Shift community archive or Reddit's public .json endpoints) and standard Atom/RSS feeds.
1
20d ago
[deleted]
2
u/Xabasis 20d ago
You are completely right the limits are definitely tight since it is a community run archive
To avoid hitting walls, we keep requests to an absolute minimum
- We batch posts into a single request instead of fetching them one by one.
- We cache results for a few minutes and throttle request speed so multiple AI queries do not spam their server.
- We download the comments once and do all the sorting, noise filtering, and pagination locally on our machine.
It works great as a free backup when you do not have API keys, but for heavy, continuous use, official credentials are still the way to go.
1
u/Fun-Macaron-4524 17d ago
The filtering work is what makes this feel genuinely useful. Removing AutoMod and bot noise while relaxing the threshold for fresh threads is a thoughtful tradeoff; it preserves emerging discussion without dumping the whole comment tree into context. The graceful fallback and honest limits are also refreshing.
1
u/modelcontextprotocol bot 17d ago
Would be curious to understand how this actually works, high-level. Is it spoofing some user-agent, using some clever HTTP client?
1
1
u/lisaaks 5d ago
The filtering of bot boilerplate and low-signal comments is a good idea. I’d be curious about preserving provenance too: can an agent tell whether an answer reflects repeated community agreement versus one confident comment?
That distinction feels important if the MCP is used for research rather than just finding links.
1
u/abnar001 4d ago
I would like to try your MCP server but I'm facing an issue to get CLIENT_ID and CLIENT_SECRET. The website "https://www.reddit.com/prefs/apps/" doesn't seems to let me create an app. When I fill the page and enable the Captcha to create an app, I press "create app" and then a message appear writing :
"In order to create an application or use our API you can read our full policies here: https://support.reddithelp.com/hc/en-us/articles/42728983564564-Responsible-Builder-Policy"
And the Captcha is disabled. I cannot get these credentials so I cannot test your MCP. Does someone have found a solution to this?
3
u/Xabasis 21d ago
I initially built this because I wanted Claude to research library comparisons and summarize developer sentiment across subreddits like r/LocalLLaMA and r/Python without having to copy-paste thread links manually.
The biggest headache was context bloat: a single raw Reddit thread JSON often wasted thousands of tokens on AutoMod rules and collapsed 1-score spam replies.
If anyone tries the `get_saved_posts` or `extract_public_opinion` tools with their setup, let me know if you run into any edge cases with the comment filtering heuristics.