Reddit MCP Server
Provides comprehensive access to Reddit's API for retrieving posts, comments, user information, and search functionality across subreddits with various sorting and 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 MCP Servershow me the top 10 posts from r/programming"
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 Server
A Model Context Protocol (MCP) server that provides access to Reddit's API for retrieving posts, comments, user information, and search functionality.
Features
Subreddit Operations: Get posts from any subreddit with various sorting options
Post Operations: Retrieve specific posts and their comments
User Operations: Get user information, posts, and comments
Search: Search for posts and subreddits
Authentication: Supports multiple Reddit API authentication methods
Related MCP server: Reddit MCP Server
Available Tools
get_subreddit_posts
Get posts from a specific subreddit.
Parameters:
subreddit(required): Name of the subreddit (without r/ prefix)sort(optional): Sort order -hot,new,top,rising(default:hot)limit(optional): Number of posts to retrieve, 1-100 (default: 25)
get_post
Get details of a specific Reddit post.
Parameters:
postId(required): Reddit post ID
get_post_comments
Get comments from a Reddit post.
Parameters:
postId(required): Reddit post IDsort(optional): Sort order -best,top,new,controversial,old(default:best)
get_subreddit_info
Get information about a subreddit.
Parameters:
subreddit(required): Name of the subreddit (without r/ prefix)
get_user_info
Get information about a Reddit user.
Parameters:
username(required): Reddit username (without u/ prefix)
get_user_posts
Get posts submitted by a user.
Parameters:
username(required): Reddit username (without u/ prefix)sort(optional): Sort order -hot,new,top(default:new)limit(optional): Number of posts to retrieve, 1-100 (default: 25)
get_user_comments
Get comments made by a user.
Parameters:
username(required): Reddit username (without u/ prefix)sort(optional): Sort order -hot,new,top(default:new)limit(optional): Number of comments to retrieve, 1-100 (default: 25)
search_posts
Search for Reddit posts.
Parameters:
query(required): Search querysubreddit(optional): Restrict search to specific subredditsort(optional): Sort order -relevance,hot,top,new,comments(default:relevance)limit(optional): Number of results to retrieve, 1-100 (default: 25)
search_subreddits
Search for subreddits.
Parameters:
query(required): Search query for subreddit names/descriptionslimit(optional): Number of results to retrieve, 1-100 (default: 25)
Setup
1. Reddit API Application
Click "Create App" or "Create Another App"
Choose application type:
script for personal use
web app for server applications
Note your client ID (under the app name) and client secret
2. Environment Configuration
Copy .env.example to .env and configure:
cp .env.example .envEdit .env with your Reddit API credentials:
REDDIT_CLIENT_ID=your_client_id_here
REDDIT_CLIENT_SECRET=your_client_secret_here
REDDIT_USER_AGENT=reddit-mcp-server/1.0.0 by your_username
# Choose one authentication method:
REDDIT_USERNAME=your_username
REDDIT_PASSWORD=your_password3. Installation
npm install4. Build
npm run build5. Usage with Claude Code
Add to your Claude Code MCP configuration:
{
"mcpServers": {
"reddit": {
"command": "node",
"args": ["/path/to/reddit-mcp/dist/index.js"],
"env": {
"REDDIT_CLIENT_ID": "your_client_id",
"REDDIT_CLIENT_SECRET": "your_client_secret",
"REDDIT_USER_AGENT": "reddit-mcp-server/1.0.0 by your_username",
"REDDIT_USERNAME": "your_username",
"REDDIT_PASSWORD": "your_password"
}
}
}
}Authentication Methods
1. Username/Password (Recommended for personal use)
REDDIT_USERNAME=your_username
REDDIT_PASSWORD=your_password2. Refresh Token (Recommended for production)
REDDIT_REFRESH_TOKEN=your_refresh_token3. Access Token (For testing only - expires in 1 hour)
REDDIT_ACCESS_TOKEN=your_access_token4. Client Credentials (Read-only access)
Leave username/password empty to use client credentials flow.
Rate Limits
Reddit API has rate limits:
Free tier: 100 requests per minute per OAuth client
Requests are averaged over a 10-minute window
Commercial use requires Reddit's permission
Important Notes
User-Agent: Must be unique and descriptive
Commercial Use: Requires Reddit's permission
Data Retention: Must delete user content that's been deleted from Reddit
Rate Limiting: Built-in authentication token management
Development
Run in development mode:
npm run devBuild:
npm run buildClean build artifacts:
npm run cleanData Types
RedditPost
interface RedditPost {
id: string;
title: string;
author: string;
subreddit: string;
url: string;
selftext: string;
created_utc: number;
score: number;
num_comments: number;
permalink: string;
is_self: boolean;
domain: string;
thumbnail?: string;
}RedditComment
interface RedditComment {
id: string;
author: string;
body: string;
created_utc: number;
score: number;
permalink: string;
parent_id: string;
subreddit: string;
}RedditSubreddit
interface RedditSubreddit {
display_name: string;
title: string;
description: string;
subscribers: number;
created_utc: number;
public_description: string;
url: string;
over18: boolean;
}RedditUser
interface RedditUser {
name: string;
id: string;
created_utc: number;
comment_karma: number;
link_karma: number;
is_verified: boolean;
has_verified_email: boolean;
}License
MIT
Available Tools
9 toolsget_postB
Get details of a specific Reddit post
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | Reddit post ID |
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. While 'Get details' implies a read-only operation, it doesn't specify authentication requirements, rate limits, error conditions, or what happens with invalid post IDs. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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 a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple retrieval tool and is front-loaded with the essential information. Every word 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?
For a simple single-parameter retrieval tool with no output schema, the description is minimally adequate. It identifies the resource but doesn't explain what details are returned or any behavioral constraints. Given the lack of annotations and output schema, a more complete description would help the agent understand the response format and operational boundaries.
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 100%, with the single parameter 'postId' clearly documented as 'Reddit post ID'. The description adds no additional parameter information beyond what the schema provides. According to the rules, when schema coverage is high (>80%), the baseline score is 3 even without parameter details in the description.
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 ('Get details') and resource ('specific Reddit post'), making the purpose immediately understandable. It distinguishes this from siblings like 'get_post_comments' (which focuses on comments) and 'get_subreddit_posts' (which lists multiple posts). However, it doesn't specify what details are included, which prevents 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 when to choose 'get_post' over 'search_posts' for finding a post, or how it differs from 'get_subreddit_posts' for post retrieval. Without any usage context or exclusions, the agent must infer this from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_post_commentsC
Get comments from a Reddit post
| Name | Required | Description | Default |
|---|---|---|---|
| postId | Yes | Reddit post ID | |
| sort | No | Sort order for comments | best |
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. While 'Get comments' implies a read-only operation, it doesn't address critical aspects like authentication requirements, rate limits, pagination behavior, error conditions, or what the return format looks like (e.g., list of comments with metadata). This leaves significant gaps for a tool that interacts with an external API like Reddit.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse quickly. There's no wasted verbiage or redundant information.
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 lack of annotations and output schema, the description is insufficient for a tool that fetches data from an external service like Reddit. It doesn't cover authentication needs, rate limits, return format, or error handling, which are crucial for an AI agent to use this tool effectively in real-world scenarios. The high schema coverage doesn't compensate for these behavioral 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 100%, with clear documentation for both parameters (postId and sort with enum values). The description doesn't add any meaningful semantic context beyond what the schema already provides, such as explaining what a 'Reddit post ID' looks like or how sorting affects comment retrieval. This meets the baseline for high schema coverage.
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 action ('Get comments') and resource ('from a Reddit post'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'get_user_comments' or 'get_post' (which might return post details without comments), missing full sibling differentiation that would warrant a score of 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?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_post' (which might return post metadata) and 'get_user_comments' (which retrieves comments by user), there's no indication of when this specific tool is appropriate, leaving the agent to guess based on context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subreddit_infoC
Get information about a subreddit
| Name | Required | Description | Default |
|---|---|---|---|
| subreddit | Yes | Name of the subreddit (without r/ prefix) |
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 doesn't disclose behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, error handling (e.g., for non-existent subreddits), or response format. The description is minimal and adds no context beyond the basic purpose.
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, efficient sentence with no wasted words, making it appropriately sized and front-loaded. However, it's overly concise to the point of under-specification, lacking details that would enhance usability without becoming verbose.
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 simplicity (1 parameter, 100% schema coverage) but lack of annotations and output schema, the description is incomplete. It doesn't explain what information is returned (e.g., metadata fields), potential errors, or usage context, leaving gaps for the agent to infer behavior in a Reddit API environment.
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%, with the parameter 'subreddit' clearly documented in the schema as 'Name of the subreddit (without r/ prefix)'. The description adds no additional meaning beyond what the schema provides, so it meets the baseline of 3 for high schema coverage without compensating value.
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 'Get information about a subreddit' states a clear verb ('Get') and resource ('subreddit'), but it's vague about what specific information is retrieved. It distinguishes from siblings like 'get_subreddit_posts' or 'search_subreddits' by focusing on subreddit metadata rather than content, but lacks specificity about the type of information (e.g., description, subscriber count, rules).
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. It doesn't mention prerequisites (e.g., subreddit existence), exclusions, or comparisons to siblings like 'get_subreddit_posts' (for posts) or 'search_subreddits' (for finding subreddits). The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subreddit_postsC
Get posts from a specific subreddit
| Name | Required | Description | Default |
|---|---|---|---|
| subreddit | Yes | Name of the subreddit (without r/ prefix) | |
| sort | No | Sort order for posts | hot |
| limit | No | Number of posts to retrieve (1-100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states the basic action but lacks critical details: it doesn't mention whether this is a read-only operation (implied but not explicit), what authentication might be required, rate limits, pagination behavior, or what format/fields the returned posts include. For a tool with no 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 a single, efficient sentence that directly states the tool's function without any wasted words. It's appropriately sized for a straightforward retrieval tool and front-loads the core purpose effectively.
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 has no annotations and no output schema, the description is incomplete. It doesn't explain what the return values look like (e.g., post objects with titles, scores, etc.), error conditions, or behavioral constraints. For a data retrieval tool with multiple parameters, more context is needed to guide effective use.
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%, with all parameters well-documented in the schema itself (subreddit name format, sort options with default, limit range with default). The description adds no additional parameter semantics beyond what's already in the schema, so it meets the baseline for high schema coverage without compensating value.
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 action ('Get posts') and resource ('from a specific subreddit'), making the purpose immediately understandable. However, it doesn't distinguish this tool from similar siblings like 'get_user_posts' or 'search_posts', which would require specifying that this retrieves posts specifically from a subreddit feed rather than user content or search results.
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. With siblings like 'search_posts' and 'get_user_posts' available, there's no indication of when this subreddit-focused retrieval is preferred over those other methods, leaving usage context ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_commentsC
Get comments made by a user
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Reddit username (without u/ prefix) | |
| sort | No | Sort order for comments | new |
| limit | No | Number of comments to retrieve (1-100) |
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 action ('Get comments') but doesn't describe what the tool returns (e.g., comment text, metadata, pagination), rate limits, authentication needs, or error conditions. For a read operation with no annotation coverage, this leaves significant gaps in understanding its 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 a single, efficient sentence with zero waste. It's front-loaded with the core purpose ('Get comments made by a user'), making it immediately clear without unnecessary elaboration. Every word earns its place, and there's no redundancy or fluff.
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 (3 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns (e.g., comment data structure), potential errors (e.g., invalid username), or usage constraints. With no output schema and minimal behavioral context, an agent would struggle to use this effectively beyond basic 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?
Schema description coverage is 100%, so the schema fully documents all three parameters (username, sort, limit) with descriptions, constraints, and defaults. The description adds no parameter-specific information beyond what the schema provides, such as clarifying the username format or explaining sort options. This meets the baseline for high schema coverage.
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 ('Get') and resource ('comments made by a user'), making the purpose immediately understandable. It distinguishes this from sibling tools like 'get_user_posts' (which retrieves posts) and 'get_post_comments' (which retrieves comments on a specific post). However, it doesn't specify the source platform (Reddit), which is only implied through the schema.
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 'get_user_posts' (for posts instead of comments) or 'search_posts' (which might include comments in results), nor does it specify prerequisites or exclusions. Usage is implied by the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_infoC
Get information about a Reddit user
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Reddit username (without u/ prefix) |
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 but offers minimal information. It doesn't specify whether this is a read-only operation (implied but not stated), what data is returned, potential rate limits, authentication requirements, or error conditions. The description is too vague to adequately inform the agent about how the tool behaves.
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, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately front-loaded with the core functionality, making it easy for an agent to parse quickly.
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 lack of annotations and output schema, the description is incomplete for a tool that presumably returns user data. It doesn't explain what information is retrieved (e.g., karma, account age, trophies) or the response format, leaving significant gaps for the agent to navigate.
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% description coverage, clearly documenting the single required 'username' parameter. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't clarify format constraints or examples). This meets the baseline score when schema coverage is high.
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 ('Get') and resource ('information about a Reddit user'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'get_user_comments' or 'get_user_posts' that also retrieve user-related information, which prevents 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 like 'get_user_comments' or 'get_user_posts'. There's no mention of what type of user information is retrieved (e.g., profile details vs. activity) or any prerequisites, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_postsC
Get posts submitted by a user
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | Reddit username (without u/ prefix) | |
| sort | No | Sort order for posts | new |
| limit | No | Number of posts to retrieve (1-100) |
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 action ('Get posts') but lacks details on permissions (e.g., if it works for private users), rate limits, error handling (e.g., invalid usernames), or output format (e.g., pagination, data structure). This is a significant gap 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 a single, efficient sentence ('Get posts submitted by a user') that directly conveys the core functionality without unnecessary words. It is front-loaded and wastes no space, making it easy for an agent to parse quickly.
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 complexity (3 parameters, no annotations, no output schema), the description is incomplete. It lacks behavioral context (e.g., how posts are retrieved, error scenarios), usage guidelines relative to siblings, and details on output (e.g., what data is returned). While the schema covers parameters well, the overall context for effective tool selection and invocation is insufficient.
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% description coverage, with clear documentation for 'username', 'sort' (including enum values and default), and 'limit' (with range and default). The description does not add any semantic details beyond what the schema provides, such as explaining the impact of 'sort' options or typical use cases for 'limit'. Baseline 3 is appropriate as the 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 'Get posts submitted by a user' clearly states the verb ('Get') and resource ('posts submitted by a user'), making the purpose immediately understandable. However, it does not explicitly differentiate from sibling tools like 'get_user_comments' or 'get_subreddit_posts', which handle similar resources but with different scopes (e.g., comments vs. posts, user vs. subreddit).
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. For example, it does not mention when to choose 'get_user_posts' over 'search_posts' (which might filter by user) or 'get_subreddit_posts' (which focuses on subreddit content). There is also no indication of prerequisites, such as needing a valid username, though this is implied by the required parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_postsB
Search for Reddit posts
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| subreddit | No | Optional: restrict search to specific subreddit | |
| sort | No | Sort order for search results | relevance |
| time | No | Time period to filter results (works best with sort=top) | |
| limit | No | Number of results to retrieve (1-100) |
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 for Reddit posts') without mentioning any behavioral traits such as rate limits, authentication needs, pagination, error handling, or what the search results include (e.g., post metadata). This leaves significant gaps for an agent to understand how the tool behaves in practice.
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, efficient sentence ('Search for Reddit posts') that is front-loaded and wastes no words. It directly conveys the core purpose without unnecessary elaboration, making it highly concise and well-structured for quick understanding.
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 (5 parameters, no output schema, no annotations), the description is minimally adequate but incomplete. It covers the basic action but lacks context on behavioral traits, usage guidelines, and output details, which are crucial for an agent to use the tool effectively. Without annotations or output schema, more descriptive context would be beneficial.
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% description coverage, with each parameter clearly documented (e.g., 'query' as search query, 'subreddit' as optional restriction). The description adds no additional meaning beyond what the schema provides, such as explaining how parameters interact (e.g., that 'time' works best with 'sort=top'). Baseline 3 is appropriate since the 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 'Search for Reddit posts' clearly states the verb (search) and resource (Reddit posts), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'search_subreddits' or 'get_subreddit_posts', which also involve searching or retrieving Reddit content, so it lacks sibling differentiation.
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 when to prefer this over 'search_subreddits' (for finding subreddits) or 'get_subreddit_posts' (for browsing posts in a specific subreddit), nor does it specify any prerequisites or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_subredditsC
Search for subreddits
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query for subreddit names/descriptions | |
| limit | No | Number of results to retrieve (1-100) |
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 only states the action 'Search for subreddits' without detailing aspects like rate limits, authentication needs, pagination, or what the search covers (e.g., names, descriptions). For a search tool with zero annotation coverage, this is inadequate.
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 with a single sentence, 'Search for subreddits,' which is front-loaded and wastes no words. While efficient, it may be overly brief given the lack of other context, but it earns points for clarity and brevity without 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?
Given the complexity of a search operation, no annotations, and no output schema, the description is incomplete. It doesn't explain what the search returns, how results are ordered, or any behavioral traits. For a tool with two parameters and no structured output, more context is needed to guide effective use.
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%, with clear documentation for 'query' and 'limit' parameters. The description adds no additional meaning beyond what the schema provides, such as search scope or result format. However, with high schema coverage, the baseline score is 3, as the schema adequately handles parameter semantics.
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 'Search for subreddits' states the basic action and resource but lacks specificity. It doesn't differentiate from sibling tools like 'search_posts' or 'get_subreddit_info' beyond the resource name. While it's not tautological (it doesn't just repeat the name), it's vague about what 'search' entails compared to 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_subreddit_info' (for specific subreddit details) or 'search_posts' (for content within subreddits), nor does it specify prerequisites or exclusions. Usage is implied by the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Every tool has a clearly distinct purpose targeting specific Reddit resources and actions. The tools are well-differentiated by their target entities (post, comments, subreddit, user) and operations (get, search), with no overlapping functionality that could cause confusion.
All tools follow a consistent verb_noun pattern with 'get_' or 'search_' prefixes followed by specific resource identifiers. The naming is perfectly predictable and uniform across all nine tools, using snake_case consistently throughout.
Nine tools is well-scoped for a Reddit API server, providing comprehensive coverage of core Reddit entities without being overwhelming. Each tool earns its place by addressing distinct aspects of the Reddit platform (posts, comments, subreddits, users, search).
The toolset provides excellent read/search coverage for Reddit's core entities (posts, comments, subreddits, users) with logical operations. Minor gaps exist in write operations (no create/update/delete tools), but this is reasonable for a read-focused server and agents can work effectively with the provided surface.
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
Browse and manage Reddit posts, comments, and threads. Fetch user activity, explore hot/new/rising…
Read-only Reddit search API for AI agents: posts, comments, comment trees, subreddit rules.
Reddit: Reddit Data API offers streamlined access to Reddit’s public data, like posts, comments.
Reddit MCP — public Reddit data via JSON endpoints (no auth required)
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables interaction with Reddit through a comprehensive API interface supporting both read-only operations (browsing posts, comments, user profiles) and authenticated actions (posting, commenting, voting) via OAuth2 authentication.7
- AlicenseCqualityDmaintenanceEnables comprehensive Reddit interaction including fetching posts, analyzing users and subreddits, searching content, and creating posts/comments. Supports both read-only mode with client credentials and full functionality with user authentication.17648MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to search, monitor, and analyze Reddit's communities and discussions through authenticated API access with intelligent caching and rate limiting.MIT
- 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.
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/liuyang1520/reddit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server