Reddit MCP
The Reddit MCP server allows you to browse, search, and read Reddit content programmatically. With this server, you can:
Retrieve detailed information about specific submissions by ID
Get information about subreddits by name
Retrieve comments from submissions with optional MoreComments replacement
Access specific comments by ID with their replies
Search for posts within subreddits using various filters and sort options
Search for subreddits by name or description with advanced filtering options
Click on "Install 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 MCPsearch posts in r/learnpython about API integration"
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 MCP
A plug-and-play MCP server to browse, search, and read Reddit.
Demo
Here's a short video showing how to use this in Claude Desktop:
https://github.com/user-attachments/assets/a2e9f2dd-a9ac-453f-acd9-1791380ebdad
Related MCP server: systemprompt-mcp-reddit
Features
Detailed parameter validation with pydantic
Uses the reliable PRAW library under the hood
Built-in rate limiting protection thanks to PRAW
Caveats
Only supports read features for now. If you want to use write features, upvote the issue or send a PR! 🙌
Tools use tokens. To use this with Claude, you may need to be a Pro user to use many tool calls. Free tier users should be fine with lighter tool usage. Your token usage is your responsibility.
Installation
Prerequisite: Reddit API credentials
Create a developer app in your Reddit account if you don't already have one. This will give you a client_id and client_secret to use in the following steps. If you already have these, you can skip this step.
Claude Desktop
To install into Claude Desktop:
Follow the instructions here until the section "Open up the configuration file in any text editor."
Add the following to the file depending on your preferred installation method:
Using uvx (recommended)
"mcpServers": {
"reddit": {
"command": "uvx",
"args": ["reddit-mcp"],
"env": {
"REDDIT_CLIENT_ID": "<client_id>",
"REDDIT_CLIENT_SECRET": "<client_secret>"
}
}
}Using PIP
First install the package:
pip install reddit-mcpThen add the following to the configuration file:
"mcpServers": {
"reddit": {
"command": "python",
"args": ["-m", "reddit_mcp"],
"env": {
"REDDIT_CLIENT_ID": "<client_id>",
"REDDIT_CLIENT_SECRET": "<client_secret>"
}
}
}Others
You can use this server with any MCP client, including agent frameworks (LangChain, LlamaIndex, AutoGen, etc). For an example AutoGen integration, check out the example.
Tools
The tools the server will expose are:
Name | Description |
| Access a comment |
| Access comments of a submission |
| Access a submission |
| Access a subreddit by name |
| Search posts in a subreddit |
| Search subreddits by name or description |
Contributing
Contributions are welcome! See CONTRIBUTING.md for more information.
Acknowledgments
PRAW for an amazingly reliable library 💙
Available Tools
6 toolsget_comment_by_idB
Retrieve a specific comment by ID.
Args:
comment_id: ID of the comment to retrieve
Returns:
Comment details with any replies
| Name | Required | Description | Default |
|---|---|---|---|
| comment_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves comment details with replies, which implies a read-only operation, but doesn't cover aspects like error handling (e.g., what happens if the ID is invalid), authentication needs, rate limits, or data format. This leaves significant gaps in understanding the tool's behavior.
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 well-structured and front-loaded with the core purpose, followed by clear sections for arguments and returns. Every sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.
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?
Given the tool's low complexity (one parameter, no output schema, no annotations), the description is minimally adequate but lacks depth. It covers the basic operation and parameter semantics but omits behavioral details like error cases or output structure, which could hinder an agent's ability to use it correctly in edge scenarios.
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 description adds meaningful context for the single parameter by explaining that 'comment_id' is the 'ID of the comment to retrieve', which clarifies its purpose beyond the schema's basic type information. With 0% schema description coverage and only one parameter, this compensation is adequate, though it could benefit from details like ID format or examples.
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's purpose with a specific verb ('Retrieve') and resource ('a specific comment by ID'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_comments_by_submission', which might retrieve multiple comments, leaving some ambiguity about when to choose this tool over others.
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 usage by specifying 'a specific comment by ID', suggesting it's for retrieving a single, known comment. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'get_comments_by_submission' or mention any prerequisites or exclusions, leaving the agent to infer context from the parameter name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_comments_by_submissionB
Retrieve comments from a specific submission.
Args:
submission_id: ID of the submission to get comments from
replace_more: Whether to replace MoreComments objects with actual comments
Returns:
List of comments with their replies
| Name | Required | Description | Default |
|---|---|---|---|
| replace_more | No | ||
| submission_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions retrieving comments and replacing MoreComments objects, but doesn't cover important aspects like authentication requirements, rate limits, error conditions, pagination, or what happens when submission_id is invalid. The behavioral context is incomplete.
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 well-structured with clear sections for Args and Returns. It's appropriately sized with no redundant information. Every sentence serves a purpose, though it could be slightly more front-loaded with the core purpose.
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?
For a retrieval tool with 2 parameters, 0% schema coverage, no annotations, and no output schema, the description provides adequate basic information but lacks depth. It explains what the tool does and its parameters but doesn't cover behavioral aspects, error handling, or relationship to sibling tools, leaving gaps in contextual understanding.
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 0%, so the description must compensate. It clearly explains both parameters: 'submission_id' identifies the target submission, and 'replace_more' controls whether MoreComments objects are replaced with actual comments. This adds meaningful context beyond the bare schema.
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 verb 'Retrieve' and resource 'comments from a specific submission', making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'get_comment_by_id' or explain how this differs from general comment retrieval methods.
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 provides no guidance on when to use this tool versus alternatives like 'get_comment_by_id' or 'search_posts'. It mentions retrieving comments from a specific submission but doesn't clarify use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_submissionC
Retrieve a specific submission by ID.
Args:
submission_id: ID of the submission to retrieve
Returns:
Detailed information about the submission
| Name | Required | Description | Default |
|---|---|---|---|
| submission_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Retrieve' but doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires authentication, rate limits, error handling, or what 'Detailed information' includes. This leaves significant gaps for an agent to understand how to use it effectively.
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 appropriately sized with three sentences: purpose, parameter, and return value. It's front-loaded with the main action, and each sentence adds value without redundancy. Minor improvements could include merging the Args/Returns sections into a single line for brevity.
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?
Given the tool's low complexity (1 parameter, no nested objects) but lack of annotations and output schema, the description is minimally adequate. It covers the basic purpose and parameter but misses behavioral context and output details, which are crucial for a retrieval tool. It's complete enough to avoid being inadequate but has clear gaps.
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 schema description coverage is 0%, so the description must compensate. It adds meaning by specifying that 'submission_id' is the 'ID of the submission to retrieve', which clarifies the parameter's purpose beyond the schema's title 'Submission Id'. However, it doesn't provide format details (e.g., string format, examples) or constraints, leaving some ambiguity.
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 verb ('Retrieve') and resource ('a specific submission by ID'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'get_comment_by_id' or 'get_comments_by_submission', which follow similar patterns for comments versus submissions.
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 provides no guidance on when to use this tool versus alternatives like 'search_posts' or 'get_comments_by_submission'. It mentions retrieving by ID but doesn't specify prerequisites (e.g., needing a known submission ID) or exclusions (e.g., not for bulk retrieval).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subredditB
Retrieve a subreddit by name.
Args:
subreddit_name: Name of the subreddit to retrieve
Returns:
Detailed information about the subreddit
| Name | Required | Description | Default |
|---|---|---|---|
| subreddit_name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action ('Retrieve') and return ('Detailed information'), but doesn't disclose behavioral traits such as authentication needs, rate limits, error handling, or what 'detailed information' entails. This leaves significant gaps for a tool with no annotation coverage.
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 appropriately sized and front-loaded, with a clear purpose statement followed by structured Args and Returns sections. Every sentence earns its place without redundancy, making it efficient and well-organized.
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?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and parameter but lacks details on behavior, usage context, and output specifics, leaving room for improvement in completeness.
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?
With 0% schema description coverage and 1 parameter, the description compensates by explaining the parameter's purpose ('Name of the subreddit to retrieve'), adding meaningful context beyond the schema's basic type. This is sufficient for the single parameter, though it doesn't detail format or constraints.
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 verb ('Retrieve') and resource ('a subreddit by name'), making the purpose specific and understandable. It distinguishes from siblings like 'search_subreddits' by focusing on retrieval of a single subreddit rather than searching, though it doesn't explicitly name alternatives.
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 provided on when to use this tool versus alternatives like 'search_subreddits' for finding subreddits or other siblings for different data types. The description implies usage for retrieving a known subreddit by name but lacks explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_postsC
Search for posts within a subreddit.
Args:
params: Search parameters including subreddit name, query, and filters
Returns:
List of matching posts with their details
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic action ('search') and return type ('List of matching posts with their details'), but lacks critical details such as whether this is a read-only operation, potential rate limits, authentication requirements, pagination behavior, or error handling. For a search tool with zero annotation coverage, this is insufficient.
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 appropriately concise with three sentences that cover purpose, parameters, and returns without unnecessary fluff. It's front-loaded with the core function. However, the structure could be slightly improved by integrating parameter details more seamlessly, but it remains efficient overall.
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?
Given the complexity of a search operation with multiple parameters (e.g., sort, syntax, time_filter), no annotations, and no output schema, the description is incomplete. It doesn't explain the return format beyond 'List of matching posts with their details,' nor does it cover behavioral aspects like rate limits or error cases. For a tool with rich input schema but no other structured data, more context is needed.
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 schema description coverage is 0%, so the description must compensate. It mentions 'Search parameters including subreddit name, query, and filters,' which adds some context beyond the schema by hinting at the parameters' roles. However, it doesn't detail specific filters or explain parameter interactions, leaving gaps. Given the low coverage, this partial compensation earns a 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's purpose: 'Search for posts within a subreddit.' It specifies the verb ('search') and resource ('posts within a subreddit'), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'search_subreddits' or 'get_submission', which is why it doesn't achieve a perfect score.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'search_subreddits' (for searching subreddits themselves) or 'get_submission' (for retrieving a specific post), leaving the agent to infer usage context. This lack of explicit comparison or exclusion criteria results in a low score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_subredditsB
Search for subreddits using either name-based or description-based search.
Args:
by: Search parameters, either SearchByName or SearchByDescription
Returns:
List of matching subreddits with their details
| Name | Required | Description | Default |
|---|---|---|---|
| by | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns a list of matching subreddits with details, but lacks critical information such as whether this is a read-only operation, potential rate limits, authentication requirements, or how results are sorted/paginated. The description is minimal and misses key behavioral traits for a search tool.
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 extremely concise and well-structured, using only three sentences that efficiently cover purpose, parameters, and return value. Every sentence adds value with no wasted words, and it's front-loaded with the core functionality.
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?
Given the tool's moderate complexity (search with two modes), no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It covers the basic purpose and parameter structure but lacks behavioral details, usage context, and output specifics. It's adequate as a minimal overview but leaves significant gaps for an AI agent to operate effectively.
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 description adds meaningful context beyond the input schema by explaining that the 'by' parameter accepts either 'SearchByName' or 'SearchByDescription' objects, clarifying the two distinct search modes. Since schema description coverage is 0% (parameters have no descriptions in the schema), the description compensates well by outlining the parameter's purpose, though it doesn't detail the nested properties within each search type.
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 for subreddits using name-based or description-based search, providing a specific verb ('search') and resource ('subreddits'). It distinguishes from sibling tools like 'search_posts' (which searches posts) and 'get_subreddit' (which retrieves a specific subreddit), though it doesn't explicitly differentiate from them in the description text itself.
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 provides no guidance on when to use this tool versus alternatives like 'get_subreddit' (for retrieving a known subreddit) or 'search_posts' (for searching within subreddit content). It mentions the two search methods but offers no context on which to choose or any prerequisites for 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. Dates show when Glama detected each change.
6 tool updates
v1.0.0- First observed
get_comment_by_id - First observed
get_comments_by_submission - First observed
get_submission - First observed
get_subreddit - First observed
search_posts - First observed
search_subreddits
TDQS
Each tool has a clearly distinct purpose targeting specific Reddit entities: comments, submissions, subreddits, and searches. No overlap exists between tools like get_comment_by_id and get_comments_by_submission, which serve different retrieval needs.
All tools follow a consistent verb_noun pattern with underscores (e.g., get_comment_by_id, search_posts). The naming is predictable and readable throughout the set, with no deviations in style.
Six tools is reasonable for a Reddit API server, covering core read operations. It's slightly lean but includes key functionalities like retrieval and search, though it lacks write operations which might be expected in a full-featured server.
The tool set provides good read coverage for comments, submissions, and subreddits, but there are notable gaps: no create, update, or delete operations (e.g., posting comments or submissions). This limits agents to read-only workflows, which may cause failures in interactive scenarios.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
An MCP server that gives your AI access to the source code and docs of all public github repos
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
An MCP server that integrates with Discord to provide AI-powered features.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables AI assistants like Claude to browse and analyze Reddit content, including searching subreddits, retrieving post details with comments, and viewing trending posts.9MIT
- AlicenseNot gradedqualityDmaintenanceA specialized MCP server that enables AI agents to interact with Reddit, including reading posts, creating content, and managing subreddit configurations.3210Apache 2.0
- AlicenseAqualityFmaintenanceAn MCP server that enables AI assistants to access and interact with Reddit content through features like user analysis, post retrieval, subreddit statistics, and authenticated posting capabilities.15299MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides AI agents with full Reddit API capabilities including search, browsing, reading, posting, commenting, voting, editing, and deleting.13MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/GridfireAI/reddit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server