prospector
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@prospectorSearch Reddit for pain points in hospital tech"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
$ prospector profiles
Available profiles:
- hospital-tech
- saas-pain
$ prospector sweep hospital-tech # two-stage scrape → scored SQLite store
$ prospector report hospital-tech # evidence-bound Markdown reportprospector pulls Reddit content through the public .json endpoints, scores every
post and comment against a per-topic "pain" lexicon, stores the lot in SQLite, and renders
a report of recurring unmet needs — each one backed by real permalinks and verbatim
quotes. Point it at any niche by dropping in a YAML profile; the flagship profile hunts for
a piece of tech missing from hospitals that frontline staff wish existed. The same engine
runs as an MCP server, turning Claude into a Reddit research specialist that collects once
and reasons over the store many times.
The engine is deterministic plumbing — no LLM is required to scrape, score, or store.
Insight is the client's job: Claude via MCP, or an optional built-in --analyze report.
✨ Features
Reddit
.jsonclient — listings, in-sub search, and comment trees; descriptive User-Agent,429Retry-After backoff, on-disk response cache. Optional free OAuth (env vars) lifts the rate limit ~10×.Two-stage scrape — a broad, cheap post sweep, then comment trees fetched only for threads that clear the pain threshold or run hot. Spends the rate-limit budget where the signal is.
Deterministic pain scorer — a per-profile weighted-regex lexicon gives every item a transparent
pain_scoreplus the exact patterns that fired. No model, fully reproducible.Evidence-bound reports — a "gap" is structurally dropped unless it clears the profile's thresholds (≥N distinct items, across ≥M subreddits, from ≥K authors), each with a stored permalink + quote. The renderer cannot emit an unbacked claim.
Plug-and-play profiles — a topic is one YAML file (
subreddits,search_terms,pain_lexicon, thresholds). Swap the niche with zero code changes.MCP server (FastMCP) — 9 tools (
reddit_sweep,reddit_search,reddit_fetch_thread,reddit_query,reddit_get_evidence,reddit_stats,reddit_export,reddit_profiles,reddit_profile_get) so Claude can drive the whole loop.Optional standalone analysis —
report --analyzeadds a one-paragraph thesis per gap via any OpenAI-compatible endpoint, constrained to the fetched evidence. Degrades to stats-only if no key is set.
Related MCP server: slopweaver
🛠 Stack
Python · httpx · Typer · SQLite · PyYAML · FastMCP · (optional) any OpenAI-compatible LLM
🚀 Run
pipx install prospector-reddit # or: uvx prospector-reddit ...
# from source:
pip install -e ".[dev,analyze]"
prospector profiles # list topic profiles
prospector sweep hospital-tech # collect + score + store
prospector query hospital-tech --min-pain 4 --sort pain
prospector report hospital-tech --out reports/hospital.md
prospector report hospital-tech --analyze # + LLM thesis (needs an LLM endpoint)Higher throughput (optional, free): create a Reddit "script" app and export
REDDIT_CLIENT_ID / REDDIT_CLIENT_SECRET before sweeping — the client switches to
OAuth (100 req/min). LLM analysis reads FREELLMAPI_BASE_URL+FREELLMAPI_KEY (or the
OPENAI_* equivalents).
Use it from Claude (MCP)
Register the server in your MCP client (.mcp.json):
{ "mcpServers": { "prospector": { "command": "prospector", "args": ["mcp"] } } }Then Claude can reddit_sweep a profile, reddit_query the store, drill hot threads with
reddit_fetch_thread, and resolve citations with reddit_get_evidence — collect once,
reason many.
🧠 How it works
profiles/*.yaml ─┐
▼
RedditClient ──► two-stage scrape ──► lexicon scorer ──► SQLite store
(.json/OAuth) posts→comments pain_score │
▼
evidence-bound renderer ◄── Claude (MCP) or --analyze
(drops under-evidenced gaps)The core engine never invents anything — it only surfaces what it actually fetched, and the report renderer enforces the evidence contract, so every claimed gap is traceable to real Reddit permalinks and quotes.
🗺 Roadmap
Code complete and verified locally — 97/97 unit tests pass, all modules import, the CLI and
the full two-stage sweep run end to end, and all 9 MCP tools register. Built with a frozen
interface contract (INTERFACES.md) so the modules integrate cleanly.
Known limitation — Reddit blocks datacenter/VPN IPs. Unauthenticated
.json(and even OAuth) returns403from VPN/hosting-provider IP ranges. Run from a normal residential connection, or use OAuth, for live access. The engine handles the block gracefully (logs and continues) rather than crashing.Known limitation — results are hypotheses to validate, not validated needs. Reddit is not ground truth and venting is not a market; the medical profile makes no clinical claim.
Generate a real flagship
hospital-techreport (pending a live sweep from a clean IP).Optional semantic/embedding rerank to catch paraphrased complaints the lexicon misses.
Trend deltas — surface gaps that are rising over time.
📄 License
MIT — see LICENSE. Read-only and non-commercial by design; respects Reddit's terms, no bulk-data redistribution.
Available Tools
9 toolsreddit_exportB
Export stored items as a serialized string in json, csv or md.
Applies the same profile / min_pain filters as reddit_query and
returns the rendered payload as text (highest pain first). Useful for handing
a dataset back to the user.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| format | No | json | |
| profile | No | ||
| min_pain | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It discloses return format and sorting (highest pain first) but omits behavioral traits like read-only status, rate limits, or auth requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with core purpose. No wasted words, though could benefit from structured parameter notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters and a sibling set, the description covers purpose and output format adequately but lacks parameter explanations and output schema details. An output schema exists but isn't used in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, and the description only mentions profile and min_pain filters by reference to reddit_query, without explaining their semantics or syntax. Limits and format are left implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool exports stored items as json/csv/md and applies filters like reddit_query. It distinguishes from siblings by focusing on export rather than live querying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions usefulness for handing data to users and applies same filters as reddit_query, but doesn't explicitly state when to use vs. alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_fetch_threadB
Fetch a post's comment tree live and store the comments.
post_id may be a bare id (abc123) or a fullname (t3_abc123).
Returns {"post": <post dict or None>, "comments": [<comment dicts>], "comments_collected": N}. The post object is included when it is already in
the store (e.g. from a prior sweep/search). Comments are stored so you can
cite them as evidence afterwards.
| Name | Required | Description | Default |
|---|---|---|---|
| post_id | Yes | ||
| min_score | No | ||
| max_comments | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool fetches live data, stores comments for later evidence, and includes the post object only if already stored. However, it lacks details on side effects like overwriting behavior, rate limits, or permission requirements, leaving some transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with the main action, then parameter detail, return format, and an important note about post inclusion. It is concise enough without unnecessary fluff, though the parameter explanation could be moved to the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main function, parameter info for post_id, return format, and the side effect of storing comments. However, it does not explain error handling, interaction with stored data (e.g., overwrite vs append), or authentication, leaving some gaps for a tool with no annotations or enriched schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It adds meaning for post_id by specifying allowed formats (bare id or fullname) with examples. However, min_score and max_comments are not explained beyond their defaults, leaving their semantics unclear. Thus partial added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool fetches a post's comment tree live and stores the comments, which identifies a specific verb and resource. While it does not explicitly compare to siblings, the function is distinct from other reddit tools like reddit_search or reddit_export, so purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching comments from a specific post, but it provides no explicit guidance on when to use this tool versus alternatives (e.g., reddit_search for broader retrieval or reddit_sweep for stored data). There is no mention of prerequisites or 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.
reddit_get_evidenceA
Resolve stored items into citable evidence for the given ids.
Returns one EvidenceItem dict per known id (in the order requested) with the permalink and a trimmed verbatim quote — use this to ground any claim in a real Reddit link instead of paraphrasing. Unknown ids are skipped.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses important behavioral details: returns one dict per known id in order requested, includes permalink and trimmed quote, skips unknown ids. This conveys read-only behavior even without annotations, though no explicit safety or rate-limit info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: first for action, second for return structure, third for usage guidance. No unnecessary words, nicely front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers the tool's behavior and return format, especially given the presence of an output schema for structural details. Lacks mention of error cases or prerequisites but is sufficient for a retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description only says 'for the given ids' without explaining the format, origin, or constraints of the ids. Adds minimal value beyond the schema's type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it resolves stored items into evidence. Specifies return type (EvidenceItem), content (permalink, verbatim quote), and that it helps ground claims. However, 'stored items' is vague without context of other tools, and it doesn't explicitly differentiate from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using the tool to ground claims with real Reddit links instead of paraphrasing, providing clear when-to-use context. However, it does not mention when not to use or suggest alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_profile_getA
Return one profile's full configuration as a dict.
Includes its subreddits, search_terms, pain_lexicon (weighted regex rules), pain_threshold and the evidence thresholds that gate reported gaps.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description is the sole source of behavioral disclosure. It indicates a read operation ('Return') and lists returned fields, but does not explicitly state it is read-only, nor does it mention authentication, rate limits, or side effects. The behavior is mostly inferred, not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the purpose and immediately enumerate the returned fields. No unnecessary words or repetition; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter, no annotations, and an existing output schema, the description covers the key aspects: it specifies the return type (dict) and lists the main fields. It is nearly complete, though it could note that the output schema provides further structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage for the only parameter 'name'. The description does not specify what 'name' refers to (e.g., Reddit username, profile ID). It only says 'one profile', which is insufficient to guide the agent on valid input values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a profile's full configuration as a dict, specifying the exact resources it retrieves (subreddits, search_terms, etc.). This verb-resource pairing distinguishes it from sibling tools like reddit_profiles (listing profiles) and reddit_get_evidence (specific evidence).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing the full configuration of a specific profile, but it does not provide explicit guidance on when to use this over alternatives like reddit_profiles for listing or reddit_get_evidence for partial data. No when-not conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_profilesA
List the available topic profiles by name (e.g. hospital-tech).
A profile defines which subreddits to mine, the search terms, and the pain lexicon. Use this first to discover what can be swept or queried.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It indicates this is a read-only listing operation, but does not explicitly state non-destructiveness, authentication needs, or rate limits. The explanation of what a profile defines adds context, but behavioral specifics are minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the purpose and provide actionable usage guidance. Every sentence contributes essential information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (no parameters, simple listing) and that an output schema is available, the description covers everything needed: purpose, example, and usage context. It is fully adequate for this tool's scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the schema coverage is 100%. The description adds value by explaining that profiles are available by name and giving an example, which clarifies the output. Baseline for zero-param tools is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'available topic profiles', including an example name. While it doesn't explicitly distinguish from siblings like 'reddit_profile_get', the context of listing all profiles vs. getting a specific one is implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this first to discover what can be swept or queried', providing clear guidance on when to use this tool relative to siblings like reddit_sweep and reddit_query. It does not mention exclusions, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_queryA
Query already-stored items (no network).
Filters: profile (which sweep collected it), subreddit, min_pain
(lower bound on the deterministic pain score), contains (case-insensitive
substring over title+body). sort is one of pain|score|new|comments.
Returns hydrated item dicts including their matched lexicon patterns.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | pain | |
| limit | No | ||
| profile | No | ||
| contains | No | ||
| min_pain | No | ||
| subreddit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes return format ('hydrated item dicts including matched lexicon patterns') and behavior (querying stored items). No annotations exist, so description carries full burden; it covers read-only behavior and data retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Highly concise: one sentence for purpose, one for filters/sort, one for return type. Uses backticks for parameters, making it scannable. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers input parameters and return type adequately. Output schema exists to detail return values. Lacks error handling or performance notes, but reasonable for a query tool given sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no descriptions in schema), but the description explains each parameter (profile, subreddit, min_pain, contains, sort) with specific meanings and allowed values. Only limit lacks description, but default of 50 is implied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it queries already-stored items with no network involvement, lists specific filters and sort options. Distinguishes itself from sibling tools like reddit_fetch_thread and reddit_search that involve network calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly notes 'no network' to indicate local queries. Lists available filters and sort parameters, guiding usage. Lacks explicit comparison to alternatives or when not to use, but context from siblings helps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_searchA
Search Reddit live for a query and store the matching posts.
If subreddits is given the search is restricted to each of them (results
merged + de-duplicated); otherwise it is a site-wide search. Posts are stored
so you can drill into them later with reddit_query /
reddit_get_evidence / reddit_fetch_thread. Returns the stored posts as
dicts (id, subreddit, author, score, permalink, title, body, ...).
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | relevance | |
| time | No | year | |
| limit | No | ||
| query | Yes | ||
| subreddits | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses that posts are stored and returns a dictionary with specified fields. However, it does not mention rate limits, auth requirements, or any side effects beyond storage. Given the read-like nature, this is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two well-structured sentences. It front-loads the purpose and then provides additional details on behavior. While it could be slightly more streamlined, it contains no unnecessary words and is easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 params, output schema present), the description covers the core behavior, return value structure, and relationship to sibling tools. It explains storage and linking, and lists the return fields. No major gaps are apparent for an agent to effectively use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all parameters. It only explains 'query' and 'subreddits', but fails to describe 'sort', 'time', and 'limit' which are present in the schema with defaults but no textual explanation. This leaves a significant gap for an agent to correctly use these parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search Reddit live for a query and store the matching posts', indicating a specific verb-resource combination. It distinguishes from siblings by explaining that results are stored for later use with other tools like reddit_query, and details the subreddit restriction behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (live search and store), and mentions alternatives for drilling into stored posts (reddit_query, reddit_get_evidence, reddit_fetch_thread). It also clarifies the search scope: restricted if subreddits given, site-wide otherwise.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_statsA
Summary stats for the store (optionally scoped to one profile).
Returns totals, the post/comment split, a per-subreddit breakdown, the most frequent matched patterns, and the (min, max) created-utc date range.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the burden. It describes the return values in detail, indicating a read-only operation. However, it lacks mention of performance or rate limits, which would be beneficial for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The purpose is stated first, followed by a list of outputs. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stats retrieval tool with one optional parameter and an output schema, the description provides sufficient detail on what is returned and the scope. Missing minor details like authentication or profile existence checks, but acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 0% of parameter meaning. The description adds value by stating the profile parameter optionally scopes the stats, but does not explain its format or behavior beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns summary stats for the store, optionally scoped to a profile. It lists specific outputs (totals, split, breakdown, patterns, date range), distinguishing it from sibling tools that focus on querying or exporting data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions optional scoping to a profile, implying when to use the parameter, but does not explicitly state when to use this tool versus siblings like reddit_query or reddit_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reddit_sweepA
Run a full two-stage sweep for a profile and persist the results.
Stage 1 pulls + scores posts across the profile's subreddits and search
terms; stage 2 deep-fetches comments on the highest-pain threads. This makes
live Reddit calls and may take a while. time (hour|day|week|month|year|all),
limit (posts per sub) and max_threads override the profile defaults
when non-empty/non-zero. Returns a SweepResult summary (counts, per-subreddit
tallies, top matched patterns).
| Name | Required | Description | Default |
|---|---|---|---|
| time | No | ||
| limit | No | ||
| profile | Yes | ||
| max_threads | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool makes live Reddit calls and may take a while, and explains the two stages. With no annotations, the description carries full burden; it provides good behavioral context beyond the tool name, though does not detail auth or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient paragraphs: first explains the process stages, second covers parameter overrides and return type. Front-loads purpose, no unnecessary words, every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-stage, four parameters, output schema exists), the description fully covers the process, parameter overrides, and return summary. Mentions potential slowness, making it complete for an agent to decide and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds meaning for all four parameters: explains time values (hour|day|week|month|year|all), limit as posts per sub, max_threads as override, and profile is self-explanatory. Compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'two-stage sweep' for a profile with specific actions: pulling/scoring posts and deep-fetching comments. Uses specific verbs like Run, pulls, scores, deep-fetches. Differentiates from sibling tools by describing a comprehensive sweep.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for comprehensive profile analysis, noting live Reddit calls and potential slowness. Does not explicitly state when to use this tool vs siblings like reddit_search or reddit_fetch_thread, leaving the agent to infer based on the sweep description.
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.
9 tool updates
v0.1.0- First observed
reddit_export - First observed
reddit_fetch_thread - First observed
reddit_get_evidence - First observed
reddit_profile_get - First observed
reddit_profiles - First observed
reddit_query - First observed
reddit_search - First observed
reddit_stats - First observed
reddit_sweep
TDQS
Scored across 9 tools
Each tool serves a distinct function: export, live thread fetch, evidence retrieval, profile configuration, listing profiles, querying stored items, live search, statistics, and full sweep. No two tools have overlapping purposes, ensuring clear selection for an agent.
All tools share the 'reddit_' prefix and use lowercase with underscores. However, the verb/noun order varies: 'reddit_get_evidence' (verb_noun) contrasts with 'reddit_profile_get' (noun_verb), and 'reddit_profiles' and 'reddit_stats' are noun-only. This minor inconsistency prevents a perfect score.
With 9 tools, the server covers the full workflow of discovering profiles, collecting data (search, sweep, fetch_thread), querying stored items, evidence extraction, export, and statistics. The count feels well-scoped for a Reddit mining server.
The tool set covers core operations from configuration to export. Missing are delete/update operations for stored data or profiles, but these may be intentionally omitted given the read-only mining focus. Minor gap.
Maintenance
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Agentic Reddit/HN buying-signal detection for Claude Code, Cursor, and Windsurf via MCP.
Cloud-hosted MCP server for durable AI memory
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server to dynamically load Claude Code skills into AI agents523 npm15MIT
- AlicenseNot gradedqualityAmaintenanceA local-first MCP server that helps Claude Code prioritize your work by searching across your tools like GitHub and Slack.7 npmMIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server that connects Claude to your YouTube channel, enabling video analysis, performance tracking, comment reading, and niche suggestions.10 npmMIT
- AlicenseNot gradedqualityDmaintenanceLocal-first MCP server that gives Claude Code web search, page reading, video transcription, and image analysis — without paid API keys. Runs SearXNG + whisper.cpp natively on Apple Silicon for zero-cost, low-latency research workflows.MIT