reddit-keyless-mcp
Read-only Reddit access with no account, app or API key — everything goes through Reddit's public RSS feeds.
search_reddit— search posts by keyword either site-wide or inside one subreddit, withsort(relevance, new, hot, top, comments) andtimefilters (hour → all); subreddit-scoped search is preferred since site-wide is looser and rate-limited more often.browse_subreddit— list a subreddit's latest posts bynew,hot,top(with time window) orrising.get_thread— read a post plus its comments from anywww,oldornewReddit thread URL.Every result gives title, URL, subreddit, author, date and plain text (HTML and Reddit footer stripped).
Strictly read-only — it cannot post, comment, vote or send messages.
What it can't do: no scores or comment counts, comments are flat (no reply nesting), at most 25 items per feed with no pagination, no user profiles or private/quarantined subreddits, and it is slow — calls are queued, spaced ~6s apart, and can take a minute or more when Reddit rate-limits.
Provides read-only access to Reddit content through public RSS feeds, enabling keyword search across Reddit or within a subreddit, listing subreddit posts by new, hot, top, or rising, and reading post threads with comments. Results include titles, URLs, subreddits, authors, dates, and plain text, but no scores, comment counts, reply nesting, or pagination.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@reddit-keyless-mcpsearch r/Scams for linkedin recruiter posts from the past month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
reddit-keyless-mcp
A read-only Reddit MCP server that needs no Reddit account, app or API key. It searches Reddit, lists a subreddit's posts and reads whole threads through Reddit's public RSS feeds, so it works for anyone, today.
Why it exists
Reddit's Responsible Builder Policy (November 2025) put new Data API apps behind manual review,
so REDDIT_CLIENT_ID / REDDIT_CLIENT_SECRET are no longer something you can create for
yourself, and the anonymous .json endpoints now answer 403. Reddit MCP servers built on the API
or .json stop working without approved credentials.
Related MCP server: Reddit MCP Server
What it can do
Tool | What it does |
| Search posts by keyword across Reddit or inside one subreddit; filter by time (hour to all) and sort (relevance, new, hot, top, comments) |
| List a subreddit's new, hot, top or rising posts |
| Read a post and its comments from any www, old or new reddit thread URL |
Every result has the title, URL, subreddit, author, date and plain text (HTML and Reddit's footer stripped). All tools are read-only: nothing here can post, comment, vote or message.
What it can't do
RSS is not the API, so some things are out of reach:
No scores or comment counts, and comments come as a flat list without reply nesting.
At most 25 items per feed (one page; no pagination).
No user profiles, private subreddits or quarantined content.
Slow. Reddit rate-limits RSS per IP address, roughly one feed a minute in practice. The server queues every call, spaces requests 6 seconds apart and backs off on HTTP 429 for up to 2.5 minutes before giving up with a clear message. Ask for one thing at a time.
Loose search. Reddit's search matches broadly; inside a busy subreddit most results can be off-topic. Restricting to a subreddit helps and is rate-limited less often than site-wide search.
Install
Requires Node.js 18 or later.
Claude Code
claude mcp add reddit -- npx -y reddit-keyless-mcpClaude Desktop and other MCP clients (claude_desktop_config.json or .mcp.json):
{
"mcpServers": {
"reddit": {
"command": "npx",
"args": ["-y", "reddit-keyless-mcp"]
}
}
}To run the latest code from GitHub instead of the npm release, use
npx -y github:ToGalan/reddit-keyless-mcp.
Calls can take more than a minute when Reddit is rate-limiting. If your client times out tool
calls sooner, raise its timeout (in Claude Code, MCP_TOOL_TIMEOUT=300000).
Certificate errors (UNABLE_TO_VERIFY_LEAF_SIGNATURE, SELF_SIGNED_CERT_IN_CHAIN): your
network inspects HTTPS. Pass your CA to the server with NODE_EXTRA_CA_CERTS=/path/to/ca.pem, or
on recent Node versions NODE_USE_SYSTEM_CA=1, in the server's env. Some MCP clients start servers with
a minimal environment, so set these in the server config rather than your shell.
Settings
All optional, as environment variables:
Variable | Default | Meaning |
|
| User-Agent sent to Reddit; set one that identifies you |
|
| Minimum gap between requests |
|
| How long to keep retrying a rate-limited request |
Example
Search r/Scams for "linkedin recruiter" from the past month, then read the most recent thread.
{
"url": "https://www.reddit.com/r/Scams/search.rss?q=linkedin+recruiter&t=month&sort=relevance&restrict_sr=1",
"results": [
{
"id": "t3_…",
"title": "Recruiter scam: pay for resume update",
"url": "https://www.reddit.com/r/Scams/comments/…/",
"subreddit": "Scams",
"author": "…",
"published": "2026-09-27T…",
"text": "…"
}
]
}Use responsibly
Reddit content belongs to its authors and Reddit's terms apply. Reading threads for your own research is fine; don't store Reddit content in bulk, resell it or train models on it, and don't use what you find to spam people. If you reply to someone you found this way, do it in public, say who you are, and don't send unsolicited private messages.
Development
npm install
npm test # mocked feeds, no network
npm start # runs the server on stdioLicense
MIT
Available Tools
3 toolsbrowse_subredditBrowse a subredditARead-only
List the latest (or hot, top, rising) posts in a subreddit, with title, URL, author, date and text. Reddit rate-limits its RSS feeds hard: calls are queued and spaced out, and can take a minute or more each. Call tools one at a time.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | new | |
| time | No | Time window, used with sort "top" | week |
| limit | No | ||
| subreddit | Yes | Subreddit name without r/, e.g. "recruitinghell" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and openWorldHint, so the description's disclosure that Reddit rate-limits RSS feeds hard, that calls are queued and spaced out, and that each call can take a minute or more is genuinely additive operational context. It stops short of describing failure/timeout behavior or pagination, keeping it out of the top band.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, with the core listing behavior front-loaded and the latency warning immediately after. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully names the returned fields, and the rate-limit warning covers the main operational surprise. Minor gaps remain: no mention of how 'limit' interacts with rate limiting or what happens when a feed is unavailable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: subreddit format and the time/sort relationship are documented in the schema, while sort and limit carry only enums, defaults and bounds. The description restates the sort values but adds no new meaning for sort, time or limit, so it does not compensate for the undocumented half.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) plus resource (posts in a subreddit), enumerates the sort modes and the returned fields (title, URL, author, date, text). It is clearly distinguishable from get_thread and search_reddit in practice, but it never names those siblings to make the boundary explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus get_thread or search_reddit, and no prerequisites or exclusions. The sort enumeration implies browsing modes, and 'call tools one at a time' is operational advice rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_threadRead a Reddit threadARead-only
Read a post and its comments from a Reddit thread URL (www, old or new reddit). Comments come as a flat list in Reddit's order, with author, date and text; reply nesting and scores are not available over RSS. Reddit rate-limits its RSS feeds hard: calls are queued and spaced out, and can take a minute or more each. Call tools one at a time.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Thread URL, e.g. https://www.reddit.com/r/Scams/comments/abc123/title/ | |
| comment_limit | No | Maximum comments to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnlyHint annotation by disclosing concrete behavioral traits: comments arrive as a flat list in Reddit's own order, reply nesting and scores are unavailable over RSS, and the RSS feed is heavily rate-limited so calls are queued and may take a minute or more each. The serialization constraint ('Call tools one at a time') is actionable operational context an agent could not infer from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose before limitations. Every sentence earns its place: the first establishes what it does, the second describes the return shape, the third covers rate-limit behavior and the concurrency rule.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must disclose return semantics, and it does: flat comment list with author, date and text, explicitly noting that nesting and scores are absent. Combined with the latency warning, an agent has everything needed to call this correctly and set expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both 'url' (with example format) and 'comment_limit' (default 50, max 100) are already fully documented in the schema. The description adds no parameter-specific detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Read a post and its comments from a Reddit thread URL') and scopes it to a URL input, which cleanly separates it from the sibling tools search_reddit and browse_subreddit that operate on queries or subreddits rather than a specific thread URL.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the triggering condition clear (you have a thread URL) and adds operational usage guidance ('Call tools one at a time') driven by rate limits. It does not explicitly name when to prefer search_reddit or browse_subreddit instead, but the sibling distinction is largely self-evident from the required URL parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_redditSearch RedditARead-only
Search Reddit posts by keyword, across Reddit or inside one subreddit (prefer one subreddit: site-wide search is rate-limited more often, and Reddit's matching is loose, so expect off-topic results). Returns title, URL, subreddit, author, date and text for each post. Reddit rate-limits its RSS feeds hard: calls are queued and spaced out, and can take a minute or more each. Call tools one at a time.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | relevance | |
| time | No | How far back to search | week |
| limit | No | Maximum posts to return (Reddit sends at most 25 per feed) | |
| query | Yes | Search words, e.g. "linkedin recruiter scam" | |
| subreddit | No | Restrict to one subreddit, without r/ (e.g. "Scams") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint and openWorldHint; the description adds the material behavioral facts an agent needs — RSS feeds are rate-limited hard, calls are queued and spaced and can take a minute or more, and tools must be called one at a time. It also discloses result-quality behavior (loose matching, off-topic hits) that no structured field conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then behavior, then return fields, with no filler sentences. It is dense but each clause carries operational information; slightly compressed telegraphic style but nothing wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the returned fields (title, URL, subreddit, author, date, text) and covers the two big operational risks of rate limiting and queuing. Nothing an agent needs to invoke this correctly appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the schema already documents query, time, limit and subreddit formats, making 3 the baseline. The description adds only the rationale for preferring the subreddit parameter (rate-limit avoidance) and no semantics for sort beyond what the enum implies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Search Reddit posts by keyword') plus the scope ('across Reddit or inside one subreddit'), which is clear enough for an agent to act on. It does not explicitly distinguish itself from the siblings get_thread and browse_subreddit, both of which also operate on Reddit content, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real when-to-use guidance: prefer scoping to one subreddit because site-wide search is rate-limited more often, and warns that Reddit matching is loose so off-topic results are expected. It stops short of naming the alternative siblings (browse_subreddit, get_thread) or stating when this tool should not be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.0- First observed
browse_subreddit - First observed
get_thread - First observed
search_reddit
TDQS
Scored across 3 tools
get_thread (read a thread by URL), search_reddit (keyword search), and browse_subreddit (feed listing) have clearly distinct entry points. search_reddit and browse_subreddit both return post lists, so there is minor potential overlap, but the input parameters (keyword vs subreddit/feed) keep them separable.
All three tools follow a clean verb_noun snake_case pattern: get_thread, search_reddit, browse_subreddit. Consistent and predictable throughout.
Three tools is a reasonable, well-scoped surface for a keyless read-only Reddit client covering the core actions of reading, searching, and browsing. It is on the lean side but each tool earns its place.
Covers the main read workflows (thread, search, subreddit feed) for an RSS-based keyless server. Write actions (posting, commenting, voting) and user/profile lookups are absent, but these are largely out of scope for a keyless RSS approach, so it is acceptable for the stated purpose.
Related MCP Connectors
Search public Reddit posts, browse subreddit feeds, and read posts, comments, and profiles.
Reddit posts, comments, keyword search and historical archives as tools. Runs on Apify.
Read-only Reddit search API for AI agents: posts, comments, comment trees, subreddit rules.
Browse and manage Reddit posts, comments, and threads. Fetch user activity, explore hot/new/rising…
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables browsing and searching Reddit content through read-only tools that access Reddit's official API. Supports searching posts, retrieving subreddit information, fetching hot posts, and getting detailed post information.54MIT
- FlicenseNot gradedqualityDmaintenanceProvides AI assistants with read-only access to Reddit's API for browsing subreddits, reading posts and comments, searching Reddit, and retrieving user/subreddit information. Enables safe exploration of Reddit content without posting capabilities through natural language interactions.-
- AlicenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to interact with Reddit by searching subreddits, retrieving hot posts, and fetching detailed post information with comments through the Reddit API.-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to search, read, and analyze Reddit content, including posts, comments, subreddits, and user profiles using natural language commands. It provides atomic tools for interacting with the Reddit API to retrieve trending topics and community metadata.MIT