Skip to main content
Glama
recomention

recomention

Official
by recomention

@recomention/mcp

An MCP server for recomention: ask Claude Code, Cursor or Codex "is my product recommended by ChatGPT for meeting scheduling?" and have it start a report, wait for it, and read the result — every engine's "named in n of m answers", who is recommended instead, the sources the engines read, and the fix list.

It is a thin stdio client for the public JSON API v1 at https://api.recomention.com/v1. It holds no state. It runs locally, as a process your MCP client starts. For ChatGPT, Claude.ai and other clients that connect to a remote server, use the hosted connector at https://mcp.recomention.com/mcp instead: it signs in with your recomention account (OAuth), no API key needed. Setup for each client: https://docs.recomention.com/mcp/.

Requires Node.js 20 or newer (npx comes with it).

Environment

Variable

RECOMENTION_API_KEY

required for reports

Create one at /account → Developers. Shown once. Without it, public rankings and suggested questions still work.

RECOMENTION_BASE_URL

optional

Defaults to https://api.recomention.com. An older https://www.recomention.com (or the apex, a web preview, or a local Next dev server on port 3000–3099) still works: it reaches the site's deprecated /api/v1 alias. Any other bare origin, such as the API preview Worker or a local API Worker (http://localhost:8790), uses /v1.

OPENAI_API_KEY, ANTHROPIC_API_KEY, PERPLEXITY_API_KEY, GEMINI_API_KEY, XAI_API_KEY, DATAFORSEO_API_KEY (Google AI Overview, login:password)

optional

Only for funding: "byok" (Bring Your Own Key), which needs an active Agent plan on the account. Any subset works and engines without a key are reported as skipped, but one of OpenAI, Anthropic or Gemini is required. Read from this server's environment, never from a tool argument, so your keys never pass through the model's context.

Related MCP server: ai-visibility-mcp

Install

Claude Code

claude mcp add recomention \
  --env RECOMENTION_API_KEY=YOUR_API_KEY \
  --env RECOMENTION_BASE_URL=https://api.recomention.com \
  -- npx -y @recomention/mcp

Replace YOUR_API_KEY with your key. Add --scope user to use it in every project. Check it with claude mcp list, or /mcp inside a session.

Cursor (~/.cursor/mcp.json, or .cursor/mcp.json in a project) and other JSON-configured clients

{
  "mcpServers": {
    "recomention": {
      "command": "npx",
      "args": ["-y", "@recomention/mcp"],
      "env": { "RECOMENTION_API_KEY": "<key>", "RECOMENTION_BASE_URL": "https://api.recomention.com" }
    }
  }
}

Keep a project-level .cursor/mcp.json that holds a key out of version control.

Codex

codex mcp add recomention \
  --env RECOMENTION_API_KEY=YOUR_API_KEY \
  --env RECOMENTION_BASE_URL=https://api.recomention.com \
  -- npx -y @recomention/mcp

or in ~/.codex/config.toml:

[mcp_servers.recomention]
command = "npx"
args = ["-y", "@recomention/mcp"]
env = { RECOMENTION_API_KEY = "<key>", RECOMENTION_BASE_URL = "https://api.recomention.com" }

Tools

Tool

Cost

recomention_rankings_list

free

Public AI rankings. No key needed.

recomention_rankings_get(slug, question?, engine?)

free

One ranking without answer texts: its questions numbered from 1 with each engine's usable answers, and every product named, as "named in n of m usable answers". Pass question (1-based) for that question's answers and citations, and engine with it for one engine's answers.

recomention_suggest_prompts({domain, category, description})

free

Buyer questions from fixed templates. No model call. Never names the product.

recomention_report_start({domain, description, category, plan, prompts?, engines?, funding})

spends

funding: "credits" uses one agency credit (plan FULL); funding: "byok" runs on your provider keys and needs an active Agent plan; a refusal names the plan limit it hit.

recomention_report_status(slug)

free

PENDING / RUNNING / COMPLETE / FAILED, with progress.

recomention_report_get(slug, question?)

free

The report without answer texts, with per-question counts numbered from 1. Pass question (1-based: 1 is the first) for that question's answers and citations. 0 is deprecated and also means the first.

recomention_distribution_kit(slug)

free

Markdown files built from a finished report: product, competitors, AI visibility, where to get mentioned, channel plan.

recomention_reports_list

free

Your reports, newest first.

Reading results honestly: an engine in enginesSkipped did not run (for example "provider rejected the key") — it is never an engine that left the product out. A report with simulated: true is test data.

Setup prompt

The account page's Copy setup prompt button copies this (with the site's own URL). Paste it into your agent:

Set up the recomention MCP server so you can check whether AI engines (ChatGPT, Claude, Perplexity, Gemini, Grok) recommend a product.

1. Add this MCP server to your MCP configuration (Claude Code: `claude mcp add`; Cursor: ~/.cursor/mcp.json; Codex: ~/.codex/config.toml):
   command: npx -y @recomention/mcp
   env: RECOMENTION_API_KEY=<ask me for my API key; never write it into a repository>
        RECOMENTION_BASE_URL=https://api.recomention.com
   Claude Code one-liner: claude mcp add recomention --env RECOMENTION_API_KEY=<key> --env RECOMENTION_BASE_URL=https://api.recomention.com -- npx -y @recomention/mcp
2. Restart or reload MCP servers, then call recomention_rankings_list to confirm it works.

How to use it:
- To check a product, first call recomention_suggest_prompts with its domain, category and a one-line description, show me the questions, and let me edit them.
- Starting a report spends money: an agency credit, or calls on my own provider keys (that needs my Agent plan). Always ask me before calling recomention_report_start, and say which funding it will use.
- On my own keys, any subset works, but one of OpenAI, Anthropic or Gemini is required. If the start is refused with a `limit` (plan, projects, reportsPerMonth, perDay, concurrent), tell me which limit and do not retry around it.
- Reports take several minutes. Poll recomention_report_status about once a minute; do not start a second report for the same product while one is running.
- When it is COMPLETE, call recomention_report_get and summarise: the overall score, each engine's "named in n of m answers", who is recommended instead, and the top three fixes. Quote counts as "n of m", never as yes/no.
- An engine listed under enginesSkipped did not run (for example "provider rejected the key"). Say so; never describe it as an engine that did not mention the product.
- A report with simulated: true is a test run with made-up answers. Say that plainly and do not draw conclusions from it.

Docs: https://www.recomention.com/developers

The canonical text lives in packages/core/src/config/developers.ts (setupPrompt); keep this copy in step with it.

Skills

skills/ holds agent skills in the slash-command style: copy a folder into .claude/skills/ (Claude Code) or your agent's equivalent.

  • ai-visibility-check — check one product end to end.

  • fix-list-review — turn a finished report into a prioritised, honest plan of work.

  • competitor-watch — compare who the engines name in a category, from public rankings and your reports.

  • distribution-kit — read a finished report's kit and work through its channel plan, one channel at a time.

Develop

npm install
npm test            # in-memory client against the server, fake API; metadata/version checks
npm run smoke       # spawns the stdio server against RECOMENTION_BASE_URL
npm run build       # clean dist/ (bin: recomention-mcp)
npm run smoke:pack  # packs the tarball (with pnpm), checks its contents, runs it against a fake local API

In the monorepo, run them as pnpm --filter @recomention/mcp <script>.

Run smoke --start only against a local server with RECOMENTION_MOCK=1: against a live deployment it spends a credit.

prepack empties and rebuilds dist/, so a pack or publish always ships the current sources and no test files. version lives in package.json; the server reads it at startup, and server.json (the MCP Registry entry, io.github.recomention/mcp) must carry the same number — a test fails otherwise.

This repository is published from the recomention monorepo, where development happens. Bugs and questions: issues or support@recomention.com.

Licence

MIT.

Available Tools

8 tools
recomention_distribution_kitGet the distribution kitA
Read-only
Inspect

Markdown files built from a finished report, for planning distribution: product.md, competitors.md, ai-visibility.md, where-to-get-mentioned.md (third-party pages, subreddits and videos the engines cite for a rival and not for this product) and channel-plan.md (channels ranked by those citations, each with a first task). Read README.md first. Every count is "n of m answers"; nothing in it promises traffic. Show the user every draft before anything is posted. Free.

NameRequiredDescriptionDefault
slugYesThe slug from a previous call.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare read-only and open-world access, so the extra detail is the important part: counts are framed as 'n of m answers', no traffic is promised, and drafts require human review before posting. It still doesn't say whether files are returned inline, as links, or persisted, which matters for a kit-generation tool.

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

Conciseness4/5

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

Front-loaded with the artifact list, then constraints, so little is wasted. The parenthetical for where-to-get-mentioned.md is long and slightly dense but carries real information about what the file contains.

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?

No output schema exists, so the description correctly spends its words enumerating the produced files and their contents, which is the essential return-value information. It is thin on delivery mechanics (download vs. inline) and on what happens if the report isn't finished.

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

Parameters3/5

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

The single slug parameter is fully documented in the schema ('The slug from a previous call'), and the description adds nothing about it. With 100% schema coverage, the baseline of 3 is appropriate.

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

Purpose5/5

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

States a concrete verb and artifact set: markdown files (product.md, competitors.md, ai-visibility.md, where-to-get-mentioned.md, channel-plan.md) derived from a finished report. This clearly separates it from sibling tools like recomention_report_get (returns the report) and recomention_rankings_get, since the output is a planning kit, not raw data.

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

Usage Guidelines4/5

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

Gives sequencing ('Read README.md first') and a workflow guardrail ('Show the user every draft before anything is posted'), which implies it runs after a report is finished. It doesn't explicitly say which prerequisite tool produces the slug or what to do instead when there is no finished report.

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

recomention_rankings_getGet an AI rankingA
Read-only
Inspect

One public AI ranking by slug: every product named, how many answers named it (as n of m), and the verbatim answers. Free.

NameRequiredDescriptionDefault
slugYesThe slug from a previous call.

TDQS

A4.1/5.0
Behavior4/5

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

The annotations already declare read-only and open-world behavior, while the description adds useful return-shape detail: every product named, n of m counts, and verbatim answers. It also discloses that access is free, but does not describe error behavior or permissions beyond 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?

One compact sentence front-loads the scope and then lists the return contents. Every clause contributes without padding.

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

Completeness5/5

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

For a simple read-only GET with no output schema, the description explains the lookup key, the returned payload, and the cost. Together with annotations covering safety and open-world behavior, it is complete enough for correct invocation.

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

Parameters3/5

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

The single required slug parameter already has 100% schema description ('The slug from a previous call'). The description only repeats 'by slug' and does not add format, source, or validation meaning beyond the schema, so the baseline of 3 applies.

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 ('Get'), resource ('one public AI ranking'), and lookup key ('by slug'), then enumerates the returned contents. The emphasis on 'one' distinguishes it from the sibling recomention_rankings_list without needing to name it.

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?

It implies use when you have a slug from a previous call and need a single ranking, and notes that it is 'Free'. However, it does not explicitly say when to use this versus recomention_rankings_list, nor does it state exclusions or prerequisites beyond the schema's slug hint.

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

recomention_rankings_listList AI rankingsA
Read-only
Inspect

List recomention's public AI rankings: for each category, which products the AI engines name when asked its buyer questions, month by month. Free.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds genuinely non-structured traits that matter for agent planning: the data is 'public' (no auth implied) and 'Free', which is a cost signal not present in the schema or annotations. It stops short of describing result volume, pagination, or update cadence beyond the rough 'month by month' hint.

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 front-loaded sentence with a colon that expands into the essential detail, plus a one-word cost signal at the end. Nothing repeats the title or wastes tokens.

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

Completeness4/5

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

With no output schema, the description carries the burden of explaining what comes back, and it does so at a conceptual level: per-category product mentions attributed to AI engines over time. An agent knows the shape of the result well enough to decide whether to call it, though the actual response structure and whether all categories are returned in one call remain unstated.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The description correctly frames this as an unfiltered listing and does not imply inputs that the empty schema would contradict.

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

Purpose4/5

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

The description gives a specific verb and resource ('List recomention's public AI rankings') and goes further by defining what a ranking actually is: which products AI engines name in response to buyer questions, tracked month by month. The one gap is that it never distinguishes itself from the sibling recomention_rankings_get, so an agent must infer that this is the collection-level call.

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

Usage Guidelines3/5

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

Usage is only implied: the plural/collection framing plus the sibling name recomention_rankings_get makes list-vs-get reasonably inferable, and 'Free' hints at a no-cost entry point. There is no explicit statement of when to choose this over the sibling or over recomention_reports_list, and no prerequisites are mentioned.

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

recomention_report_getGet a reportB
Read-only
Inspect

A report as JSON: the overall score, each engine's runs mentioned of runs total, competitors named instead, cited sources, the fix list and every question with every answer. Engines in enginesSkipped did not run; never describe them as not mentioning the product. simulated: true means test data. Free.

NameRequiredDescriptionDefault
slugYesThe slug from a previous call.

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds real context beyond them: enginesSkipped means no run occurred and must not be reported as a non-mention, and simulated:true flags test data. It omits what happens if the report is still generating or how large the payload can be, which keeps it at a 3.

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?

Front-loaded with 'A report as JSON' and then packed with high-value content in a single dense sentence. The trailing 'Free.' is a context-free fragment that does not earn its place, but otherwise there is no 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?

With no output schema, the description carries the return-value burden and does so well, enumerating every major field group and the two interpretation traps (enginesSkipped, simulated). Missing only lifecycle details such as error or not-ready states, which is minor for a one-parameter read.

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?

One parameter at 100% schema description coverage, so the schema already explains slug. The description adds nothing about slug format, reuse, or invalid-slug behavior, so it sits at the baseline for fully-documented schemas.

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 the resource (a report) and enumerates its contents precisely: overall score, per-engine runs, competitors named, cited sources, fix list, and Q&A. That specificity separates it from recomention_reports_list and recomention_rankings_get, though it never names a sibling explicitly and leaves the verb implicit.

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 statement of when to call this versus recomention_report_status or recomention_report_start, and no prerequisite such as 'only after the run completes.' The schema hint 'slug from a previous call' is the only workflow signal, and the dangling 'Free.' does not clarify when or why to use it.

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

recomention_reports_listList my reportsA
Read-only
Inspect

The reports in the account that owns the API key, newest first. Free.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description doesn't need to establish safety. It does add genuine behavioral context beyond them: the scope is the API key's owning account, results are ordered newest first, and 'Free' implies no credit/quota consumption. It omits pagination behavior and result size limits, which is the main remaining gap.

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

Conciseness4/5

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

Two short fragments, front-loaded with the resource and scope, then sort order and cost — no wasted words. It is arguably too terse rather than too long, so it loses a point for under-specification rather than verbosity.

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 zero-parameter list tool this covers scope, ordering, and cost, which is the minimum an agent needs to call it. However, with no output schema, the description gives no hint about what a 'report' entry contains (IDs, names, timestamps) or whether the list is truncated, leaving the agent unable to plan follow-up calls confidently.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter semantics burden and the baseline of 4 applies. The schema is empty and fully consistent with the description, which correctly implies no filtering or paging inputs are available.

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 noun phrase plus title makes clear this returns a collection of reports scoped to the account owning the API key, with an explicit sort order (newest first). It is distinguishable from siblings like report_get/report_status by being a collection listing, but it never explicitly names those alternatives or states that it returns summaries rather than full report payloads.

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 when-to-use guidance is given: nothing says to call this first to discover report IDs before using report_get, nor any precondition about needing existing reports. The only usage-adjacent information is the word 'Free', which hints there is no credit cost but doesn't tell the agent when this tool is the right choice over its siblings.

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

recomention_report_startStart a report (spends a credit or your provider keys)AInspect

Start a recomention report: the questions are asked of every engine on the plan several times each, with live web search. THIS SPENDS MONEY: funding "credits" uses one agency credit from the user's account (plan must be FULL); funding "byok" runs on the user's own provider keys from this server's environment (OPENAI_API_KEY, ANTHROPIC_API_KEY, PERPLEXITY_API_KEY, GEMINI_API_KEY, XAI_API_KEY, DATAFORSEO_API_KEY as login:password for Google AI Overview) and needs an active Agent plan on the account. Any subset of keys works and engines without a key are reported as skipped, but one of OpenAI, Anthropic or Gemini is required. A refusal names the plan limit it hit. Always ask the user before calling it. Reports take several minutes: poll recomention_report_status about once a minute.

NameRequiredDescriptionDefault
planNoFULL
brandNoDefaults to the name in the domain
domainYes
enginesNoA subset of the plan's engines
fundingYes
promptsNoQuestions to ask; the rest are written for you. None may name the product.
categoryYes
descriptionYes
idempotencyKeyNoReuse to make a retried start land on the same report

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the annotations (which only say it is not read-only, is open-world and not idempotent): it discloses that the call spends money, that "credits" consumes one agency credit and requires a FULL plan, that "byok" requires an active Agent plan and specific env keys, that engines without keys are silently skipped as "skipped", that OpenAI/Anthropic/Gemini is mandatory, that refusals name the plan limit, and that runs take several minutes. This is exactly the cost/auth/failure disclosure the annotations cannot carry.

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?

Purpose comes first, then the money warning in caps, then the funding mechanics, then the polling instruction — a sensible front-loaded order with no filler sentences. The middle funding/keys passage is dense and multi-clause, which costs a point on readability.

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 9-parameter, costly, open-world mutation with no output schema, it covers cost, plan and key prerequisites, partial-engine behavior, duration and the polling path. The one real gap is that it never says what the call hands back (presumably a report id/handle that status needs), which matters precisely because there is no output schema.

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

Parameters4/5

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

Schema coverage is only 44%, and the description compensates strongly on the most consequential params: it explains both funding enum values and their prerequisites, and clarifies that engines accepts a subset with keyless engines reported as skipped. It leaves plan (QUICK/FULL/DEEP), prompts, category, description and brand to the schema, and only mentions FULL in the context of credits funding rather than defining the tiers.

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?

Opens with a specific verb and resource ("Start a recomention report") and immediately specifies the mechanism: the questions are asked of every engine on the plan, several times each, with live web search. That mechanism cleanly separates it from siblings like recomention_suggest_prompts (writes questions), recomention_report_status (polling) and recomention_report_get (retrieval).

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

Usage Guidelines4/5

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

Gives a hard prerequisite ("Always ask the user before calling it") and the follow-up path ("poll recomention_report_status about once a minute"), plus the conditions that select each funding mode. It does not state any when-not-to-use case or name a competing tool for a similar need, so it falls short of the explicit-alternatives bar for a 5.

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

recomention_report_statusReport statusA
Read-only
Inspect

Where a report is: PENDING, RUNNING, COMPLETE or FAILED, with answers stored so far. Free.

NameRequiredDescriptionDefault
slugYesThe slug from a previous call.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and openWorldHint=true, so the safety profile is already covered. The description adds useful context beyond them: partial answers are available while status is incomplete ('with answers stored so far'), and the call is 'Free', which matters in a toolset where other calls likely consume credits. Polling behavior and return shape are still unstated.

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 compact sentence that front-loads the purpose and then enumerates the states. Nothing is wasted, though the list-then-clause construction reads slightly telegraphically.

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 one-parameter, read-only status tool with no output schema, the description supplies the key facts: the state set and the availability of partial answers. It omits what the failure payload looks like and whether the slug expires, which is a minor gap at this complexity.

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

Parameters3/5

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

Schema coverage is 100 percent and the single parameter is documented as 'The slug from a previous call.' The description adds nothing about the slug, so it neither compensates nor detracts. The baseline of 3 applies when the schema carries the parameter semantics.

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

Purpose4/5

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

States the resource and the exact state vocabulary: 'Where a report is: PENDING, RUNNING, COMPLETE or FAILED.' That is a specific status-check purpose. It does not, however, distinguish itself from the sibling recomention_report_get, which an agent could easily confuse it with.

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 framing ('Where a report is') implies this is the right tool for polling progress, but the description never says when to call it versus recomention_report_get or reports_list, and it gives no guidance on polling cadence or when to stop. Usage is inferable but not stated.

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

recomention_suggest_promptsSuggest buyer questionsA
Read-only
Inspect

Suggest buyer-intent questions to check for a product, from fixed templates. No model call and no cost. The product's own name never appears in a question. Show them to the user to edit before starting a report.

NameRequiredDescriptionDefault
countNo
domainYesThe product's domain, e.g. example.com
categoryYesWhat buyers search for, e.g. meeting scheduling
descriptionNoOne line on what the product does

TDQS

A4/5.0
Behavior4/5

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

With readOnlyHint and openWorldHint already declared, the description adds genuinely non-obvious traits: no model call, zero cost, template-derived output, and the guarantee that the product's own name never appears in a question. It doesn't describe the returned shape or default count, so not a 5.

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?

Four short sentences, front-loaded with purpose and immediately followed by the cost/determinism guarantees and the workflow instruction. No filler, every sentence carries information.

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

Completeness4/5

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

For a read-only, no-output-schema tool, the description covers purpose, cost profile, output constraint, and next step. The only material gap is how many questions come back by default or what the count parameter does to the result.

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

Parameters3/5

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

Schema coverage is 75% — domain, category, and description are documented in the schema, while count has only min/max bounds and no description. The description adds no parameter guidance beyond 'for a product', so it neither compensates for the gap nor detracts.

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?

Specific verb+resource: it suggests buyer-intent questions from fixed templates for a product. The fixed-template, no-model nature is clearly stated, which distinguishes it from report generation siblings. It doesn't explicitly name a sibling it replaces, but the pre-report positioning makes the role unambiguous.

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?

"Show them to the user to edit before starting a report" gives a clear workflow position — this runs before recomention_report_start. It gives a usage condition but no explicit exclusions or named alternatives, so it stops short of a 5.

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

Tool Schema Changelog

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

  1. 8 tool updatesv0.1.0
    • First observedrecomention_distribution_kit
    • First observedrecomention_rankings_get
    • First observedrecomention_rankings_list
    • First observedrecomention_report_get
    • First observedrecomention_report_start
    • First observedrecomention_report_status
    • First observedrecomention_reports_list
    • First observedrecomention_suggest_prompts

TDQS

A3.9/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct resource and action: public rankings (list vs get by slug), report lifecycle (start/status/get), account reports list, prompt suggestion, and distribution kit generation. The split between recomention_rankings_get and recomention_reports_list is clear from descriptions (one ranking by slug vs all account reports), so misselection risk is low.

Naming Consistency4/5

All names share the recomention_ prefix and snake_case, mostly following a resource_action pattern (rankings_list, report_start, report_status). Minor deviations: noun_noun forms (suggest_prompts, distribution_kit) and inconsistent singular/plural between report_* and reports_list.

Tool Count5/5

Eight tools cleanly cover an async pipeline plus a read-only rankings surface; nothing looks redundant or missing. Each tool earns its place as a distinct step in the workflow.

Completeness4/5

The core lifecycle is fully covered: suggest prompts, start, poll status, fetch results, build distribution assets, and list past reports. Minor gaps: no cancel/delete for a long-running or failed report, and no way to check plan/credit availability before the money-spending report_start, which agents must infer from errors.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    23 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to check whether AI assistants recommend a brand and audit a site's AI-agent readiness, providing visibility scores and specific gaps.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to run brand-visibility audits by querying multiple AI engines, generating competitive leaderboards, and identifying growth opportunities. Integrates with any MCP-capable client to measure and act on brand discoverability in AI recommendations.
    MIT