Revuo
Server Details
Agent-callable B2B SaaS directory: capability-structured, continuously verified listings.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
14 toolscategories.listARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| categories | No |
TDQS
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.
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.
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.
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.
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.
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.overviewARead-onlyInspect
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 } }.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| tools | No | |
| surfaces | No | |
| directory | No | |
| categories | No | |
| lockedVerticals | No |
TDQS
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.
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.
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.
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.
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.
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_serverARead-onlyInspect
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', ... } }.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | MCP endpoint URL (HTTPS) to probe and score. Mutually exclusive with slug. | |
| slug | No | Product slug whose direct-probe MCP server to score. Mutually exclusive with url. | |
| refresh | No | When passing slug, force a fresh probe instead of using cached probe data. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| probe | No | |
| checks | No | |
| server | No | |
| target | No | |
| summary | No | |
| topFixes | No | |
| categories | No |
TDQS
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.
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.
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.
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.
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.
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_readyARead-onlyInspect
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 } }] }.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | Number of results to skip (for pagination). Default 0. | |
| limit | No | Maximum number of results to return per page. Caps at 50. | |
| minimumScore | No | Minimum composite agent readiness score (0-100). Higher = more agent-ready. 0 returns everything; 50 is a usable threshold. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| products | No |
TDQS
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.
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.
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.
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.
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.
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_capabilityARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| category | No | Optional category slug to scope the search (e.g. 'pim', 'tender-management', 'billing') | |
| capability | Yes | Capability slug ('salesforce-integration') OR natural-language description ('integrates with Salesforce') |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| message | No | |
| products | No | |
| matchType | No | |
| capability | No | |
| suggestedSlugs | No | |
| resolvedFeatures | No |
TDQS
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.
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.
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.
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.
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.
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.getARead-onlyInspect
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', ... } }.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Product slug (URL-friendly identifier) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mcp | No | |
| error | No | |
| product | No | |
| agentArtifacts | No | |
| agentReadiness | No |
TDQS
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.
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.
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.
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.
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.
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_setupARead-onlyInspect
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', ... } }.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Product slug (URL-friendly identifier) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| message | No | |
| product | No | |
| servers | No | |
| hasMcpSupport | No | |
| agentReadiness | No | |
| totalToolCount | No |
TDQS
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.
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.
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.
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.
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.
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.searchARead-onlyInspect
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', ... } }.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query — capability slug or natural-language description; falls back to name match | |
| category | No | Optional category slug to filter results |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| query | No | |
| products | No | |
| matchType | No | |
| resolvedCapabilities | No |
TDQS
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.
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.
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.
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.
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.
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.getARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max ranked entries to return (caps at 50) | |
| category | Yes | Category slug (e.g. 'pim-software'). Use categories.list for valid slugs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| entries | No | |
| trigger | No | |
| category | No | |
| unranked | No | |
| computedAt | No | |
| methodologyUrl | No | |
| methodologyVersion | No |
TDQS
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.
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.
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.
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.
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.
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.changesARead-onlyInspect
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', ... } }.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Product slug whose MCP tool schema to check. | |
| since | No | ISO-8601 timestamp you last cached at. Reports whether a schema change was recorded after it. | |
| server | No | The server qualifiedName your knownHash belongs to. Required with knownHash on a multi-server product. | |
| knownHash | No | The schema hash you cached earlier (products.get_mcp_setup → server.schema.hash). Exact-mismatch drift signal. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| drifted | No | |
| message | No | |
| product | No | |
| servers | No | |
| hasMcpSupport | No |
TDQS
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.
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.
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.
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.
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.
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_taskARead-onlyInspect
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[] }.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of tool results to return | |
| access | No | Optional access-class filter: 'open' (callable anonymously), 'keyed', 'account', 'commercial', or 'unknown'. Omit for all — Open tools are boosted, not required. | |
| remoteOnly | No | If true (default), only return tools from remote-capable MCP servers | |
| taskDescription | Yes | Natural language description of the task you want to accomplish |
Output Schema
| Name | Required | Description |
|---|---|---|
| task | No | |
| error | No | |
| buckets | No | |
| message | No | |
| results | No | |
| matchType | No | |
| suggestedQueries | No | |
| capabilityProducts | No | |
| resolvedCapabilities | No | |
| suggestedCapabilities | No |
TDQS
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.
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.
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.
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.
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.
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.getARead-onlyInspect
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', ... } }.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Normalized tool name (e.g. 'search_issues', 'send_message') | |
| productSlug | Yes | Slug of the product that exposes this tool (e.g. 'linear', 'github') |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| error | No |
TDQS
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.
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.
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.
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.
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.
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_nameARead-onlyInspect
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) }.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Normalized tool name (e.g. 'search', 'create_issue') |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| tools | No | |
| total | No | |
| normalizedName | No |
TDQS
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.
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.
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.
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.
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.
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.searchARead-onlyInspect
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', ... } }.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return | |
| query | Yes | Search query to find tools by name or capability. Natural-language phrases work best (semantic search). | |
| access | No | Optional access-class filter: 'open' (callable anonymously), 'keyed', 'account', 'commercial', or 'unknown'. Omit for all. | |
| remoteOnly | No | If true, only return tools available via remote (network-hosted) MCP servers |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| tools | No | |
| searchMode | No |
TDQS
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.
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.
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.
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.
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.
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
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Search 400k+ SaaS and software companies by category, technology, country, pricing, and more.
Directory of APIs, merchants, and tools AI agents can actually use.
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
Global B2B intelligence for AI agents: 35M+ companies, 1.6M sanctions, KYB pack. 78 tools.
Related MCP Servers
- AlicenseAqualityAmaintenanceGive your AI agent access to 8,400+ software tools — search, compare, get pricing, find alternatives, and discover the best tool for any use case.81614MIT
- AlicenseNot gradedqualityNot gradedmaintenanceSearch 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
- AlicenseAqualityDmaintenanceEnables AI agents to connect and interact with common business platforms like Shopify, WordPress, and Calendly via pre-built connectors for tasks such as product management, content operations, and scheduling.13MIT
- FlicenseNot gradedqualityAmaintenanceMachine-readable directory of AI products that register themselves, plus an agent-readability grader for any URL.1
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
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.
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.
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.
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.