mcp-reddit
Fetch posts from subreddits, search Reddit globally or scoped, and retrieve posts with their comment trees via Reddit's JSON endpoints.
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., "@mcp-redditshow top posts from r/MachineLearning"
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.
mcp-reddit
FastMCP server — Reddit via old.reddit.com JSON endpoints.
Usage
mcp-reddit [--transport TRANSPORT] [--host HOST] [--port PORT]Options
Flag | Default | Description |
|
|
|
|
| Bind address (HTTP transports) |
|
| Bind port (HTTP transports) |
Environment
Variable | Equivalent |
|
|
Examples
# Claude Desktop / Codex (stdio)
uvx --from git+https://... mcp-reddit
# Self-hosted Streamable HTTP
mcp-reddit --transport streamable-http --port 8000
# → clients connect to http://host:8000/mcp
# Env-var style
MCP_TRANSPORT=sse mcp-reddit --port 9000Related MCP server: reddit-rss-mcp
Tools
Tool | Description |
| Fetch posts from a subreddit |
| Search Reddit (global or scoped) |
| Fetch a post and its comment tree |
Available Tools
3 toolsreddit_get_commentsA
Fetch a post and its comment tree using old.reddit.com .json endpoints
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | 'confidence' (default), 'top', 'new', 'controversial', 'old', 'qa' | confidence |
| limit | No | 1–500 (default 100) | |
| shortcode | Yes | Post ID (e.g. '1ps3ta4'). No subreddit needed. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions old.reddit.com .json endpoints, which hints at unofficial API use, but it does not disclose read-only nature, rate limits, pagination behavior, or response format. The word 'Fetch' implies non-destructive, but this is not explicit.
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?
The description is a single, front-loaded sentence with no unnecessary information. It efficiently conveys the core action and endpoint without filler or redundancy.
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?
An output schema is present, so return values are covered. The description is adequate for a simple read-only fetch with a well-documented schema, though it could benefit from explicit usage alternatives or behavioral context. Overall, it is complete enough for selection and invocation.
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?
The input schema covers all 3 parameters with descriptions (shortcode, sort options, limit range), so schema coverage is 100%. The description adds no parameter-specific meaning beyond the phrase 'comment tree,' which indirectly relates to sort and limit. Baseline 3 applies because schema does the heavy lifting.
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?
The description clearly states the tool fetches a post and its comment tree, using specific endpoints (old.reddit.com .json). The verb 'Fetch' plus the resource (post and comment tree) distinguishes it from siblings like reddit_get_posts and reddit_search.
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?
No explicit when-to-use guidance or alternatives are mentioned. The description implies it is for retrieving comments on a specific post, but it doesn't state when not to use it or reference sibling tools. The context is implied by the resource type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_get_postsA
Fetch posts from a subreddit using old.reddit.com .json endpoints
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | 'hot' (default), 'new', 'rising', 'controversial', 'top' | hot |
| limit | No | 1–100 (default 25) | |
| subreddit | Yes | Subreddit name without r/ prefix (e.g. 'memes') | |
| time_filter | No | For 'top'/'controversial' only — 'hour', 'day', 'week', 'month', 'year', 'all' (default: 'day') |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It adds a technical detail (old.reddit.com .json endpoints) but does not mention rate limits, authentication, or side effects. For a read-only fetch operation, this is adequate but not rich.
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?
The description is a single sentence that directly states the tool's function without unnecessary words. It is front-loaded and efficient.
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?
The tool has moderate complexity with 4 parameters and an output schema. The description is brief but sufficient for a simple fetch operation, though it could mention potential caveats like pagination or endpoint-specific behavior to be more complete.
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 the parameters are fully documented by the schema. The description does not add any extra detail beyond what the schema already provides, earning the baseline score.
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?
The description clearly states the tool fetches posts from a subreddit using a specific endpoint. The verb 'fetch' and resource 'posts from a subreddit' distinguish it from sibling tools for comments and search.
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 implies the primary use case: retrieving posts from a given subreddit. While it doesn't explicitly state when not to use it, the contrast with sibling tool names (comments, search) provides clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_searchC
Search Reddit using old.reddit.com .json endpoints
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | 'relevance' (default), 'top', 'new', 'comments', 'hot' | relevance |
| limit | No | 1–100 (default 25) | |
| query | Yes | Search terms | |
| subreddit | No | Optional subreddit to scope search to | |
| time_filter | No | 'hour', 'day', 'week', 'month', 'year', 'all' (default) | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure burden. It only hints at the endpoint (old.reddit.com .json), implying raw JSON and possible rate limits, but does not mention auth, response format, or other behavioral traits.
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?
The description is a single, concise sentence without redundancy. However, it is terse and omits useful context, slightly reducing its structural value.
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?
Although an output schema exists and parameters are fully documented, the description lacks usage context (e.g., when to use vs. siblings) and behavioral caveats (e.g., interaction between sort and time_filter). This makes the overall description incomplete.
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?
The input schema has 100% coverage with descriptions for all parameters, including defaults and allowed values (e.g., sort, time_filter). The description adds no additional meaning, so the baseline of 3 is appropriate.
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?
The description clearly states the tool searches Reddit and specifies the method (old.reddit.com .json endpoints). It distinguishes from sibling tools by the action 'search', though it doesn't explicitly contrast with reddit_get_posts or reddit_get_comments.
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?
No guidance is given on when to use this tool versus the sibling tools. There is no mention of scenarios, prerequisites, or exclusions, leaving the agent to infer usage.
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
reddit_get_comments - First observed
reddit_get_posts - First observed
reddit_search
TDQS
Scored across 3 tools
Each tool serves a distinct purpose: fetching subreddit posts, fetching comments for a specific post, and searching Reddit. There is no overlap or ambiguity between them.
All tools share the reddit_ prefix, and two use verb_noun (get_posts, get_comments). The third, reddit_search, deviates slightly by using a bare verb, but the pattern is still clear and predictable.
Three tools is a well-scoped set for a Reddit reading server, covering core read operations without unnecessary bloat.
The server covers the primary read workflows: viewing posts, viewing comments, and searching. Minor gaps like fetching a specific post by ID or user profiles could be added, but the core domain is adequately covered.
Maintenance
Related MCP Connectors
Reddit MCP server: search posts, subreddit feeds, comments & user profiles as JSON. No API key.
Reddit MCP — public Reddit data via JSON endpoints (no auth required)
MCP server for siGit (sigit.si): browse repos, search code, manage PRs/issues, web search.
Lemmy MCP — public reads on any Lemmy instance.
Related MCP Servers
- AlicenseAqualityDmaintenanceReddit MCP Server — No API Keys Required. Browse, post, comment, vote, and manage your Reddit account from any MCP client.204MIT
- AlicenseAqualityDmaintenanceA dependency-free MCP server that reads Reddit through its RSS feeds, enabling search, browsing subreddits, and reading post comments without any API keys or authentication.33 npm13MIT
- AlicenseNot gradedqualityBmaintenanceA local, read-only Reddit MCP server that provides tools for searching posts, retrieving posts/comments, subreddit information, and user content via the official Reddit Data API with caching and privacy-focused features.-
- AlicenseNot gradedqualityBmaintenanceMCP server for Reddit data — subreddits, users, search, live comments. No OAuth required.MIT