Skip to main content
Glama
jordanburke

reddit-mcp-server

Reddit MCP Server

A Model Context Protocol (MCP) server for interacting with Reddit - fetch posts, comments, user info, and create content.

npm version npm downloads GitHub stars License: MIT

Features at a Glance

Feature

reddit-mcp-server

Other Reddit MCPs

Create Posts

:white_check_mark:

:x:

Reply to Posts/Comments

:white_check_mark:

:x:

Edit Posts/Comments

:white_check_mark:

:x:

Delete Posts/Comments

:white_check_mark:

:x:

Spam Protection (Safe Mode)

:white_check_mark:

:x:

Bot Disclosure Footer

:white_check_mark:

:x:

Policy Compliance Built-in

:white_check_mark:

:x:

Browse Subreddits

:white_check_mark:

:white_check_mark:

Search Reddit

:white_check_mark:

:white_check_mark:

User Analysis

:white_check_mark:

:white_check_mark:

Post Comments

:white_check_mark:

:white_check_mark:

Zero-Setup Anonymous Mode

:white_check_mark:

:white_check_mark:

Three-Tier Auth (10/60/100 rpm)

:white_check_mark:

:white_check_mark:

Related MCP server: reddit-mcp

Quick Start

Option 1: Claude Desktop Extension (Easiest)

Download and open the extension file - Claude Desktop will install it automatically:

Download reddit-mcp-server.mcpb

Option 2: NPX (No install required)

npx reddit-mcp-server

Or add to your MCP config (Claude Desktop, Cursor, etc.):

{
  "mcpServers": {
    "reddit": {
      "command": "npx",
      "args": ["reddit-mcp-server"]
    }
  }
}

Option 3: Claude Code

claude mcp add --transport stdio reddit -- npx reddit-mcp-server

Features

Read-only Tools

Tool

Description

get_reddit_post

Get a specific Reddit post with engagement analysis

get_top_posts

Get top posts from a subreddit or home feed

browse_subreddit

Browse a subreddit/home feed by sort (hot, new, top, rising, controversial)

get_user_info

Get detailed information about a Reddit user

get_user_posts

Get posts submitted by a specific user

get_user_comments

Get comments made by a specific user

get_subreddit_info

Get subreddit details and statistics

get_trending_subreddits

Get currently trending subreddits

get_post_comments

Get comments from a specific post with threading

search_reddit

Search for posts across Reddit

Write Tools (Require User Credentials)

Tool

Description

create_post

Create a new post in a subreddit

reply_to_post

Post a reply to an existing post or comment

edit_post

Edit your own Reddit post (self-text only)

edit_comment

Edit your own Reddit comment

delete_post

Permanently delete your own post

delete_comment

Permanently delete your own comment

Configuration

Environment Variables

Variable

Required

Default

Description

REDDIT_CLIENT_ID

No*

-

Reddit app client ID

REDDIT_CLIENT_SECRET

No*

-

Reddit app client secret

REDDIT_USERNAME

No

-

Reddit username (for write operations)

REDDIT_PASSWORD

No

-

Reddit password (for write operations)

REDDIT_USER_AGENT

No

Auto-generated

Custom User-Agent string

REDDIT_AUTH_MODE

No

auto

Authentication mode: auto, authenticated, anonymous

REDDIT_SAFE_MODE

No

standard

Write safeguards: off, standard, strict

REDDIT_BOT_DISCLOSURE

No

off

Bot disclosure footer: auto, off

REDDIT_BOT_FOOTER

No

Built-in

Custom bot footer text (when disclosure is auto)

REDDIT_CACHE

No

on

In-memory caching of read requests: on, off

REDDIT_CACHE_MAX_MB

No

50

Cache size cap in MB (LRU eviction beyond this)

REDDIT_MAX_RETRIES

No

3

Retries on HTTP 429 with Retry-After backoff (0 to disable)

*Required only if using authenticated mode.

Full MCP Config Example

{
  "mcpServers": {
    "reddit": {
      "command": "npx",
      "args": ["reddit-mcp-server"],
      "env": {
        "REDDIT_CLIENT_ID": "your_client_id",
        "REDDIT_CLIENT_SECRET": "your_client_secret",
        "REDDIT_USERNAME": "your_username",
        "REDDIT_PASSWORD": "your_password",
        "REDDIT_SAFE_MODE": "standard"
      }
    }
  }
}

Safe Mode (Spam Protection)

Protect your Reddit account from spam detection and bans with built-in safeguards. Enabled by default (standard mode) per Reddit's Responsible Builder Policy.

Why Use Safe Mode?

Reddit's spam detection can flag accounts for:

  • Rapid posting or commenting

  • Duplicate or similar content

  • Posting the same content across multiple subreddits

  • Non-standard User-Agent strings

Safe Mode helps prevent these issues automatically.

Mode Options

Mode

Write Delay

Duplicate Detection

Use Case

off

None

No

Explicit opt-out only

standard

2 seconds

Last 10 items + cross-sub

Default, recommended

strict

5 seconds

Last 20 items + cross-sub

For cautious automated posting

Disable Safe Mode

Safe mode is enabled by default. To explicitly disable:

export REDDIT_SAFE_MODE=off
npx reddit-mcp-server

What Safe Mode Does

  1. Rate Limiting: Enforces minimum delays between write operations

  2. Duplicate Detection: Blocks identical content from being posted twice

  3. Cross-Subreddit Detection: Prevents posting the same content to multiple subreddits (per Reddit policy)

  4. Smart User-Agent: Auto-generates Reddit-compliant User-Agent format when username is provided

Bot Disclosure

Reddit's Responsible Builder Policy requires bots to disclose their automated nature. Enable automatic bot footers on all posted content:

export REDDIT_BOT_DISCLOSURE=auto
npx reddit-mcp-server

When enabled, a footer is appended to all posts, replies, and edits:

---
šŸ¤– I am a bot | Built with reddit-mcp-server

Customize the footer with REDDIT_BOT_FOOTER:

export REDDIT_BOT_DISCLOSURE=auto
export REDDIT_BOT_FOOTER=$'\n\n---\n^(šŸ¤– Custom bot footer text)'

Authentication Modes

Mode Comparison

Mode

Rate Limit

Setup Required

Best For

anonymous

~10 req/min

None

Quick testing, read-only

auto (default)

10-100 req/min

Optional

Flexible usage

authenticated

60-100 req/min

Required

Production use

Anonymous Mode (Zero Setup)

{
  "env": {
    "REDDIT_AUTH_MODE": "anonymous"
  }
}

Anonymous mode does not work on every network. Reddit blocks unauthenticated requests from many IP ranges — datacenters, cloud hosts, VPNs, and addresses it has flagged — and answers with an HTTP 403 block page. If you hit this, tools fail with:

Reddit is blocking unauthenticated requests from this network (HTTP 403 with a
block page). Set REDDIT_CLIENT_ID and REDDIT_CLIENT_SECRET to authenticate with
OAuth, which also raises the rate limit from ~10 to 60+ requests/min.

The fix is OAuth credentials — see the next section. This is a property of your network, not of your Reddit account or the subreddit you asked for, so it affects every tool at once. A 403 on a single subreddit while others work is a different thing: that subreddit is private or quarantined.

Authenticated Mode (Higher Rate Limits)

  1. Create a Reddit app at https://www.reddit.com/prefs/apps (select "script" type)

  2. Copy the client ID and secret

  3. Configure:

{
  "env": {
    "REDDIT_AUTH_MODE": "authenticated",
    "REDDIT_CLIENT_ID": "your_client_id",
    "REDDIT_CLIENT_SECRET": "your_client_secret"
  }
}

Write Operations

To create posts, reply, edit, or delete content, you need user credentials:

{
  "env": {
    "REDDIT_USERNAME": "your_username",
    "REDDIT_PASSWORD": "your_password",
    "REDDIT_SAFE_MODE": "standard"
  }
}

Development

Commands

pnpm install        # Install dependencies
pnpm build          # Build TypeScript
pnpm dev            # Build and run MCP inspector
pnpm test           # Run tests
pnpm lint           # Lint code
pnpm format         # Format code

CLI Options

npx reddit-mcp-server --version         # Show version
npx reddit-mcp-server --help            # Show help
npx reddit-mcp-server --generate-token  # Generate OAuth token for HTTP mode

HTTP Server Mode

For Docker deployments or web-based clients, use HTTP transport:

TRANSPORT_TYPE=httpStream PORT=3000 node dist/index.js

With OAuth Protection

export OAUTH_ENABLED=true
export OAUTH_TOKEN=$(npx reddit-mcp-server --generate-token | tail -1)
TRANSPORT_TYPE=httpStream node dist/index.js

Make authenticated requests:

curl -H "Authorization: Bearer $OAUTH_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"method":"tools/list","params":{}}' \
     http://localhost:3000/mcp

Docker

Quick Start

# Pull and run
docker pull ghcr.io/jordanburke/reddit-mcp-server:latest

docker run -d \
  --name reddit-mcp \
  -p 3000:3000 \
  -e REDDIT_CLIENT_ID=your_client_id \
  -e REDDIT_CLIENT_SECRET=your_client_secret \
  -e REDDIT_SAFE_MODE=standard \
  ghcr.io/jordanburke/reddit-mcp-server:latest

Docker Compose

services:
  reddit-mcp:
    image: ghcr.io/jordanburke/reddit-mcp-server:latest
    ports:
      - "3000:3000"
    environment:
      - REDDIT_CLIENT_ID=${REDDIT_CLIENT_ID}
      - REDDIT_CLIENT_SECRET=${REDDIT_CLIENT_SECRET}
      - REDDIT_USERNAME=${REDDIT_USERNAME}
      - REDDIT_PASSWORD=${REDDIT_PASSWORD}
      - REDDIT_SAFE_MODE=standard
      - OAUTH_ENABLED=${OAUTH_ENABLED:-false}
      - OAUTH_TOKEN=${OAUTH_TOKEN}
    restart: unless-stopped

Build Locally

docker build -t reddit-mcp-server .
docker run -d --name reddit-mcp -p 3000:3000 --env-file .env reddit-mcp-server

Reddit Responsible Builder Policy

This server is designed with Reddit's Responsible Builder Policy in mind:

  • Safe mode on by default — rate limiting and duplicate detection prevent spam

  • Cross-subreddit duplicate detection — blocks identical content across subreddits

  • Bot disclosure support — optional automated footer for transparency

  • No voting/karma manipulation — upvote/downvote tools are intentionally excluded

  • No private messaging — DM tools are intentionally excluded

  • Policy-aware AI instructions — MCP server instructions remind AI assistants of data usage restrictions

Credits

Available Tools

12 tools
create_postC

Create a new post in a subreddit

ParametersJSON Schema
NameRequiredDescriptionDefault
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)
subredditYesName of the subreddit to post in
titleYesTitle of the post

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_post_commentsC

Get comments for a specific Reddit post

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of comments to load
post_idYesThe ID of the post
sortNoComment sort order: best, top, new, controversial, old, qabest
subredditYesThe subreddit where the post is located

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 responsibility for behavioral disclosure. It only states the basic function without mentioning rate limits, authentication requirements, pagination behavior, error conditions, or what format the comments are returned in. This leaves significant gaps in understanding 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.

Conciseness5/5

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

The description is a single, focused sentence that communicates the core purpose without any wasted words. It's appropriately sized for a straightforward retrieval tool and gets directly to the point.

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 4 parameters, no annotations, and no output schema, the description is insufficient. It doesn't explain what the tool returns, how comments are structured, whether there are authentication requirements, or any limitations. The agent would need to guess about important behavioral aspects when invoking this tool.

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 'for a specific Reddit post' which hints at the 'post_id' parameter, but doesn't explain any parameters beyond what's already documented in the schema. With 100% schema description coverage, the baseline score of 3 is appropriate since the schema does the heavy lifting of parameter documentation.

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 comments') and target resource ('for a specific Reddit post'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools like 'get_user_comments' or 'reply_to_post', which would require explicit comparison to earn 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 'get_user_comments' or 'get_reddit_post'. It lacks any context about prerequisites, limitations, or appropriate scenarios, 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.

get_reddit_postC

Get a Reddit post

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

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_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
limitNoNumber of posts to fetch
subredditYesName of the subreddit
time_filterNoTime period to filter posts (e.g. 'day', 'week', 'month', 'year', 'all')week

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_commentsC

Get comments made by a specific user

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of comments to return
sortNoSort order: new, hot, top, controversialnew
time_filterNoTime filter for top/controversial: hour, day, week, month, year, allall
usernameYesThe username to get comments 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 the full burden of behavioral disclosure. It states the action ('Get') but doesn't cover critical traits like whether this is a read-only operation, potential rate limits, authentication needs, or what the return format looks like (e.g., list of comments with metadata). This leaves significant gaps for an agent to understand the tool's behavior.

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

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 any fluff or redundancy. It's appropriately sized and front-loaded, 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 tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the return values, error conditions, or behavioral nuances, leaving the agent with insufficient context to use the tool effectively beyond basic parameter input.

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, clearly documenting all 4 parameters (username, limit, sort, time_filter) with defaults, enums, and constraints. The description adds no additional meaning beyond the schema, so it meets the baseline of 3 for adequate coverage without extra value.

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 ('Get') and resource ('comments made by a specific user'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'get_post_comments' or 'get_user_posts', which also retrieve comments or user content, so it misses full sibling distinction.

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_user_posts' or 'get_post_comments'. It lacks context on prerequisites, such as needing a valid username, and doesn't mention any exclusions or specific use cases.

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

Get posts submitted by a specific user

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of posts to return
sortNoSort order: new, hot, top, controversialnew
time_filterNoTime filter for top/controversial: hour, day, week, month, year, allall
usernameYesThe username to get posts 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. It states what the tool does but doesn't describe important behaviors: whether this is a read-only operation, if there are rate limits, what authentication is required, what happens with invalid usernames, or the format/structure of returned posts. For a tool with 4 parameters and no annotation coverage, this is a significant gap.

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 straightforward retrieval tool and front-loads 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.

Completeness2/5

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

Given the tool has 4 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what kind of posts are returned (e.g., titles, content, metadata), whether results are paginated, error conditions, or authentication requirements. For a data retrieval tool with multiple filtering options, more context 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?

Schema description coverage is 100%, so the schema already fully documents all 4 parameters with descriptions, defaults, enums, and constraints. The description adds no additional parameter semantics beyond implying the 'username' parameter is required (which is already in the schema). Baseline 3 is appropriate when the schema does all 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 verb 'Get' and resource 'posts submitted by a specific user', making the purpose immediately understandable. It distinguishes from siblings like get_user_comments (which gets comments) and get_top_posts (which gets posts by popularity rather than by user). However, it doesn't specify whether this includes all types of posts or just certain categories, 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.

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_info (which might include post summaries) or search_reddit (which could filter by user), nor does it specify prerequisites like needing a valid username. Usage is implied 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.

reply_to_postC

Post a reply to an existing Reddit post

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe content of the reply
post_idYesThe ID of the post to reply to
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_redditC

Search for posts on Reddit

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return
queryYesThe search query
sortNoSort order: relevance, hot, top, new, commentsrelevance
subredditNoSearch within a specific subreddit (optional)
time_filterNoTime filter: hour, day, week, month, year, allall
typeNoType of content: link (posts), sr (subreddits), user (users)link

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. 'Search for posts' implies a read-only operation, but it doesn't mention rate limits, authentication needs, pagination behavior, or what happens when no results are found. For a search tool with zero annotation coverage, this leaves significant gaps in understanding 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.

Conciseness5/5

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

The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for a search tool and front-loads the core functionality 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?

For a search tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what the search returns (e.g., post metadata, content snippets), error conditions, or how results are structured. The agent must rely entirely on the input schema for parameter details without contextual guidance.

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 all 6 parameters well-documented in the schema itself (e.g., 'limit' with min/max, 'sort' with enum values). The description adds no parameter information beyond what's 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.

Purpose4/5

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

The description 'Search for posts on Reddit' clearly states the verb ('Search') and resource ('posts on Reddit'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_top_posts' or 'get_reddit_post' that also retrieve posts, missing full sibling distinction.

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' (for trending content) or 'get_reddit_post' (for specific posts). There's no mention of prerequisites, context, or exclusions, 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.

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.

TDQS

B3/5.0
Disambiguation4/5

Most tools have distinct purposes targeting different Reddit resources like posts, comments, subreddits, and users, with clear action separation. However, 'get_post_comments' and 'get_reddit_post' could potentially overlap in retrieving post-related data, causing minor ambiguity if an agent needs both post details and comments simultaneously.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern using snake_case throughout, such as 'get_subreddit_info' and 'create_post', which aids predictability. The only deviation is 'test_reddit_mcp_server', which breaks the pattern by including 'server' and serving a meta-purpose, but this is a minor inconsistency in an otherwise uniform set.

Tool Count5/5

With 12 tools, the count is well-scoped for a Reddit API server, covering core functionalities like posting, reading, searching, and user/subreddit interactions. Each tool appears to earn its place by addressing a specific aspect of Reddit's domain without being overly bloated or sparse.

Completeness4/5

The tool set provides comprehensive coverage for reading and basic interaction on Reddit, including CRUD-like operations for posts and comments, user and subreddit info retrieval, and search capabilities. Minor gaps exist, such as no tools for updating or deleting posts/comments or managing user settings, but agents can likely work around these for most common workflows.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to public Reddit data through tools for searching subreddits, viewing posts, and reading comments without requiring authentication. It enables Model Context Protocol clients to interact with Reddit's public JSON API via stdio or HTTP transports.
    32
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A read-only Model Context Protocol server that enables browsing subreddits, searching within subreddits, retrieving comment trees, and looking up user activity on Reddit via natural language.

Appeared in Searches

Latest Blog Posts

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/jordanburke/reddit-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server