Skip to main content
Glama

Revuo

Server Details

Agent-callable B2B SaaS directory: capability-structured, continuously verified listings.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

14 tools
categories.listA
Read-only
Inspect

Lists all product categories in the directory. Use category slugs to filter product searches in products.search / products.find_by_capability. Response: { categories: [{ slug, name, description }] }. Note: this is a thin call. For a full directory briefing (subcategories, capability slugs per category, product counts, locked-vertical flags), prefer directory.overview as a single up-front call.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
categoriesNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and openWorldHint. The description adds behavioral context: it's a 'thin call' and specifies the response structure with fields slug, name, description. It does not contradict 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?

The description is three sentences, front-loaded with the main action, and every sentence adds value: purpose, relationship to other tools, response format. No redundant words.

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 zero-parameter tool, the description covers all needed context: what it does, output format, and how to use results. Output schema exists externally, so no need to detail return values further.

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 input schema has no parameters, so schema coverage is 100% (vacuously). The description adds no parameter info but explains the response shape. With zero parameters, baseline is 4.

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

Purpose5/5

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

The description clearly states the verb 'lists' and the resource 'product categories', and explicitly mentions using the returned slugs for filtering in products.search and products.find_by_capability. It distinguishes itself from sibling tool directory.overview by noting it's a 'thin call'.

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

Usage Guidelines5/5

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

The description explicitly advises when to use this tool (for a thin list) and when to prefer directory.overview (for a full briefing). It also indicates the use of slugs for subsequent product searches.

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

directory.overviewA
Read-only
Inspect

Single 'call this first' entry-point that briefs an agent on the entire Revuo directory. Returns the taxonomy with subcategories, product counts per category, locked-vertical flags (the three verticals Revuo prioritizes), capability slugs valid per category, the canonical capability-kind taxonomy (integration/compliance/format/standard/workflow), and product-bound agent surfaces (mcpServer, agentSkill, grokBot). Surfaces are a property of a product — they are NOT category slugs. Use this once at the start of a session to ground every subsequent products.search / products.find_by_capability / tools.find_for_task call. Response: { directory: { name, tagline, url, policyUrl, capabilityKinds[] }, lockedVerticals[], categories[] (each with subcategories[], productCount, isLockedVertical, capabilitySlugs[]), surfaces[] (kind, description, listedOn=product), tools: { ...tool-name hints } }.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
toolsNo
surfacesNo
directoryNo
categoriesNo
lockedVerticalsNo

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint and openWorldHint, but the description adds valuable behavioral context: it details the exact response structure, the distinction between surfaces and category slugs, and that surfaces are product-bound. No contradictions exist; the description enriches the annotated safety profile.

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, dense paragraph that front-loads the purpose and usage, then provides a structured response summary. Every sentence serves a purpose—scope, timing, content, and a correction—without fluff. It is long but justified for an entry-point tool with substantial output.

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?

Given the tool's complexity (extensive return data) and the presence of an output schema, the description nevertheless provides an explicit response shape, clarifies key semantics, and ties to siblings. An agent can confidently call it first and understand the result structure without further lookup. Nothing essential is missing.

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 has zero parameters, so by the rule, the baseline is 4. The description correctly notes 'Parameters: none' and focuses on the output, which is entirely appropriate. No parameter explanations are needed.

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

Purpose5/5

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

The description clearly states it is the 'single call this first entry-point' that 'briefs an agent on the entire Revuo directory' and lists exactly what it returns (taxonomy, counts, flags, surfaces, etc.). It distinguishes itself from siblings by naming the subsequent tools it feeds, making its 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 Guidelines5/5

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

Explicitly instructs 'Use this once at the start of a session to ground every subsequent products.search / products.find_by_capability / tools.find_for_task call.' It also clarifies a common pitfall (surfaces are not category slugs), preventing misuse and guiding correct routing to alternatives.

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

mcp.score_serverA
Read-only
Inspect

Score an MCP server against the Revuo quality rubric. Pass either a product slug (scored from cached probe data on the product's direct-probe MCP entry; fast) OR an endpoint URL (probed live). Returns: { target, server, summary { coreAwarded/Max/Percent, extensionAwarded/Max/Percent, probedAt }, categories[] (ServerMetadata, CapabilityQuality, ConfigurationUX, RevuoExtensions), checks[] (every rubric check with awarded/max/passed/evaluated/fixSuggestion/evidence), topFixes[] (failed checks ranked by points-at-stake), probe (probe diagnostics) }. Core score (max 100) is Smithery-comparable. Extension score covers Revuo-specific signals (response time today; freshness, error envelope, schema stability are not yet implemented and report evaluated=false — excluded from totals, never counted as a failure). A check with evaluated=false is a Revuo gap, not the server's fault. Errors: { error: { code: 'bad_input'|'not_found', ... } }.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoMCP endpoint URL (HTTPS) to probe and score. Mutually exclusive with slug.
slugNoProduct slug whose direct-probe MCP server to score. Mutually exclusive with url.
refreshNoWhen passing slug, force a fresh probe instead of using cached probe data. Default false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
probeNo
checksNo
serverNo
targetNo
summaryNo
topFixesNo
categoriesNo

TDQS

A4.7/5.0
Behavior5/5

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

Adds significant detail beyond annotations: explains the return structure, that extension score has evaluated=false for unimplemented checks, and error codes. No contradiction with readOnlyHint and openWorldHint 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?

The description is well-structured and concise. It front-loads the purpose, then details parameters and return value in a clear, organized manner. Every sentence adds value without redundancy.

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?

Given the tool has only 3 optional parameters and an output schema, the description is very complete. It explains the return fields, the evaluated=false nuance, and error handling. No gaps.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the mutually exclusive relationship between slug and url, and the effect of refresh. This helps the agent understand 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 clearly states the tool scores an MCP server against a quality rubric, with two distinct modes (slug for cached, url for live). This distinguishes it from all sibling tools which are about listing, searching, or retrieving products/tools/categories.

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?

Explicitly explains when to use slug vs url, including that slug is fast (cached) and url is live. The refresh parameter is also explained. However, no explicit 'when not to use' is given, but the tool is well-scoped.

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

products.find_agent_readyA
Read-only
Inspect

Find products with the highest agent readiness scores — products that are easiest for AI agents to integrate with. Sorted by compositeScore desc; supports skip/limit pagination. All readiness scores are 0-100, higher better. Calibration: <30 = not agent-ready (default minimumScore filter), 30-49 = early/limited, 50-69 = decent, 70-89 = strong, 90+ = exceptional. Ranking basis: compositeScore desc. Tier is NOT a tiebreaker here — buyer intent is technical fit, not paid placement. Every result carries { position (1-based, within the returned page), rank (0..1; 1.0 = top of this page) } so callers can merge results across tools consistently. Response: { products: [{ position, rank, slug, name, tagline, websiteUrl, tier (free|verified|featured), unverified (true when no approved vendor claim), verifiedAt (ISO; nullable), agentReadiness: { compositeScore, apiScore, protocolScore, sdkScore, integrationScore, dxScore } (each 0-100), mcp?: { hasMcpSupport, totalToolCount, serverCount } }] }.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip (for pagination). Default 0.
limitNoMaximum number of results to return per page. Caps at 50.
minimumScoreNoMinimum composite agent readiness score (0-100). Higher = more agent-ready. 0 returns everything; 50 is a usable threshold.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
productsNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations declare readOnlyHint and openWorldHint. Description adds detailed behavioral context: pagination with skip/limit, sorting by compositeScore descending, ranking behavior (position and rank within page), and the fact that tier is not a tiebreaker. This goes beyond what annotations provide, making tool behavior transparent.

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 comprehensive but somewhat lengthy. It front-loads the core purpose and then systematically covers calibration, ranking details, and response structure. Every sentence adds value, but the full response schema could potentially be omitted since an output schema is provided. Still, it's well-structured and efficient.

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?

Given the tool complexity (multiple scoring dimensions, pagination, ranking, output schema), the description is thorough. It explains the scoring calibration, ranking behavior, response structure including nested fields like agentReadiness and MCP info. No obvious gaps for an agent to use this tool correctly.

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

Parameters5/5

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

Schema covers all three parameters with descriptions. The description adds valuable calibration context for minimumScore (scores 0-100 with thresholds like <30 not agent-ready, 50+ decent, etc.), which significantly enhances parameter understanding beyond the schema's default and range info.

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

Purpose5/5

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

Description clearly states it finds products with highest agent readiness scores, sorted by compositeScore, with pagination. It distinguishes from siblings by specifying the agent-readiness focus and explaining that tier is not a tiebreaker, setting it apart from general search or ranking tools.

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

Usage Guidelines3/5

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

The description implies usage for finding agent-ready products and provides calibration thresholds for minimumScore, which helps in parameter selection. However, it lacks explicit guidance on when to use this tool versus alternatives like products.search or rankings.get. No 'when not' or alternative tool names are mentioned.

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

products.find_by_capabilityA
Read-only
Inspect

Find B2B SaaS products that support a specific capability — an integration with a named service ('salesforce-integration'), a data format ('xrechnung-support'), an industry standard ('eclass-support'), or a compliance certification ('soc2'). Accepts either a canonical capability slug or natural language; resolves to a structured capability when possible. Ranking basis: currentScore desc (computed editorial score), then name. Paid tier is NOT a ranking input — it appears only as an annotation. Every result carries { position (1-based), rank (0..1; 1.0 = top, scales linearly down by ordinal position) } so callers can merge results across tools consistently. Response: { capability, matchType (none|exactSlug|canonicalSlug|nlpFallback — exactSlug & canonicalSlug are deterministic; nlpFallback is heuristic), resolvedFeatures[], products[] }. Each product: { position, rank, slug, name, tagline, websiteUrl, tier, unverified (true when no approved vendor claim), verifiedAt, evidence[] (per-claim: featureSlug, evidenceUrl, notes, source, confidence) }. Empty: { capability, matchType, message, suggestedSlugs[] } when no capability matched, or products: [] when capability matched but no products claim it yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return
categoryNoOptional category slug to scope the search (e.g. 'pim', 'tender-management', 'billing')
capabilityYesCapability slug ('salesforce-integration') OR natural-language description ('integrates with Salesforce')

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
messageNo
productsNo
matchTypeNo
capabilityNo
suggestedSlugsNo
resolvedFeaturesNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already provide readOnlyHint and openWorldHint. The description adds detailed behavioral traits: ranking by currentScore then name, paid tier excluded from ranking, position and rank in results, match types (exactSlug, canonicalSlug, nlpFallback). This fully informs the agent of behavior beyond annotations.

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

Conciseness4/5

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

The description is comprehensive and well-structured, starting with purpose then covering ranking, response shape, and empty result handling. It is slightly verbose due to full response detail, but every sentence earns its place given the tool's complexity. Could be trimmed slightly without losing value.

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?

Given the tool's complexity (NLP resolution, ranking, varied match types), the description is complete. It covers input handling, ranking logic, response structure (with position/rank), and empty result behavior. The presence of an output schema does not reduce the need for explanation, and the description excels.

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

Parameters5/5

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

Schema coverage is 100%, so baseline is 3. The description adds substantial meaning: capability accepts natural language, resolves to structured capability; category scopes search; limit is documented. This exceeds the schema definitions and provides rich semantic context.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Find B2B SaaS products that support a specific capability.' It enumerates the types of capabilities (integration, data format, industry standard, compliance) and explains that input can be a canonical slug or natural language with resolution fallback. This specificity differentiates it from siblings like products.search or products.find_agent_ready.

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 implicitly advises when to use the tool (when finding products for a capability) and includes a note that paid tier is not a ranking input. However, it does not explicitly contrast with alternative tools or provide when-not guidance, which would strengthen the dimension.

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

products.getA
Read-only
Inspect

Get full details for a product by slug, including MCP integration data, product-bound agent artifacts (Agent Skills, Grok Bots), and agent readiness scores. Agent artifacts are a property of the product — not directory categories. Response: { product: { slug, name, tagline, description, websiteUrl, logoUrl, pricingModel, currentScore (0-100), tier (free|verified|featured), unverified (true when no approved vendor claim), verifiedAt (ISO; absent if never crawled), categories[], knownLimitations?[] (sourced weaknesses, each with evidenceUrl — weigh before recommending), alternatives?[] (neutral, score-ranked same-category options, self excluded, houseProduct disclosed) }, mcp?: { hasMcpSupport, totalToolCount, totalUseCount, servers[] }, agentArtifacts[] (kind agentSkill|grokBot, install URLs, related product slugs), agentReadiness?: { compositeScore (0-100), aiSummary } }. Errors: { error: { code: 'not_found', ... } }.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesProduct slug (URL-friendly identifier)

Output Schema

ParametersJSON Schema
NameRequiredDescription
mcpNo
errorNo
productNo
agentArtifactsNo
agentReadinessNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already include readOnlyHint=true and openWorldHint=true, and the description does not contradict them. It adds valuable behavioral context: agent artifacts are product-bound, knownLimitations carry evidenceUrl to weigh before recommending, and alternatives are neutral with houseProduct disclosed. This exceeds the annotation baseline.

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 long but deliberately structured around the response shape, front-loading the core purpose. Every sentence conveys meaning about fields or interpretation, with no fluff. The length is justified by the complexity of the returned object.

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?

The description completely specifies the response structure, optional fields, edge cases (unverified, verifiedAt absent), error format, and important caveats (knownLimitations, alternatives). For a get-by-slug read operation, nothing essential is missing.

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 input schema fully documents the sole parameter 'slug' as 'Product slug (URL-friendly identifier)', giving 100% coverage. The description adds no further semantic detail beyond the schema, so it remains at the baseline of 3.

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 precise verb and resource ('Get full details for a product by slug') and enumerates unique content (MCP integration, agent artifacts, readiness scores). It clearly differentiates from sibling search/find tools that operate by criteria rather than a single slug.

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 when to use it: when a specific slug is known and comprehensive product details are needed. However, it does not explicitly contrast with related tools like products.get_mcp_setup or products.find_agent_ready, leaving some routing ambiguity.

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

products.get_mcp_setupA
Read-only
Inspect

Get MCP server setup instructions for a product. Returns available servers, their tools, connection details, and whether they support remote (hosted) access. Each server carries a machine-usable connect block: { transport ('http'|'local'), url, mcpJson (paste-ready snippet), claudeMcpAddCommand (claude mcp add ...), installLinkUrl (a tracked link that routes through Revuo for vendor attribution, then redirects to the product) }. For remote servers use mcpJson/claudeMcpAddCommand directly; for local servers follow repositoryUrl. Each server also carries schema { hash, stable, lastChangeAt } — cache the hash and pass it to tools.changes(knownHash) later to detect tool-schema drift (rug-pull / tool-poisoning). Response when MCP support exists: { product: { slug, name, websiteUrl, tier, unverified, verifiedAt }, hasMcpSupport: true, totalToolCount, servers[], agentReadiness? }. Response when product exists but lacks MCP: { product: {...}, hasMcpSupport: false, message }. Errors: { error: { code: 'not_found', ... } }.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesProduct slug (URL-friendly identifier)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
messageNo
productNo
serversNo
hasMcpSupportNo
agentReadinessNo
totalToolCountNo

TDQS

A4.4/5.0
Behavior5/5

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

The description thoroughly details what the tool returns, including the connect block structure and error cases. It aligns with annotations (readOnlyHint, openWorldHint) and adds useful behavioral context like caching strategies, without contradiction.

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 front-loaded with the main purpose and then provides detailed yet structured information about the response. While somewhat verbose, every sentence adds value given the tool's complexity.

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?

The description covers the input, output schema (including error responses), usage scenarios, and caching advice. It is fully self-contained, leaving no critical gaps for an AI agent to interpret the tool's behavior.

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 schema coverage is 100% for the single parameter 'slug'. The description repeats the schema's description ('Product slug (URL-friendly identifier)') but does not add new semantic meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get MCP server setup instructions for a product.' It specifies the exact resource and action, distinguishing it from sibling tools like products.get or products.search by focusing on MCP setup details.

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 specific usage guidance, such as how to handle remote vs local servers and mentions caching the hash for drift detection. However, it lacks explicit comparison to sibling tools or conditions when not to use this tool.

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

products.searchA
Read-only
Inspect

Search for B2B SaaS products by name OR by capability. The query is first resolved against the canonical capability taxonomy (e.g. 'salesforce-integration', 'xrechnung-support', 'soc2'); on hit, products that claim that capability are returned. Falls back to name/slug/tagline substring search. Optional category scope. Ranking basis: currentScore desc (computed editorial score), then name. Paid tier is NOT a ranking input — tier appears only as an annotation on results. Every result carries { position (1-based), rank (0..1; 1.0 = top, scales linearly down by ordinal position) } so callers can merge results across tools consistently. Response: { query, matchType (none|exactSlug|canonicalSlug|nlpFallback), resolvedCapabilities[], products[] }. Each product carries { position, rank, tier (free|verified|featured — annotation only), houseProduct (true = built by Revuo's founder; conflict-of-interest disclosure), sponsored (true = paid Featured placement), unverified (true when the listing has no approved vendor claim; omitted otherwise — absence means an approved vendor claim, NOT crawl freshness; use verifiedAt for that), verifiedAt (ISO timestamp of last claim crawl; absent if never crawled), currentScore (0-100), compositeScore (agent-readiness 0-100, nullable), matchedCapability (true if surfaced by capability path) }. Errors: { error: { code: 'not_found'|'bad_input', ... } }.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query — capability slug or natural-language description; falls back to name match
categoryNoOptional category slug to filter results

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
queryNo
productsNo
matchTypeNo
resolvedCapabilitiesNo

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds significant behavioral detail: ranking basis, paid tier not affecting ranking, house product disclosure, unverified flag meaning, error codes, and result attributes. No contradiction with annotations.

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

Conciseness4/5

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

The description is detailed but well-structured: it starts with purpose, then explains fallback, ranking, result fields, and errors. Every sentence adds value, though it could be slightly more concise without losing clarity.

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?

Given the complexity of the tool (two search modes, many result fields, error handling), the description is thorough and covers everything needed for correct invocation. The output schema handles return structure, so the description appropriately focuses on semantics and behavior.

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

Parameters4/5

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

Schema coverage is 100%, so parameters are documented. The description adds value by explaining the query can be a capability slug or natural language, and that category is optional and filters by slug. This goes beyond the schema's basic 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 clearly states the tool searches for B2B SaaS products by name or capability, with fallback and ranking details. It distinguishes itself from siblings like products.find_by_capability by describing dual search modes, but could explicitly note when to use this vs. that sibling.

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 explains how the tool works (query resolution, fallback, ranking) but does not provide explicit when-to-use or when-not-to-use guidance, nor does it compare to sibling tools like products.find_by_capability.

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

rankings.getA
Read-only
Inspect

Get the published editorial ranking ("Best {Category}") for a category. Ordering basis: computed editorial score ONLY (verified capability coverage, evidence verification rate & freshness, agent readiness, data completeness — weights published at /api/methodology). Tier is NOT a ranking input for this tool; positions are never sold. Rankings are published snapshots (monthly schedule; manual publishes are marked) — stable between recomputes and citable. Each entry carries { position, rank (0..1), slug, name, score (0-100), breakdown (raw 0-100 per dimension), tier (annotation only), houseProduct (true = built by Revuo's founder — same formula as everyone, disclosed machine-readably), unverified, verifiedAt }. unrankedCount + unranked[] name the category products that failed an eligibility gate, with reasons. Response: { category, computedAt, methodologyVersion, methodologyUrl, trigger, entries[], unranked[] }. Errors: { error: { code: 'not_found', ... } } — also returned when a category has no published ranking yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax ranked entries to return (caps at 50)
categoryYesCategory slug (e.g. 'pim-software'). Use categories.list for valid slugs.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
entriesNo
triggerNo
categoryNo
unrankedNo
computedAtNo
methodologyUrlNo
methodologyVersionNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and openWorldHint, but description adds substantial context: ordering basis with published weights, tier not an input, positions never sold, publication schedule, stability, and entry details including houseProduct disclosure. No contradiction.

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?

Description is lengthy but well-structured, each sentence adds value. Front-loaded with purpose and key uniqueness. Could be slightly tighter but efficient for the complexity.

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?

Given output schema exists (implied by detailed response structure in description), the description fully covers return format, errors, and edge cases. Combined with full schema coverage, it is complete for a complex ranking tool.

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 describes both parameters (limit, category) with coverage 100%. Description adds 'caps at 50' for limit and references categories.list for valid slugs, providing useful clarification beyond the schema.

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

Purpose5/5

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

Description uses specific verb 'Get' and resource 'published editorial ranking for a category.' It clearly differentiates from siblings by detailing ordering basis, tier exclusion, and position non-saleability.

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?

Description provides clear context for when to use (get ranking for a category) and references categories.list for valid slugs. However, it does not explicitly state when not to use this tool vs. alternatives like products.search or directory.overview.

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

tools.changesA
Read-only
Inspect

Detect whether a product's MCP tool schema has DRIFTED since you cached it — rug-pull / tool-poisoning detection (a server silently changing a tool's description or input schema after you approved it; web search structurally cannot answer this). Pass the product slug and EITHER the schema hash you cached earlier (knownHash, from products.get_mcp_setup → server.schema.hash — the strongest signal: an exact mismatch means the tools changed) OR the ISO-8601 timestamp you cached at (since). With neither, it returns the current fingerprint to cache for next time. A product may expose MULTIPLE servers: knownHash is per-server, so pass server (a qualifiedName) with knownHash on a multi-server product — otherwise knownHash is applied only when there's exactly one server. Re-verify before trusting a previously-approved tool. Response: { product, hasMcpSupport, drifted (did ANY tracked server change vs your reference; null when no reference given), servers[] (each: qualifiedName, currentSchemaHash, schemaStable, lastSchemaChangeAt, toolCount, directlyProbed, driftedSinceKnownHash, driftedSince, advice) }. Errors: { error: { code: 'not_found'|'bad_input', ... } }.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesProduct slug whose MCP tool schema to check.
sinceNoISO-8601 timestamp you last cached at. Reports whether a schema change was recorded after it.
serverNoThe server qualifiedName your knownHash belongs to. Required with knownHash on a multi-server product.
knownHashNoThe schema hash you cached earlier (products.get_mcp_setup → server.schema.hash). Exact-mismatch drift signal.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
driftedNo
messageNo
productNo
serversNo
hasMcpSupportNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and openWorldHint, and the description adds detailed behavior: multi-server handling, error codes, response fields like drifted and advice. No contradiction.

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 well-structured with purpose first, then usage, parameters, response. It is somewhat lengthy but each part adds necessary detail for a complex tool. Could be slightly more concise.

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?

With 4 parameters, output schema, and annotations, the description covers all necessary aspects: usage scenarios, multi-server handling, error codes, response fields. No gaps identified.

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

Parameters4/5

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

Schema coverage is 100%, and the description further clarifies the conditional usage of parameters (EITHER knownHash OR since, server qualification) and the meaning of each, adding value beyond the schema.

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 starts with a specific verb and resource ('Detect whether a product's MCP tool schema has DRIFTED since you cached it'), clearly distinguishing from sibling tools like tools.get or tools.find_for_task by focusing on drift detection.

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?

It explains when to use (before trusting a previously-approved tool) and provides conditional logic for parameters (use knownHash or since, or neither to cache). It does not explicitly mention alternatives among siblings, but the use case is distinct.

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

tools.find_for_taskA
Read-only
Inspect

Find the best MCP tools for a given task. Describe what you want to accomplish (e.g. 'manage github issues', 'send slack messages', 'query a database') and get ranked results — each result is one (product, tool) pair, since same-named tools across providers are NOT interchangeable. By default only shows tools available via remote (network-hosted) servers. Audience: agent builders looking for installable MCP tools — for B2B SaaS recommendations, prefer products.search or products.find_by_capability. Ranking basis: relevance score desc (+1 per term hit, +3 for full-phrase hit); within an equal relevance tier, callable-now (Open access) + remote + healthy tools are boosted ahead — never a hard filter (a product-bound tool stays in its own money query), then productName. Paid tier is NOT a ranking input — it appears only as an annotation. Every result carries { position (1-based), rank (0..1; 1.0 = top, scales linearly down by ordinal position) } plus preflight annotations { accessModel (open|keyed|account|commercial), healthScore (0-100, nullable), readOnly, destructive, callableNow (true = usable anonymously right now), setup (one-line 'how to get access' pointer for non-Open tools) }. Response: { task, matchType (none|exactSlug|canonicalSlug|nlpFallback), resolvedCapabilities[], capabilityProducts[] (B2B SaaS products that claim the same capability — empty when matchType=none), results[] (MCP-tool-level matches), buckets { callableNow, requiresSetup } }. Each result: { position, rank, normalizedName, displayName, description, inputSchema, relevance, accessModel, healthScore, readOnly, destructive, callableNow, setup, productSlug, productName, serverQualifiedName, isRemoteCapable, tier, unverified, verifiedAt }. Empty case: { task, matchType, message, suggestedQueries[], suggestedCapabilities[] }.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tool results to return
accessNoOptional access-class filter: 'open' (callable anonymously), 'keyed', 'account', 'commercial', or 'unknown'. Omit for all — Open tools are boosted, not required.
remoteOnlyNoIf true (default), only return tools from remote-capable MCP servers
taskDescriptionYesNatural language description of the task you want to accomplish

Output Schema

ParametersJSON Schema
NameRequiredDescription
taskNo
errorNo
bucketsNo
messageNo
resultsNo
matchTypeNo
suggestedQueriesNo
capabilityProductsNo
resolvedCapabilitiesNo
suggestedCapabilitiesNo

TDQS

A4.8/5.0
Behavior5/5

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

Beyond readOnlyHint and openWorldHint annotations, describes ranking logic, filtering, result structure, empty case, and preflight annotations in detail.

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?

Long but well-structured, front-loaded with purpose and audience. All sentences are informative, though could be slightly more concise.

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?

With output schema present, description still covers all aspects: ranking, filtering, results shape, empty case, and audience. Very complete for the tool's complexity.

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

Parameters4/5

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

Schema coverage is 100%, description adds context like default values, filter meanings, and usage hints (e.g., 'Open tools are boosted'). Not all parameters need extra description.

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?

Explicitly states 'Find the best MCP tools for a given task' with detailed explanation. Distinguishes from siblings like products.search and products.find_by_capability.

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

Usage Guidelines5/5

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

Provides explicit when-to-use (task description) and when-not-to-use (B2B SaaS recommendations refer to other tools) with alternative tool names.

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

tools.getA
Read-only
Inspect

Get detailed information about a specific MCP tool, scoped to one product. Pass both the productSlug and the tool name — same-named tools across products are distinct. Response: { tool: { normalizedName, displayName, description, inputSchema, productSlug, productName, serverQualifiedName, isRemoteCapable, accessModel, healthScore, readOnly, destructive, tier, unverified, verifiedAt, position (always 1), rank (always 1.0) } }. Errors: { error: { code: 'not_found', ... } }.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNormalized tool name (e.g. 'search_issues', 'send_message')
productSlugYesSlug of the product that exposes this tool (e.g. 'linear', 'github')

Output Schema

ParametersJSON Schema
NameRequiredDescription
toolNo
errorNo

TDQS

A4.5/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. The description adds behavioral context by detailing the response structure (including fields like normalizedName, displayName, etc., and noting that position and rank are always 1.0) and the error format (with a 'not_found' code). This goes beyond annotations without contradicting them.

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 concise and front-loaded with the primary purpose. It efficiently includes the required parameters, response shape, and error format without extraneous text. Every sentence adds value.

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?

Given the tool's simplicity (2 required params, output schema included), the description is complete. Annotations cover read-only and open-world semantics. The description explains the uniqueness constraint, response fields, and possible error. There are no significant gaps for execution.

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 input schema already fully documents both parameters with examples (100% coverage). The description adds value by explaining why both parameters are needed: 'Pass both the productSlug and the tool name — same-named tools across products are distinct.' This clarifies the requirement beyond the schema descriptions.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get detailed information about a specific MCP tool, scoped to one product.' It specifies the verb 'Get' and the resource 'detailed information about a specific MCP tool'. It also explicitly distinguishes this tool from siblings by noting that same-named tools across products are distinct and that both productSlug and tool name are required.

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

Usage Guidelines4/5

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

The description implies when to use this tool: when you have a specific productSlug and tool name to retrieve detailed information. It does not explicitly exclude alternatives like tools.search or tools.list_by_name, but the requirement for exact identifiers and the mention of distinct tools across products provides sufficient guidance.

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

tools.list_by_nameA
Read-only
Inspect

List every (product, tool) pair that shares a normalized name. A disambiguation lookup — same name across providers does NOT mean the tools are interchangeable. Ranking basis: productName. Paid tier is NOT a ranking input — it appears only as an annotation. Every result carries { position (1-based), rank (0..1) } plus preflight annotations { accessModel, healthScore, readOnly, destructive }. Response: { normalizedName, total, tools[] (each: position, rank, productSlug, productName, displayName, description, inputSchema, serverQualifiedName, isRemoteCapable, accessModel, healthScore, readOnly, destructive, tier, unverified, verifiedAt) }.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesNormalized tool name (e.g. 'search', 'create_issue')

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
toolsNo
totalNo
normalizedNameNo

TDQS

A4.6/5.0
Behavior5/5

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

Description adds significant value beyond annotations: it notes ranking basis (productName), that every result carries position and rank plus preflight annotations, and details the response structure. Annotations already declare readOnlyHint=true and openWorldHint=true, and description complements without contradiction.

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 thorough but not overly verbose. Each sentence adds value, and it is front-loaded with the core purpose. Could be slightly more concise, but structure is effective.

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?

Given that the output schema exists (implied by description of response shape), the description covers all needed aspects: ranking, preflight annotations, and response field details. With one simple parameter and full schema coverage, it is complete.

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 already covers 100% of parameters with a clear description for 'name'. The description reinforces that the name is normalized (e.g., 'search', 'create_issue'), adding slight contextual meaning beyond the schema.

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 explicitly states it 'list every (product, tool) pair that shares a normalized name' with a clear verb 'list' and specific resource. It distinguishes itself as a disambiguation lookup, differentiating from sibling tools like tools.search and tools.get.

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 clearly defines the tool's context: 'a disambiguation lookup — same name across providers does NOT mean the tools are interchangeable.' It also clarifies that paid tier is not a ranking input. However, it does not explicitly state when to use this tool versus alternatives, though the purpose is clear.

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

tools.searchA
Read-only
Inspect

Search for MCP tools by capability. Each result is one (product, tool) pair — tools sharing a name across providers are NOT interchangeable, so each provider's tool is its own row with its own description and input schema. Ranking basis: semantic relevance to the query (embedding search); on the lexical fallback (searchMode='lexical') results are name-ordered and rank does NOT reflect relevance. Paid tier is NOT a ranking input — it appears only as an annotation. Every result carries { position (1-based), rank (0..1; 1.0 = top) } so callers can merge results across tools consistently, plus preflight annotations { accessModel (open|keyed|account|commercial; whether an agent can call it without becoming a customer first), healthScore (0-100, nullable), readOnly, destructive } so you can judge callability and safety BEFORE selecting. Optional access filter narrows to a single access class. Response: { searchMode ('semantic'|'lexical'), tools: [{ position, rank, normalizedName, displayName, description, inputSchema, productSlug, productName, serverQualifiedName, isRemoteCapable, accessModel, healthScore, readOnly, destructive, tier, unverified (true when no approved vendor claim), verifiedAt (ISO; nullable) }] }. Errors: { error: { code: 'bad_input', ... } }.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return
queryYesSearch query to find tools by name or capability. Natural-language phrases work best (semantic search).
accessNoOptional access-class filter: 'open' (callable anonymously), 'keyed', 'account', 'commercial', or 'unknown'. Omit for all.
remoteOnlyNoIf true, only return tools available via remote (network-hosted) MCP servers

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNo
toolsNo
searchModeNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true and openWorldHint=true, and the description adds extensive behavioral details: non-interchangeability of tools across providers, ranking basis, preflight annotations (accessModel, healthScore, etc.), and error handling. No contradiction with annotations.

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

Conciseness4/5

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

The description is detailed but well-structured: it starts with the purpose, then explains result structure, ranking, filters, output schema, and errors. While long, every sentence serves a purpose and there is no redundancy. Could be slightly more concise, but it is efficient for the information conveyed.

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?

Given the tool's complexity (4 parameters, output schema, annotations), the description is remarkably complete. It covers ranking logic, preflight annotations for callability, error codes, and how to merge results across tools. The presence of an output schema is noted, but the description still explains the output fields sufficiently.

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

Parameters4/5

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

Schema description coverage is 100% (all 4 parameters have descriptions). The description adds context beyond the schema, such as the default for access, the meaning of lexical fallback for ranking, and the effect of remoteOnly. This adds value without redundancy.

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

Purpose5/5

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

The description clearly states 'Search for MCP tools by capability' and explains each result is a unique (product, tool) pair. It effectively distinguishes from sibling tools like tools.list_by_name or products.search by focusing on capability-based semantic search.

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 explicit when-to-use context (search by capability) and explains the ranking behavior (semantic vs lexical fallback). It mentions optional filters (access, remoteOnly) but does not explicitly state when not to use this tool versus alternatives. However, the sibling context and clarity make it adequate.

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

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Give your AI agent access to 8,400+ software tools — search, compare, get pricing, find alternatives, and discover the best tool for any use case.
    8
    161
    4
    MIT
  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Search and discover 500+ tools, APIs, and services for AI agents. Browse 15 categories, get recommendations, and access structured metadata including auth methods, free tiers, and example calls.
    1
  • F
    license
    Not graded
    quality
    A
    maintenance
    Machine-readable directory of AI products that register themselves, plus an agent-readability grader for any URL.
    1
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation4/5

The namespace grouping separates products, tools, taxonomy, and rankings cleanly, and each tool's description points to its intended query mode. Some overlap exists between products.search and products.find_by_capability, and between tools.search and tools.find_for_task, but the descriptions are detailed enough that an agent can usually pick correctly. categories.list and directory.overview also overlap, though directory.overview is explicitly marked as the preferred entry-point.

Naming Consistency4/5

The set follows a predictable `resource.action` dotted convention, with all-lowercase names and snake_case within actions. Minor deviations such as `directory.overview`, `tools.changes`, and `mcp.score_server` mix noun actions and verb+object phrases, but the overall pattern remains readable and easy to guess.

Tool Count4/5

14 tools is appropriate for a read-only directory covering products, capabilities, rankings, MCP setup, and tool discovery. The count is slightly high because the search/find family has several close variants, but each variant has a distinct query style and use case.

Completeness5/5

The surface covers the domain thoroughly: taxonomy, product search and details, capability lookup, agent-readiness scoring, rankings, MCP setup, tool discovery, and schema-drift detection. Cross-references such as products.get_mcp_setup supplying the hash consumed by tools.changes close the main workflow loops without dead ends.

Resources