reddit-mcp-buddy: A Reddit MCP Server That Runs Without API Credentials
Clean, LLM-optimized Reddit MCP server. Browse posts, search content, analyze users. No fluff, just Reddit data.
At a glance
- What is it?
- A TypeScript Model Context Protocol server that gives Claude Desktop and other MCP clients read access to Reddit. Its distinguishing choice is a three-tier authentication model where anonymous browsing still works, but with a documented set of missing fields.
- Who is it for?
- Adopt reddit-mcp-buddy if you want Claude Desktop or Claude Code to read Reddit threads and you are willing to register a Reddit script app for search and user analysis. Do not adopt it if you need to post, vote, or moderate, or if you need a stable rate limit without credentials.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 29 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The gap reddit-mcp-buddy fills: Reddit as a read source for MCP clients
Reddit is not part of any model's training cutoff in a useful way. A question like what people are saying about a product this week has no answer inside the model, and pasting thread text by hand is the usual workaround. reddit-mcp-buddy is a Model Context Protocol server that sits between an MCP client (Claude Desktop, Claude Code, or any other client that speaks the protocol over stdio) and Reddit, and exposes Reddit reads as callable tools. The README frames the target audience directly: Claude Desktop and other AI assistants that need to browse subreddits, search posts, and analyze user activity. The repository is TypeScript, MIT licensed, published on npm, and the README describes the data as clean, with no invented sentiment scores or derived metrics. That last point is a design stance rather than a feature: the server returns what Reddit returns and leaves interpretation to the model. If you have ever watched an assistant hallucinate a sentiment score from a thread it never read, the absence of a fabricated metric layer is the reason to care.
Five tools, and the one that decides your data quality
The README lists five tools. browse_subreddit takes a subreddit name (including the special values all and popular), a sort of hot, new, top, rising or controversial, and a time range of hour, day, week, month, year or all for the top and controversial sorts. search_reddit filters by subreddit, author, time and flair, and sorts by relevance, hot, top, new or comments. get_post_details accepts a Reddit URL, a bare post ID, or a post ID plus subreddit; the README states the last form is the most efficient at one API call, while a bare post ID costs two because the server has to detect the subreddit first. URL handling covers reddit.com, www, old, new, np, m, and redd.it short links, plus query strings and fragments. user_analysis returns karma, posts, comments and active subreddits for a username. reddit_explain is a static glossary for terms like karma, cake day, AMA and ELI5. The tool that determines what you actually get is browse_subreddit, because it is the one that behaves differently depending on whether credentials are present.
The three-tier auth model and what the anonymous tier silently drops
Most of the README's differentiation rests on a tiered authentication scheme, and the README's own table is truncated in the supplied material, so treat the exact middle and top tier numbers as documented in the project rather than verified here. What is stated clearly: anonymous browsing works with no Reddit API registration at all, and adding free credentials raises the ceiling. The README cites three tiers at 10, 60 and 100 requests per minute, and instructs users to select the script application type when creating the Reddit app, calling that choice critical for reaching 100 rpm. The trade-off in the anonymous tier is spelled out rather than hidden. Results come from Reddit's public RSS feed and are tagged with data_source: "rss". In that mode, score, num_comments, upvote_ratio and nsfw come back as null, and the include_nsfw filter cannot be applied. That is a real functional difference, not a cosmetic one. An assistant asked to rank a subreddit's top posts by score has nothing to rank on in RSS mode. The README also notes that search, comments, user analysis and engagement metrics require credentials, and that the include_subreddit_info flag on browse_subreddit needs them too. The honest framing is worth crediting: the project documents the degraded path instead of letting it fail quietly.
Getting it running in Claude Desktop and Claude Code
The fastest path is a packaged .mcpb extension downloaded from the project's latest GitHub release, opened, and installed; the README describes Reddit tools as available in Claude immediately after. The npm alternative is a stdio server entry in claude_desktop_config.json, with command set to npx and args set to ["-y", "reddit-mcp-buddy"] under an mcpServers key named reddit. For Claude Code the README gives a single command: claude mcp add --transport stdio reddit-mcp-buddy -s user -- npx -y reddit-mcp-buddy. Any other MCP client can use npx -y reddit-mcp-buddy directly. Credentials go in the same config block as environment variables: REDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET, REDDIT_USERNAME and REDDIT_PASSWORD. The README's registration steps are specific: create an app at reddit.com/prefs/apps, choose the script type, set the redirect URI to http://localhost:8080 (described as required but unused), then copy the client ID from under the personal use script label and the secret string. The README also lists global install, from-source and Docker installation options, though the material here does not detail their commands. Note that a password grant means your Reddit account credentials sit in a plaintext JSON config file on the machine running the client.
Where the design runs out: read-only, credential-coupled, and RSS-degraded
Three boundaries are visible in the material. First, the tool set is entirely read-oriented. There is no post, comment, vote or moderation tool, so any workflow that ends in writing to Reddit is out of scope by construction, not by configuration. Second, the interesting capabilities are coupled to credentials. Search, comments, user analysis and engagement metrics all require a registered Reddit app, which means the zero-setup pitch applies to browsing only. Third, the anonymous path's missing fields are not recoverable client-side: if score and num_comments are null, no prompt engineering brings them back. A fourth consideration is rate limiting. The tiered limits are described as proven and tested with verification tools, but the supplied README does not state what happens when a tier is exceeded, whether the server queues, retries, or surfaces an error to the model. If your use case involves an agent making many calls in a loop, that behaviour is the thing to determine before you depend on it. Finally, Reddit's own API terms govern what you may do with the data; the MIT licence on this repository covers the server code, not Reddit's content or your compliance with Reddit's developer agreement. That distinction is easy to blur when a package installs in one command.
How it differs from a scraping-based Reddit tool
The obvious alternative category is a Reddit scraper, typically a Python library or a headless-browser script that parses rendered HTML. The difference is architectural rather than stylistic. A scraper reads the page a human would see, so it can pick up whatever the page renders and does not need an app registration; in exchange it breaks when Reddit changes markup, and it operates outside the API's documented request budget. reddit-mcp-buddy instead speaks the API when credentials exist and falls back to Reddit's public RSS feed when they do not, which is why the anonymous mode has a fixed, documented field set rather than whatever happens to be in the DOM. The RSS fallback is the more interesting design decision: it is a narrower contract than scraping, and narrower is the point, because a null field is a truthful null rather than a guessed value. If you need fields the RSS feed does not carry and you refuse to register an app, a scraper will return more data than this server will. It will also return it less predictably. The other comparison worth naming is writing your own MCP server against Reddit's API. That is a reasonable afternoon of work for a single tool, and the reason to use this project instead is the URL normalization across six Reddit hostnames and short links, plus the RSS fallback path, which are the parts that take longer than they look.
Maintenance signals and the MIT licence boundary
The repository is not archived. The most recent push recorded is 2026-08-17, and the release history shows v1.1.14 on 2026-07-29, v1.1.13 on 2026-05-26, and v1.1.12 on 2026-02-21 with the note Production-Ready Hardening + Test Suite. That is a steady patch cadence rather than a burst, which for an MCP server is roughly what you want: the protocol and the Reddit API are the moving parts, and neither changes weekly. The practical upgrade cost is low because the deployment is npx-based and version-pinned only if you pin it. The default args in the README use npx -y reddit-mcp-buddy with no version, which means every client restart can pull a newer release. If you want reproducible behaviour, pin the version in the args array. On licensing: the code is MIT, which is permissive and imposes no obligations on your own code. It says nothing about Reddit's content, Reddit's API terms, or the credentials you place in your client config. Do not read the MIT badge as permission to do whatever you like with the data the server returns. That question belongs to Reddit's developer terms and, if you are handling personal data from user profiles, to whatever regime applies to you. This is not legal advice; it is a pointer to where the actual question lives.
Editorial conclusion
Adopt reddit-mcp-buddy if you want Claude Desktop or Claude Code to read Reddit threads and you are willing to register a Reddit script app for search and user analysis. Do not adopt it if you need to post, vote, or moderate, or if you need a stable rate limit without credentials. Before wiring it into anything, verify three things: that the anonymous browse path returns null for score, num_comments, upvote_ratio and nsfw as the README states, that your Reddit app was created with the script type rather than web app, and that your client actually loads a stdio MCP server via npx.
Community notes