Skip to main content
Glama
goonhammer69

reddit-monitor-mcp

by goonhammer69

Reddit MCP — read-only monitoring for two accounts

An MCP server that lets Claude watch Reddit for you: inbox, post performance, silent removals, subreddit intel, timing analytics, and market scans. Strictly read-only — the client physically refuses every write endpoint except marking your own inbox messages read. It cannot post, vote, comment, or delete, even if asked.

The 18 tools

Group

Tools

Inbox

get_inbox, get_messages, mark_read

Post performance

get_my_posts, get_post_details, check_post_visibility

Subreddit activity

get_subreddit_feed, get_subreddit_rules, get_subreddit_sidebar

Mentions & discovery

search_mentions, search_subreddit

Account health

get_account_stats, check_shadowban, get_karma_breakdown

Timing & analytics

get_post_timing_data, get_subreddit_activity_pattern

Market scan

get_competitor_posts, get_trending_flairs

Every tool takes an optional account parameter: "account_1" or "account_2". Omitted = the default from .env.

Related MCP server: reddit-trends-mcp

Public mode — works with zero credentials

The subreddit, search, and market-scan tools also run without any API credentials at all: pass account="public", or just configure nothing and they fall back automatically. Public mode reads Reddit's public JSON the way a logged-out browser does — no login, no OAuth, no account anywhere in the loop.

The honest status (verified August 2026): Reddit now returns 403 to unauthenticated .json and .rss requests even from residential IPs — the logged-out programmatic surface is effectively closed platform-wide. Public mode remains in the codebase in case that policy relaxes, but as of this writing, all live use of this server requires approved API credentials. The account tools (inbox, messages, my-posts, karma, shadowban) always required credentials regardless — there is no keyless way to read a mailbox, here or anywhere.

Notes on the clever ones:

  • check_shadowban uses the other configured account as an authenticated witness — a shadowbanned account looks normal to itself, so a second set of eyes is the only honest check.

  • check_post_visibility walks the subreddit's /new listing back to your post's timestamp. On the profile but not in the listing = silently removed.

  • get_my_posts, get_post_details, and get_post_timing_data append metric snapshots to data/snapshots.jsonl as a side effect. Reddit only reports scores right now; this file is the over-time record the future ad-assembly skill will feed on. Delete it any time — it regrows.

  • search_mentions searches posts only. Reddit's search API does not index comments; comment mentions of u/yourname arrive via get_inbox.

Setup

1. Register a script app for EACH account

While logged in as that account in a browser:

  1. Go to https://www.reddit.com/prefs/apps → "create another app..."

  2. Name: anything. Type: script (the radio button — this is the one choice that matters). Redirect uri: http://localhost:8080 (required by the form, never used).

  3. After creating: the string under the app name is the client_id; the string labeled secret is the client_secret.

Requirements per account: 2FA off (script auth sends username + password directly), "I am over 18" enabled in Reddit preferences, and a verified email (recovery path if Reddit ever questions a login).

2. Install

cd reddit-mcp
uv venv .venv
uv pip install -p .venv/bin/python -e .

(Or plain pip: python3 -m venv .venv && .venv/bin/pip install -e .)

3. Credentials

Desktop: copy .env.example to .env in this folder and fill in the four values per account. .env is gitignored; it never leaves the machine.

Cloud (Cowork / Claude Code on the web): don't create a .env — put the same variables into the environment's settings (the environment variables section of the Cowork environment config). Real env vars win over the .env file, so both rooms work with the same code.

4. Wire into Claude Desktop

claude_desktop_config.jsonmcpServers:

{
  "reddit-monitor": {
    "command": "/absolute/path/to/reddit-mcp/.venv/bin/python",
    "args": ["-m", "reddit_mcp.server"]
  }
}

For Claude Code (CLI), from this folder:

claude mcp add reddit-monitor -- .venv/bin/python -m reddit_mcp.server

Rate limits & bot-likeness

  • Reddit allows 60 requests/minute per OAuth client; this server caps itself at 55 per account with a sliding window, obeys Reddit's X-Ratelimit-* headers, and backs off automatically on 429.

  • The access token is cached until expiry — one login per hour of use, not one per call.

  • User-Agent follows Reddit's required format: python:iris-reddit-mcp:0.1.0 (by /u/<username>). Reading your own data through the official API with a proper UA is what the API is for.

Tests

uv pip install -p .venv/bin/python -e ".[dev]"
.venv/bin/python -m pytest -v

31 tests, all named in plain English — read the list like a checklist of promises. No test touches the real Reddit; all HTTP is mocked.

Reddit API access note (2026)

Since Reddit's Responsible Builder Policy (Nov 2025), new OAuth app credentials require requesting access through Reddit's Data API form. This server is designed to satisfy that policy: read-only, personal-use, own-account monitoring, rate-limited, with a hard-coded refusal of every write endpoint. Until credentials are granted, public mode works today.

Available Tools

18 tools
check_post_visibilityA
Read-only

Detect silent removals: is this post actually visible in its subreddit's /new listing, or does it only exist on the profile?

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
post_idYes
scan_depthNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

The description adds useful behavioral context beyond the readOnlyHint by explaining that visibility is checked against the /new listing, not just profile existence. It does not disclose the meaning of scan_depth, possible listing lag, or other operational caveats, but it does communicate the core detection 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, well-structured sentence that front-loads the core purpose and defines the key terminology. Every word contributes meaning, with no filler or redundancy.

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?

The output schema and readOnly annotation reduce some burden, but significant context is still missing: scan_depth semantics, account behavior, and operational expectations around timing or listing state. Knowing only that post_id is required is insufficient for confident invocation of a tool with three parameters.

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 0%, and the description only implicitly clarifies post_id. The account and scan_depth parameters are entirely unexplained, so the agent cannot understand the impact of scan_depth or when account is needed. The description does not compensate for the missing parameter documentation.

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 states a specific verb ('Detect') and resource ('post visibility in its subreddit's /new listing vs profile'), making the tool's purpose immediately clear. It also distinguishes this from account-level checks like check_shadowban by focusing on a single post's visibility.

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 use case is implied clearly: use this when you need to detect silent removals or determine whether a post is actually visible in the subreddit listing. However, there is no explicit guidance on when not to use it or which sibling tool to prefer, leaving the agent to infer the boundary against alternatives.

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

check_shadowbanA
Read-only

Verify the account is visible to the rest of Reddit, using the OTHER configured account as an authenticated second witness.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations only declare the operation read-only, so the description adds meaningful behavioral context by revealing that the check uses the OTHER configured account as an authenticated witness. This informs the agent that the call may rely on a second account's credentials and perspective, which is useful beyond the schema.

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?

A single sentence that leads with the verb and needed outcome, with no redundant filler. The witness mechanism is included compactly.

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?

With an output schema and readOnly annotation, the return shape and safety are covered, but the parameter semantics are left unresolved and no usage boundary is given. For an account-verification tool this is a meaningful gap because calling it correctly depends on knowing which account the parameter controls.

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?

The schema provides no description and the tool description never clarifies the role of the optional account parameter—whether it names the account being checked or the witness account. Some meaning is inferable from the phrase 'Verify the account,' but the ambiguity between target and witness remains.

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 states a specific action—verify account-level visibility to Reddit—and names the method (using the other configured account as an authenticated witness). This clearly separates it from sibling check_post_visibility, which concerns posts rather than the account itself.

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 intended use is implied: call this when you need to confirm whether an account is visible to other Reddit users. However, it does not explicitly state when not to use it or direct the agent to an alternative like check_post_visibility for post-level checks.

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

get_account_statsC
Read-only

Karma breakdown, account age, and follower count for the account.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

The readOnlyHint annotation covers the read-only nature, but the description adds little behavioral context beyond what the output schema already conveys. It does not disclose important behavior such as what happens when the account parameter is null (e.g., whether it defaults to the authenticated user) or any auth/rate-limit implications.

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 short, focused phrase with no filler or redundancy. It is well-structured but still reads as a fragment rather than a complete sentence, which slightly reduces clarity.

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 only one optional parameter and an output schema, the description is close to sufficient but misses the critical default/null behavior of 'account'. It also fails to clarify the relationship to the get_karma_breakdown sibling, leaving an agent uncertain about when to pass an account versus using the current one.

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

Parameters1/5

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

The input schema has 0% description coverage and the only parameter, 'account', is undocumented. The description merely repeats the word 'account' without explaining whether it expects a username, ID, or null meaning 'current account' — so it adds no semantic value over the raw 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 states the resource and the data points returned ('Karma breakdown, account age, and follower count for the account'), so an agent can tell it is an account-stats retrieval tool. However, it lacks an explicit verb and does not differentiate it from the overlapping sibling get_karma_breakdown, so it stops short of the top 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?

No guidance is given for when to use this tool versus alternatives. The sibling get_karma_breakdown overlaps in the karma-breakdown output, but the description does not explain how to choose between them, nor when the optional account parameter should be provided.

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

get_competitor_postsB
Read-only

Recent posts in a target subreddit excluding both of our own accounts — what the rest of the market is doing.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNohot
limitNo
accountNo
subredditYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already mark the tool as readOnlyHint=true, so the safety profile is covered. The description adds a valuable behavioral detail: posts from both own accounts are excluded. However, it does not clarify how the 'sort' parameter influences the 'Recent posts' wording, or how the optional account parameter behaves, which limits transparency beyond the annotation.

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 sentence with no filler, and the core action and scope are front-loaded. The trailing purpose clause 'what the rest of the market is doing' is useful context rather than waste. A bit more operational detail would be welcome, but the structure is efficient.

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?

While the output schema exists and the read-only annotation covers side effects, the description leaves out essential invocation guidance for a 4-parameter tool with 0% schema coverage. It does not distinguish when to use this tool vs closely related siblings, and the ambiguous account parameter is undocumented. An agent could call it correctly for the simplest case but not confidently handle optional parameters or edge scenarios.

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 0%, so the description must compensate, but it only addresses the subreddit concept and the exclusion of own accounts. It does not explain sort behavior, the account parameter, or how limit applies. The plural 'both of our own accounts' also conflicts with the singular optional 'account' property, leaving the agent uncertain about what that parameter controls.

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 names a specific verb and resource — retrieving recent posts in a target subreddit — and adds a clear scope: it excludes the user's own accounts, reframing the tool as a competitor-monitoring view. This distinguishes it from siblings like get_my_posts and get_subreddit_feed without needing those tools to be named. The phrase 'what the rest of the market is doing' reinforces the intended purpose.

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 context implies use for competitive/market monitoring in a subreddit, but there is no explicit statement of when to choose this over get_subreddit_feed or get_post_details. It does not mention exclusions or alternatives, so an agent is left to infer the intended use case.

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

get_inboxB
Read-only

Unread inbox: private messages, comment replies, and username mentions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes this is a safe read operation, and the description adds useful context by clarifying the unread scope and item categories. However, it does not disclose behavior such as ordering, pagination semantics, whether 'unread' state can change, or how the account parameter affects results. Given the annotation coverage, a mid-range score is appropriate.

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 and front-loads the core concept ('Unread inbox') before listing content types. It has no filler or redundant wording, though it sacrifices behavioral detail that other dimensions require.

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?

There is an output schema and a readOnlyHint annotation, so return values and safety are partially covered. However, with zero parameter documentation in the description and no usage guidance relative to siblings, the tool definition is only minimally sufficient for an agent to call it correctly in all contexts.

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 0%, so the description must compensate for explaining the limit and account parameters. It does not mention or clarify either parameter at all. The schema provides types and defaults, but the description adds no semantic meaning beyond the structured 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 identifies the resource (inbox) and its scope (unread), and enumerates the content types included: private messages, comment replies, and username mentions. It relies on the tool name for the verb 'get', but the meaning is unambiguous and distinct enough from siblings like get_messages even without explicitly naming alternatives.

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 about when to use this tool versus siblings such as get_messages, search_mentions, or mark_read. The description implies 'unread' content, but there is no explicit statement about use cases, exclusions, or when another tool would be more appropriate.

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

get_karma_breakdownB
Read-only

Karma earned per subreddit, highest first.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the safety profile, and the description adds the grouping and ordering behavior ('per subreddit, highest first'). It does not, however, disclose whether the account parameter selects another user or defaults to the current one, which is a meaningful behavioral 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?

Seven words convey the resource, grouping, and ordering with no filler or repetition. The description is front-loaded and every word earns its place.

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 tool is simple and has an output schema plus readOnlyHint, so the description does not need to explain return values or safety. The main missing piece is the account parameter's semantics, which makes the definition incomplete for confident invocation in all cases.

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 0%, so the description needed to clarify the optional 'account' parameter, but it never mentions it. The parameter name hints at its meaning, but the description does not state whether it takes a username/ID or what null means, leaving the agent to guess.

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 resource ('karma earned per subreddit') and the sort order ('highest first'), so an agent can tell what the tool returns. It does not explicitly contrast it with sibling tools like get_account_stats, but the resource is specific enough to avoid real confusion.

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 phrasing implies this should be used when a per-subreddit karma ranking is needed, but it provides no explicit when-to-use guidance or exclusions. There are no alternatives named, so an agent is left to infer context from the tool name and description.

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

get_messagesB
Read-only

Message history from the inbox or sent box, optionally filtered to one user.

ParametersJSON Schema
NameRequiredDescriptionDefault
boxNoinbox
limitNo
accountNo
from_userNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, covering the safety profile. The description adds scoping context (inbox vs sent, optional user filter) beyond the annotation, but provides no additional behavioral details such as pagination, ordering, or authentication requirements. With annotations present, 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?

The description is a single, focused sentence with no wasted words. It is front-loaded and readable, giving the most important information 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?

While the output schema and readOnly annotation reduce the burden, the description remains incomplete for effective agent use. The ambiguous 'account' parameter and the lack of differentiation from 'get_inbox' leave important selection and invocation details unresolved.

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 0%, so the description must compensate. It clarifies 'box' and 'from_user' indirectly, but leaves 'limit' and especially 'account' unexplained. The 'account' parameter is ambiguous and could significantly affect behavior, making this insufficiently informative.

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 identifies the resource (message history), the source boxes (inbox or sent), and an optional user filter. It is a clear statement of what the tool does, though it lacks a verb and does not distinguish itself from the overlapping sibling 'get_inbox'.

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. Given that 'get_inbox' appears as a sibling and likely overlaps with the inbox capability, the absence of any differentiation or when-to-use/when-not-to-use guidance is a notable gap.

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

get_my_postsC
Read-only

The account's recent posts with score, comments, upvote ratio, and age.

Side effect: appends a metrics snapshot per post to the local snapshot file, building the over-time record the timing tools use.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
accountNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior1/5

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

The annotations declare readOnlyHint=true, but the description explicitly discloses a state-changing side effect: appending a metrics snapshot to a local file. This directly contradicts the annotation, so the behavioral transparency score must be minimal.

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, both necessary: the first states the core return value, the second flags an important side effect. No filler or redundant schema repetition.

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?

The description covers the basic purpose and the side effect, and an output schema exists. However, the readOnly contradiction and lack of parameter semantics leave an agent uncertain about invocation details, especially what account=null means and how limit behaves.

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 0%, and the description does not explain the limit or account parameters. The word 'account's' weakly ties the account parameter to the posts returned, but limit remains entirely unexplained and account=null is not clarified.

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 resource ('The account's recent posts') and lists the returned metrics (score, comments, upvote ratio, age). It is clear and distinguishable from the sibling list by name, though it does not explicitly name 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 Guidelines2/5

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

No explicit when-to-use guidance or exclusions are provided. The side-effect note hints at a relationship with timing tools, but the description does not tell the agent when to choose this over get_post_timing_data, get_post_details, or get_account_stats.

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

Deep dive on one post: metrics, full comment tree, and its recorded engagement history from previous snapshots.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
post_idYes
max_commentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

The description adds useful behavioral context beyond the readOnlyHint annotation by mentioning the full comment tree and recorded engagement history from previous snapshots. This tells the agent that the tool returns historical data and nested comments, which is not evident from annotations alone.

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?

A single concise sentence that front-loads the core action and lists the key data categories without fluff. Every phrase earns its place.

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 description plus output schema and readOnly annotation cover the main use case, but the optional account parameter is unexplained and the max_comments behavior is ambiguous given the 'full comment tree' wording. These gaps prevent it from being fully complete for correct invocation.

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 0%, so the description needs to compensate, but it only loosely maps to post_id ('one post') and max_comments ('comment tree'). It omits any explanation of the optional account parameter, and 'full comment tree' conflicts with the max_comments default of 100, which could mislead an agent.

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 identifies the resource (one post) and the kind of result (metrics, full comment tree, engagement history). It distinguishes itself from list-oriented sibling tools by emphasizing a single-post deep dive, though 'deep dive' is slightly less explicit than a verb like 'retrieve'.

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?

'Deep dive on one post' provides clear context for when to use this tool: when an agent needs detailed, historical, single-post information rather than a broader feed or listing. It does not explicitly name alternatives or exclusions, but the context is clear enough to route selection.

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

get_post_timing_dataB
Read-only

Historical post performance bucketed by day-of-week and hour posted, in the given timezone. Answers: when do my posts do best?

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
max_postsNo
timezone_nameNoAmerica/New_York

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already indicate this is a read-only operation. The description adds useful behavioral context by specifying the output grouping (day-of-week and hour) and the timezone dependency. It does not disclose details like how max_posts affects results or whether the data is limited to the authenticated account, but it does not contradict the readOnlyHint.

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, front-loaded with the core behavior and ending with a clear use-case phrasing. Every sentence earns its place and there is no redundant filler.

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 read-only analysis tool with an output schema and all-optional parameters, the description conveys the main purpose and timezone handling. However, it omits practical context such as whether results are scoped to a specific account and how max_posts changes the output, which an agent would need to know for correct invocation.

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 0%, so the description carries the burden of explaining parameters. It clarifies timezone_name ('in the given timezone') and hints at the content via 'my posts', but it does not explain the account parameter or how max_posts influences the analysis. This partial compensation is insufficient for three undocumented parameters.

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 identifies what the tool does: it returns historical post performance bucketed by day-of-week and hour posted, and directly states the question it answers. It is specific about the resource and aggregation, though it does not explicitly contrast itself with sibling tools like get_account_stats or get_subreddit_activity_pattern.

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 intended use is implied through the question 'when do my posts do best?', which tells an agent when to reach for this tool. However, there is no explicit guidance about when not to use it or which alternatives might be more appropriate for related analyses.

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

get_subreddit_activity_patternA
Read-only

When a subreddit is most active: posting volume by hour (from /new) and when its winning posts were submitted (from this week's /top).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
subredditYes
timezone_nameNoAmerica/New_York

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

With readOnlyHint=true already indicating a safe read operation, the description adds useful behavioral context by naming the exact data sources: /new for posting volume and this week's /top for winning posts. This clarifies what the output is derived from and the time window, going beyond the bare annotation.

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, tightly packed sentence with no filler. The main idea is front-loaded and the data-source qualifiers are presented clearly in a compact format.

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 description is adequate for understanding the core output, especially since an output schema exists and the annotation declares read-only behavior. However, it omits parameter semantics and usage guidance, which are needed for correct invocation in edge cases involving timezone and the optional account parameter.

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 0%, so the description carries the burden of explaining parameters, but it only references 'a subreddit' generically. It does not clarify that timezone_name affects hourly bucketing or what the optional account parameter does, leaving the agent reliant on parameter names alone.

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 indicates the tool reports when a subreddit is most active, including posting volume by hour and timing of top posts. It lacks an explicit verb like 'gets' or 'returns', and it does not differentiate itself from siblings such as get_post_timing_data, but the core purpose is unmistakable.

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 the tool is used to analyze subreddit activity patterns, but it provides no explicit guidance on when to choose this tool over alternatives like get_post_timing_data or get_account_stats. No exclusions or 'use instead' conditions are stated.

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

get_subreddit_feedB
Read-only

Current posts in a subreddit (hot, new, or rising).

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNohot
limitNo
accountNo
subredditYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, so the safe-read behavior is covered. The description adds the 'current posts' scope and sort options, which aligns with the schema enum, but it does not discuss pagination, limit behavior, account handling, or return characteristics. This is adequate given the read-only annotation.

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 no filler, and the sort options are packed into a clear parenthetical. Every word contributes to the meaning.

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 simple read-only feed with an output schema and readOnlyHint, the core invocation is inferable. However, the minimal text leaves gaps around account/limit semantics and how this tool differs from search_subreddit or get_subreddit_sidebar, so completeness is average.

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 0%, so the description should compensate, but it only repeats the sort enum ('hot, new, rising') without explaining the required 'subreddit' format, the meaning of 'limit,' or the optional 'account' parameter. The added semantic value over the schema is minimal.

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 the resource (subreddit) and scope (current posts) along with the sort modes, which makes the tool's purpose clear and distinguishes it from sidebar or post-detail siblings. It lacks an explicit verb like 'retrieve' or 'list,' but the intent is unambiguous.

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 about when to use this tool instead of siblings such as get_subreddit_sidebar or search_subreddit, nor are any conditions or exclusions given. The usage context must be inferred entirely from the name and the phrase 'current posts.'

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

get_subreddit_rulesB
Read-only

A subreddit's rules plus its posting requirements (flair, title rules) where Reddit exposes them.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
subredditYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes that this is a safe read operation. The description adds a useful conditional behavior: posting requirements are returned only where Reddit exposes them, implying variability. It does not disclose what happens when rules are unavailable, or how the account parameter affects results.

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, direct sentence with no filler. The core content is stated first, and the qualifier about Reddit's exposure limits is appended efficiently.

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 output schema and readOnlyHint cover return structure and safety, so the description does not need to explain those. It is nevertheless incomplete for a smooth call because the account parameter is undocumented and no guidance distinguishes this tool from nearby siblings. It is adequate but not thorough.

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 0%, so the description bears the burden of explaining parameters. It implicitly covers subreddit through the tool's subject matter, but the account parameter is entirely unexplained, and no format or constraints are provided for subreddit.

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 identifies the resource (a subreddit's rules) and the additional content (posting requirements like flair and title rules), which differentiates it from siblings such as get_subreddit_sidebar or get_subreddit_feed. However, it is phrased as a noun phrase rather than a verb-driven action, and 'where Reddit exposes them' introduces mild ambiguity about scope.

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 explicit guidance about when to use this tool versus alternatives. The distinction from get_subreddit_sidebar or get_subreddit_feed is only implicit through the subject matter, with no stated conditions or exclusions.

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

get_subreddit_sidebarB
Read-only

Sidebar/description, key stats, and the moderator list for a subreddit.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
subredditYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, and the description does not contradict this. The description adds the output categories but does not disclose any other behavioral details such as authentication impact, rate limits, or what happens if the subreddit does not exist. It is acceptable for a simple read operation 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?

The description is a single compact sentence that front-loads the primary resource and then lists its contents. Every word earns its place, and there is no fluff or redundancy.

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 tool is simple, the output schema exists, and the read-only annotation covers safety. The description covers the main resource and returned categories. However, the unexplained 'account' parameter and lack of usage direction leave meaningful gaps for an agent trying to call this correctly.

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 0%, so the description must compensate for the schema's silence. It only identifies 'subreddit' as the target resource and completely ignores the optional 'account' parameter. Since the schema provides no descriptions, the description leaves parameter semantics significantly under-specified.

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 resource (subreddit sidebar) and lists the returned content categories: sidebar/description, key stats, and moderator list. This distinguishes it from siblings like get_subreddit_feed and get_subreddit_rules by content. It lacks an explicit verb like 'retrieves' or 'fetches,' so it is slightly below perfect.

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 given for when to use this tool versus alternatives. The description does not mention sibling tools, exclusions, or context such as 'use this for sidebar/mod info as opposed to rules or feed.' The agent must infer usage from the tool name and content list.

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

mark_readA
Idempotent

Mark inbox messages as read. Accepts ids from get_inbox (bare or fullname).

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNo
message_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare idempotentHint=true, readOnlyHint=false, and destructiveHint=false. The description adds useful behavioral context beyond annotations by explaining the effect ('Mark inbox messages as read') and the accepted ID forms from get_inbox. It does not contradict the 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 short sentences, each earning its place: the first states the action, the second gives critical parameter provenance and format. No redundant information or 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 simple two-parameter mutation tool with annotations covering idempotency/non-destructiveness and an output schema present, the description is nearly complete. It tells the agent what IDs to pass and where they come from; the only notable gap is the account parameter, which is optional and largely self-explanatory from the schema.

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 0%, so the description must compensate. It does clarify message_ids: they come from get_inbox and can be bare or fullname. However, the optional account parameter is left entirely unexplained, and with zero schema descriptions the description only partially compensates for the missing parameter semantics.

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 states a specific verb ('Mark') and a specific resource ('inbox messages') with a clear outcome ('as read'). It differentiates this tool from the many retrieval-focused siblings by making the mutation explicit and even references get_inbox as the source of valid IDs.

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 provides clear context: use IDs obtained from get_inbox, and clarifies they may be bare or fullname. There are no true alternatives among siblings since all others are read/search operations, so explicit exclusion language is not necessary, though the description does not explicitly state when not to use it.

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

search_mentionsA
Read-only

Search all of Reddit for a username or keyword (posts only — Reddit's search does not index comments; comment mentions arrive via get_inbox).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
accountNo
time_filterNomonth

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true, and the description adds a genuinely non-obvious behavior: Reddit's search does not index comments, so results are posts only. This prevents the agent from expecting comment hits, which is valuable context beyond the annotation. It stops short of disclosing result ordering or rate-limit behavior, but the core behavioral caveat is covered.

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?

A single sentence with the action front-loaded and zero filler; the parenthetical packs the search limitation and sibling routing into a compact aside. Every clause earns its place.

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 an output schema present and readOnlyHint=true, the safety and return-value burden is covered elsewhere. The description handles scope, content type, and sibling routing, leaving only the account parameter unexpained — a real but narrow gap for a 4-parameter tool.

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 0%, so the description must carry the semantic load, but it only clarifies query (a 'username or keyword'). The account parameter is left unexpained and ambiguous — unclear whether it filters results, scopes to an account, or selects an authenticated identity — and limit/time_filter receive no added meaning beyond their self-evident schema types.

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 and resource — 'Search all of Reddit for a username or keyword' — with an explicit scope qualifier that distinguishes it from search_subreddit. The parenthetical narrows the resource to posts only and routes comment mentions to get_inbox, leaving no ambiguity about what this tool does.

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 parenthetical provides explicit routing: comment mentions 'arrive via get_inbox', telling the agent when not to use this tool and where to go instead. It implicitly contrasts with search_subreddit via 'all of Reddit', though it does not name that alternative explicitly or give selection conditions for the other companion tools.

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

search_subredditC
Read-only

Search within one subreddit for keywords.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNonew
limitNo
queryYes
accountNo
subredditYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

With readOnlyHint=true already present, the description does not need to disclose read-only behavior. However, it adds no extra behavioral context such as rate limits, auth requirements, or edge cases (e.g., empty results). It only restates the core purpose without going beyond the annotation.

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, front-loaded sentence with no redundant words. It efficiently communicates the tool's core function, earning its place without any fluff.

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?

Despite the output schema and annotations providing some structure, the description is too sparse for a 5-parameter tool with 0% schema coverage. The purpose of the 'account' parameter and any usage constraints are unclear, making the overall package incomplete for confident invocation.

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 0%, and the description only implicitly maps 'subreddit' and 'keywords' to the subreddit and query parameters. The sort, limit, and account parameters are left unexplained, so the description fails to compensate for the absent schema-level descriptions.

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 ('Search'), a resource ('within one subreddit'), and scope ('for keywords'). This clearly distinguishes it from broad Reddit search or feed retrieval tools, though it does not explicitly name any sibling alternative.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like search_mentions or get_subreddit_feed. There are no explicit exclusions, prerequisites, or conditional usage hints, leaving the agent to infer applicability from the name and snippet alone.

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

TDQS

B3.3/5.0
Disambiguation4/5

Most tools target a distinct resource (inbox, subreddit, post, karma, flairs), and the descriptions separate similar-sounding pairs like get_inbox/get_messages and get_account_stats/get_karma_breakdown. A few analytics tools overlap in subject matter but remain distinguishable by whether they focus on own posts, subreddit activity, or flairs.

Naming Consistency4/5

The set mostly follows snake_case action_noun, with get_ dominating. The deviations (mark_read, check_post_visibility, check_shadowban, search_mentions) are semantically natural but break the uniform get_ pattern, so consistency is good but not perfect.

Tool Count4/5

18 tools is slightly above the typical 3-15 range, but the server covers account monitoring, inbox, subreddit discovery, competitor analysis, and post timing—each cluster has a clear need. It feels full rather than bloated.

Completeness4/5

For a read-only reddit monitor/analytics tool, the surface covers account stats, post engagement, visibility checks, inbox handling, subreddit rules/trends, and search. Minor gaps like dedicated comment-history or all-messages management are workarounds, but no critical dead end appears.

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
    C
    maintenance
    Provides Reddit discussion volume trends, growth rates, and top trending topics for any keyword, accessible via MCP tools and Python client.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides read-only access to Reddit through 8 tools for searching, browsing, and retrieving posts, comments, and user data, compatible with any MCP client.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants read-only access to Sprinklr data via MCP, allowing querying reports, searching cases, and calling Sprinklr API endpoints.
    12
    ISC

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/goonhammer69/reddit-monitor-mcp'

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