Skip to main content
Glama

Reddit MCP Server 🚀

A powerful Model Context Protocol (MCP) server that provides comprehensive tools for fetching, analyzing, and creating Reddit content. Built with TypeScript and designed for seamless integration with AI assistants like Claude Desktop and Cursor.

License: ISC Node.js TypeScript

🌟 Features

📖 Read-Only Tools (Client Credentials Only)

  • User Analysis: get_user_info, get_user_posts, get_user_comments, get_user_activity

  • Content Discovery: get_top_posts, search_posts, search_subreddits

  • Subreddit Insights: get_subreddit_info, get_trending_subreddits

  • Direct Access: get_comment, get_submission, get_comments_by_submission

✍️ Write Tools (User Authentication Required)

  • Content Creation: create_post - Create optimized posts with engagement insights

  • Community Engagement: reply_to_post - Add thoughtful replies with context analysis

Related MCP server: Reddit MCP Server

🚀 Quick Start

Prerequisites

  • Node.js 18+

  • npm or yarn

  • Reddit API credentials

Installation

  1. Clone the repository

git clone https://github.com/yourusername/reddit-mcp-server.git
cd reddit-mcp-server
  1. Install dependencies

npm install
  1. Set up Reddit API credentials

    • Go to Reddit App Preferences

    • Click "Create App" or "Create Another App"

    • Select "script" as application type

    • Fill in the required information

    • Copy your Client ID and Client Secret

  2. Configure environment variables

cp .env.example .env
# Edit .env with your Reddit API credentials
  1. Build and test

npm run build
npm run dev

🔧 Configuration

Environment Variables

Create a .env file in the root directory:

# Required: Reddit API Configuration
REDDIT_CLIENT_ID=your_client_id_here
REDDIT_CLIENT_SECRET=your_client_secret_here
REDDIT_USER_AGENT=RedditMCPServer/1.0.0

# Optional: For write operations (posts, comments)
REDDIT_USERNAME=your_reddit_username
REDDIT_PASSWORD=your_reddit_password

Operating Modes

🔍 Read-Only Mode

  • Required: CLIENT_ID, CLIENT_SECRET, USER_AGENT

  • Capabilities: Search, read posts, analyze users and subreddits

  • Limitations: Cannot create posts or comments

📝 Full Mode

  • Required: All credentials above

  • Capabilities: All read operations + post creation and commenting

🛠️ Integration with AI Assistants

Claude Desktop / Cursor Configuration

Add this to your MCP configuration file:

{
  "mcpServers": {
    "reddit": {
      "command": "node",
      "args": ["/path/to/reddit-mcp-server/build/index.js"],
      "env": {
        "REDDIT_CLIENT_ID": "your_client_id",
        "REDDIT_CLIENT_SECRET": "your_client_secret",
        "REDDIT_USER_AGENT": "RedditMCPServer/1.0.0",
        "REDDIT_USERNAME": "your_username",
        "REDDIT_PASSWORD": "your_password"
      },
      "autoApprove": [
        "test_reddit_mcp_server",
        "get_reddit_post",
        "get_top_posts",
        "get_user_info",
        "get_subreddit_info",
        "get_trending_subreddits",
        "get_comment",
        "get_comments_by_submission",
        "get_submission",
        "get_subreddit",
        "search_posts",
        "search_subreddits",
        "get_user_posts",
        "get_user_comments",
        "get_user_activity",
        "create_post",
        "reply_to_post"
      ]
    }
  }
}

📚 Available Tools

User Analysis

  • get_user_info(username) - Comprehensive user profile analysis with engagement insights

  • get_user_posts(username, sort?, limit?) - User's post history with sorting options

  • get_user_comments(username, sort?, limit?) - User's comment history with analysis

  • get_user_activity(username, limit?) - Complete activity analysis and patterns

Content Discovery

  • get_top_posts(subreddit, time_filter?, limit?) - Top posts from subreddit with time filtering

  • search_posts(subreddit, query, sort?, limit?) - Advanced search within specific subreddits

  • search_subreddits(query, limit?) - Discover subreddits by name or description

Subreddit Tools

  • get_subreddit_info(subreddit_name) - Detailed subreddit analysis and community insights

  • get_trending_subreddits() - Currently trending subreddits across Reddit

Direct Access

  • get_comment(comment_id) - Retrieve specific comment with detailed analysis

  • get_submission(submission_id) - Complete submission details with metadata

  • get_comments_by_submission(submission_id, limit?) - All comments from a specific post

Content Creation (Requires Authentication)

  • create_post(subreddit, title, content, is_self?) - Create new posts with optimization

  • reply_to_post(post_id, content, subreddit?) - Reply to existing posts with context

🧪 Testing

Test your configuration:

# Build the project
npm run build

# Start development server with inspector
npm run dev

# Run in production mode
npm start

The development server will start an inspector at http://127.0.0.1:6274/ where you can test all tools interactively.

🔒 Security & Privacy

  • ✅ Environment variables are properly configured in .gitignore

  • ✅ No credentials are hardcoded in the source code

  • ✅ Secure Reddit API authentication flow

  • ✅ Read-only mode available for enhanced security

  • ✅ Comprehensive input validation and error handling

📦 Dependencies

  • @modelcontextprotocol/sdk: ^1.11.3 - MCP protocol implementation

  • axios: ^1.9.0 - HTTP client for Reddit API interactions

  • dotenv: ^16.5.0 - Environment variable management

  • TypeScript: ^5.8.3 - Type-safe development environment

🤝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request

📄 License

This project is licensed under the ISC License - see the LICENSE file for details.

🙏 Acknowledgments

📞 Support

If you encounter any issues or have questions:

  1. Check the Issues page

  2. Create a new issue with detailed information about your problem

  3. Include your environment details and error messages

  4. Join the discussion in our community

🚀 Roadmap

  • Add support for Reddit's new API features

  • Implement caching for improved performance

  • Add more advanced analytics tools

  • Support for Reddit Collections

  • Enhanced error handling and retry mechanisms


Made with ❤️ for the MCP community

Star this repository if you find it useful!

Available Tools

17 tools
create_postC

Create a new post in a subreddit

ParametersJSON Schema
NameRequiredDescriptionDefault
subredditYesName of the subreddit to post in
titleYesTitle of the post
contentYesContent of the post (text for self posts, URL for link posts)
is_selfNoWhether this is a self (text) post (true) or link post (false)

TDQS

C2.9/5.0
Behavior2/5

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 creation but fails to describe critical behaviors like authentication requirements, rate limits, error conditions (e.g., invalid subreddit), or what happens upon success (e.g., returns a post ID). This leaves significant gaps for an agent to understand how to use it safely and effectively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a creation tool with no annotations and no output schema, the description is inadequate. It doesn't cover behavioral aspects like authentication, error handling, or return values, leaving the agent with insufficient information to use the tool correctly in context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional meaning beyond implying 'subreddit' and 'post' context, which is minimal value. 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and target resource ('new post in a subreddit'), making the purpose immediately understandable. However, it doesn't distinguish this tool from potential alternatives like 'reply_to_post' or specify what type of post (text vs. link) beyond what the schema indicates, preventing 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.

Usage Guidelines2/5

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 'reply_to_post' or 'search_reddit', nor does it mention prerequisites such as authentication or subreddit permissions. It simply states what the tool does without contextual usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_commentC

Accéder à un commentaire spécifique

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYesL'ID du commentaire à récupérer

TDQS

C2.6/5.0
Behavior2/5

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 'access' but doesn't disclose behavioral traits such as whether this is a read-only operation, requires authentication, has rate limits, or what the return format might be. The description is minimal and lacks necessary context for safe and effective use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in French, front-loaded with the core action. It's appropriately sized for a simple tool, with no wasted words, though it could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 incomplete. It doesn't explain what 'access' means operationally, the expected return value, or how it fits among sibling tools. For a basic retrieval tool, more context is needed to ensure proper use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with 'comment_id' clearly documented as 'L'ID du commentaire à récupérer' (The ID of the comment to retrieve). The description adds no additional meaning beyond the schema, as it doesn't elaborate on parameter usage or constraints. 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.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Accéder à un commentaire spécifique' (Access a specific comment) states a clear verb ('access') and resource ('comment'), but it's vague about what 'access' entails—it could mean retrieve, view, or fetch. It doesn't differentiate from siblings like 'get_user_comments' or 'get_comments_by_submission', which are related but not identical.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. For example, it doesn't specify that this is for a single comment by ID, unlike 'get_user_comments' for multiple comments by user or 'get_comments_by_submission' for comments on a submission. The description implies usage for a specific comment but offers no 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.

get_comments_by_submissionC

Accéder aux commentaires d'une soumission

ParametersJSON Schema
NameRequiredDescriptionDefault
submission_idYesL'ID de la soumission
limitNoNombre de commentaires à récupérer

TDQS

C2.9/5.0
Behavior2/5

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. While 'Accéder aux' implies a read operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the comments come in. For a tool with zero annotation coverage, this leaves significant behavioral questions unanswered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient French phrase that communicates the core purpose without any wasted words. It's appropriately sized for a simple retrieval tool and gets straight to the point with no unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns (comment objects, just text, metadata?), whether results are paginated, or any error conditions. Given the lack of structured information elsewhere, the description should provide more context about the operation's behavior and results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description doesn't add any parameter information beyond what's already in the schema, which has 100% coverage. The schema fully documents both parameters (submission_id and limit with default), so the baseline score of 3 is appropriate since the schema does all the parameter documentation work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Accéder aux' - access) and resource ('commentaires d'une soumission' - comments of a submission), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_comment' or 'get_user_comments', which could retrieve similar data through different mechanisms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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' or 'get_user_comments'. There's no mention of prerequisites, context requirements, or comparison with sibling tools that might retrieve similar data through different parameters or scopes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reddit_postC

Get a Reddit post

ParametersJSON Schema
NameRequiredDescriptionDefault
subredditYesThe subreddit to fetch posts from
post_idYesThe ID of the post to fetch

TDQS

C2.6/5.0
Behavior2/5

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. 'Get a Reddit post' implies a read-only operation, but it doesn't specify authentication requirements, rate limits, error handling, or what data is returned (e.g., title, body, upvotes). For a tool with zero annotation coverage, this leaves critical behavioral aspects undocumented.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise ('Get a Reddit post')—a single sentence with no wasted words. It's front-loaded with the core action. However, this brevity comes at the cost of completeness, as it omits necessary context for effective tool selection and use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 required parameters, no output schema, and no annotations), the description is incomplete. It doesn't address return values, error cases, or how it differs from siblings. While the schema covers parameters, the lack of behavioral and contextual information makes this inadequate for a tool in a server with many similar alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for both parameters ('post_id' and 'subreddit'). The description adds no additional meaning beyond what the schema provides—it doesn't explain parameter relationships (e.g., that 'post_id' might be relative to 'subreddit') or usage nuances. With high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get a Reddit post' clearly states the verb ('Get') and resource ('Reddit post'), making the basic purpose understandable. However, it doesn't differentiate this tool from similar siblings like 'get_post_comments' or 'get_top_posts', which also retrieve Reddit content. The description is functional but lacks specificity about what exactly is retrieved (e.g., post metadata, content, or both).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 'get_post_comments' (for comments), 'get_top_posts' (for popular posts), and 'search_reddit' (for broader searches), there's no indication that this tool is specifically for fetching a single post by ID. The agent must infer usage from the parameter names alone, which is insufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_submissionC

Accéder à une soumission

ParametersJSON Schema
NameRequiredDescriptionDefault
submission_idYesL'ID de la soumission à récupérer

TDQS

C2.4/5.0
Behavior2/5

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 'access a submission', which implies a read operation but fails to detail critical traits like whether it's safe (non-destructive), requires authentication, has rate limits, or what the return format includes (e.g., submission data, error handling). This leaves the agent with insufficient information 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise phrase ('Accéder à une soumission') that is front-loaded and wastes no words. However, it is overly brief to the point of under-specification, lacking necessary details for effective tool use. While efficient in structure, it sacrifices completeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a read operation with one parameter) and the absence of annotations and output schema, the description is incomplete. It does not explain what 'access' entails, the return values, or behavioral aspects like safety or authentication needs. For a tool in a Reddit context with multiple siblings, more context is required to guide the agent adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with the single parameter 'submission_id' clearly documented as 'L'ID de la soumission à récupérer' (The ID of the submission to retrieve). The description adds no additional meaning beyond this, such as format examples or constraints. Given the high schema coverage, a baseline score of 3 is appropriate 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.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Accéder à une soumission' (Access a submission) is a tautology that essentially restates the tool name 'get_submission' in French. It provides a vague purpose without specifying what 'access' entails (e.g., retrieve details, view content, fetch metadata) or distinguishing it from sibling tools like 'get_reddit_post' or 'get_comments_by_submission'. This lack of specificity makes it minimally informative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing a valid submission_id), exclusions, or comparisons to siblings such as 'get_reddit_post' or 'get_comments_by_submission', leaving the agent without context for selection. This absence of usage instructions is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subredditC

Accéder à un subreddit par nom

ParametersJSON Schema
NameRequiredDescriptionDefault
subreddit_nameYesLe nom du subreddit

TDQS

C2.9/5.0
Behavior2/5

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 but doesn't disclose behavioral traits such as whether this is a read-only operation, requires authentication, has rate limits, or what the return format looks like. This is inadequate 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's appropriately sized and front-loaded, clearly stating the tool's purpose without unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'Accéder à' entails (e.g., returns subreddit details, posts, or metadata) or address behavioral aspects, leaving significant gaps for the agent to understand the tool's full context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema fully documents the parameter 'subreddit_name'. The description adds no additional meaning beyond what the schema provides, such as format examples or constraints, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Accéder à') and resource ('un subreddit par nom'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'get_subreddit_info' or 'search_subreddits', which likely serve similar purposes but with different scopes or parameters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. With siblings like 'get_subreddit_info' and 'search_subreddits', the description lacks context on usage scenarios, prerequisites, or exclusions, leaving the agent to infer 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_subreddit_infoC

Get information about a subreddit

ParametersJSON Schema
NameRequiredDescriptionDefault
subreddit_nameYesName of the subreddit

TDQS

C2.7/5.0
Behavior2/5

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 (implied by 'Get' but not stated), rate limits, authentication needs, error handling, or what happens if the subreddit doesn't exist. The description is minimal and lacks essential context for safe and effective use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with zero waste. It's appropriately sized for a simple tool and front-loaded with the core purpose. Every word earns its place, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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. It doesn't explain what information is returned (e.g., description, subscriber count, rules), potential errors, or usage constraints. For a tool with no structured data beyond the input schema, more context is needed to guide the agent effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no meaning beyond the input schema, which has 100% coverage for the single parameter 'subreddit_name'. The schema already describes it as 'Name of the subreddit', so the description doesn't compensate or provide additional context like format examples (e.g., 'programming' without 'r/'). 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.

Purpose3/5

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_top_posts' or 'get_trending_subreddits' by focusing on subreddit metadata rather than content, but lacks specificity about the scope of information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. For example, it doesn't clarify if this should be used before posting to check subreddit rules versus using 'get_top_posts' for content discovery, or how it differs from 'get_user_info' for user-specific data. The description implies usage for subreddit metadata but offers no 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.

get_top_postsC

Get top posts from a subreddit

ParametersJSON Schema
NameRequiredDescriptionDefault
subredditYesName of the subreddit
time_filterNoTime period to filter posts (e.g. 'day', 'week', 'month', 'year', 'all')week
limitNoNumber of posts to fetch

TDQS

C2.6/5.0
Behavior2/5

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 'gets' data, implying a read-only operation, but doesn't mention potential rate limits, authentication requirements, pagination, or what 'top' entails (e.g., sorting criteria). The description is minimal and misses key behavioral traits needed for safe and effective use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words, making it easy to parse. However, it's front-loaded but overly brief, potentially sacrificing clarity for brevity. It earns a high score for conciseness but loses a point because the minimalism might hinder understanding without additional context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 output schema, no annotations), the description is incomplete. It lacks details on behavioral aspects like rate limits or authentication, doesn't explain the output format (e.g., what data is returned for posts), and offers no usage guidelines. While the schema covers parameters well, the overall context for an agent to use the tool effectively is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with clear descriptions for all parameters (limit, subreddit, time_filter) including defaults and enum values. The description adds no additional parameter semantics beyond what the schema provides, such as explaining 'top' in relation to parameters. Since the schema is comprehensive, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get top posts from a subreddit' clearly states the action (get) and resource (top posts from a subreddit), but it's somewhat vague about what 'top' means (e.g., by upvotes, hotness) and doesn't explicitly distinguish this tool from siblings like 'get_reddit_post' (which might fetch a specific post) or 'search_reddit' (which might allow broader queries). It avoids tautology but lacks specificity for full differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 siblings like 'get_reddit_post' for individual posts or 'search_reddit' for custom searches, nor does it specify prerequisites or exclusions (e.g., whether it requires authentication). Usage is implied by the name but not explicitly stated, leaving gaps for an agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_user_activityC

Obtenir une analyse détaillée de l'activité d'un utilisateur

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesLe nom d'utilisateur Reddit
limitNoNombre d'éléments d'activité à analyser

TDQS

C2.9/5.0
Behavior2/5

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 a 'detailed analysis' but doesn't specify what that includes (e.g., types of activity, time frames, metrics) or behavioral traits like rate limits, authentication needs, or data freshness. The description is too vague to inform the agent about how the tool behaves beyond its basic purpose, leaving significant gaps in understanding its operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, consisting of a single sentence that directly states the tool's purpose. There's no wasted language or unnecessary elaboration, making it efficient. However, it could be slightly improved by adding a bit more context to enhance clarity without sacrificing brevity, but it's well-structured as is.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of analyzing user activity and the lack of annotations and output schema, the description is incomplete. It doesn't specify what 'detailed analysis' entails, such as the format of the output, types of data returned, or any limitations. Without this information, the agent lacks sufficient context to understand what the tool provides, making it inadequate for a tool that likely returns rich, structured data about user behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 both parameters: 'username' (Reddit username) and 'limit' (number of activity items to analyze, default 50). The description doesn't add any meaning beyond this, as it doesn't explain parameter interactions, constraints, or usage examples. Given the high schema coverage, the baseline score of 3 is appropriate, as the schema adequately handles parameter semantics without needing extra detail in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Obtenir une analyse détaillée de l'activité d'un utilisateur' (Get a detailed analysis of a user's activity). It specifies the verb ('obtenir une analyse') and resource ('activité d'un utilisateur'), making the intent clear. However, it doesn't explicitly differentiate from sibling tools like get_user_info, get_user_comments, or get_user_posts, which also retrieve user-related data but focus on specific aspects rather than a comprehensive activity analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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_info (for basic user data), get_user_comments (for comment history), or get_user_posts (for post history), leaving the agent to infer usage based on the vague term 'activité' (activity). There are no explicit instructions on prerequisites, context, or exclusions, making it difficult to choose appropriately among related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_user_commentsC

Obtenir l'historique des commentaires d'un utilisateur

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesLe nom d'utilisateur Reddit
sortNoMéthode de tri (new, top, hot)new
limitNoNombre de commentaires à récupérer

TDQS

C2.9/5.0
Behavior2/5

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 it retrieves comment history but doesn't mention whether this is a read-only operation, if there are rate limits, authentication requirements, pagination behavior, or what format the returned data takes. For a tool with 3 parameters and no output schema, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in French that directly states the tool's purpose. There's no unnecessary verbiage or structural issues - it's appropriately concise and front-loaded with the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what the tool returns, how results are structured, or important behavioral aspects like whether this is a safe read operation. For a data retrieval tool in this context, more completeness is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so all parameters are documented in the schema itself. The description doesn't add any additional meaning about the parameters beyond what's already in the schema descriptions. The baseline score of 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Obtenir l'historique des commentaires d'un utilisateur' clearly states the purpose: retrieving a user's comment history. It specifies the resource (user comments) and verb (obtain/retrieve), but doesn't explicitly differentiate from sibling tools like get_user_activity or get_user_posts, which might also retrieve user-related data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 this over get_user_activity (which might include comments) or get_comments_by_submission, 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.

get_user_infoC

Get information about a Reddit user

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesThe username of the Reddit user to get info for

TDQS

C2.9/5.0
Behavior2/5

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 but offers minimal information. It doesn't indicate whether this is a read-only operation, what permissions might be required, whether there are rate limits, what kind of information is returned, or if there are any constraints on which users can be queried. 'Get information' implies a read operation but provides no behavioral context beyond that basic inference.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized for a simple lookup tool and front-loads the essential information. Every word earns its place in this minimal but complete statement of function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what information is returned about users, whether there are limitations on which users can be queried, or what format the response takes. Given the lack of structured metadata, the description should provide more context about the tool's behavior and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description doesn't mention any parameters, but the input schema has 100% description coverage with a single well-documented 'username' parameter. Since the schema fully documents the parameter, the baseline score of 3 is appropriate. The description adds no additional parameter semantics beyond what's already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get information') and target resource ('about a Reddit user'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling tools like 'get_user_comments' or 'get_user_posts' - all three retrieve user-related data but this one is more general. The description is specific enough to understand what it does but 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.

Usage Guidelines2/5

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_user_comments', 'get_user_posts', and 'get_subreddit_info' available, there's no indication whether this tool provides comprehensive user profile data, basic metadata, or something else. The agent must infer usage context 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_user_postsC

Obtenir l'historique des posts d'un utilisateur

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesLe nom d'utilisateur Reddit
sortNoMéthode de tri (new, top, hot)new
limitNoNombre de posts à récupérer

TDQS

C2.9/5.0
Behavior2/5

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 but offers minimal information. It doesn't mention whether this is a read-only operation (implied by 'get'), rate limits, authentication requirements, pagination behavior, or what happens if the user doesn't exist. For a tool with 3 parameters and no 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in French that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns (post objects? metadata?), error conditions, or behavioral constraints. The agent lacks critical context needed to use this tool effectively beyond basic parameter passing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 parameters (username, sort, limit) with descriptions, enum values, defaults, and requirements. The description adds no parameter-specific information beyond what's in the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Obtenir l'historique des posts d'un utilisateur' clearly states the verb ('obtenir' - get) and resource ('historique des posts' - post history) with the target ('d'un utilisateur' - of a user). It distinguishes from siblings like get_user_comments (which gets comments) and get_user_info (which gets profile info), but doesn't explicitly differentiate from get_user_activity which might overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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_user_posts over get_user_activity, get_user_comments, or search_posts, nor does it specify prerequisites or exclusions. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

reply_to_postC

Post a reply to an existing Reddit post

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYesThe ID of the post to reply to
contentYesThe content of the reply
subredditNoThe subreddit name if known (for validation)

TDQS

C2.9/5.0
Behavior2/5

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. While 'Post a reply' implies a write/mutation operation, it doesn't disclose authentication requirements, rate limits, error conditions, or what happens upon success. For a mutation tool with zero annotation coverage, this minimal description leaves critical behavioral aspects unspecified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a straightforward tool and gets directly to the point. Every word earns its place in this minimal but complete statement of function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address authentication needs, rate limits, error handling, or what the tool returns. With 3 parameters and complex Reddit API interactions likely involved, more context about behavioral expectations would be helpful for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema. It doesn't explain parameter relationships, format requirements, or usage patterns. The baseline of 3 is appropriate when the schema does all the parameter documentation work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Post a reply') and target resource ('to an existing Reddit post'), making the purpose immediately understandable. It distinguishes from siblings like 'create_post' by specifying it's for replying rather than creating new posts. However, it doesn't explicitly differentiate from other comment/reply-related tools that might exist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 prerequisites (like authentication), when not to use it, or how it differs from similar operations. With multiple sibling tools available, this lack of contextual guidance is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_postsC

Rechercher des posts dans un subreddit

ParametersJSON Schema
NameRequiredDescriptionDefault
subredditYesLe nom du subreddit dans lequel rechercher
queryYesLa requête de recherche
sortNoMéthode de tri (relevance, new, hot, top)relevance
limitNoNombre de résultats à retourner

TDQS

C2.9/5.0
Behavior2/5

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. While 'Rechercher' implies a read operation, it doesn't specify authentication requirements, rate limits, pagination behavior, or what constitutes a 'post' in the return. For a search tool with 4 parameters, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in French that directly states the tool's function without unnecessary words. It's appropriately sized for a search operation and front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what constitutes a successful search, what format results return, or how to interpret empty results. The agent would need to guess about the tool's behavior and output structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description mentions 'dans un subreddit' which aligns with the 'subreddit' parameter, but adds no additional semantic context beyond what's already in the schema descriptions. With 100% schema description coverage, the baseline is 3 - the description doesn't compensate but doesn't need to since the schema is comprehensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Rechercher') and target resource ('posts dans un subreddit'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'search_subreddits' or 'get_top_posts', which would require more specific scope definition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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_top_posts' or 'search_subreddits'. There's no mention of prerequisites, context, or exclusion criteria, leaving the agent to 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.

search_subredditsC

Rechercher des subreddits par nom ou description

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesLa requête de recherche
limitNoNombre de résultats à retourner

TDQS

C2.9/5.0
Behavior2/5

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 only states the search functionality without mentioning any behavioral traits such as rate limits, authentication requirements, pagination behavior, or what happens when no results are found. This leaves significant gaps 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence in French that directly states the tool's purpose without any unnecessary words or structural complexity. It's appropriately sized and front-loaded with the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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. It doesn't explain what the search returns (e.g., list of subreddit objects with what fields), how results are ordered, or any limitations. For a search tool with 2 parameters and no structured output documentation, this leaves too many unanswered questions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with both parameters ('query' and 'limit') well-documented in the schema. The description adds no additional parameter semantics beyond what's already in the structured schema, so it 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Rechercher des subreddits par nom ou description' clearly states the action (search) and target resource (subreddits) with specific search criteria (by name or description). However, it doesn't explicitly differentiate from sibling tools like 'search_posts' or 'get_trending_subreddits' which also involve subreddit-related searches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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', 'get_trending_subreddits', or 'get_subreddit_info'. It simply states what the tool does without context about appropriate use cases or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_reddit_mcp_serverD

Test the Reddit MCP Server

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1.9/5.0
Behavior1/5

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. 'Test' implies some diagnostic or validation operation, but the description doesn't reveal what gets tested, what side effects occur, whether authentication is needed, or what the expected output might be. It provides no behavioral context beyond the vague verb.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at just 5 words, but this brevity comes at the cost of being under-specified rather than efficient. While it's front-loaded with the only information provided, the single sentence fails to earn its place by not conveying meaningful guidance. It's more minimal than optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no annotations, no output schema, and a completely uninformative description, the contextual information is severely inadequate. The description provides no insight into what 'testing' entails, what results to expect, or how this tool fits within the Reddit MCP ecosystem alongside its 11 sibling tools. This leaves critical gaps for tool understanding and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description doesn't need to compensate for any parameter gaps. While it doesn't add any parameter information beyond what the schema provides, the baseline for zero parameters with full coverage is appropriately set at 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Test the Reddit MCP Server' is a tautology that restates the tool name without specifying what action it performs. It doesn't identify a specific verb or resource, nor does it distinguish this tool from its siblings like create_post or get_subreddit_info. The purpose remains vague and unhelpful for tool selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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 any context, prerequisites, or exclusions, leaving the agent with no information about appropriate usage scenarios. This is particularly problematic given there are 11 sibling tools with clear purposes like get_user_info or search_reddit.

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.

  1. 17 tool updates
    • First observedcreate_post
    • First observedget_comment
    • First observedget_comments_by_submission
    • First observedget_reddit_post
    • First observedget_submission
    • First observedget_subreddit
    • First observedget_subreddit_info
    • First observedget_top_posts
    • First observedget_trending_subreddits
    • First observedget_user_activity
    • First observedget_user_comments
    • First observedget_user_info
    • First observedget_user_posts
    • First observedreply_to_post
    • First observedsearch_posts
    • First observedsearch_subreddits
    • First observedtest_reddit_mcp_server

TDQS

C2.7/5.0

Scored across 17 tools

Disambiguation2/5

There is significant overlap and confusion among tools, particularly between 'get_reddit_post' and 'get_submission' (which appear to serve the same purpose), and between 'get_subreddit' and 'get_subreddit_info'. The mix of English and French descriptions further complicates clarity, making it difficult for an agent to reliably choose the correct tool without trial and error.

Naming Consistency3/5

The naming follows a mostly consistent verb_noun pattern (e.g., 'create_post', 'get_comment'), but there are notable inconsistencies such as 'get_reddit_post' vs. 'get_submission' (both likely for posts) and the inclusion of 'test_reddit_mcp_server' which breaks the pattern. The mix of English and French in tool names adds to the inconsistency, though the core structure is readable.

Tool Count4/5

With 17 tools, the count is on the higher side but still reasonable for a Reddit API server, covering various aspects like posts, comments, subreddits, users, and search. It's slightly heavy but not excessive, as Reddit's domain involves multiple entities and actions that justify a broader toolset.

Completeness4/5

The toolset provides good coverage for core Reddit operations, including CRUD-like actions (create, get, search) for posts, comments, subreddits, and users. Minor gaps exist, such as no explicit update or delete tools for posts or comments, but agents can likely work around this using existing tools like 'reply_to_post' or by re-fetching data. The inclusion of trending and search tools enhances completeness.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Provides access to Reddit's API for retrieving posts, comments, user information, and search functionality. Supports multiple authentication methods and comprehensive Reddit data operations including subreddit browsing, post retrieval, and user profile access.
    9
    2,269 npm
    1
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables 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
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Reddit through OAuth 2.1 authentication, providing tools for searching content, managing notifications, analyzing posts and comments, and demonstrating advanced MCP features like sampling and real-time notifications.
    1
    MIT