Skip to main content
Glama
karanb192

Reddit Buddy MCP

by karanb192

Reddit MCP Buddy

Reddit Browser for Claude Desktop and AI Assistants

A Model Context Protocol (MCP) server that enables Claude Desktop and other AI assistants to browse Reddit, search posts, and analyze user activity. Clean, fast, and actually works - browse subreddits with no API keys; add free Reddit credentials for search, comments, user analysis, and full metrics.

npm version npm downloads GitHub stars License: MIT

🎬 See It In Action

Reddit MCP Buddy Demo - AirPods Max 2 and Dune Part Three

Claude checking Reddit's reaction to the Dune Part Three trailer and whether the AirPods Max 2 are worth $549

Reddit MCP Buddy Demo - Analyzing H1B sentiment across subreddits

Claude analyzing real-time sentiment about H-1B visa changes across r/cscareerquestions and r/india

Related MCP server: MCP Reddit Server

Table of Contents

What makes Reddit MCP Buddy different?

  • 🚀 Zero setup - Browse subreddits instantly, no Reddit API registration needed (search, comments, user analysis, and engagement metrics need free credentials)

  • ⚡ Up to 10x more requests - Three-tier authentication system (10/60/100 requests per minute)

  • 🎯 Clean data - No fake "sentiment analysis" or made-up metrics

  • 🧠 LLM-optimized - Built specifically for AI assistants like Claude

  • 📦 TypeScript - Fully typed, reliable, and maintainable

  • ✅ Proven rate limits - Thoroughly tested authentication tiers with verification tools

Quick Start (30 seconds)

For Claude Desktop - Desktop Extension (Easiest!)

  1. Download: reddit-mcp-buddy.mcpb

  2. Install: Open the downloaded file

  3. Done! Reddit tools are now available in Claude

For Claude Desktop - NPM Method (Alternative)

Add this to your claude_desktop_config.json:

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

For Claude Code

Run this command to add the MCP server (user scope):

claude mcp add --transport stdio reddit-mcp-buddy -s user -- npx -y reddit-mcp-buddy

For Other MCP Clients

Use the NPM method: npx -y reddit-mcp-buddy

What can it do?

Ask your AI assistant to:

  • 📊 "What's trending on Reddit?" - Browse hot posts from r/all

  • 🔍 "Search for discussions about AI" - Search across all subreddits

  • 💬 "Get comments from this Reddit post" - Fetch post with full comment threads

  • 👤 "Analyze user spez" - Get user history, karma, and activity

  • 📚 "Explain Reddit karma" - Understand Reddit terminology

Available Tools

browse_subreddit

Browse posts from any subreddit with sorting options.

- Subreddit:
  - "all" - entire Reddit frontpage
  - "popular" - trending across Reddit
  - Any specific subreddit (e.g., "technology", "programming", "science")
- Sort by: hot, new, top, rising, controversial
- Time range: hour, day, week, month, year, all (for top/controversial sort)
- Include subreddit info: Optional flag for subreddit metadata (requires credentials)

No credentials? Results are served from Reddit's public RSS feed (data_source: "rss"): score, num_comments, upvote_ratio, and nsfw come back null, and the include_nsfw filter can't be applied. Add credentials (Authentication) for full data via the API.

search_reddit

Search across Reddit or specific subreddits.

- Query: Your search terms
- Filter by: subreddit, author, time, flair
- Sort by: relevance, hot, top, new, comments

get_post_details

Get a post with all its comments.

- Input:
  - Reddit URL (supports multiple formats), OR
  - Post ID alone (will auto-detect subreddit, 2 API calls), OR
  - Post ID + subreddit (most efficient, 1 API call)
- Supported URL formats:
  - reddit.com, www.reddit.com
  - old.reddit.com, new.reddit.com
  - np.reddit.com (No Participation links)
  - m.reddit.com (mobile links)
  - redd.it short URLs
  - URLs with query params (?utm_source=...) or fragments (#comment)
- Options: comment sorting, depth, link extraction

user_analysis

Analyze a Reddit user's profile.

- Username: Any Reddit user
- Returns: karma, posts, comments, active subreddits

reddit_explain

Get explanations of Reddit terms.

- Terms: karma, cake day, AMA, ELI5, etc.

Authentication (Optional)

Want more requests? Add Reddit credentials to your Claude Desktop config:

Setup Steps

  1. Go to https://www.reddit.com/prefs/apps

  2. Click "Create App" or "Create Another App"

  3. Fill out the form:

    • Name: Any name (e.g., "reddit-mcp-buddy")

    • App type: Select "script" (CRITICAL for 100 rpm!)

    • Description: Optional

    • About URL: Leave blank

    • Redirect URI: http://localhost:8080 (required but unused)

  4. Click "Create app"

  5. Find your credentials:

    • Client ID: The string under "personal use script"

    • Client Secret: The secret string

  6. Update your Claude Desktop config:

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

Three-Tier Authentication System

Reddit MCP Buddy supports three authentication levels, each with different rate limits:

Mode

Rate Limit

Required Credentials

Best For

Anonymous

10 req/min*

None

Testing, light usage

App-Only

60 req/min

Client ID + Secret

Regular browsing

Authenticated

100 req/min

All 4 credentials

Heavy usage, automation

*Server-side cap. Anonymous requests are served from Reddit's logged-out RSS feed, which applies its own stricter per-IP throttle (often one uncached request per 25-60 seconds). The 15-minute cache and automatic retries absorb much of this, but sustained anonymous browsing is effectively slower than 10 req/min.

How It Works:

  • Anonymous Mode: Default mode, no setup required. Only browse_subreddit (plus the offline reddit_explain) works: Reddit blocks the logged-out JSON API, so browse results come from Reddit's public RSS feed (data_source: "rss") with engagement metrics and NSFW flags as null. The remaining tools require credentials.

  • App-Only Mode: Uses OAuth2 client credentials grant (works with both script and web apps)

  • Authenticated Mode: Uses OAuth2 password grant (requires script app type)

Important Notes:

  • Script apps support BOTH app-only (60 rpm) and authenticated (100 rpm) modes

  • Web apps only support app-only mode (60 rpm maximum)

  • For 100 requests/minute, you MUST use a script app with username + password

Privacy & Data Handling

Reddit MCP Buddy is designed with privacy and transparency in mind. Here's how your data is handled:

Data Collection

  • Reddit API Data: The server fetches public Reddit content (posts, comments, user profiles) through Reddit's official API

  • No Tracking: We don't collect, store, or transmit any analytics, telemetry, or usage data

  • No Third Parties: All data flows directly between your machine, Reddit's API, and your AI assistant

Local Storage

  • Authentication Credentials (optional):

    • Stored locally in ~/.reddit-mcp-buddy/auth.json when using --auth CLI setup

    • Passwords are never written to disk - only used in-memory for OAuth token exchange

    • Environment variables (recommended for Claude Desktop) are never persisted by this server

  • Cache Data:

    • Reddit API responses are temporarily cached in memory to improve performance

    • Cache size limited to 50MB maximum

    • All cache data is cleared when the server stops

    • Can be disabled with REDDIT_BUDDY_NO_CACHE=true

Data Transmission

  • Reddit API Only: Your credentials are only sent to Reddit's official OAuth endpoints (https://oauth.reddit.com and https://www.reddit.com)

  • No External Services: No data is sent to any other external services, analytics platforms, or third parties

  • Local Processing: All data processing happens locally on your machine

Security Notes

  • Read-Only Operations: All tools are read-only - the server never posts, comments, or modifies any Reddit content

  • Credential Safety:

    • OAuth tokens are refreshed automatically and kept in memory; only --auth CLI setups also cache the token in ~/.reddit-mcp-buddy/auth.json (file mode 600)

    • Client secrets are treated as sensitive and never logged

    • Use environment variables in Claude Desktop config for maximum security

  • Open Source: Full source code is available at https://github.com/karanb192/reddit-mcp-buddy for security auditing

GDPR & Privacy Compliance

  • No Personal Data Collection: We don't collect or process any personal data beyond what's necessary to authenticate with Reddit's API

  • User Control: You control all credentials and can delete ~/.reddit-mcp-buddy/auth.json at any time

  • Right to Erasure: Simply delete the auth file or uninstall the server to remove all local data

Questions or Concerns?

If you have any privacy questions or concerns, please open an issue on GitHub.

Testing & Development

Testing Your Rate Limits

Reddit MCP Buddy includes comprehensive testing tools to verify your authentication is working correctly:

# Clone the repository first
git clone https://github.com/karanb192/reddit-mcp-buddy.git
cd reddit-mcp-buddy
npm install

# Test with your current environment settings
npm run test:rate-limit

# Test specific authentication modes
npm run test:rate-limit:anon    # Test anonymous mode (10 rpm)
npm run test:rate-limit:app     # Test app-only mode (60 rpm)
npm run test:rate-limit:auth    # Test authenticated mode (100 rpm)

The rate limit tester will:

  • Start a local server instance

  • Make rapid API requests to test rate limits

  • Display a real-time progress bar

  • Confirm which authentication tier you're using

  • Show exactly when rate limiting kicks in

Interactive Authentication Setup (for local testing only)

For local development and testing, you can set up authentication interactively:

npx -y reddit-mcp-buddy --auth

This will prompt you for Reddit app credentials and save them locally. Note: This does NOT work with Claude Desktop - use environment variables in your Claude config instead.

Testing with HTTP Mode

To test the server directly in your terminal:

# Run in HTTP mode on port 3000
npx -y reddit-mcp-buddy --http

# Or with custom port
REDDIT_BUDDY_PORT=8080 npx -y reddit-mcp-buddy --http

Note: The server runs in stdio mode by default (for Claude Desktop). Use --http flag for testing with Postman MCP or direct API calls.

Installation Options

Global Install

npm install -g reddit-mcp-buddy
reddit-buddy --http  # For testing

From Source

git clone https://github.com/karanb192/reddit-mcp-buddy.git
cd reddit-mcp-buddy
npm install
npm run build
npm link

Using Docker

git clone https://github.com/karanb192/reddit-mcp-buddy.git
cd reddit-mcp-buddy
docker build -t reddit-mcp-buddy .
docker run -it reddit-mcp-buddy

Claude Desktop Extension

For one-click installation in Claude Desktop, download the pre-built extension:

📦 Download reddit-mcp-buddy.mcpb

Installation: Simply open the downloaded .mcpb file - Claude Desktop will automatically install the extension and the Reddit tools will be immediately available.

Build from Source (Optional)

If you prefer to build the extension yourself:

git clone https://github.com/karanb192/reddit-mcp-buddy.git
cd reddit-mcp-buddy
./scripts/build-mcpb.sh

Note: Most users should use the standard npm installation method shown in Quick Start.

Comparison with Other Tools

Feature

Reddit MCP Buddy

Other MCP Tools

Zero Setup

✅ Browse instantly; free keys unlock the rest

❌ Keys required for everything

Max Rate Limit

✅ 100 req/min proven

❓ Unverified claims

Language

TypeScript/Node.js

Python (most)

Tools Count

5 (focused)

8-10 (redundant)

Fake Metrics

✅ Real data only

❌ "Sentiment scores"

Search

✅ Full search

Limited or none

Caching

✅ Smart caching

Usually none

LLM Optimized

✅ Clear params

Confusing options

Rate Limit Testing

✅ Built-in tools

❌ No verification

Rate Limits

Mode

Requests/Minute

Cache TTL

Setup Required

Anonymous

10

15 min

None

App-only

60

5 min

Client ID + Secret

Authenticated

100

5 min

All credentials

Cache TTL applies to subreddit listings. Post details (10 min), search results (10 min), and user profiles (15 min) use fixed TTLs in all modes. Anonymous throughput is additionally bounded by Reddit's own per-IP RSS throttle, which is stricter than 10/min for uncached requests.

Why Reddit MCP Buddy?

What others do wrong:

  • Fake metrics - "sentiment scores" that are just keyword counting

  • Complex setup - Requiring API keys just to start

  • Bloated responses - Returning 100+ fields of Reddit's raw API

  • Poor LLM integration - Confusing parameters and unclear descriptions

What we do right:

  • Real data only - If it's not from Reddit's API, we don't make it up

  • Clean responses - Only the fields that matter

  • Clear parameters - LLMs understand exactly what to send

  • Fast & cached - Responses are instant when possible

Examples

Your AI can now answer:

"What are the top posts about GPT-4 today?"

→ search_reddit with query="GPT-4", time="day", sort="top"

"Show me what's trending in technology"

→ browse_subreddit with subreddit="technology", sort="hot"

"What do people think about this article?"

→ search_reddit with the article URL to find discussions

"Analyze the user DeepFuckingValue"

→ user_analysis with username="DeepFuckingValue"

"Get the comments from this Reddit post"

→ get_post_details with url="https://reddit.com/r/..."

"What's trending across all of Reddit?"

→ browse_subreddit with subreddit="all", sort="hot"

Troubleshooting

Common Issues

"Can't achieve 100 requests/minute"

  • Ensure your app type is "script" not "web" or "installed"

  • Script apps created by one account can only authenticate as that same account

  • Run npm run test:rate-limit:auth to verify (requires cloning the repo)

  • If still failing, create a new script app while logged into the authenticating account

"Command not found" error

# Ensure npm is installed
node --version
npm --version

# Try the full global-bin path
$(npm prefix -g)/bin/reddit-mcp-buddy

Browsing works but search / comments / user analysis fail

  • Without credentials only browse_subreddit (served from Reddit's public RSS feed, no scores or comment counts) and the offline reddit_explain work

  • Anonymous browsing can also hit Reddit's own RSS rate limit (HTTP 429); the server retries automatically, but sustained throttling can still fail

  • Solution: Add Reddit credentials (see Authentication)

Rate limit errors

  • Without auth: 10 requests/minute server cap, and Reddit's own RSS feed throttles harder per IP (the server retries automatically)

  • With app credentials only: 60 requests/minute

  • With full authentication: 100 requests/minute

  • Solution: Add Reddit credentials (see Authentication)

"Subreddit not found"

  • Check spelling (case-insensitive)

  • Some subreddits may be private or quarantined

  • Try "all" or "popular" instead

Connection issues

Environment Variables

Authentication Variables

Variable

Description

Required

Rate Limit

REDDIT_CLIENT_ID

Reddit app client ID

No

60 req/min (with secret)

REDDIT_CLIENT_SECRET

Reddit app secret

No

60 req/min (with ID)

REDDIT_USERNAME

Reddit account username

No

100 req/min (with all 4)

REDDIT_PASSWORD

Reddit account password

No

100 req/min (with all 4)

REDDIT_USER_AGENT

Custom user agent string (applies when credentials are configured)

No

-

Server Configuration

Variable

Description

Default

REDDIT_BUDDY_HTTP

Run as HTTP server instead of stdio

false

REDDIT_BUDDY_PORT

HTTP server port (when HTTP=true)

3000

REDDIT_BUDDY_HOST

Interface the HTTP server binds to

127.0.0.1

REDDIT_BUDDY_ALLOWED_ORIGINS

Comma-separated browser origins allowed to call the HTTP endpoint

none

REDDIT_BUDDY_ALLOWED_HOSTS

Comma-separated host:port values accepted in the Host header (DNS-rebinding protection)

loopback values when bound to localhost

REDDIT_BUDDY_NO_CACHE

Disable caching (always fetch fresh)

false

HTTP mode has no authentication. It binds to localhost so only your machine can reach it, and rejects Host headers outside the loopback set. Setting REDDIT_BUDDY_HOST=0.0.0.0 exposes it to your whole network - only do that on a trusted network (e.g. inside Docker, which sets it deliberately). On a non-loopback bind the Host check is off by default, since clients legitimately arrive with a container IP or service name; set REDDIT_BUDDY_ALLOWED_HOSTS to restrict it. Browser requests are rejected unless their origin is listed in REDDIT_BUDDY_ALLOWED_ORIGINS; non-browser clients like Postman are unaffected.

Technical Details

Smart Caching System

Reddit MCP Buddy includes intelligent caching to improve performance and reduce API calls:

  • Memory Safe: Hard limit of 50MB - won't affect your system performance

  • Per-Content TTLs: Post details (10min), user profiles (15min), search results (10min); subreddit listings use the mode default (15min anonymous, 5min with credentials)

  • LRU Eviction: Automatically removes least-used data when approaching limits

  • Hit Tracking: Optimizes cache based on actual usage patterns

This means faster responses and staying well within Reddit's rate limits, all while using minimal system resources.

Development

# Install dependencies
npm install

# Run in development
npm run dev

# Build
npm run build

# Run tests
npm test                     # Unit tests
npm run test:integration     # Integration tests
npm run test:all             # All tests

# Test rate limits
npm run test:rate-limit       # Test with current environment
npm run test:rate-limit:anon  # Test anonymous mode (10 rpm)
npm run test:rate-limit:app   # Test app-only mode (60 rpm)
npm run test:rate-limit:auth  # Test authenticated mode (100 rpm)

# Lint
npm run lint

# Type check
npm run typecheck

Requirements

  • Node.js >= 18.0.0

  • npm or yarn

  • TypeScript 5.5+

Contributing

PRs welcome! See CONTRIBUTING.md for guidelines.

We keep things simple:

  • No fake analytics

  • Clean, typed code

  • Clear documentation

  • Fast responses

Support

Official MCP Resources

Where to Find This Server

View All Versions via API

# Get all versions of reddit-mcp-buddy from the registry
curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=reddit-mcp-buddy" | jq

# Get just names, version numbers, and latest flag
curl -s "https://registry.modelcontextprotocol.io/v0/servers?search=reddit-mcp-buddy" | \
  jq '.servers[] | {name: .server.name, version: .server.version, isLatest: ._meta."io.modelcontextprotocol.registry/official".isLatest}'

License

MIT - Use it however you want!


Made with ❤️ for the MCP community. No venture capital, no tracking, just a good MCP server.

Built by Karan Bansal (Head of AI at ArmorCode). I write about Claude Code, MCP, and production agentic AI at karanbansal.in/blog.

Available Tools

5 tools
browse_subredditA
Read-only

Fetch posts from a subreddit sorted by your choice (hot/new/top/rising/controversial). Returns a post list with content, metadata, and a data_source field. With Reddit credentials (data_source "api") posts include score, num_comments, and upvote_ratio; without credentials, results come from Reddit's public RSS feed (data_source "rss") and those fields plus nsfw are null — see the response note and do not infer popularity from them.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNohot
timeNo
limitNoDefault 25, range (1-100). Change ONLY IF user specifies.
subredditYesSubreddit name without r/ prefix. Use specific subreddit (e.g., "technology"), "all" for Reddit-wide posts, or "popular" for trending across default subreddits
include_nsfwNo
include_subreddit_infoNoInclude subreddit metadata like subscriber count and description. Requires Reddit credentials; silently omitted when browsing anonymously via the RSS fallback

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses the data_source field behavior, null fields when using RSS, and warns not to infer popularity from RSS data. This gives full transparency on credential-dependent output differences.

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?

Two sentences efficiently cover purpose and credential behavior. Every sentence adds value; no redundant or vague wording.

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

Completeness4/5

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

The description explains the return structure, credential dependency, and field differences. It lacks details on pagination (e.g., how to get more than limit results) but given no output schema and basic read operation, this is acceptable.

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 minimal extra meaning beyond the schema: it mentions sort choices in text, but does not elaborate on 'time', 'include_nsfw', or 'include_subreddit_info'. With 50% schema description coverage, the description does not fully compensate, though it provides context on credential effects.

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

Purpose5/5

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

The description clearly states the tool fetches posts from a subreddit with sorting options, and the return includes a data_source field. This distinguishes it from sibling tools like search_reddit (searching across Reddit) and get_post_details (single post).

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

Usage Guidelines4/5

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

The description explains how results differ based on Reddit credentials, guiding when each behavior applies. It does not explicitly state when not to use this tool versus alternatives, but the context from sibling names and the description itself implies browsing vs searching.

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

get_post_detailsA
Read-only

Fetch a Reddit post with its comments. Requires EITHER url OR post_id. IMPORTANT: When using post_id alone, an extra API call is made to fetch the subreddit first (2 calls total). For better efficiency, always provide the subreddit parameter when known (1 call total).

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoFull Reddit URL (alternative to post_id)
post_idNoReddit post ID (e.g., "1abc2d3")
subredditNoSubreddit name (optional with post_id, but more efficient if provided)
comment_sortNobest
comment_depthNoDefault 3, range (1-10). Override ONLY IF user specifies.
comment_limitNoDefault 20, range (1-500). Change ONLY IF user asks.
extract_linksNo
max_top_commentsNoDefault 5, range (1-20). Change ONLY IF user requests.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. Description adds value by detailing extra API call behavior and efficiency gains with subreddit, which annotations lack.

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?

Three sentences, front-loaded with purpose, then requirements, then an important efficiency note. No wasted words.

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

Completeness4/5

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

Covers key behavioral aspects for 8 parameters and no output schema. Includes efficiency and required argument strategies, though lacks detail on return format or extract_links.

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?

Schema coverage is 75%; description enhances understanding by explaining the trade-off between url and post_id parameters, and the efficiency benefit of providing subreddit.

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

Purpose5/5

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

Clearly states 'Fetch a Reddit post with its comments', specifying verb and resource. Differentiates from sibling tools like browse_subreddit and search_reddit.

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

Usage Guidelines5/5

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

Explicitly requires url OR post_id, and advises providing subreddit for efficiency. Provides clear context on when and how to use, with an alternative strategy.

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

reddit_explainA
Read-only

Get explanations of Reddit terms, slang, and culture. Returns definition, origin, usage, and examples.

ParametersJSON Schema
NameRequiredDescriptionDefault
termYesReddit term to explain (e.g., "karma", "cake day", "AMA")

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true, and description adds return content details (definition, origin, usage, examples). However, no disclosure of rate limits, authentication needs, or potential errors. Description is consistent with annotations.

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?

Two sentences: first states purpose and action, second lists return elements. No redundant phrasing, front-loaded with key information.

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

Completeness5/5

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

For a simple tool with one parameter and no output schema, the description fully explains what the tool does and what it returns. The sibling tools cover other use cases, so no need for additional context.

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?

Input schema covers the single 'term' parameter with 100% description coverage. The description adds concrete examples (e.g., 'karma', 'cake day', 'AMA'), enhancing understanding beyond the schema alone.

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

Purpose5/5

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

Description clearly states the verb 'Get explanations' and specifies the resource: 'Reddit terms, slang, and culture.' It lists return components (definition, origin, usage, examples) and distinguishes this tool from siblings like browse_subreddit or search_reddit.

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

Usage Guidelines3/5

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

The description implies use for explaining terms but does not explicitly state when to use this tool versus alternatives. No mention of when not to use or conditions for use, leaving the agent to infer context from the sibling list.

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

search_redditA
Read-only

Search for posts across Reddit or specific subreddits. Returns matching posts with content and metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNorelevance
timeNoall
flairNo
limitNoDefault 25, range (1-100). Override ONLY IF user requests.
queryYesSearch query
authorNo
subredditsNoSubreddits to search in, max 10 (leave empty for all)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds that it returns 'content and metadata', which provides some behavioral context but lacks details on rate limits, authentication needs, or pagination behavior. Adequate given annotations.

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 sentence with no fluff. It could be slightly expanded to include more guidance on parameter usage without losing conciseness.

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

Completeness3/5

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

Given 7 parameters and no output schema, the description covers the basic purpose but misses operational details like sort/time defaults, limit constraints, and how to use optional filters like flair and author. Adequate for a search tool but has gaps.

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 43% (3 of 7 parameters have descriptions). The description does not add meaning beyond what the schema provides for parameters like sort, time, flair, and author. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Search', the resource 'posts', and the scope 'across Reddit or specific subreddits'. It effectively differentiates from sibling tools like browse_subreddit (browsing, not searching) and get_post_details (single post).

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

Usage Guidelines3/5

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

The description implies usage for searching posts but does not explicitly state when to use this tool vs alternatives like browse_subreddit or reddit_explain. No exclusions or when-not scenarios are mentioned.

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

user_analysisA
Read-only

Analyze a Reddit user's posting history, karma, and activity patterns. Returns posts, comments, and statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameYesReddit username without u/ prefix
time_rangeNoTime range for posts/comments (default: month). Note: When set to values other than "all", posts are sorted by top scores within that period. When set to "all", posts are sorted by newestmonth
posts_limitNoDefault 10, range (0-100). Change ONLY IF user specifies.
comments_limitNoDefault 10, range (0-100). Override ONLY IF user asks.
top_subreddits_limitNoDefault 10, range (1-50). Change ONLY IF user requests.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include readOnlyHint=true, and the description aligns with that. Additional behavioral details are provided in the parameter description (time_range sorting behavior) but no further safety or side-effect context beyond what annotations already convey.

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 two sentences, front-loading the purpose with no superfluous information. Every word serves a clear function.

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

Completeness4/5

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

Given the absence of an output schema, the description provides a reasonable overview of what is returned (posts, comments, statistics). However, it could be more explicit about the exact statistics or structure returned.

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 parameters. The tool description adds no extra parameter insights beyond the schema, but includes a helpful note on time_range sorting behavior in the parameter description itself.

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

Purpose5/5

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

The description clearly states 'Analyze a Reddit user's posting history, karma, and activity patterns' with a specific verb and resource. It distinguishes from siblings like browse_subreddit or search_reddit by focusing on a single user's data.

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

Usage Guidelines4/5

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

The description implies when to use (when analyzing a user), but it does not explicitly state when not to use or mention alternatives. However, sibling names provide implicit differentiation.

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

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct aspect of Reddit: browsing subreddits, searching posts, getting post details, analyzing users, and explaining Reddit culture. No two tools overlap in purpose.

Naming Consistency2/5

Naming patterns are inconsistent: 'browse_subreddit', 'search_reddit', and 'get_post_details' follow verb_noun, but 'user_analysis' and 'reddit_explain' start with noun and are not verb-first. This mix can confuse an agent.

Tool Count5/5

Five tools is well-scoped for a Reddit information-gathering server. It covers browsing, searching, detailed post retrieval, user analysis, and cultural explanation without being over-engineered.

Completeness4/5

Core read operations are covered, but the server lacks any write capability (posting, commenting) and does not provide subreddit metadata or moderation tools. For a read-only assistant, it is nearly complete.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to search, monitor, and analyze Reddit's communities and discussions through authenticated API access with intelligent caching and rate limiting.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching Reddit posts, fetching subreddit content, and retrieving post comments without requiring an API key. It uses public JSON endpoints to provide seamless access to Reddit data for LLM-based applications.
    6
    MIT
  • F
    license
    Not graded
    quality
    F
    maintenance
    Enables AI assistants to read Reddit data including user profiles, subreddits, posts, comments, and search via OAuth authentication.

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/karanb192/reddit-mcp-buddy'

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