Skip to main content
Glama
SubScraper Reddit MCP Server

SubScraper Reddit MCP Server

SubScraper Reddit MCP Server

npm version License: MIT MCP Compatible

Official Model Context Protocol (MCP) server for SubScraper — exposes all 14 Reddit data endpoints as first-class tools for AI coding assistants and autonomous agents.

Give Cursor, Claude Desktop, Windsurf, Cline, and any MCP-compatible client live access to search Reddit, inspect community discussions, extract nested comment trees, and gather developer sentiment without OAuth setup or Reddit app approval.


Quick Start

1. Cursor IDE

Add this to your .cursor/mcp.json (or global Cursor MCP configuration):

{
  "mcpServers": {
    "subscraper": {
      "command": "npx",
      "args": ["-y", "@subscraper/mcp"],
      "env": {
        "SUBSCRAPER_API_KEY": "sub_live_your_key_here"
      }
    }
  }
}

2. Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "subscraper": {
      "command": "npx",
      "args": ["-y", "@subscraper/mcp"],
      "env": {
        "SUBSCRAPER_API_KEY": "sub_live_your_key_here"
      }
    }
  }
}

Note: Get 30 free API requests immediately at https://www.subscraper.dev.


Related MCP server: Reddit MCP Server

Available MCP Tools

All 14 endpoints are exposed as typed, agent-ready tools:

Tool

Description

search

Search Reddit posts by keyword across all of Reddit or scoped to a subreddit

get_post

Fetch post body and the full nested comment tree pre-cleaned for LLMs

get_community_posts

Retrieve listings from any subreddit (hot, new, top, rising) with cursor pagination

get_comment_permalink

Fetch an individual comment with parent discussion context

get_community_details

Subreddit metadata, subscriber count, description, and rules

get_user_profile

User karma, account age, bio, and creator information

get_user_posts

Submission history for any public Reddit user

get_user_comments

Comment history for any public Reddit user

search_communities

Discover subreddits matching a topic or keyword

search_users

Search for Reddit usernames

get_popular

Real-time trending posts across r/popular

get_leaderboard

Top communities ranked by growth and activity

explore

Discover subreddits grouped by niche topic

resolve_url_type

Classify any Reddit link (post, comment, user, subreddit) and extract IDs


Environment Variables

Variable

Required

Description

Default

SUBSCRAPER_API_KEY

✅ Yes

Your API key from the SubScraper dashboard

—

SUBSCRAPER_API_BASE_URL

No

Override base API URL

https://www.subscraper.dev/api/v1

CLI flags are also supported:

npx -y @subscraper/mcp --api-key sub_live_your_key

Example AI Prompts

Once configured, your AI assistant can execute natural language research:

  • "Search r/SaaS for complaints about competitor pricing this month and summarize the top 5 pain points."

  • "Fetch the top 50 comments on this Reddit URL and extract all mentioned tools: https://reddit.com/r/..."

  • "Find the top 5 subreddits discussing local LLMs and report their subscriber counts."

  • "Analyze the sentiment around Next.js 15 App Router across recent r/webdev discussions."


License

MIT © SubScraper — see LICENSE

Available Tools

14 tools
exploreB

Discover Reddit communities grouped by topic or interest area. Returns a list of relevant subreddits with descriptions. Useful for finding niche communities related to a subject.

NameRequiredDescriptionDefault
limitNoNumber of results to return (1–100)
topicNoTopic to explore (e.g. "machine learning", "cooking", "gaming")

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden; it does disclose the return content ('list of relevant subreddits with descriptions'), which is genuinely useful. It says nothing about whether the call is read-only, whether it needs authentication, pagination behavior, or how results are ranked, all of which matter for a discovery tool with zero annotation coverage.

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

Conciseness4/5

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

Three short sentences, front-loaded with the core action and resource, and the return value is stated before the usage hint. The final sentence ('Useful for finding niche communities...') partially restates the opening, keeping it just shy of a 5.

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?

For a two-parameter, zero-required discovery tool this is close to adequate, and the description does sketch the return value in lieu of an output schema. The absence of any annotation coverage means the read-only/safety profile and ranking or pagination behavior are left entirely unstated, which is a real gap for an agent deciding whether to call it.

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%, including examples for 'topic' and bounds for 'limit', so the baseline is 3. The description adds only the framing that grouping is by 'topic or interest area', which marginally reinforces the topic parameter but adds no syntax, defaults, or edge-case semantics beyond 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 uses a specific verb ('Discover') on a specific resource ('Reddit communities grouped by topic or interest area') and even states the return shape ('a list of relevant subreddits with descriptions'). It does not, however, name or contrast itself with the obvious sibling search_communities, so an agent must infer the distinction from the description alone.

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?

Usage is only implied by 'Useful for finding niche communities related to a subject' — there is no explicit when-to-use statement, no exclusions, and no named alternative such as search_communities for keyword-based lookup. An agent can guess the intent but gets no routing rules.

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

get_community_detailsA

Get metadata about a subreddit: description, subscriber count, active users, creation date, NSFW flag, icon, and banner. Use to evaluate or describe a community.

NameRequiredDescriptionDefault
subredditYesSubreddit name (without r/ prefix)

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses what data is returned and implies a read-only lookup, but says nothing about auth requirements, behavior for private/banned/nonexistent subreddits, or rate limits. For a simple read tool this is acceptable but not rich.

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 tight sentences: the first front-loads what is returned, the second gives the use case. Every clause earns its place with no redundant restatement of the tool name.

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?

For a single-parameter read tool with no output schema, enumerating the returned fields is exactly the right compensation. Only edge-case behavior (invalid or private subreddit handling) is left unstated, a minor gap.

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?

With only one parameter at 100% schema description coverage, the schema already documents the 'subreddit' argument and its format requirement (no r/ prefix). The description adds no additional meaning about the parameter, so the baseline of 3 applies.

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 opens with a specific verb and resource ('Get metadata about a subreddit') and enumerates the fields returned (description, subscriber count, active users, creation date, NSFW flag, icon, banner), making the purpose unambiguous. It is clearly distinct from siblings like get_community_posts or search_communities by virtue of being metadata-only, though it never names those siblings explicitly.

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?

'Use to evaluate or describe a community' gives a contextual hint for when the tool is appropriate, but there are no exclusions or named alternatives (e.g., use get_community_posts for content, search_communities for discovery). Usage is therefore implied rather than specified.

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

get_community_postsA

Get posts from any public subreddit. Supports sorting by hot, new, top, rising, or controversial. Returns post list with scores, comment counts, and metadata.

NameRequiredDescriptionDefault
sortNoSort: hot | new | top | rising | controversial
timeNoTime filter (applies when sort=top): all | year | month | week | day | hour
afterNoPagination cursor from previous nextPageUrl (e.g. "t3_...")
limitNoNumber of results to return (1–100)
subredditYesSubreddit name (without r/ prefix, e.g. "webdev")

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full behavioral burden; it partially discharges this by disclosing the return payload (scores, comment counts, metadata) and the absence of prior auth discussion. It omits pagination behavior, default sort, and rate-limit or access constraints, which matter for an unannotated read tool.

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?

Three short sentences with the core purpose front-loaded and no wasted clauses. The sort enumeration partially duplicates the schema enum, a minor redundancy.

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?

With no output schema, the description usefully sketches the return shape, and it correctly identifies the resource scope for a moderately complex five-parameter tool. Remaining gaps (default sort, page-size behavior) are largely covered by the schema itself.

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 enum values, limit bounds, and pagination cursor semantics are already documented. The description only restates the available sort values and adds no meaning for 'time', 'after', or 'limit' beyond the schema, so baseline 3 applies.

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?

States a specific verb and resource ('Get posts') scoped to 'any public subreddit', which implicitly separates it from siblings like get_user_posts or get_popular. It does not explicitly name a sibling alternative, keeping it just short of a 5.

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?

Usage is implied by the 'any public subreddit' scoping, which tells the agent this is for public community feeds rather than user or search endpoints. There is no explicit when-to-use/when-not guidance or named alternatives among the many sibling listing tools.

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

get_leaderboardA

Get a leaderboard of trending and fast-growing Reddit communities. Returns subreddit names, subscriber counts, and growth metrics.

NameRequiredDescriptionDefault
afterNoPagination cursor from previous nextPageUrl (e.g. "t3_...")
limitNoNumber of results to return (1–100)

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so the description must carry the behavioral burden, and it does give partial value by disclosing the return payload shape (names, subscriber counts, growth metrics). However, it omits ranking/ordering logic for the leaderboard, whether results are paginated by cursor in practice beyond the schema hint, and any auth or rate-limit constraints, leaving meaningful behavioral gaps.

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

Conciseness5/5

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

Two tight sentences with zero filler, front-loading the resource and following with the return contents. Every sentence earns its place by contributing either purpose or output information.

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?

For a simple read-only, two-parameter listing tool with full schema coverage, the description covers purpose and return values adequately, and no output schema is needed given the explicit field list. The only gap is the absence of sibling differentiation and any note on result ordering, which are minor for this complexity level.

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 both 'after' and 'limit' fully documented in the schema including ranges and cursor format, so the baseline is 3. The description adds no additional meaning about pagination or limit semantics beyond what the schema already supplies.

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 names a specific verb and resource ('Get a leaderboard of trending and fast-growing Reddit communities') and enumerates the returned fields (subreddit names, subscriber counts, growth metrics), so the agent knows exactly what the tool produces. It does not explicitly distinguish itself from close siblings like get_popular or explore, which also surface community listings, leaving some ambiguity for selection.

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?

Usage is only implied: 'trending and fast-growing' suggests discovery-oriented browsing, but the description never states when to prefer this over get_popular, explore, or search_communities. No prerequisites, exclusions, or alternative-routing guidance is provided, so the agent must infer the choice from the name alone.

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

get_postA

Fetch a full Reddit post including its body text, score, flair, and the entire nested comment tree. Use a direct Reddit post URL (e.g. https://reddit.com/r/sub/comments/abc123/...).

NameRequiredDescriptionDefault
urlYesFull Reddit post URL
commentDepthNoMax comment nesting depth (default: 5)
commentLimitNoMax comments to return (default: 100)

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It discloses the shape and depth of what is returned (full body, nested comment tree), which implies a read operation, but says nothing about authentication, rate limits, behavior on invalid or non-post URLs, or whether results are truncated by depth/limit.

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?

Two tight sentences, with the capability statement front-loaded and the input-format note second. Nothing is wasted, though the URL example is largely redundant with the schema's format: uri plus description.

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?

There is no output schema, so the description must convey return values, and it does by naming body text, score, flair, and the nested comment tree. For a read-only fetch tool this is close to complete; only the depth/limit truncation behavior remains unstated.

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 coverage is 100%, so the schema already documents url, commentDepth, and commentLimit with defaults and bounds. The description only restates the URL format with an example and adds no meaning about how commentDepth and commentLimit interact or what truncation looks like, so the baseline of 3 applies.

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 uses a specific verb (Fetch) and resource (a full Reddit post) and enumerates what comes back: body text, score, flair, and the entire nested comment tree. That return-content detail clearly separates it from list-style siblings like get_community_posts or get_user_posts, though it never explicitly names an alternative.

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?

Usage is only implied: 'Use a direct Reddit post URL' states an input-format precondition, not a when-to-use rule. There is no guidance on when to prefer this over get_comment_permalink, resolve_url_type, or get_community_posts, and no when-not conditions.

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

get_user_commentsA

Get comment history for a Reddit user. Returns comment body, score, subreddit, parent post title, and timestamps. Useful for understanding a user's opinions and activity.

NameRequiredDescriptionDefault
sortNoSort: new | hot | top | controversial
afterNoPagination cursor from previous nextPageUrl (e.g. "t3_...")
limitNoNumber of results to return (1–100)
usernameYesReddit username (without u/ prefix)

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full burden; it does disclose the return shape (body, score, subreddit, parent post title, timestamps), which is genuinely useful since there is no output schema. However it says nothing about pagination depth, result caps, behavior for nonexistent or suspended users, or whether private accounts return empty results.

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?

Two sentences, front-loaded with the action, then the return fields, then the use case. Nothing is wasted, though the second sentence is soft filler compared to the specificity of the first.

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?

For a simple four-parameter read tool with full schema coverage and no annotations, the description covers what it does and what comes back. The remaining gap is pagination behavior, which the 'after' parameter documents only partially.

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 all four parameters including the sort enum and the 'after' cursor are already documented in the schema. The description adds no additional meaning about sorting semantics or pagination behavior beyond that, so the baseline 3 applies.

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 states a specific verb and resource ('Get comment history for a Reddit user'), which inherently separates it from siblings like get_user_posts and get_user_profile. It does not name those siblings explicitly, so the differentiation relies on the reader inferring 'comments' vs 'posts'.

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?

'Useful for understanding a user's opinions and activity' hints at a use case but gives no when-to-use versus when-to-use-an-alternative guidance, no exclusions, and no mention of when get_user_posts or search would be a better fit.

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

get_user_postsB

Get all posts submitted by a Reddit user. Returns post titles, scores, subreddits, and timestamps. Useful for profiling an account's posting behavior.

NameRequiredDescriptionDefault
sortNoSort: new | hot | top | controversial
afterNoPagination cursor from previous nextPageUrl (e.g. "t3_...")
limitNoNumber of results to return (1–100)
usernameYesReddit username (without u/ prefix)

TDQS

B3.3/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 disclosure burden. It usefully lists the returned fields (titles, scores, subreddits, timestamps) in lieu of an output schema, but says nothing about pagination semantics despite an 'after' cursor parameter, no result caps beyond the schema, no rate-limit or auth expectations, and no note that this is a read-only call.

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 short sentences with no waste: purpose first, then return payload, then use case. The ordering is front-loaded and every sentence contributes distinct information.

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?

For a 4-parameter read tool with no annotations and no output schema, the description covers purpose and return fields, which is the most important gap it could fill. However, pagination behavior and sort defaults remain undisclosed anywhere outside the schema, leaving the definition adequate but not complete.

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 sort, after, limit, and username are already documented in the input schema. The description adds no parameter-level meaning such as a default sort order or how the pagination cursor chains across pages. Baseline 3 is appropriate when the schema does the 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?

States a specific verb and resource: 'Get all posts submitted by a Reddit user.' The phrase 'submitted by a Reddit user' implicitly separates it from get_community_posts and get_user_comments, so an agent can pick correctly without opening schemas. It stops short of explicitly naming those siblings, which keeps it at 4 rather than 5.

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?

'Useful for profiling an account's posting behavior' gives a positive use case, so usage is implied rather than left blank. There is no when-not guidance, no mention of when to prefer get_user_comments, get_user_profile, or search, and no note about behavior for nonexistent or suspended accounts.

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

get_user_profileB

Get a Reddit user's public profile: karma breakdown, bio, account age, avatar, trophies, and gold status. Works for any public Reddit account.

NameRequiredDescriptionDefault
usernameYesReddit username (without u/ prefix)

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses that only public data is returned and enumerates the payload fields, but says nothing about auth requirements, error behavior for nonexistent or suspended accounts, or rate limits. It conveys read-only character implicitly through "public profile" rather than explicitly.

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 short sentences, front-loaded with purpose and followed by scope. Every clause carries information; nothing is padded or redundant.

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?

For a single-parameter read tool with no output schema, the field enumeration effectively stands in for a return-value description, which covers the biggest gap. The remaining shortfall is error and auth behavior, which is minor for a simple public lookup.

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 coverage is 100% and the schema itself documents that the username excludes the u/ prefix. The description adds no parameter-level meaning beyond that, so the baseline of 3 is appropriate for a single fully-documented parameter.

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 gives a specific verb and resource ("Get a Reddit user's public profile") and enumerates the profile content (karma breakdown, bio, account age, avatar, trophies, gold status), which implicitly separates it from content-oriented siblings like get_user_posts and get_user_comments. It never explicitly names those siblings, so differentiation is inferential rather than stated.

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?

There is no when-to-use guidance, no mention of alternatives such as search_users when the username is unknown, and no exclusions. "Works for any public Reddit account" is a scope statement rather than usage direction, leaving the agent to infer routing entirely.

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

resolve_url_typeA

Detect what a Reddit URL points to — a post, comment, user profile, subreddit, or search. Returns the detected type and extracted identifiers (post ID, username, subreddit, etc.). Useful before deciding which tool to call next.

NameRequiredDescriptionDefault
urlYesAny Reddit URL to classify

TDQS

A4.2/5.0
Behavior3/5

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

No annotations exist, so the description must carry the behavioral load. It does disclose the output shape (detected type plus extracted identifiers such as post ID, username, subreddit), but says nothing about what happens for non-Reddit or malformed URLs, whether any network call occurs, or whether detection is purely local string parsing.

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 tight sentences, outcome and enumeration front-loaded, with the usage hint last. Nothing is repeated from the schema and no sentence is filler.

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?

For a single-parameter classifier with no output schema, the description adequately covers both input expectations and return content. The one gap is failure behavior for unsupported URLs, which an agent would want to know before branching on the result.

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 100% and the single parameter is already documented as 'Any Reddit URL to classify.' The description still adds real meaning by implying the full breadth of accepted URL forms (post, comment, profile, subreddit, search links), which tells the agent it need not normalize input first.

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?

States a specific verb ('Detect') and resource ('a Reddit URL'), then enumerates the exact classes it can resolve — post, comment, user profile, subreddit, search — and names the return payload. This clearly separates it from the retrieval siblings like get_post or get_user_profile.

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?

Gives the operative context: 'Useful before deciding which tool to call next,' which frames it as a routing/dispatch step ahead of the other tools. It stops short of naming specific alternatives or stating when-not to use it (e.g. that it isn't needed if you already know the type or have a post ID).

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

search_communitiesA

Find subreddits by keyword. Returns subreddit name, title, description, subscriber count, and URL. Useful for discovering niche communities related to a topic.

NameRequiredDescriptionDefault
afterNoPagination cursor from previous nextPageUrl (e.g. "t3_...")
limitNoNumber of results to return (1–100)
queryYesSearch query for subreddits

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are supplied, so the description must carry the behavioral load. It usefully discloses the return payload, which reads as a read-only lookup, but says nothing about rate limits, result ordering, or empty-result behavior. Pagination exists but is only explained in the schema, not here.

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?

Three short sentences, front-loaded with the core action and followed by the return shape and a use case. No filler, though the third sentence borders on redundant with the first.

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?

For a simple three-parameter keyword search with a fully documented schema and no output schema, the description covers purpose, return fields, and use case. Missing only result ordering and empty-result handling, which are minor for this complexity.

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 description coverage is 100%, including the pagination cursor and the 1-100 limit bound, so the baseline of 3 applies. The description adds mild value by framing the query as a keyword search over subreddit metadata, though it does not clarify matching semantics (name vs. description).

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

Purpose4/5

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

States a specific verb and resource: "Find subreddits by keyword," and enumerates what comes back (name, title, description, subscriber count, URL). It is clearly distinct from search_users and get_community_details in substance, but never names those siblings explicitly, so differentiation is inferred rather than stated.

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?

"Useful for discovering niche communities related to a topic" implies a discovery use case but gives no explicit when-to-use or when-not guidance. It does not tell the agent to prefer get_community_details once a name is known, nor when to use the generic search sibling instead.

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

search_usersB

Find Reddit users by username or display name. Returns username, display name, description, and profile URL.

NameRequiredDescriptionDefault
afterNoPagination cursor from previous nextPageUrl (e.g. "t3_...")
limitNoNumber of results to return (1–100)
queryYesUsername or display name to search for

TDQS

B3.1/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It usefully discloses the shape of the result (username, display name, description, profile URL), which confirms it is a read operation, but it says nothing about match semantics (prefix vs fuzzy), result ordering, or pagination behavior despite the cursor parameter.

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, front-loaded with the action and followed by the return shape. Nothing is redundant or padded relative to the schema.

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?

The listed return fields compensate for the absent output schema, and the parameters are fully documented structurally. However, for a search tool with pagination and an adjacent exact-lookup tool, the description leaves the agent guessing about match behavior and when to prefer this over get_user_profile.

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

Parameters2/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 including the 1–100 limit and the cursor semantics. The description adds only that the query matches username or display name, which is a marginal increment over the schema; baseline 3 is arguably earned but the addition is thin, so a 2 reflects that this dimension is essentially fully carried by 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 names a specific verb and resource ("Find Reddit users") and specifies the search keys (username or display name), which lets an agent distinguish it from get_user_profile's exact lookup. It stops short of explicitly naming the sibling it differs from, so it lands at 4 rather than 5.

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?

There is no when-to-use or when-not-to-use guidance. With siblings like get_user_profile and the generic search tool present, the agent must infer that this tool is for partial-name discovery rather than exact profile retrieval, and nothing in the description states or excludes that.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv1.0.0
    • First observedexplore
    • First observedget_comment_permalink
    • First observedget_community_details
    • First observedget_community_posts
    • First observedget_leaderboard
    • First observedget_popular
    • First observedget_post
    • First observedget_user_comments
    • First observedget_user_posts
    • First observedget_user_profile
    • First observedresolve_url_type
    • First observedsearch
    • First observedsearch_communities
    • First observedsearch_users

TDQS

A3.7/5.0

Scored across 14 tools

Disambiguation4/5

Most tools map to a distinct resource+action (post, comment, user, community) with clear boundaries. There is mild overlap between the community-discovery trio (search_communities, explore, get_leaderboard) and between scoped 'search' and 'get_community_posts', but the descriptions give enough signal (keyword vs. topic-grouped vs. growth-metrics; keyword vs. sort-based listing) to choose correctly.

Naming Consistency4/5

Dominant pattern is get_<resource> / search_<resource>, applied consistently across posts, users, and communities. A few tools break the pattern with bare verbs or noun phrases ('search', 'explore', 'resolve_url_type'), but they remain readable and unambiguous.

Tool Count5/5

14 tools is squarely in the well-scoped range for a read-only Reddit client. Each tool covers a distinct retrieval axis (entity type, listing source, or URL resolution) and none feels redundant padding.

Completeness4/5

Coverage is strong for a read-only scraper: posts, comments, users, communities, feeds, discovery, and URL routing are all present with sensible entry points. Minor gaps exist — no subreddit rules/moderators/wiki, no direct post-by-ID lookup (must go through a URL plus resolve_url_type), and no comment-level search.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables AI assistants to browse Reddit, search posts, analyze user activity, and fetch comments without requiring API keys. Features smart caching, clean data responses, and optional authentication for higher rate limits.
    5
    2,001 npm
    874
    MIT
  • 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 AI agents to search, read, and analyze Reddit content, including posts, comments, subreddits, and user profiles using natural language commands. It provides atomic tools for interacting with the Reddit API to retrieve trending topics and community metadata.
    MIT