ExchangeRebel — pay-per-call APIs for AI agents (x402 on Solana)
Server Details
180 pay-per-call APIs for AI agents: market, company, weather and dev tools, x402 on Solana.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 223 tools
Most tools are separated by domain prefixes and unusually detailed descriptions, so many are distinguishable in isolation. However, the set has real overlap and near-duplicate pairs: address_verify vs address_bundle/address_leg_nl/us, commons_get_operator vs commons_get_operator_reputation (same endpoint), and many audit/preflight twins with similar names. At 223 tools, agents will still face frequent selection ambiguity.
The surface is consistently snake_case, but the conventions drift: free checks use both `_preflight` and `_precheck`; prefixes vary across `sec_`, `secfilings_`, and `sec_alerts_`; and some names are awkward or inconsistent (`pack_get` vs `packs_catalog`, `short_short`, `funding_funding`, `tokens_token`). It remains readable but is not a predictable verb_noun pattern throughout.
223 tools is far beyond the 50+ threshold for an extreme mismatch and creates severe context and selection load. Even if the server is an API marketplace, exposing the entire catalogue as one flat tool set makes the surface impractical for an agent to navigate.
Coverage is broad across many verticals, with search/get/read/write/preflight/criteria patterns covering most domains and fairly complete lifecycle operations for several services. There are minor gaps and dead ends, such as a held GDELT enriched preflight with no purchasable enriched tool, no standalone Canada address leg, and several verticals with only one operation, but most workflows have a path.
Available Tools
223 toolsa2a_sendAIdempotentInspect
Send one 1:1 direct message through the A2A ciphertext relay: {from, to|to_handle, ciphertext (base64, <= 16384 bytes decoded), idempotency_key, client_ts, signature (Ed25519 over the a2a-msg/v1 payload)} -> delivered receipt. Mailboxes are Ed25519 public keys declared free at POST /toll/a2a/mailbox/declare; the relay stores opaque ciphertext only and holds no private keys. The payer of record must equal the sender mailbox. Undeliverable sends are refused FREE before payment. Free pre-check at POST /toll/a2a/send/preflight. Retention 30 days. 1:1 DM only. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/a2a/send.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Recipient mailbox pubkey (exactly one of to / to_handle). | |
| from | Yes | Sender mailbox: base58 Ed25519 public key (must be a declared mailbox and must equal the payer of record). | |
| client_ts | Yes | ISO 8601 sender-claimed timestamp. | |
| signature | Yes | Base64 Ed25519 signature over the a2a-msg/v1 payload (from, to, ciphertext hash, client_ts, idempotency_key). | |
| to_handle | No | Recipient handle (exactly one of to / to_handle). | |
| ciphertext | Yes | Base64 ciphertext, decoded <= 16384 bytes. The relay stores opaque ciphertext only and holds no private keys. | |
| idempotency_key | Yes | 16-128 chars; a duplicate key is answered with the original receipt, free. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag it as open-world, idempotent, non-destructive and not read-only; the description goes far beyond that by disclosing the pricing model ($0.005 USDC on Solana via x402), the exact MCP payment handshake (first call returns PaymentRequired, retry with _meta["x402/payment"]), the payer-of-record-equals-sender rule, free rejection of undeliverable sends, opaque ciphertext storage, and 30-day retention. These are precisely the operational traits an agent cannot infer from 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 core action and payload shape are front-loaded, followed by prerequisites, pricing, and the HTTP equivalent. The single dense paragraph carries a lot of value per clause, though the x402/payment mechanics and endpoint URLs could be split into a separate sentence for easier scanning.
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 paid, open-world mutation with no output schema, the description covers everything needed: prerequisites (declared mailboxes, payer identity), the payment dance, failure modes (free refusal before payment), retention, and a fallback HTTP endpoint. Nothing an agent needs to invoke it successfully 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?
Schema coverage is 100%, so baseline is 3, but the description adds real meaning: the mailbox must be a declared Ed25519 pubkey (declared at POST /toll/a2a/mailbox/declare), the payer of record must equal the 'from' mailbox, and the signature is defined over the a2a-msg/v1 payload. It reinforces rather than merely repeats the constraint of 'exactly one of to / to_handle'.
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 opens with a specific verb and resource: 'Send one 1:1 direct message through the A2A ciphertext relay', and immediately disambiguates with '1:1 DM only'. It makes the tool's scope unmistakable relative to the rest of the catalogue, where no sibling overlaps.
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 names the alternative path explicitly ('Free pre-check at POST /toll/a2a/send/preflight') and states the constraint that only 1:1 DMs are supported, plus that undeliverable sends are refused free before payment. What's missing is a clear statement of when an agent should skip this tool entirely (e.g. group/multicast cases routed elsewhere), so it falls short of a full when/when-not treatment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
access_crawlAInspect
Accessibility findings for every same-origin page in a site's sitemap (max 50 pages) in one combined stored report, priced from the sitemap before payment (x402): $0.05 per page for the first 25 pages, $0.02 per page beyond (price RULED). Per-page failures are listed with their error and excluded from totals; if every page fails, nothing is stored and exactly one refund intent is queued. Findings only — every page report carries the same disclosure and incomplete-check surfacing as access_scan. Call access_crawl_preflight first for the exact price preview for free. Price per call is the tiered sitemap total (RULED). — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/access/crawl.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Site URL; its /sitemap.xml is used. | |
| sitemap_url | No | Explicit sitemap URL (alternative to url). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses tiered pricing ($0.05 first 25 pages, $0.02 beyond), that the price is a ruled sitemap total previewable before payment, that per-page failures are listed and excluded from totals, and that an all-fail run stores nothing and queues exactly one refund intent. The x402 payment mechanics (challenge on unpaid call, retry with _meta["x402/payment"]) are also spelled out, matching the non-readonly, non-idempotent 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?
Front-loads the core purpose and cap, then layers pricing, failure handling, and payment flow in a logical order with no filler. It is dense and long, but nearly every clause carries operational information an agent needs; the trailing HTTP-equivalent note is the only mildly extraneous element.
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 paid, crawl-scoped tool with no output schema, the description covers cost model, cap, failure/refund semantics, disclosure model, preflight path, and payment handshake — everything needed to invoke it correctly and predict the failure modes. Nothing material 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?
Schema description coverage is 100% and both parameters are already documented there. The description's only added param context is the 50-page cap and the derived /sitemap.xml behavior, which the schema already states, so it neither compensates for nor adds much to the structured data. Baseline 3 applies.
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?
States a specific verb and resource — accessibility findings for every same-origin page in a site's sitemap, capped at 50 — and implicitly distinguishes it from access_scan (single page) by referencing the shared disclosure model. An agent can tell what it produces and its scope without opening the schema.
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 directs the agent to call access_crawl_preflight first for a free exact price preview, which is a clear routing rule. It also separates itself from access_scan by scope ('every same-origin page in a sitemap'). It lacks an explicit when-not-to-use statement, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
access_crawl_preflightARead-onlyIdempotentInspect
FREE preflight for access_crawl. Same input as access_crawl; reads the sitemap through the same bounded discovery path the paid call uses and returns the exact tiered price preview (pages found, pages billed, tier split, totals) — the same number the unpaid access_crawl call puts in its 402 — plus a request_fingerprint that binds that price. No page is rendered and nothing is charged. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/access/crawl/preflight.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| sitemap_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond annotations: no page is rendered, nothing is charged, no x402 challenge, and the returned number matches what the unpaid call puts in its 402. It also explains what request_fingerprint does (binds the price). The safety/behavior profile is richer than readOnlyHint/idempotentHint alone.
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?
Front-loads 'FREE preflight' and the core behavior, with zero wasted sentences. Slightly over-stuffed with em-dash asides and a raw HTTP-equivalent string, which is minor bloat but informative.
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 no output schema, the description fully documents the return payload (pages found/billed, tier split, totals, fingerprint) and the cost/side-effect story. For a read-only preflight, an agent has everything needed to call it 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 coverage is 0% and both url and sitemap_url are undocumented in the schema. The description only says 'Same input as access_crawl', which defers meaning to a sibling and does not explain the distinction between url and sitemap_url or why neither is required. That is a real gap for a tool whose only parameters are undocumented.
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?
States a specific verb+resource ('FREE preflight for access_crawl') and precisely what it returns: tiered price preview with pages found, pages billed, tier split, totals, plus a request_fingerprint. It is clearly distinguished from the sibling access_crawl (which performs the paid, rendering 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?
It gives clear context for use: call this before the paid call to preview price, and 'no payment required: call directly without payment'. The relationship to access_crawl is explicit ('same input'). It stops short of explicit exclusions (there is no 'don't use this to actually crawl' statement), so 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
access_scanAInspect
Accessibility findings for one page from automated checks in a real headless browser, $0.05 per call (x402; price RULED). Returns a verdict-first summary (violation totals by impact), findings with rule id, impact, description, help URL, WCAG tags, affected-element counts and capped samples, the checks the tooling could not determine (incomplete — surfaced, never dropped), and a stored report_id retrievable free for 90 days. Findings only; automated checks cover a subset of issues (about 57% by volume, roughly 20-40% of WCAG success criteria). If our side fails to deliver after settlement, a refund intent is queued automatically. Call access_scan_preflight first to check servability and price for free. — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/access/scan.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http/https page URL to scan (ports 80/443 only; private/loopback/link-local literals, local names and embedded credentials are refused). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare open-world, non-idempotent, non-destructive behavior; the description adds substantially more: $0.05 pricing, x402 payment handshake details including the _meta['x402/payment'] retry, an automatic refund intent on failed delivery, coverage limits (~57% of issues, 20-40% of WCAG criteria), and 90-day free report retrieval. This is exactly the kind of context structured fields cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and return shape, then limitations, then payment mechanics — a sensible ordering. It is long and repeats the x402 story in two places ('price RULED' and the parenthetical MCP/HTTP note), costing it a point, but nearly every sentence carries operational information.
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?
No output schema exists, so the description must describe returns — and it does fully: verdict-first summary, per-finding fields, capped samples, incomplete checks surfaced, and report_id retention. Combined with the payment and preflight instructions, an agent has everything needed to call it 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?
Single required parameter with 100% schema description coverage; the schema already documents the http/https-only, ports 80/443, no-private/loopback/credentialed-URL constraints. The description adds no further meaning about the url argument beyond payment metadata, so the baseline 3 applies.
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?
States a specific verb+resource ('Accessibility findings for one page from automated checks in a real headless browser') and scopes it to a single page, which implicitly separates it from the access_crawl sibling. An agent can tell what it does and what it does not cover without opening the schema.
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 prescribes sequencing ('Call access_scan_preflight first to check servability and price for free') and sets boundaries ('Findings only; automated checks cover a subset'). It does not name access_crawl as the alternative for multi-page work, so the routing guidance is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
access_scan_preflightARead-onlyIdempotentInspect
FREE preflight for access_scan. Same URL input; returns servability, the fence verdict, and the $0.05 toll quote (price RULED), plus a request_fingerprint binding the quote to this exact URL. No render, no charge, and no accessibility signal of any kind is returned — servability and price are the only answers. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/access/scan/preflight.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (which only cover read-only/idempotent/open-world safety) by disclosing the cost model (free, no x402 challenge), the absence of side effects (no render, no charge), and the exact shape of the response including the fingerprint that binds the quote to the URL. This is precisely the behavioral context annotations cannot convey.
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?
Front-loaded with the key fact (free preflight) and the return contents, which is good. However, the free/no-charge message is repeated three times ('FREE,' 'no charge,' 'no payment required... this tool is free'), and the HTTP-equivalent line adds length of marginal value to an MCP caller.
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 one-parameter, no-output-schema tool, the description covers return values, cost, and side-effect absence, so an agent can call it confidently. The remaining gap is that the vocabulary of the response ('fence verdict,' 'servability') is never defined, leaving the agent unsure what values to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% — the single `url` parameter has no description. The description partially compensates by noting 'same URL input' as access_scan and that the fingerprint binds the quote to 'this exact URL,' implying the URL is the scan target, but it gives no format, scheme, or normalization guidance.
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?
States a specific verb and resource ('FREE preflight for access_scan') and enumerates exactly what comes back: servability, fence verdict, $0.05 toll quote, and request_fingerprint. It is clearly distinguishable from the sibling access_scan and from access_crawl_preflight by naming the parent tool it preflights.
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?
Tells the agent to call it directly without payment ('no x402 challenge; this tool is free') and signals the boundary with access_scan by stating 'no accessibility signal of any kind is returned.' It stops short of explicitly saying 'use access_scan when you need the actual accessibility result,' but the implication is strong and unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
adc_shortlistAInspect
Ranked shortlist over the Agent Data Core store: service records filtered by category (exact match), maxPriceUsd (keeps services carrying at least one paid endpoint priced at or under the bound), verifiedOnly (keeps only verified verification states), and limit. Returns the matching full service records in deterministic id order. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/datacore/shortlist.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum records to return (the store clamps to its own bounds). | |
| category | No | Exact category match filter. | |
| maxPriceUsd | No | Price ceiling: at least one paid endpoint must be priced at or under this bound. | |
| verifiedOnly | No | Keep only services in a verified verification state. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds essential behavior beyond the annotations: cost is $0.01 per call, payment is USDC on Solana via x402, MCP callers should first trigger a PaymentRequired challenge and retry with payment metadata, and results are returned in deterministic id order. This is exactly the operational context an agent needs for a paid data query.
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 dense but front-loaded: purpose and filters come first, followed by return behavior, payment details, and HTTP equivalent. Every sentence carries relevant information, though it could be slightly tighter.
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 paid query tool with four optional parameters and no output schema, the description covers filtering, return ordering, cost, and the x402 payment handshake. It does not detail the fields in the returned full service records, but that is not essential for correct invocation.
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%, so all four parameters are already documented in structured data. The description restates the filter meanings, including that maxPriceUsd matches services with at least one paid endpoint at or under the bound, but does not add materially 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 clearly states a specific verb and resource: a ranked shortlist over the Agent Data Core store of service records with category, price, verification, and limit filters. It is easy to distinguish from most siblings by resource and operation, though it does not explicitly name an alternative tool it should not be confused with.
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?
Usage is implied by the description: call this to get a filtered, ranked shortlist of services. The payment flow is explained, but there is no explicit when-to-use vs when-not-to-use guidance or named alternative such as a full snapshot or verification-report tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
adc_snapshot_descriptorARead-onlyIdempotentInspect
FREE snapshot descriptor for the Agent Data Core store: returns only the snapshot descriptor — generated_at, service count, and byte size of the exported snapshot document. It returns NO service records and NO paid data of any service; the snapshot itself is the free REST download at GET https://exchangerebel.com/toll/datacore/snapshot. Free — no payment required, call it directly.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive, so the description's added value is the cost and scope profile: free, no payment, and deliberately limited to metadata with zero paid or record data returned. That is useful context an agent would otherwise have to infer, though response shape/pagination is not discussed (no output schema exists to cover it).
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 scope statement is front-loaded, but the free/no-payment point is repeated three times ('FREE', 'Free — no payment required', 'no paid data'), and the em-dash clauses make the second sentence dense. It is compact but contains clear 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?
With no parameters and no output schema, the definition still names the exact returned fields and points to the external endpoint for the full document, which is what an agent needs before calling. Only the response encoding/format of the descriptor is left unspecified.
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 takes zero parameters and the schema is fully closed (additionalProperties: false), so there is nothing for the description to disambiguate. Baseline for a 0-param tool applies.
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?
States a specific verb and resource: returns only the snapshot descriptor with its three fields (generated_at, service count, byte size). It explicitly carves out what it does NOT return (no service records, no paid data), which separates it from the adc_* family, though no sibling tool is named directly.
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?
Tells the agent when this applies (free descriptor, no payment) and when it does not (it is not the snapshot itself — that is the REST GET URL), plus 'call it directly' removes any preflight ambiguity. It stops short of naming which adc_* tool to use when actual records are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
adc_verification_reportAInspect
Deep verification report for one service in the Agent Data Core store: its verification state and evidence, health, delivery proof, demand, scorecard, endpoint counts, and record-level sources, verbatim from the store. An unknown service id is answered free, before payment. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/datacore/report.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | The service id (toll prefix slug) to report on. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: the $0.05 per-call price, USDC-on-Solana via x402, the exact MCP flow (call unpaid to receive the PaymentRequired challenge, retry with _meta["x402/payment"]), and the fact that unknown service ids are answered free before payment. This also explains why readOnlyHint is false despite the read-like nature of the tool, so the flags are not contradicted.
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?
Front-loads what the report contains, then the pricing and payment flow, then the HTTP equivalent — a sensible order with no filler. The x402 retry instruction and HTTP endpoint are procedural but earn their place for an agent that has to actually pay and call it.
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 single-parameter, no-output-schema tool, the agent knows what it returns, what it costs, how to satisfy payment, and what happens on a bad id. The remaining gap is comparative positioning against the other adc_* tools, which would help an agent choose correctly in a crowded namespace.
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 schema already defines service_id as the toll prefix slug, so the description does not need to restate that. It does add value by specifying behavior for an unknown service_id (answered free, before payment), which is semantic information about the parameter the schema cannot express.
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?
States a specific verb and resource ('Deep verification report for one service in the Agent Data Core store') and then enumerates the report's contents (verification state/evidence, health, delivery proof, demand, scorecard, endpoint counts, record-level sources). That enumeration is what separates it from list-style siblings like adc_shortlist and adc_snapshot_descriptor without opening their schemas.
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?
Usage is only implied: you call it for deep diligence on a single service. The description spends most of its second half on payment mechanics rather than telling the agent when to pick this over adc_shortlist or adc_snapshot_descriptor, and there are no explicit exclusions. The free-unknown-id note gives a useful edge-case rule, but no selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_bundleAInspect
Address-validation bundle at $0.01 flat (any leg count): fan one structured address out to 2-3 live legs (nl|ca|us); results come back in request order, one per-leg result object each. A 1-leg request refuses free — use the leg tool instead. Canada is available inside this bundle only. Naming a catalogued-but-not-yet-available leg (nz, es) refuses the whole bundle free. Free pre-check: POST /toll/address/bundle/validate/preflight. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/address/bundle/validate.
| Name | Required | Description | Default |
|---|---|---|---|
| legs | Yes | 2-3 distinct live leg codes. | |
| address | Yes | Structured address components: street_number, street_name, locality, postcode required; state required when the legs list includes us. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations: flat $0.01 pricing, refusal semantics that are free, result ordering (one per-leg object in request order), and the x402 payment dance (call without payment to get the challenge, retry with _meta["x402/payment"]). The one slight tension is readOnlyHint=false on what is semantically a validation read, but that is plausibly justified by the payment side effect, not a real 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?
Front-loaded with the core purpose and price, then constraints, then payment mechanics. Dense but every sentence carries information; the payment/HTTP-equivalent block is the longest and least essential to tool selection.
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 no output schema, the description covers return shape (one per-leg object, request order) and all refusal/pricing behavior; with an open-world paid tool, the payment flow and preflight are exactly what an agent needs. Nothing material 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?
Schema coverage is 100%, so baseline is 3; the description adds real meaning by explaining that legs must be 2-3 (reinforcing minItems) and that a 1-leg call is rejected, plus that extra state is needed for the us leg. It stops short of explaining any other field, but the schema carries that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('fan one structured address out to 2-3 live legs') with the exact leg codes, and implicitly separates itself from address_leg_nl/address_leg_us via the 1-leg refusal guidance. An agent can tell exactly what this does and how it differs from the single-leg 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?
Explicit routing: 1-leg requests refuse — 'use the leg tool instead'; Canada is only available in this bundle; unavailable legs (nz, es) refuse the whole bundle; free pre-check endpoint given. When-to-use, when-not, and alternatives are all stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_leg_nlAInspect
Netherlands address-validation leg (BAG via PDOK Locatieserver, CC BY 4.0) at $0.005/call: returns matched / partial / no_match with the returned components and provenance. No confidence field. Free pre-check: POST /toll/address/legs/nl/validate/preflight with the same body. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/address/legs/nl/validate.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Structured address components: street_number, street_name, locality, postcode required; unit, street_type, state optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses what annotations cannot: exact price ($0.005/call), the x402 payment handshake (call unpaid to receive PaymentRequired, retry with _meta["x402/payment"]), a free preflight alternative, data provenance/license, and an explicit negative ('No confidence field'). This also explains why readOnlyHint=false despite a query-shaped operation — the call has a monetary side effect.
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?
Front-loaded with purpose, then output contract, then the payment mechanics that determine whether the call will fail. Slightly wasteful: '$0.005' appears twice and the HTTP-equivalent URL plus the base URL both restate the same endpoint identity.
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?
No output schema exists, and the description supplies the return contract (status vocabulary, returned components, provenance, absence of confidence). It also covers cost, payment path, and a free preflight. What is missing is failure/error behavior and any rate limit on the paid endpoint.
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 nested address object is already documented as street_number/street_name/locality/postcode required with unit/street_type/state optional. The description adds only that the preflight takes 'the same body', with no extra format, normalization, or postcode rules.
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?
States a specific verb+resource: Netherlands address validation against BAG via PDOK Locatieserver, and names the outcome vocabulary (matched / partial / no_match). The 'nl' scope implicitly separates it from address_leg_us, address_bundle and address_verify, but it never explicitly contrasts with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one concrete usage routing rule: a free pre-check endpoint to hit before spending money. It does not say when to choose this leg versus address_verify, address_bundle, or address_leg_us, leaving the agent to infer that routing from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_leg_usAInspect
United States address-validation leg (U.S. Census Bureau Census Geocoder) at $0.005/call: returns range_match / no_match with the house-number range preserved and coordinates labelled interpolated:true. A range match is not an existence verdict. address.state is required. Free pre-check: POST /toll/address/legs/us/validate/preflight. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/address/legs/us/validate.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Structured address components: street_number, street_name, locality, state, postcode required; unit, street_type optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations convey almost nothing useful here (readOnlyHint false, openWorldHint true), so the description carries the load and does: it discloses pricing per call, the exact x402 payment handshake (call without payment to receive PaymentRequired, retry with _meta['x402/payment']), and the interpolation flag on returned coordinates. That is materially more than the annotations provide.
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?
Front-loaded with purpose and price, then scope caveat, then payment mechanics — a sensible order with no filler. It is dense, and the payment/HTTP-equivalent tail is long, but every clause carries operational information.
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 no output schema, the description must carry the return semantics, and it does partially (range_match/no_match, preserved house-number range, interpolated:true coordinates). The full response shape and error behavior are still unspecified, which for a paid call is a minor gap.
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% and the single nested address object documents every component, so baseline is met. The description adds only that address.state is required, which is already in the schema's required list, so there is little value beyond the structured field.
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?
States a specific verb+resource (US address-validation leg via Census Geocoder) and pins the scope to the United States, which is what separates it from address_leg_nl and address_bundle. It also names the exact return vocabulary (range_match / no_match) so the agent knows what it is buying.
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?
Gives clear operating context: a free preflight endpoint to call first, and the interpretive caveat that a range match is not an existence verdict. It stops short of naming the sibling to use for a true existence verdict (address_verify), so the agent must infer the alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
address_verifyAInspect
Verify an address in 1-4 countries. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/address/verify.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | object (required) - structured components {unit?: string, street_number: string (required), street_name: string (required), street_type?: string, locality: string (required), state?: string, postcode: string (required)} | |
| country | No | string - one country code (AU, US, CA, FR); supply either country or countries, not both | |
| countries | No | array of strings - 1 to 4 country codes; each additional country beyond the first adds $0.005 to the call price |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond annotations: exact pricing ($0.01/call, $0.005 per extra country), the x402/USDC-on-Solana payment path, the _meta["x402/payment"] retry convention, and an HTTP fallback. Annotations cover safety flags but say nothing about cost or the two-step payment dance, which the description supplies.
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?
Front-loads the purpose in the first clause and then packs price, payment mechanics, and HTTP equivalent into two more sentences with no filler. Dense but every sentence carries operational weight.
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?
There is no output schema, yet the description never indicates what a verification verdict looks like (normalized address? deliverability flag? per-country results?). Payment and endpoint details are complete, but return-value expectations and sibling disambiguation are missing for a paid tool with a nested-object input.
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 the nested address object and country/countries parameters are already fully documented in the schema. The description only echoes the 1-4 country limit and omits the 'supply either country or countries, not both' exclusivity that the schema carries. Baseline 3 applies.
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?
States a specific verb and resource ('Verify an address') plus scope ('in 1-4 countries'), so the action is unambiguous. It does not, however, distinguish itself from nearby siblings such as address_bundle, address_leg_us, or address_leg_nl.
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?
Gives clear operational guidance for the payment flow (call without payment to receive the PaymentRequired challenge, then retry). It never says when to choose this over address_bundle or the single-leg address tools, leaving sibling selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anomaly_batchAInspect
Batch anomaly detection: 1..100 series (each 8..10,000 points, <= 100,000 points total), flat $0.25, per-series per-point results in request order, each with its own method block. Free pre-check at POST /toll/anomaly/batch/preflight. $0.25 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/anomaly/batch.
| Name | Required | Description | Default |
|---|---|---|---|
| series_list | Yes | array (required) - 1..100 detect bodies, each {series, timestamps?, sensitivity?}; <= 100,000 points total |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Far beyond the annotations, it discloses flat $0.25 pricing, the settlement rail (USDC on Solana via x402), the exact payment handshake required on MCP, the result ordering guarantee, and hard input limits. These are exactly the traits an agent needs before committing a paid call. No statement conflicts with the readOnlyHint=false / destructiveHint=false 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?
One dense paragraph that front-loads purpose and limits, then pricing, then the payment mechanics — a sensible order for an agent deciding whether to call. It is slightly run-on with the HTTP URL and preflight path jammed into the tail, but no sentence is filler.
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?
There is no output schema, and the description compensates by stating the return shape (per-series, per-point, request order, each with its own method block). Combined with the payment protocol and input caps, an agent has everything needed to call this correctly on the first attempt.
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% and the nested series_list already documents {series, timestamps?, sensitivity?} plus the 1..100 and 100,000-point caps, so the description largely restates structured data. It adds a little value by tying parameters to output ('per-series per-point results in request order'), but says nothing about what sensitivity levels mean or what timestamps are used for.
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 opens with a specific verb+resource ('Batch anomaly detection') and immediately quantifies scope (1..100 series, 8..10,000 points each, <=100,000 total), which implicitly distinguishes it from the single-series sibling anomaly_detect. It never names anomaly_detect explicitly, so the routing contrast is inferred from the 'Batch' framing rather than stated.
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 gives concrete operational context: a free pre-check endpoint exists, and the MCP payment flow is spelled out (call without payment to receive the PaymentRequired challenge, then retry with the payment at _meta['x402/payment']). What it lacks is any explicit when-to-use-this-vs-anomaly_detect guidance or note about when the preflight should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
anomaly_detectAInspect
Anomaly detection for one numeric time series (8..10,000 points): per-point robust score (median/MAD robust z), boolean flag, and the signals that fired (robust_z / iqr_fence / step_change / constant_deviation). Global whole-series retrospective statistics; thresholds are UNCALIBRATED DEFAULTS; a statistical signal, never a determination. Free pre-check at POST /toll/anomaly/detect/preflight (validates shape/size only, never runs any statistic). $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/anomaly/detect.
| Name | Required | Description | Default |
|---|---|---|---|
| series | Yes | array (required) - the numeric series to score, in order (8..10,000 finite numbers) | |
| timestamps | No | array - optional opaque labels, exactly series.length elements, echoed verbatim per point; never parsed or used in computation | |
| sensitivity | No | string - threshold preset: relaxed flags fewer, standard is the default, strict flags more |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing that thresholds are uncalibrated defaults, that output is a statistical signal and never a determination, that scoring is whole-series retrospective, and the full cost/payment mechanism ($0.01 USDC on Solana via x402, retry at _meta["x402/payment"]). No claim conflicts with readOnlyHint=false / destructiveHint=false; the absence of any mutation behavior is consistent with a paid compute call.
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?
Front-loads purpose and returned fields before caveats, then payment mechanics, so the agent gets the essentials first. Dense but almost every clause carries information; the HTTP-equivalent URL and payment retry instructions add length that a caller may need but that dilutes the core statement.
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 no output schema, the description compensates by naming the exact return constituents (per-point robust score, boolean flag, fired signals). It also covers cost, payment retry, preflight, and interpretation caveats, so an agent has everything needed to call it and interpret the result without guessing.
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 the baseline is 3; the description adds real meaning by warning that sensitivity presets are uncalibrated defaults and by framing the point-count range as a hard validity constraint. It does not elaborate on the relaxed/strict direction beyond what the enum description already states, so it edges above baseline rather than fully owning 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?
States a specific verb and resource ('Anomaly detection for one numeric time series') with explicit bounds (8..10,000 points) and enumerates what it returns (per-point robust score, boolean flag, fired signals). The 'one numeric time series' scope implicitly separates it from the sibling anomaly_batch, and the named methods (median/MAD robust z, iqr_fence, step_change) make the operation 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?
Gives clear operating context: global whole-series retrospective statistics, free shape/size-only preflight before paying, and the exact x402 payment retry flow. It does not explicitly say when to prefer this over anomaly_batch or when a series is too short/streaming-inappropriate, so it stops short of full alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apidiff_criteriaAInspect
The published criteria for the Breaking-Change Diff service (breaking-change-diff/v1): the parsing rules, the seventeen diff rules with their outcome tokens, the NOT-ASSESSABLE list, and the pinned public test corpus identity. Read these before paying for a diff — every report is reproducible from them. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/apidiff/criteria.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden and does reasonably well: it discloses that no payment/x402 challenge applies, that the content is a static published criteria set, and that reports are reproducible from it. It exposes the HTTP equivalent (GET endpoint), reinforcing that this is a side-effect-free read. It doesn't discuss caching, versioning behavior, or response size, but the safety and cost profile are clear.
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 core content list is front-loaded and specific, and the usage warning follows immediately. The payment clause is slightly repetitive — 'no payment required: call directly without payment (no x402 challenge; this tool is free)' says the same thing three ways — which is the main trimming opportunity.
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 no output schema and no parameters, the description must tell the agent what it will receive, and it does: a section-by-section inventory of the criteria document plus its versioned identity (breaking-change-diff/v1) and the pinned corpus. An agent knows exactly what it is getting and why before calling.
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 takes zero parameters, so the baseline of 4 applies and there is nothing for the description to compensate for. Schema coverage is 100% with an empty properties object, consistent with the description's no-argument framing.
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 names the exact resource: the published criteria for the breaking-change-diff/v1 service, and enumerates its sections (parsing rules, seventeen diff rules with outcome tokens, NOT-ASSESSABLE list, pinned test corpus identity). That is far more specific than a tautology, though it is phrased as a noun phrase rather than an explicit verb like 'returns'/'fetches'. It is clearly separable from the sibling apidiff_diff, which produces reports rather than the rules behind them.
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 gives concrete timing guidance: 'Read these before paying for a diff', which implicitly routes the agent to apidiff_diff after reading. It also states the tool is free and needs no payment, an important discriminator in a family where the downstream diff presumably costs money. It does not explicitly name apidiff_diff or apidiff_precheck as the alternatives, so it stops short of a full when/when-not statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apidiff_diffAInspect
$0.02 USDC on Solana per document pair — the payment buys one signed breaking-change diff report for one pair of submitted documents: counts per published token and located findings for every element the rules of breaking-change-diff/v1 record as removed, added, or changed between the two versions you submitted, each item stated as it appears in the documents. Submitted documents are processed in memory only and never stored; the paid retry re-sends both documents. The report establishes only the differences between the two documents you submitted, under the published rules; it is not a 'safe to upgrade' certification.
| Name | Required | Description | Default |
|---|---|---|---|
| pairs | No | Alternative multi-pair form: an array of {version_a, version_b} pairs; each pair is charged at $0.02 on the paid endpoint. Mutually exclusive in effect with the single-pair version_a/version_b fields. | |
| version_a | No | Version A of the API-surface document: an OpenAPI 3.0.x/3.1.x document in JSON form, or a standalone JSON Schema document (draft-07, 2019-09, or 2020-12). Submitted content is processed in memory only and never stored. | |
| version_b | No | Version B of the same API-surface document, in the same form as version A. Submitted content is processed in memory only and never stored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With zero annotations the description carries the full burden and does so well: it discloses the exact price and chain ($0.02 USDC on Solana per pair), the billing unit (one report per pair), that documents are processed in memory and never stored, and that a paid retry re-sends both documents. It also bounds the result explicitly ('not a safe to upgrade certification'), which prevents over-trust in the output.
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?
It is a single dense run-on of three long sentences with stacked subordinate clauses, and the actual purpose arrives after the price. Front-loading cost is defensible for a paid tool, but the 'processed in memory only and never stored' clause is repeated in the schema and the middle sentence carries too many clauses at once.
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 paid, mutable-effect tool with no output schema, the description covers cost, privacy, retry behavior, scope limits, and roughly what the report contains. What is missing is payment mechanics (how the USDC charge is authorized) and failure/refund behavior, which an agent needs before committing funds.
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%, so the schema already documents version_a, version_b, and the pairs array including their mutual exclusivity and accepted formats. The description adds only the charging semantics for pairs and the retry-resends-both behavior, which is marginal beyond the structured fields. Baseline 3 applies.
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 concrete resource: a signed breaking-change diff report for one pair of submitted documents, with per-token counts and located removed/added/changed findings under breaking-change-diff/v1 rules. That is far more specific than a restatement of the name. It never names the sibling tools (apidiff_precheck, apidiff_criteria) that an agent would likely weigh it against, so it stops short of a 5.
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?
Use is implied rather than directed: the price is front-loaded and the closing sentence excludes a 'safe to upgrade' certification as an intended use. However, no alternative tool is named and there is no instruction to run apidiff_precheck first, despite that sibling clearly existing in the same family. An agent can infer this is the paid, final diff step, but must infer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apidiff_precheckAInspect
FREE headline breaking-change pre-check of one submitted document pair (100/day per wallet; pass caller). Submit two versions of one API-surface document (OpenAPI 3.0.x/3.1.x JSON, or a standalone JSON Schema pair); get the headline only: whether the pair can be graded, the census, the verdict line, and the count of recorded changes per class. Located findings are in the paid report. The check is a deterministic mechanical comparison of the two documents you submitted — it does not establish that an upgrade will break, or will not break, any code.
| Name | Required | Description | Default |
|---|---|---|---|
| pairs | No | Alternative multi-pair form: an array of {version_a, version_b} pairs; each pair is charged at $0.02 on the paid endpoint. Mutually exclusive in effect with the single-pair version_a/version_b fields. | |
| caller | Yes | Solana base58 wallet of the operator; keys the free allowance (100/day per wallet). | |
| version_a | No | Version A of the API-surface document: an OpenAPI 3.0.x/3.1.x document in JSON form, or a standalone JSON Schema document (draft-07, 2019-09, or 2020-12). Submitted content is processed in memory only and never stored. | |
| version_b | No | Version B of the same API-surface document, in the same form as version A. Submitted content is processed in memory only and never stored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden. It does well on cost/limit (free, 100/day per wallet, caller-keyed) and on scope of the response (gradability, census, verdict line, per-class change counts), but it leaves out error/failure modes, what happens when the pair cannot be graded, and what a 'census' or 'verdict line' actually contains. The disclaimer that it is a deterministic mechanical comparison that does not establish code breakage is valuable added context.
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?
Front-loaded with the most decision-relevant facts ('FREE headline breaking-change pre-check'), then formats, then outputs, then the disclaimer. Slightly dense with parenthetical rate-limit and format lists, but every sentence carries information an agent needs.
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 no annotations and no output schema, the description must explain both behavior and returns, and it does list the headline outputs and the cost model. Gaps remain around failure behavior for ungradable pairs and the absence of an explicit handoff to apidiff_diff by name, which keeps it short of 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 coverage is 100%, so the baseline is 3, but the description adds real meaning beyond the schema: 'pass caller' explains that the caller field keys the free allowance, and 'one submitted document pair' clarifies that the single-pair form is the default while the pairs array is an alternative. It does not repeat the schema's type constraints or explain how version_a/version_b mismatches are handled.
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?
Opens with a specific verb+resource+scope: 'FREE headline breaking-change pre-check of one submitted document pair', and clarifies which document formats are accepted (OpenAPI 3.0.x/3.1.x JSON or JSON Schema pair). It distinguishes itself from the 'paid report' conceptually, but never names the sibling tools (apidiff_diff, apidiff_criteria), so the routing signal is implicit rather than explicit.
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?
Clear situational framing: free headline first, with 'Located findings are in the paid report' telling the agent to escalate elsewhere for detail, plus the 100/day per wallet allowance that governs usage. It lacks an explicit named alternative and doesn't state when this pre-check is unnecessary (e.g., once the paid report is already known needed).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arena_eligibleARead-onlyIdempotentInspect
Free: the arena-eligible targets from the Layer 0 store — services with a paid endpoint that carries a price — as descriptors (service id, name, category, verification state, endpoint method/path/summary). Carries no prices. Free — no payment required. HTTP equivalent: GET /eligible.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely new behavioral facts: it is free with no payment required, it returns descriptors only and no prices, and it gives the HTTP equivalent (GET /eligible). It does not mention result size, ordering, or pagination.
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?
Front-loaded and short, but the 'Free:' opener and the later 'Free — no payment required' repeat the same point, and the em-dash chain packing eligibility criteria plus six return fields into one sentence is denser than it needs to be.
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 no output schema, the description usefully enumerates the returned descriptor fields, which is the main thing an agent needs. It leaves open whether the list is bounded, ordered, or paginated, a minor gap for a zero-argument listing 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies.
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?
States a concrete resource (arena-eligible targets) and even defines the eligibility predicate — services with a paid endpoint that carries a price — plus the descriptor fields returned. It never names the obvious siblings (arena_quote, arena_run), so differentiation is only implied by the 'carries no prices' note rather than stated.
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?
Usage is implied: this is the discovery/listing step, and the 'carries no prices' line hints that a pricing call is a separate tool. But there is no explicit when-to-use, when-not-to-use, or named alternative, so the agent must infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arena_quoteARead-onlyIdempotentInspect
Free quote for one verification run: the fixed 3-call plan for the target plus the constituent test-call cost summed from the target endpoint's own listed prices. An unknown or ineligible target is answered free, before payment. HTTP equivalent: POST /run/quote.
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes | The Layer 0 service id to test (see arena_eligible). | |
| endpoint_path | No | Optional: the specific paid endpoint path to test. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world, and the description is consistent with that. Beyond them it adds real behavioral detail: the call is free, wrong targets are still answered free of charge, and the price is derived from the endpoint's own listed prices rather than a global fee schedule.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the core definition front-loaded before the pricing mechanics and the HTTP equivalent. Dense but no wasted sentences; the 'HTTP equivalent' trailer is only modestly useful.
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 no output schema, the description does explain what the quote comprises (3-call plan plus per-test-call cost) and the free-on-failure guarantee, which is the main thing an agent needs to act on. Minor gaps remain around currency/units and whether the quote expires, but the essentials are covered.
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 both parameters are self-documented, so the schema does the heavy lifting. The description's only added semantic is that pricing comes from the target endpoint's own listed prices when endpoint_path narrows the target, which is marginal over the schema text.
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?
States a specific verb and resource — a free cost quote for one verification run — and itemizes what the quote contains (the fixed 3-call plan plus summed constituent test-call prices). It does not explicitly contrast itself with arena_run or arena_eligible, so an agent must infer the quote/run/eligibility split rather than being told.
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?
'before payment' and 'answered free' imply this is the pre-run pricing step and that unknown/ineligible targets cost nothing, which is useful timing guidance. However, no sibling is named as the next or alternative step (arena_run, arena_result), so the workflow position is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arena_resultARead-onlyIdempotentInspect
Free: read one run's status and result by run_id — lifecycle state, verdict, per-call records (digests only, never payloads), and the write-back events when built. An unknown run id is answered free. HTTP equivalent: GET /run?id=.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The run id returned by arena_run. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the readOnly/idempotent annotations by disclosing that results contain digests only and never payloads, that the call is free, that unknown ids are handled gracefully, and by naming the HTTP equivalent. Minor vagueness remains in 'the write-back events when built', which doesn't say when those are absent.
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?
One front-loaded sentence packs the verb, resource, output contents, and privacy caveat, followed by a short edge-case note and the HTTP mapping. No sentence is filler.
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 no output schema, the description compensates by enumerating the returned fields, and the single required parameter is documented. It leaves open how large the per-call record set can be or whether truncation/pagination applies, which is the only notable gap for a result-retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema coverage is 100%, with the schema already stating the id comes from arena_run. The description reinforces the run_id semantics but adds no format, validation, or lookup behavior beyond what the schema provides, so baseline 3 applies.
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?
States a specific verb and resource ('read one run's status and result by run_id') and then enumerates exactly what comes back: lifecycle state, verdict, per-call records, write-back events. It is clearly the read counterpart to arena_run, so an agent can distinguish it from the sibling that creates the run.
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 'by run_id' framing plus the note that an unknown run id is answered free tells the agent this is a lookup on an existing run rather than a launcher. It doesn't explicitly say 'call arena_run first to obtain the id', though the schema parameter description does, so usage is clear but not fully spelled out in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arena_runAInspect
Start one paid-and-judged verification run: the arena funds, executes the fixed 3-call suite itself, judges it, and builds the Layer 0 write-back events. An unknown or ineligible target is answered free, before payment. Paid via x402 on Solana (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalents: POST /run (standard), POST /run/full-service, POST /run/retest. Prices (RULED): standard single-endpoint run $25; full-service run $50; re-test run $10. What the standard $25 includes: one arena-executed verification run of a single endpoint — the fixed 3-call suite (1 free pre-check call judged on challenge quality + 2 settled paid calls with per-run varied inputs, executed by the arena, never by the seller), judging on settled / delivered / payload_valid / challenge_ok with latency recorded, one verdict (pass / partial / fail) with per-dimension summaries, Layer 0 write-back events (verification evidence, delivery-proof delta, and a state recommendation on pass only), leaderboard eligibility from the same evidence, and the run record retained as digests + call records (payloads never stored). The run price is the full price of the run — constituent test-call costs are the arena's cost, not an additional charge. The $50 full-service run includes the same suite executed for EVERY paid endpoint of one service, a verdict per endpoint, a service-level dimension summary, and write-back per endpoint. The $10 re-test includes an identical suite, judging and write-back for an endpoint the same seller has already run; a re-test inside the 24h reputation window is delivered in full but flagged reputation_counted: false.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Optional price tier: standard ($25, default), full_service ($50), retest ($10; same seller must have a prior run of the target). | |
| run_id | No | Optional: caller-chosen run id; one is generated when omitted. | |
| seller_ref | No | Optional: the seller's reference for this run. | |
| service_id | Yes | The Layer 0 service id to test (see arena_eligible). | |
| endpoint_path | No | Optional: the specific paid endpoint path to test. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark it as a non-readOnly, open-world, non-idempotent write; the description adds the material facts an agent actually needs: payment is required via x402 on Solana with a challenge-then-retry flow, invalid targets cost nothing, payloads are never stored, and retests inside 24h are flagged reputation_counted: false. These are behaviors the annotations cannot express.
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?
Front-loaded correctly with the verb and payment mechanics, but the middle section is bloated: tier prices are stated twice (the 'Prices (RULED)' line, then again in the 'What the standard $25 includes' paragraph) and item lists are enumerated at length. The content is relevant, yet several sentences could be compressed without losing information.
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?
Despite having no output schema, the description explains what a run produces: a pass/partial/fail verdict with per-dimension summaries, latency, Layer 0 write-back events including a state recommendation on pass only, leaderboard eligibility, and retained digests/call records. Combined with the payment flow and per-tier differences, an agent has everything needed to invoke it 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 description coverage is 100%, so the schema already documents all five parameters including tier enum and prices. The description elaborates on tier semantics (prices, retest prerequisite, full-service covering every paid endpoint of a service), but that largely repeats the schema's tier description and says nothing about run_id, seller_ref or endpoint_path. Baseline 3 fits.
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?
Opens with a specific verb+resource+scope: 'Start one paid-and-judged verification run' and immediately describes what the arena does (funds, executes, judges, writes back). This is clearly distinguishable from siblings like arena_quote, arena_eligible and arena_result, which read/price rather than execute a run.
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?
Gives concrete when-to-use conditions: an unknown or ineligible target is answered free before payment, retest requires the same seller to have a prior run of the target, and tier selection is explained. It does not explicitly route the agent to arena_quote or arena_result for pricing/lookup, so the alternatives are implied rather than named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atlas_changesAInspect
Source Atlas changes-since: atlas records added or changed since a timestamp (terms changes, sunsets, status changes). $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/atlas/changes.
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes | ISO date (YYYY-MM-DD) or ISO datetime; only records with updated_at strictly after it are returned |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations present the bar is lower, and the description goes beyond them by disclosing cost ($0.01 per call), the payment rail (USDC on Solana via x402), and the concrete challenge-and-retry protocol including the _meta["x402/payment"] key. That is exactly the kind of prerequisite/operational context annotations cannot express; only the response shape is left uncovered.
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?
Purpose is front-loaded in the first clause, followed by the payment mechanics and the HTTP equivalent, which are both actionable. The payment sentence is dense but every clause carries operational information; nothing is redundant.
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 one-parameter tool with no output schema, the description covers purpose, cost, payment flow, and an alternate transport. The one gap is that it never says what a response looks like (record fields, ordering, volume/caps), which matters for a paid call with no declared output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'since' parameter is fully documented in the schema, including the strict-greater-than semantics. The description only restates 'since a timestamp' and adds no syntax or edge-case detail beyond the schema, so baseline 3 applies.
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 names a specific verb and resource ('atlas records added or changed since a timestamp') and enumerates the change classes it covers (terms changes, sunsets, status changes). This clearly distinguishes it from siblings like atlas_record (single-record lookup) without the agent needing to open the schema.
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 change-feed framing implies the polling/refresh use case, but there is no explicit when-to-use versus when-not guidance and no named alternative (e.g., use atlas_record for a single record, atlas_route for lookups). Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atlas_recordAInspect
Source Atlas full record: lawful route, licence basis + duties, cost, freshness, failure modes, lawful alternatives for one data source. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/atlas/record.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only mark it non-read-only/non-idempotent without explanation; the description supplies the reason — a $0.01 per-call charge — and the full x402 payment choreography (call unpaid to receive a PaymentRequired challenge, retry with payment in _meta["x402/payment"]). This is exactly the kind of cost/auth/retry context annotations cannot express, though the consequences of a failed or double payment are left unstated.
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?
Front-loaded with what the record contains, then the operational payment details and the HTTP fallback. Dense but every sentence carries actionable information; the payment paragraph is longer than ideal but is required for a paid tool.
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 no output schema, the description usefully enumerates the returned fields and fully explains how to pay over both MCP and HTTP. Remaining gaps — source_id format and failure behavior on unknown sources — are minor for a single-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single required source_id, so the schema gives the agent a bare string with no format. The description partially compensates by framing the parameter as identifying 'one data source', but it never states the expected identifier syntax or behavior on an unknown id.
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?
States a specific verb+resource: returns the FULL Source Atlas record for one data source, and enumerates the record's contents (lawful route, licence basis + duties, cost, freshness, failure modes, alternatives). This distinguishes it in substance from atlas_route and atlas_changes, though neither sibling is named explicitly.
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?
There is no when-to-use guidance and no named alternatives: nothing tells the agent when to prefer atlas_record over atlas_route or atlas_changes, nor what prerequisites exist (e.g., needing a known source_id). The only procedural guidance given is about payment, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atlas_routeBInspect
Source Atlas by-need routing: state a need, get ranked lawful routes with licence verdicts. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/atlas/route.
| Name | Required | Description | Default |
|---|---|---|---|
| need | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this non-read-only and non-idempotent, and the description supplies the missing reason: a $0.01 per-call charge in USDC on Solana via x402, settled only on retry with a payment payload. This is exactly the kind of hidden cost/side-effect context annotations alone cannot convey. It stops at 4 because failure modes and what happens if payment validation fails are not covered.
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?
Front-loaded with the purpose, then cost, then the payment mechanics — a sensible order. Three dense sentences with no filler, though the parenthetical payment instructions and HTTP endpoint are tightly packed and the HTTP URL is of limited use to an MCP caller.
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 commercial mechanics are complete, but with no output schema the description carries the burden of describing what a 'ranked lawful route' actually contains (route fields, licence verdict shape, ranking rationale) and it only gestures at this. An agent knows how to call it and what it costs, but not what it will receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter 'need' is undocumented in the schema. The description only offers 'state a need', which hints at natural language but gives no format, length, example, or specificity guidance. For a 1-param tool with zero coverage, this is a real gap the description was positioned to fill.
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?
States a specific verb and resource — 'state a need, get ranked lawful routes with licence verdicts' — which is clearly a routing/lookup service, distinct from siblings like atlas_record and atlas_changes. The phrase 'lawful routes' is somewhat opaque (routes of what, ranked by what criteria), so it stops short of a 5, but an agent can tell what class of operation this is.
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?
There is no explicit when-to-use vs when-not, and no mention of the atlas_* siblings, so alternative selection is left to inference. That said, the invocation path is unusually well spelled out — the two-step x402 challenge/retry flow and the HTTP equivalent endpoint — which is genuine procedural usage guidance even if the 'when' is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_scoreAInspect
Score batch-payment vouchers for settlement risk. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/batch/score.
| Name | Required | Description | Default |
|---|---|---|---|
| voucher | No | object {payer (base64 pubkey), amount, nonce, expiry, issued_at, signature (base64 Ed25519)} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavior beyond the annotations: cost per call, USDC on Solana payment via x402, the PaymentRequired challenge flow, and the exact _meta key for retry. It does not explain the return value or score semantics, but the payment handshake disclosure is substantial and consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and front-loaded: purpose first, then payment mechanics, then HTTP equivalent. Every sentence carries operational value, and the parenthetical payment retry instruction is dense but necessary.
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 invocation and payment clearly, but with no output schema it leaves the return format and score semantics unexplained. It also does not clarify whether 'batch' refers to batch-payment vouchers or batch scoring, which matters because the schema takes a single voucher object.
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 single voucher parameter is fully described in the schema, including payer, amount, nonce, expiry, issued_at, and signature. The description adds domain context ('batch-payment vouchers') but no extra syntax, format, or validation guidance beyond the schema, so baseline 3 is appropriate.
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 specific verb and resource: score batch-payment vouchers, scoped to settlement risk. This is concrete enough to distinguish it from general scoring or batch tools, and the domain wording tells an agent exactly what the tool evaluates.
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 intended use is implied by 'settlement risk,' but there is no explicit when-to-use, when-not-to-use, or comparison to alternatives such as bridge_score or tokens_score. The payment instructions explain how to invoke it, not when to select it over another tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
books_authorBInspect
Author metadata by Open Library author id. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/author/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Author id (OL...A) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover openness and idempotency but say nothing about cost or authorization. The description adds material behavior an agent cannot get elsewhere: a $0.005 USDC-on-Solana charge, the x402 two-step challenge/retry flow, and the exact _meta["x402/payment"] key — which also explains why readOnlyHint is false for what is a metadata read.
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?
Front-loads what the tool returns, then gives price and payment mechanics, then the HTTP equivalent. Dense but every clause is actionable; the payment-parenthetical is long yet load-bearing for calling it correctly.
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 no output schema, the description should say what 'author metadata' actually contains, but it does not (name, birth/death, bio, works, etc.). The payment path is fully covered, so the gap is limited to return-value expectations.
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 schema already documents the single 'id' parameter as an OL...A author id. The description only repeats the resource name and adds no format, normalization, or failure-mode detail 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 states a specific verb+resource ('Author metadata') and the identifier scheme ('Open Library author id'), which is enough to distinguish it from books_works or books_isbn. It does not explicitly contrast with the closely named sibling books_authors, so the singular-by-id vs. list distinction must be inferred from the name.
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?
There is no statement of when to use this tool versus books_authors, books_search, or books_title. The only 'how' guidance is the payment choreography, which is operational rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
books_authorsBInspect
Search authors (Open Library). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/authors.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Author name query | |
| limit | No | 1-25, default 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing the price ($0.005/call), the payment rail (USDC on Solana via x402), and the exact MCP handshake — call unpaid to receive the PaymentRequired challenge, then retry with payment in _meta['x402/payment']. That is genuinely actionable behavioral context an agent cannot get from readOnlyHint/openWorldHint. It stops short of 5 because it says nothing about failure modes, rate limits, or what the challenge payload looks like.
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?
Front-loaded with the purpose, then the payment mechanics, then the HTTP equivalent — a sensible ordering with little waste. The nested parenthetical about the x402 retry is dense but every clause carries operational information.
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?
Payment handling is fully covered, but with no output schema the description should say what a result looks like (author keys, names, work counts) and how it differs from books_author. Those omissions leave real gaps for a tool in a crowded books_* family.
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% and both parameters (q, limit with range/default) are already documented in the schema. The description adds no parameter-level meaning, so the baseline 3 applies.
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?
States a specific verb and resource: 'Search authors (Open Library)'. However, it never distinguishes itself from the sibling books_author (singular), which an agent could easily confuse with this one, so it falls short of a 5.
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?
There is no guidance on when to use this versus books_author, books_search, books_title, or books_works. The only routing information is the HTTP equivalent URL, which does not help an agent pick among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
books_isbnAInspect
Book metadata by ISBN (Open Library, metadata only). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/isbn/{isbn}.
| Name | Required | Description | Default |
|---|---|---|---|
| isbn | Yes | ISBN-10 or ISBN-13 (hyphens allowed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing price ($0.005/call), currency and chain (USDC on Solana), the x402 payment handshake including the exact retry key _meta["x402/payment"], and an HTTP equivalent. This explains the otherwise puzzling readOnlyHint=false. It still omits failure behavior (unpaid-call errors beyond the challenge, lookup misses) and rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, purpose front-loaded, then cost, then the payment protocol. The x402 mechanics are dense but operationally necessary; the HTTP URL is marginally expendable but not wasteful.
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 one-parameter, paid, no-output-schema tool, it covers the essentials an agent needs: what it returns (metadata), what it costs, and how to complete payment. The main gap is return-field expectations, which the absence of an output schema leaves undocumented.
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 single isbn parameter is already documented as 'ISBN-10 or ISBN-13 (hyphens allowed)'. The description only restates 'by ISBN' and adds no format, normalization, or error semantics beyond the schema, so the baseline 3 applies.
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?
States a specific resource and lookup key: 'Book metadata by ISBN', with the upstream source (Open Library) and the 'metadata only' scope. An agent can distinguish it from siblings like books_title, books_author, books_works and books_search by the ISBN identifier, though no sibling is named explicitly.
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?
Usage is only implied: you call it when you already hold an ISBN. There is no explicit when-to-use vs. books_search/books_title guidance, and no note about what to do if the ISBN is unknown (i.e., fall back to a search tool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
books_searchBInspect
Search books (Open Library, metadata only). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/search.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | General query | |
| limit | No | 1-25, default 10 | |
| title | No | Title terms | |
| author | No | Author terms |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations say readOnlyHint=false, which looks odd for a 'metadata only' search, but the description explains the reason: the call is billable ($0.005 USDC on Solana via x402), so invoking it has a real side effect. It also discloses the two-step payment handshake and the HTTP equivalent, context the annotations cannot convey. This is detailed, but return shape and any rate/limit behavior on the paid endpoint are not described.
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?
Purpose is front-loaded in five words, then cost, then the payment retry protocol — a sensible priority order for an agent that must decide whether to spend money. The trailing HTTP-equivalent URL is useful but is the one element that could be trimmed without losing invocation-relevant information.
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 zero-required-parameter, four-field search with no output schema, the description covers the essential operational risk (cost and payment flow) but omits anything about result content or how many fields are matched. Given the crowded books_* sibling set, an agent could construct a valid call but not confidently pick this tool over its neighbors.
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%, so q, title, author and limit are already documented in the schema (including the 1-25 limit range and default of 10). The description adds no semantics about how these parameters combine or which fields are searched, so the baseline 3 applies.
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?
States a specific verb and resource ('Search books') and scopes it ('Open Library, metadata only'), so an agent knows it queries a bibliographic index rather than full text or files. It does not, however, distinguish itself from the many sibling lookup tools (books_title, books_author, books_isbn, books_works), so the agent cannot tell from the description alone which entry point to prefer.
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 gives no when-to-use guidance and no exclusions; it never says whether this general search subsumes books_title/books_author or should be avoided when a specific identifier is known. The only operational instructions concern payment (call first, get PaymentRequired, retry with _meta["x402/payment"]), which is invocation mechanics rather than tool selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
books_titleAInspect
Book metadata by title (Open Library). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/title/{title}.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | 1-25, default 5 | |
| title | Yes | Book title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Strong operational disclosure beyond the annotations: exact price ($0.005/call), payment rail (USDC on Solana via x402), and the two-step challenge-then-retry protocol including the _meta["x402/payment"] key. This also explains why readOnlyHint=false despite a metadata read. Gaps remain on rate limits, failure modes other than PaymentRequired, and what a successful response contains.
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?
Purpose is front-loaded in the first clause, followed by pricing, payment mechanics, and the HTTP equivalent — each sentence carries distinct information. Slightly dense with protocol detail, but nothing is padding.
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 no output schema, the description should indicate what metadata comes back (works/editions/authors, etc.) and it does not, nor does it clarify the limit parameter. Payment and endpoint context are complete, so the omission is moderate rather than fatal.
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 both parameters are already documented in the schema. The description reinforces that lookup is keyed on title but says nothing about the 'limit' parameter or what it limits (results? editions?), leaving the schema to carry it.
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?
States a specific resource and access key: book metadata looked up by title, sourced from Open Library, with the HTTP route spelled out. The 'by title' qualifier implicitly separates it from books_isbn and books_author, but it never names those siblings explicitly, so differentiation is left to inference.
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?
Usage is only implied by the lookup key — an agent can infer 'use this when you have a title, not an ISBN'. There is no explicit when-to-use, when-not-to-use, or pointer to books_search/books_isbn as the alternative for other query shapes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
books_worksAInspect
Work metadata by Open Library work id. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/books/works/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Work id (OL...W) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and openWorldHint=true; the description adds the critical context annotations cannot carry — the $0.005 USDC-on-Solana cost, the x402 payment flow, and the concrete retry protocol (call once, receive PaymentRequired, retry with payment in _meta['x402/payment']). It also gives the underlying HTTP endpoint, which is genuinely operational 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?
Front-loads the resource and key first, then the payment mechanics. Dense but every sentence is functional; the payment/parenthetical block is long but is the main non-obvious thing an agent needs, so it earns its space.
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?
Payment and endpoint complexity are covered well, but there is no output schema and the description never indicates what the returned 'metadata' contains (fields, shape, empty/missing-id behavior). For a lookup tool with no return-value documentation, that is a real gap.
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 single 'id' parameter is already documented in-schema as 'Work id (OL...W)'. The description restates that same format without adding syntax, validation, or fallback guidance, so baseline 3 applies.
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?
States a specific resource ('Work metadata') and the exact lookup key ('Open Library work id'), which implicitly separates it from siblings like books_title, books_isbn, books_author and books_search that take other identifiers. It is clear but never explicitly contrasts itself with those siblings or says what metadata fields are returned.
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?
Usage is only implied: the agent must infer it should call this when it already holds an OL...W work id rather than a title/ISBN/author. No explicit when-to-use or when-not-to-use statement, and no pointer to a sibling for resolving an id you don't yet have.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridge_scoreBInspect
Score a bridge by security, liquidity, and incidents. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/bridge/score.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | string | |
| bridge | No | string | |
| to_chain | No | string | |
| amount_usd | No | number | |
| from_chain | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing the paid nature ($0.01 per call, USDC on Solana), the exact two-step x402 handshake, and an HTTP fallback endpoint. That is behaviorally important context no structured field carries. It stops short of describing the response shape or whether scores are cached/live, which keeps it off a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences that front-load the purpose and then pack payment mechanics without filler. The parenthetical payment instruction is dense but earns its place; it could be split for readability but nothing is wasted.
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 5-parameter, zero-required, free-form scoring tool with no output schema, the payment path is fully covered but the inputs are not - an agent still doesn't know what a valid call looks like or what it gets back. Adequate on the monetization dimension, incomplete on the data dimension.
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?
Though coverage is nominally 100%, every schema description is a vacuous type echo ("string", "number"), so the schema conveys nothing. The description names no parameters at all - token, bridge, from_chain, to_chain, and amount_usd are never explained, and the reader cannot tell whether 'token' is an asset symbol, a bridge token, or a payment token.
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 opening sentence states a specific verb and resource plus the scoring dimensions: "Score a bridge by security, liquidity, and incidents." It is clear in isolation, but it never distinguishes itself from nearby siblings such as tokens_score, batch_score, or fee_oracle_recipe, so the agent must infer the boundary itself.
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 gives strong *how-to-invoke* guidance (call without payment to receive the PaymentRequired challenge, then retry with payment at _meta["x402/payment"]), which is real usage context. It gives no *when-to-use* guidance, though: nothing says when to prefer this over tokens_score or batch_score, or which bridge/chain combinations are valid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carbon_intensity_currentAInspect
Current average grid carbon intensity for one zone. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/carbon/intensity.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | string (required) - zone code: FR, DE, GB, IE, DK or US |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the exact price ($0.005/call), the payment rail (USDC on Solana via x402), the concrete retry protocol (call without payment, receive PaymentRequired, retry with _meta["x402/payment"]), and an HTTP equivalent. That is precisely the non-obvious behavioral context an agent needs and annotations do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose front-loaded, payment logistics second; no filler. Every clause carries operational information.
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 one-parameter read tool with no output schema, the payment behavior is fully covered. The remaining gap is that it never states the units or shape of the returned intensity value, which an agent must infer.
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% and the schema already enumerates the valid zone codes (FR, DE, GB, IE, DK, US). The description adds only 'one zone' and no additional semantics, so the baseline 3 applies.
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?
States a specific verb+resource+scope: current average grid carbon intensity for a single zone. It distinguishes itself from carbon_intensity_forecast only implicitly via the word 'current' rather than an explicit call-out, so it falls short of a 5.
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 gives no explicit when-to-use guidance, no statement of when to prefer this over carbon_intensity_forecast, and no prerequisites beyond the payment mechanics. Usage is only implied by 'current' versus 'forecast' in the sibling name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
carbon_intensity_forecastAInspect
Forecast average carbon intensity curve for one zone. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/carbon/intensity/forecast.
| Name | Required | Description | Default |
|---|---|---|---|
| zone | Yes | string (required) - zone code: GB, IE or DK for forecast |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and non-idempotent, but do not reveal that the call costs money; the description fills that gap with the exact price ($0.01 USDC on Solana) and the two-step x402 handshake plus an HTTP fallback URL. That is real behavior context beyond structured fields. Minor gap: no mention of the forecast horizon or update cadence.
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?
Front-loaded with the purpose, then payment mechanics and the HTTP equivalent. Dense but each sentence carries information the agent needs to actually invoke a paid endpoint; the parenthetical x402 detail is slightly heavy but justified.
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?
No output schema exists, so the description should convey the shape of the returned curve (units, resolution, forecast horizon). It says only "average carbon intensity curve", leaving the agent unable to judge what it will receive, though the payment mechanics are fully covered.
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?
Only one parameter, and the schema already documents it at 100% coverage including the GB/IE/DK zone codes. The description adds nothing beyond "one zone", so baseline 3 is appropriate.
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?
States a specific verb+resource+scope: "Forecast average carbon intensity curve for one zone." An agent can distinguish it from the sibling carbon_intensity_current (forecast vs current), though the description never names that sibling explicitly.
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 gives clear procedural guidance for the payment flow (call without payment, read the PaymentRequired challenge, retry with _meta["x402/payment"]), which is genuinely actionable. However, it offers no explicit guidance on when to choose this over carbon_intensity_current or when-not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cited_answer_searchAInspect
Cited-answer web search: ask a question, get a short synthesized answer with citations to live web sources. Paid: $0.05 flat per call via x402. Limits: query 3..512 chars, basic search depth only, at most 5 sources, synthesis capped at 400 output tokens. Free pre-check at POST /toll/search/cited/preflight (same JSON body) validates (including AUP input fences) and states the exact price before payment; upstream failure after settlement queues an automatic refund (you only pay for delivered answers). — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/search/cited.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only carry readOnlyHint=false and openWorldHint=true; the description does the heavy lifting by disclosing the $0.05 flat cost, the constraint set (basic depth only, ≤5 sources, 400 output tokens), the preflight validation path including AUP fences, and the refund-on-upstream-failure policy. That is exactly the beyond-schema behavioral context an agent needs before spending money.
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?
Purpose is front-loaded, but roughly half the text is payment plumbing (x402, USDC on Solana, _meta key path, HTTP equivalent URL) that is dense and partly irrelevant once an MCP client handles the 402 dance. The HTTP-equivalent sentence in particular is low-value for an MCP caller and could be trimmed.
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 paid, rate/limit-bound tool with no output schema, the description covers cost, caps, failure/refund behavior, and the validation path — enough to call it correctly and predict the charge. The remaining gap is the shape of the returned answer/citations and the lack of positioning against sibling search tools.
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?
One parameter at 0% schema description coverage, so the description must compensate. It does partially: "ask a question" signals natural-language input and "query 3..512 chars" restates the schema's min/max. But the char limits duplicate the schema rather than adding meaning, and it doesn't clarify whether operators, quotes, or URLs are accepted in the query.
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?
Opens with a specific verb+resource+output: "Cited-answer web search: ask a question, get a short synthesized answer with citations to live web sources." That is unmistakably different from a raw crawl or news feed. However, it never names a sibling (wiki_answer, news_search, cse_search) that would be the natural alternative, so differentiation is left to inference.
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 gives detailed *how-to-invoke* guidance (preflight POST, payment handshake, retry with _meta["x402/payment"]) but no *when-to-use* guidance — nothing says whether to prefer this over wiki_answer or news_search, or what question types it suits. Usage is implied by the price/limit framing rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_cast_ballotAIdempotentInspect
Cast ONE ballot (operator-key-signed write; agents never vote). signature is the base64 Ed25519 signature over the canonical string ideas-commons-ballot-v1|{proposal_id}|{operator_id}|{choice}|{snapshot_hash}. Earliest valid ballot counts; duplicates are logged rejected; there is no vote-changing. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/commons/proposals/{id}/ballots. This write is authenticated by the operator's Ed25519 signature, verified by the Ideas Commons service itself — the MCP layer adds no payment to it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| choice | Yes | ||
| signature | Yes | Base64 Ed25519 signature over ideas-commons-ballot-v1|{proposal_id}|{operator_id}|{choice}|{snapshot_hash} | |
| operator_id | Yes | ||
| proposal_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the write/idempotent/non-destructive profile, and the description goes well beyond them: earliest valid ballot wins, duplicates are logged rejected, no vote-changing, auth is the operator's Ed25519 signature verified service-side, and no x402 payment challenge is added by the MCP layer. These are exactly the failure-mode and cost facts an agent needs before calling a write.
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 critical facts are front-loaded, but the no-payment point is restated three times ('FREE — no payment required', 'no x402 challenge; this tool is free', 'the MCP layer adds no payment to it'), which is redundant weight in an otherwise dense paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers auth mechanism, duplicate handling, cost, and the raw HTTP equivalent — substantial for a write tool with no output schema. The remaining gap is that it never says what a successful cast returns (receipt, tally acknowledgement) nor resolves the id/proposal_id duality.
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 20%, so the description must compensate, and it does explain the `signature` canonical string format. However it never disambiguates `id` vs `proposal_id` (the canonical string uses {proposal_id} while the required field is `id`), leaving the most consequential ambiguity unresolved.
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?
States a specific verb and resource ('Cast ONE ballot') and immediately bounds the scope with '(operator-key-signed write; agents never vote)'. An agent can distinguish this from commons_get_vote_status or commons_create_proposal without opening any schema.
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?
Gives a strong eligibility rule ('agents never vote'), a one-ballot-per-operator rule, and states that vote changes are impossible, which tells the agent when this call is pointless. It does not name a sibling for the read-side check (e.g. commons_get_vote_status), so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_create_postAInspect
Post discussion on a proposal (operator-key-signed write). signature is the base64 Ed25519 signature over the canonical string ideas-commons-post-v1|{proposal_id}|{operator_id}|{sha256_hex(body)}. Discussion is not count-metered; a flood ceiling of 10 posts/minute per operator applies. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/commons/proposals/{id}/posts. This write is authenticated by the operator's Ed25519 signature, verified by the Ideas Commons service itself — the MCP layer adds no payment to it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| signature | Yes | Base64 Ed25519 signature over ideas-commons-post-v1|{proposal_id}|{operator_id}|{sha256_hex(body)} | |
| operator_id | Yes | ||
| proposal_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds material facts beyond the annotations: a flood ceiling of 10 posts/minute per operator, that posts are not count-metered, and the exact authentication mechanism (service-verified Ed25519 signature, MCP layer adds no payment). It does not describe what happens on a duplicate post or a signature failure, leaving some mutation-side behavior undisclosed.
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?
Front-loads the action, then the signing recipe, then limits and payment posture, with an HTTP equivalent at the end. Slightly redundant: 'FREE — no payment required', 'no x402 challenge', and 'this tool is free' restate the same fact, and the closing sentence repeats the authentication point already made.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers authentication, rate limits and payment posture well for a non-idempotent mutation, but with no output schema and 80% of parameters undocumented, the description leaves open what a successful response contains and how 'id' versus 'proposal_id' should be supplied. Adequate but with clear 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 only 20%, so the description must carry the load: it fully specifies the signature's canonical string, which is the hardest parameter, and implies body is the discussion text. However, it never explains the relationship between the required 'id' field and the optional 'proposal_id' field, even though the signature formula references {proposal_id} while 'id' is what is actually required — a real ambiguity for the caller.
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?
States a specific verb and resource ('Post discussion on a proposal') and scopes it as a signed write, which separates it cleanly from siblings like commons_create_proposal and commons_cast_ballot. An agent can identify the action without opening the schema.
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?
Gives clear operational context: call this directly, it is free, no x402 payment challenge is issued, and the write is authorized solely by the operator's Ed25519 signature. It never explicitly names an alternative sibling or a when-not condition, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_create_proposalAInspect
Create a proposal (operator-key-signed write). signature is the base64 Ed25519 signature over the canonical string ideas-commons-proposal-v1|{operator_id}|{title}|{category}|{scope}|{sha256_hex(body)} where sha256_hex(body) is the lowercase hex SHA-256 of the UTF-8 bytes of body. Unsigned -> 401 signature_required; bad signature -> 401 bad_signature. Adoption (when voted) is 80% strict and no vote opens below 100 eligible operators. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/commons/proposals. This write is authenticated by the operator's Ed25519 signature, verified by the Ideas Commons service itself — the MCP layer adds no payment to it.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| scope | Yes | ||
| title | Yes | ||
| category | Yes | ||
| signature | Yes | Base64 Ed25519 signature over ideas-commons-proposal-v1|{operator_id}|{title}|{category}|{scope}|{sha256_hex(body)} | |
| operator_id | Yes | ||
| reopen_condition | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations: names the exact 401 error codes for unsigned (signature_required) and bad (bad_signature) requests, discloses the 80% strict adoption rule and the 100-operator floor for opening a vote, and clarifies that no payment layer sits on top. consistent with destructiveHint=false and readOnlyHint=false; nothing contradicts. It stops short of stating that repeat calls create new proposals despite idempotentHint=false, and says nothing about the response.
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?
Front-loads the purpose and the signature recipe, which is the right ordering for a signed write. There is some waste: the FREE/no-payment point is stated twice ('FREE — no payment required: call directly without payment' and again in the closing sentence), and the closing sentence is largely redundant with the opening parenthetical.
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?
Strong on authentication and adoption mechanics for a mutation with no output schema, but an agent still cannot answer how to pick a 'category', what 'layer-roadmap' vs 'fleet-wide' implies, what 'reopen_condition' does, or whether the call returns a proposal id it will need later. Given seven parameters and no return documentation, those gaps matter.
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 only 14%, so the description must compensate. It does an excellent job on the highest-risk parameter, spelling out the canonical signing string including {sha256_hex(body)} composition and encoding, but leaves six of seven parameters unexplained: no valid values for 'category', no distinction between the two 'scope' enum members, and 'reopen_condition' is never mentioned at all.
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?
Opens with a specific verb+resource ('Create a proposal') and immediately qualifies it as an 'operator-key-signed write', which tells the agent this is an authenticated mutation. It does not explicitly contrast with the sibling commons_create_post or point to commons_cast_ballot, so sibling differentiation is left implicit.
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?
Presupplies the signing precondition and states this tool is FREE with no x402 challenge, which is meaningful routing information in a payment-gated toolset. However, it never says when to create a proposal versus a post, who is eligible to propose (the 100-eligible-operator threshold is mentioned only as an adoption rule), or what to do after creation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_aggregatesARead-onlyIdempotentInspect
Read fleet-level aggregate activity naming nobody (no operator ids). FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/aggregates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent and non-destructive, so safety is covered. The description adds two things annotations cannot convey: the data is anonymized at the aggregate level (no operator ids leak), and there is no x402 payment challenge, which materially changes how the agent invokes it.
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 purpose is front-loaded in the first clause and the HTTP equivalent is appended usefully. The payment clause is somewhat redundant ('FREE — no payment required... no x402 challenge; this tool is free' says the same thing three times).
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?
Safety and payment behavior are well covered, but with no output schema the description never hints at what the aggregates contain (which metrics, what time window, response shape). An agent knows how to call it but not what it will get back.
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 takes zero parameters, so the baseline is 4. The description reinforces this by stating the output names nobody, consistent with a parameterless read.
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?
States a specific verb and resource ('Read fleet-level aggregate activity') and adds a privacy scope ('naming nobody (no operator ids)') that distinguishes it from operator-level siblings such as commons_get_operator or fleet_activity. It doesn't name a sibling directly, so it stops short of 5.
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 payment guidance ('call directly without payment') clearly tells the agent how to invoke it, which is useful. However, there is no explicit statement about when to choose this over fleet_activity, fleet_kpis, or commons_get_leaderboards, so the choice remains inferred from the anonymity note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_archive_entryARead-onlyIdempotentInspect
Read one archived proposal with discussion ids, tally, snapshot and its reopen condition. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/archive/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, non-open-world behavior. The description adds important context beyond annotations: the call is free, requires no x402 payment, and returns specific archive fields.
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 key operation is front-loaded and the description is short. The payment clarification has slight redundancy ('FREE', 'no payment required', 'without payment', 'no x402 challenge', 'this tool is free'), but it remains readable.
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 single-record read tool with rich annotations and no output schema, the description covers the return fields and payment behavior. The main remaining gap is precise id semantics, which matters because schema documentation is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry parameter meaning. It implies the id identifies an archived proposal via the HTTP path /archive/{id}, but it does not clarify whether this is an archive-entry id, proposal id, or required format.
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?
States a specific verb and resource: read one archived proposal. It also enumerates the entry contents (discussion ids, tally, snapshot, reopen condition), so it is distinguishable from list-oriented archive tools and general proposal 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 this is for retrieving a single archived entry, and it clarifies payment is not required. However, it does not explicitly say when to use this instead of commons_get_proposal or commons_list_archive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_changesARead-onlyIdempotentInspect
Heartbeat feed: append-only monotonic event log. Returns events strictly after since, in order, with an as-of timestamp. Poll this on your heartbeat and pass the last seq seen as since. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/changes.
| Name | Required | Description | Default |
|---|---|---|---|
| since | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, and the description adds real value beyond them: append-only monotonic ordering, exclusive lower bound on since, the as-of timestamp, and — critically for agents — that no x402 payment challenge applies. It does not say what limits the feed has, whether events can be evicted, or how many events a poll can return.
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?
Front-loaded with the key concept and ordered sensibly (what it is, how to call, cost, HTTP mapping). The cost clause is redundant with itself — "FREE — no payment required: call directly without payment (no x402 challenge; this tool is free)" — which costs a bit of density.
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 one optional param, no output schema and no annotations gap, the description supplies what's needed to call it in a polling loop, including the free-tier detail that otherwise blocks an agent. Missing only the shape of returned events (field names, page size), which is not covered by an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single parameter, so the description must carry the meaning — and it does: since is the last seq seen, the bound is strict ("strictly after"), and the sequence is monotonic, which tells the agent the cursor is a sequence number rather than a timestamp. It does not state the default when omitted or the seq field name on returned events.
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?
"Heartbeat feed: append-only monotonic event log" gives a specific resource and behavior, and "Returns events strictly after since, in order, with an as-of timestamp" pins down semantics precisely. An agent can tell this apart from commons_get_journal, commons_get_receipts, or commons_get_archive_entry as the incremental polling primitive.
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?
"Poll this on your heartbeat and pass the last seq seen as since" states the usage pattern and the cursor convention clearly. It stops short of naming when NOT to use it or which sibling to pick instead (e.g., full-history retrieval), so no 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_journalARead-onlyIdempotentInspect
Read the platform journal: real fleet events only, labelled as such; not operator activity. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/journal.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the bar is lower. The description nevertheless adds material facts not in the annotations: that calling it is free (no x402 payment challenge) and that the entries are labelled provenance-tagged fleet events. It doesn't say anything about volume, pagination, or response shape.
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 payment statement is restated three times in a single breath ('FREE', 'no payment required', 'call directly without payment', 'no x402 challenge; this tool is free'), which is redundant. The scope sentence is front-loaded well, but the redundancy dilutes the payload.
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 no output schema, the description carries the burden of telling an agent what comes back. It conveys provenance ('real fleet events only, labelled as such') but says nothing about entry structure, volume, ordering, or whether the journal is bounded or paginated. Adequate to call correctly, thin for interpreting results.
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 takes no parameters and the schema is closed with additionalProperties false, so there is nothing for the description to disambiguate. Baseline of 4 applies for a zero-parameter tool.
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 specific verb and resource: 'Read the platform journal,' and scopes the content as real fleet events only, explicitly excluding operator activity. That scope exclusion meaningfully separates it from commons_get_operator, though no sibling is named directly.
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 implies the usage context ('read the platform journal') and rules out conflating it with operator activity, but never states prerequisites, when to prefer it, or which sibling to use for operator data. There is no explicit when/when-not guidance beyond the negative scope phrase.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_leaderboardsARead-onlyIdempotentInspect
Read verified-facts leaderboards (opted-in settlements served, ideas adopted, tenure). Display only — rank confers no votes or weight. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/leaderboards.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description still adds genuine value beyond that: rank confers no votes or weight (important in a governance context), and the explicit 'no x402 challenge / free' note prevents the agent from wrongly assuming a payment step it has seen on other tools in this ecosystem.
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?
Purpose is front-loaded, followed by the two constraints an agent actually needs, then the HTTP equivalent for agents that bypass MCP. The payment sentence is repetitive ('FREE — no payment required: call directly without payment... this tool is free'), restating the same fact three times and wasting some space.
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 zero-parameter read tool with no output schema and full annotation coverage, this is close to sufficient: it names the ranked metrics and the read-only/free semantics. It stops short of describing return shape (per-agent rows? ordering? limits?), which matters because no output schema carries that information.
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 takes zero parameters, so there is nothing for the description to disambiguate; baseline is 4. The parenthetical metric list is the closest thing to a scope signal and it is consistent with the empty 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?
Specific verb ('Read') plus resource ('verified-facts leaderboards') and the three ranked metrics in parentheses, so the agent knows exactly what it gets. It does not, however, distinguish itself from the sibling commons_get_leaderboard_snapshots, which a reader could easily confuse with it.
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 says to call directly without payment and that the result is display-only, which implies a safe informational read. But it never states when to prefer this over commons_get_leaderboard_snapshots or commons_get_operator_reputation, so selection among the commons siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_leaderboard_snapshotsARead-onlyIdempotentInspect
Read archived weekly leaderboard snapshots. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/leaderboards/snapshots.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, and the description adds non-obvious operational context: this endpoint is free with no x402 challenge, so the agent won't waste a step on payment negotiation. It does not explain cardinality or what a snapshot contains, which would be the remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose in the first clause, followed by payment terms and the HTTP equivalent — a useful one-glance summary. The payment message is restated three ways ('FREE', 'no payment required', 'no x402 challenge', 'this tool is free'), which is mild redundancy but likely a deliberate platform-wide convention.
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 zero-parameter, no-output-schema tool, the description is the only place return shape can be conveyed, and it says nothing about what a snapshot includes, how many weeks are available, or the response format. Safe and free-to-call is well covered; the data an agent would receive is not.
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 takes no parameters and the schema is an empty closed object, so there is nothing for the description to disambiguate. Baseline 4 applies for a zero-parameter tool.
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?
States a specific verb and resource ('Read archived weekly leaderboard snapshots'), so the agent knows this returns historical/archived data rather than live standings. It never names the obvious sibling commons_get_leaderboards, so the archived-vs-current distinction must be inferred from the word 'archived'.
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?
Usage is only implied by 'archived weekly' — the description never says 'use this when you need historical weeks; use commons_get_leaderboards for the current board.' The payment guidance ('call directly without payment') is a clear call instruction but not a when-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_operatorARead-onlyIdempotentInspect
Read one public operator profile — this is also the reputation read: verified status, tenure, tier, standing/strikes and receipts_opted_in are the reputation facts. Receipts themselves are private unless the operator opted in. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/operators/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds useful context about privacy (receipts are private unless opted in) and payment behavior (free, no x402 challenge), though it does not cover error or not-found behavior.
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 core purpose and remains reasonably compact. The payment sentence is somewhat repetitive ('FREE — no payment required... no x402 challenge; this tool is free'), but the overall structure is clear.
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 read tool with rich annotations and no output schema, the description covers the returned reputation facts, privacy constraints, and payment model. The main missing piece is the format of the id parameter, which is not addressed.
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?
There is one required parameter, id, with 0% schema description coverage. The description only implies that id identifies an operator via the HTTP path, but does not specify the expected format or type, leaving a meaningful gap.
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?
States a specific verb and resource: read one public operator profile. It also lists the reputation facts returned, but does not clearly differentiate this from the sibling commons_get_operator_reputation tool, which could create ambiguity.
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 reading a single operator profile and notes that the call is free with no payment challenge. However, it does not explicitly say when to use this tool versus commons_get_operator_reputation or commons_list_operators.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_operator_reputationARead-onlyIdempotentInspect
Reputation-via-profile: read an operator's reputation facts from their public profile (verified, tenure_days, tier, standing strikes, proposal rights). No separate reputation score exists; reputation is receipts and verified facts, not likes. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/operators/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds substantive context the annotations cannot: that the read is free with no payment challenge, the exact facts surfaced, and the equivalent HTTP endpoint. It stops short of saying what happens for an unknown operator id.
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 purpose and returned fields are front-loaded, which is good. However the payment point is repeated three times in one sentence ('FREE — no payment required: call directly without payment (no x402 challenge; this tool is free)'), diluting an otherwise tight description.
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 no output schema, the description does the needed work by listing the reputation facts returned and pre-empting the 'where is the score' question. Remaining gaps — id format and not-found behavior — are minor for a single-parameter read 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?
There is a single required parameter 'id' with 0% schema description coverage, so the schema itself is silent. The HTTP-equivalent URL ('/operators/{id}') implies the id is an operator identifier, which compensates partially, but the expected format (slug, address, numeric id) and lookup failure behavior are left undocumented.
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?
States a specific verb and resource ('read an operator's reputation facts from their public profile') and enumerates the concrete fields returned (verified, tenure_days, tier, strikes, proposal rights). It clarifies that no separate score exists, which prevents the agent from hunting for one, but it never names the closest siblings (commons_get_operator, reputation_check) to differentiate scope.
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 does give actionable calling guidance — this tool is free, requires no x402 payment, and can be called directly — but that is invocation mechanics, not selection guidance. It never says when to prefer this over commons_get_operator or reputation_check, so the agent must infer the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_proposalARead-onlyIdempotentInspect
Read one proposal with discussion, tally summary, eligibility snapshot and archive entry (when present). FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/proposals/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the bar is lower. The description still adds real context beyond them: the archive entry is conditional ('when present'), the response bundles four related sub-resources, and the call is free with no x402 challenge — a meaningful disclosure in an ecosystem where other tools apparently charge.
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?
Front-loaded with the payload description, then the free-call and endpoint notes. Slightly redundant ('FREE — no payment required' followed by 'this tool is free'), but every sentence otherwise carries information useful to the caller.
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 one-parameter read whose safety profile is fully covered by annotations and which has no output schema, the description explains what comes back, the conditional archive entry, and the unusual zero-cost billing behavior. The main residual gap is the expected format/validation of the id.
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?
There is one parameter (id) with 0% schema description coverage, so the description must compensate. The HTTP template GET .../proposals/{id} implies the id is the path-level proposal identifier, but it gives no format (UUID vs slug vs integer) or validity rules, leaving the agent to guess.
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?
States a specific verb and resource ('Read one proposal') and enumerates the bundled payload: discussion, tally summary, eligibility snapshot, archive entry. This implicitly distinguishes it from the list-style sibling commons_list_proposals and the granular getters (commons_get_tally, commons_get_archive_entry), though it never names an alternative explicitly.
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?
Usage is only implied: the composite payload suggests 'use this when you need the whole proposal view in one call,' but there is no explicit when-to-use vs when to call commons_get_tally or commons_get_archive_entry instead. The FREE/payment guidance is billing information, not tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_receiptsARead-onlyIdempotentInspect
Read settlement receipts of OPTED-IN operators only. Receipts are private by default; an empty list is an honest answer. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/receipts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world, so the bar is lower, but the description adds real context beyond them: visibility is restricted to opted-in operators, receipts are private by default, and an empty list is a legitimate outcome. It also removes payment ambiguity by stating the call is free and requires no x402 challenge — unusual and valuable operational 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?
Purpose is front-loaded in the first sentence and the empty-list caveat follows in logical order. The payment sentence is somewhat redundant, saying "FREE — no payment required", "call directly without payment", and "this tool is free" in one breath, which is more repetition than the point needs.
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 zero-parameter read tool with full annotation coverage and no output schema, the description covers purpose, visibility scope, empty-result meaning, and cost model. The one gap is that it never says what a receipt record actually contains, which an agent must guess since no output schema exists.
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 takes zero parameters and the description correctly says nothing about inputs, which is the right baseline of 4. The only input-adjacent information is that settlement scope is fixed to opted-in operators, which is scope rather than 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?
States a specific verb+resource ("Read settlement receipts") plus a meaningful scope qualifier ("OPTED-IN operators only"), which an agent can act on. It does not explicitly name a sibling such as commons_set_receipts_opt_in or commons_list_operators, so the routing is inferable rather than spelled out.
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?
"Receipts are private by default; an empty list is an honest answer" usefully tells the agent not to treat an empty result as an error or retry. However, there is no explicit statement of when to prefer this over adjacent commons tools (operator reputation, aggregates, changes) and no prerequisites for opting in beyond the implicit mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_tallyARead-onlyIdempotentInspect
Read the full hash-chained tally log plus an independent server recount and rejected (duplicate) ballots. Anyone can recount from this data. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/proposals/{id}/tally.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), and the description adds real context beyond them: the data is hash-chained and independently recountable, duplicates are surfaced rather than silently dropped, and there is no x402 payment challenge. It omits return shape/pagination, but the honest disclosure of what is included is valuable.
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?
Front-loaded with the useful content, but the payment sentence is redundant — "FREE — no payment required: call directly without payment (no x402 challenge; this tool is free)" says the same thing four times.
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?
No output schema exists, so the description must explain returns; it does by naming the three data components (tally log, recount, rejected ballots). The only gap is the unexplained id parameter semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 0% schema description coverage, the description must carry the load; it partially does by implying via the HTTP equivalent that {id} identifies the proposal. It never states the id format (address, hash, slug) or that it must reference an existing proposal.
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?
States a specific verb and resource set: reads a hash-chained tally log, an independent server recount, and rejected/duplicate ballots. It is clearly the audit-detail endpoint versus siblings like commons_get_aggregates or commons_get_proposal, though it never names those siblings to make the contrast explicit.
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 implies usage ("Anyone can recount from this data") and tells the caller payment handling is unnecessary, but it never states when to choose this over commons_get_proposal or commons_get_aggregates, nor any prerequisites such as needing a valid proposal id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_get_vote_statusARead-onlyIdempotentInspect
Read vote status: live eligible count, eligible_floor 100, and the computed voting_locked state. No vote opens below 100 eligible verified operators. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/proposals/{id}/vote-status.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). The description adds genuinely non-obvious behavior: the tool is free and requires no x402 payment challenge, plus the 100-operator eligibility gate that determines voting_locked. It omits error behavior for unknown proposal ids, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The returned-field list is front-loaded and useful, but 'FREE — no payment required: call directly without payment (no x402 challenge; this tool is free)' states the same fact three times in one sentence. Tightening that redundancy would cost nothing in 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?
With no output schema, the description correctly takes on the burden of naming the returned fields and the eligibility rule. For a one-parameter read tool that is nearly complete; only error/not-found behavior is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the parameter meaning, and it does: the HTTP equivalent 'proposals/{id}/vote-status' makes clear that id is a proposal identifier. That is meaningful added semantics for a single undocumented parameter.
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?
States a specific verb and resource (read vote status) and enumerates exactly what is returned: live eligible count, eligible_floor, and the computed voting_locked state. It does not name or contrast with the closest siblings (commons_get_tally, commons_get_proposal), so the agent must infer the boundary itself.
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 threshold rule ('No vote opens below 100 eligible verified operators') implies this is a pre-check before commons_cast_ballot, and the free/no-payment note helps selection. But there is no explicit when-to-use/when-not or a named alternative such as commons_get_tally.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_list_agentsARead-onlyIdempotentInspect
List agents tethered to operators. Agents never hold ballots (can_vote is always false). FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/agents.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the baseline is covered. The description still adds real value beyond them: the data invariant that can_vote is always false, plus the access detail that no x402 payment challenge is issued — something an agent could otherwise wrongly assume for this API surface.
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?
Front-loaded with the purpose, then two short supporting facts (ballot semantics, free access) and an HTTP equivalent. The shouty 'FREE — no payment required' repeats itself slightly, but every sentence carries operational information.
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 no-arg read tool with full annotations this covers the essentials, but it never indicates what an agent record contains or whether results are paginated, and there is no output schema to fall back on. Adequate but with a clear gap around return shape.
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 takes zero parameters, so there is nothing for the description to disambiguate; schema coverage is 100% and additionalProperties is false. Baseline 4 applies — no parameter gap exists.
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?
Specific verb+resource: 'List agents tethered to operators', which unambiguously reads as an enumeration of agent records. It doesn't explicitly differentiate itself from sibling list tools like commons_list_operators, but the resource noun makes the distinction clear enough without opening schemas.
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?
Usage is implied by the resource ('list agents'), and the zero-parameter schema makes invocation trivial. However, there is no statement of when to prefer this over commons_get_operator or commons_list_operators, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_list_archiveARead-onlyIdempotentInspect
List the permanent public archive of closed proposals. Write-once: nothing is ever deleted or mutated. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/archive.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive; the description adds genuinely new context: write-once permanence ("nothing is ever deleted or mutated") and the payment model (no x402 challenge, call directly). It omits return shape and whether the list is paginated or bounded.
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 core sentence is well front-loaded, but the payment point is restated five times in one clause ("FREE", "no payment required", "call directly without payment", "no x402 challenge", "this tool is free"). That redundancy costs space without adding information.
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 no-parameter list tool with full annotation coverage and no output schema, this is close to sufficient, and the HTTP equivalent adds a useful escape hatch. The remaining gap is pagination/result-size expectations, which an agent listing an archive would want to know.
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?
Zero parameters, so the baseline is 4; there is nothing for the description to disambiguate. It correctly does not invent or imply any filtering arguments.
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?
States a specific verb and resource: "List the permanent public archive of closed proposals." That distinguishes it from the adjacent commons_list_proposals (active proposals) and commons_get_archive_entry (single entry) by implication, though no sibling is named outright.
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 word "closed" implies this is the counterpart to listing live proposals, and the payment note removes a common hesitation about calling it. But there is no explicit "use X instead when Y" routing to commons_list_proposals or commons_get_archive_entry, so the agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_list_operatorsARead-onlyIdempotentInspect
List public operator profiles (identity fields only: name, verified status, tenure, tier, standing). Reputation is read via the profile. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/operators.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new context: the tool is free with no x402 payment challenge, plus an HTTP equivalent endpoint — useful for an agent that might otherwise skip it or attempt a payment handshake. Pagination and result-size behavior are not disclosed, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and the field list, with the payment note and endpoint last. The free-status message is stated three times in one clause ("FREE", "no payment required", "no x402 challenge", "this tool is free"), which is mild redundancy in an otherwise tight description.
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?
There is no output schema, so the description carries the burden of describing returns — and it does, naming the five identity fields. Free-of-charge status and the HTTP mirror round it out. Missing pagination/limit behavior is the main residual gap for a list endpoint.
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 takes zero parameters and the schema is empty with additionalProperties=false, so there is nothing to document. Baseline of 4 applies; the description correctly adds no fake parameter talk.
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?
States a specific verb and resource ("List public operator profiles") and enumerates the identity fields returned, so the agent knows the shape of the result before calling. It implicitly separates identity data from reputation data ("Reputation is read via the profile"), but never names the close siblings commons_get_operator or commons_get_operator_reputation, leaving the boundary to be inferred.
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?
Usage is only implied by the verb "list" — an agent can infer this is the enumeration tool, but there is no explicit when-to-use versus commons_get_operator / commons_get_operator_reputation for a single operator. The only explicit directive concerns payment ("call directly without payment"), not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_list_proposalsARead-onlyIdempotentInspect
List proposals (public record). FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/commons/proposals.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds useful behavioral context not in the annotations: it is free, requires no payment, triggers no x402 challenge, and has a direct HTTP equivalent. It still omits return shape or pagination behavior, so it is not fully comprehensive.
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 core purpose is front-loaded, but the payment note is repetitive: 'FREE', 'no payment required', 'without payment', 'this tool is free'. The HTTP equivalent is useful, but the sentence could be tightened considerably.
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 zero-parameter, annotated, read-only list tool with no output schema, the description gives enough context to call it correctly: it lists proposals and is free. It could be more complete by noting whether results are paginated or what a proposal record contains, but those are secondary here.
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 parameter semantics are not a burden. The baseline for zero-parameter tools is 4, and the description does not need to explain any inputs.
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 uses a specific verb and resource, 'List proposals', and adds scope with '(public record)'. It does not explicitly differentiate from sibling tools such as commons_get_proposal, so it falls short of a 5.
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?
There is no explicit guidance on when to use this tool versus alternatives like commons_get_proposal, commons_create_proposal, or commons_list_archive. Usage is only implied by the verb 'List'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commons_set_receipts_opt_inADestructiveIdempotentInspect
Toggle your own receipts visibility (operator-key-signed write). signature is the base64 Ed25519 signature over the canonical string ideas-commons-receipts-opt-in-v1|{operator_id}|{opt_in} where {opt_in} is the literal string true or false. Receipts are private by default (opt_in false). FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/commons/operators/{id}/receipts-opt-in. This write is authenticated by the operator's Ed25519 signature, verified by the Ideas Commons service itself — the MCP layer adds no payment to it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| opt_in | Yes | ||
| signature | Yes | Base64 Ed25519 signature over ideas-commons-receipts-opt-in-v1|{operator_id}|{opt_in} with opt_in as literal true/false | |
| operator_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the authentication model (Ed25519 signature verified server-side), the default state ('Receipts are private by default'), and the fact that no x402 payment is layered on. It does not spell out the consequence of flipping opt_in to false in terms of what becomes hidden from other readers, so it's not exhaustive against destructiveHint=true.
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?
Front-loads the action and signature recipe, which is good, but the free/no-payment point is made three times ('FREE — no payment required', 'no x402 challenge; this tool is free', 'the MCP layer adds no payment'). That redundancy displaces room for the unresolved `id` parameter.
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 signed mutation with no output schema, the description covers auth, cost, and defaults but leaves gaps: the response shape, failure modes for an invalid signature, and the id/operator_id relationship are all unstated. Adequate to start, not complete for a destructive-flagged write.
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 only 25%, but the description compensates heavily for `signature` by giving the exact canonical string and the literal true/false encoding for opt_in. However, it never explains what `id` is, and the presence of both `id` and `operator_id` (which appear in the same canonical string) is left ambiguous.
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?
States a specific verb+resource ('Toggle your own receipts visibility') and parenthetically classifies it as an operator-key-signed write, which immediately distinguishes it from the read-side sibling commons_get_receipts. It never names a sibling or explicitly excludes one, so it stops short of a 5.
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 conveys the operational context (must be signed, free, no payment challenge, defaults to private) but never says when to use this versus alternatives or when not to use it. The user must infer that this only affects the caller's own operator record.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
companies_enrich_financialsAInspect
Fetch computed UK financials from iXBRL filings. $0.15 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/companies-enrich/financials/{companyNumber}.
| Name | Required | Description | Default |
|---|---|---|---|
| companyNumber | Yes | 8-character Companies House company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context the annotations don't carry: the $0.15 per-call cost, the USDC-on-Solana/x402 payment mechanics, and the retry pattern via _meta["x402/payment"]. The readOnlyHint=false and idempotentHint=false make sense given each call charges money, so the 'Fetch'/'GET' wording is not a real 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?
Purpose is front-loaded, followed by cost/payment and the HTTP equivalent. It is dense but every sentence carries useful information for an agent that must handle the paywall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, cost, payment, and endpoint, but with no output schema the description never explains what the returned 'computed financials' actually contain. For a data-retrieval tool with no output schema, that return-value gap keeps it at an adequate-but-incomplete level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema coverage, the schema already documents companyNumber fully ('8-character Companies House company number'). The description only references companyNumber in the URL template, adding no new semantics, so the baseline 3 applies.
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?
States a specific verb (Fetch) and resource (computed UK financials from iXBRL filings), which clearly distinguishes it from siblings like companies_enrich_profile, companies_enrich_group, and companies_uk_company. An agent can tell what data this returns without opening the schema.
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?
Usage is implied by the resource name (fetch financials for a company), but there is no explicit when-to-use/when-not guidance or routing versus companies_enrich_profile or companies_enrich_group. The payment flow is explained operationally but doesn't tell the agent when to prefer this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
companies_enrich_groupAInspect
Fetch a company's full GLEIF group tree. $0.25 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/companies-enrich/group/{lei}.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | Yes | 20-character ISO 17442 LEI |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations: explicit price ($0.25 per call), payment rail (USDC on Solana via x402), the two-step challenge/retry handshake, and an HTTP fallback URL. The word "Fetch" reads as a pure read, which sits in mild tension with readOnlyHint=false and idempotentHint=false, but paid-call metering plausibly explains that marking rather than contradicting it. It still does not state error behavior for unknown LEIs or whether a company with no group returns an empty tree.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what it returns, followed by the payment mechanics. The nested parenthetical is dense but every clause carries operational value (cost, rail, retry protocol, HTTP equivalent); nothing is filler, though it could be split for scanability.
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?
There is no output schema, so the description is the only place an agent could learn what a "group tree" contains (parent, subsidiaries, consolidation, depth), and it says nothing about that shape or size. For a paid, non-idempotent call where a wasted invocation costs $0.25, omitting what the response looks like and what happens on no-match is a meaningful gap.
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% (the single lei parameter is documented as a 20-character ISO 17442 LEI), so baseline is 3. The description only echoes the parameter via the {lei} path segment and adds no format, normalization, or special-case 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?
Specific verb and resource ("Fetch a company's full GLEIF group tree") with the key domain qualifier GLEIF and the notion of a group/parent-child tree. It does not explicitly contrast itself with near-siblings like companies_enrich_profile, companies_enrich_financials, or companies_uk_ownership, so the agent must infer the distinction from names alone.
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 gives procedural guidance for how to invoke it (call unpaid to receive the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]), which is genuinely actionable. However, it gives no guidance on when to prefer this tool over its siblings or what input preconditions matter (e.g., needing a canonical LEI, or pointing to companies_enrich_resolve first).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
companies_enrich_profileAInspect
Fetch an enriched cross-registry company profile. $0.10 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/companies-enrich/profile/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | LEI (20 chars), FR SIREN (9 digits) or UK company number (8 chars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the $0.10 per-call price, the USDC-on-Solana/x402 payment mechanism, the exact retry protocol (call unpaid, read the PaymentRequired challenge, retry with _meta["x402/payment"]), and the HTTP equivalent URL. That is the kind of auth/cost context annotations cannot express; the only gap is that it does not say whether a failed paid call is charged.
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 purpose is front-loaded in the first sentence, with cost and payment mechanics following. The x402 parenthetical is dense but each clause is operationally necessary; no filler sentences.
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?
There is no output schema, yet the description never indicates what an "enriched cross-registry profile" actually returns or how large/complete the payload is. Payment and endpoint details are thorough, but for a data-retrieval tool the agent is left guessing at the response shape.
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 the accepted identifier formats (LEI 20 chars, FR SIREN 9 digits, UK company number 8 chars) are already fully documented in the schema. The description adds nothing about the id parameter, which is acceptable given the baseline but earns no bonus.
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?
States a specific verb and resource ("Fetch an enriched cross-registry company profile") and the word "cross-registry" implicitly separates it from single-registry siblings like companies_uk_company or companies_uk_lei. It does not explicitly name the sibling it replaces, so an agent must infer the boundary against companies_enrich_resolve and companies_enrich_group.
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 the payment procedure in detail but never says when to choose this tool over companies_enrich_group, companies_enrich_financials, or companies_enrich_resolve. Usage is implied by the resource name rather than stated as a selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
companies_enrich_resolveBInspect
Resolve a company across UK, FR and AU registers. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/companies-enrich/resolve.
| Name | Required | Description | Default |
|---|---|---|---|
| uk | No | 8-character Companies House company number — provide exactly one of lei/uk/siren/abn/acn | |
| abn | No | 11-digit AU ABN — provide exactly one of lei/uk/siren/abn/acn | |
| acn | No | 9-digit AU ACN — provide exactly one of lei/uk/siren/abn/acn | |
| lei | No | 20-character ISO 17442 LEI — provide exactly one of lei/uk/siren/abn/acn | |
| siren | No | 9-digit FR SIREN — provide exactly one of lei/uk/siren/abn/acn |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotation covers cost or payment, and the description supplies that fully: $0.05 per call, USDC on Solana via x402, the no-payment-then-retry challenge handshake, and the exact _meta key. This is exactly the kind of context annotations can't express. It doesn't describe the response payload or failure modes, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: capability first, then pricing and the retry protocol, then the HTTP equivalent. The payment handshake detail is essential given it is non-obvious and otherwise undiscoverable. Slightly dense with embedded nested quotes, but no wasted 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?
There is no output schema, so the description is the only place an agent could learn what "resolve" returns — a canonical entity, matched register, confidence, or nothing found. That omission matters for a cross-register resolver, and openWorldHint combined with readOnlyHint=false leaves the read/write character ambiguous.
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%, and each of the five identifier parameters documents its format and the 'provide exactly one' constraint in the schema itself. The description adds nothing about parameters, so baseline 3 applies.
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?
"Resolve a company across UK, FR and AU registers" gives a specific verb (resolve) plus resource (company) and jurisdictional scope, which distinguishes it from lookup-style siblings like companies_uk_search or companies_enrich_financials. It stops short of explicitly naming which sibling to use instead for adjacent tasks (search, profile, ownership).
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 the payment mechanics but never says when to choose this over companies_uk_search, companies_enrich_profile, or companies_uk_lei, nor what preconditions exist (e.g. one identifier required). An agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
companies_uk_companyAInspect
Fetch a full UK company snapshot by company number. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/companies-uk/company/{companyNumber}.
| Name | Required | Description | Default |
|---|---|---|---|
| companyNumber | Yes | 8-character Companies House company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations by disclosing the $0.05 price, the USDC-on-Solana x402 payment mechanism, and the exact retry protocol (call unpaid to receive the PaymentRequired challenge, then retry with _meta["x402/payment"]). That is genuinely actionable behavior an agent cannot infer. It stops short of saying what 'full snapshot' contains or what a rejected/expired payment looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the one-line purpose before the payment mechanics. Every clause earns its place because the x402/payment retry procedure is non-obvious and required to invoke the tool successfully.
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?
There is no output schema, so the description is the only place an agent could learn what the 'full snapshot' returns, and it says nothing about the fields, size, or shape of the response. Payment mechanics are covered well; the payload is a gap.
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 single parameter is documented as an '8-character Companies House company number', so the schema carries the load. The description only restates the identifier and echoes it in the HTTP path template; it adds no format or validation detail 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?
States a specific verb and resource: 'Fetch a full UK company snapshot by company number'. This cleanly separates it from lookup-style siblings (companies_uk_search) and adjacent enrichment tools (companies_uk_lei, companies_uk_ownership), though it never names those alternatives explicitly.
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 identifier type ('by company number') implies when to reach for it, but there is no explicit when-to-use/when-not guidance and no routing against companies_uk_search or companies_uk_ownership, which an agent would plausibly confuse with this.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
companies_uk_leiAInspect
Fetch a normalized GLEIF LEI record by LEI code. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/companies-uk/lei/{lei}.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | Yes | 20-character ISO 17442 LEI |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: exact pricing ($0.05/call), payment rail (USDC on Solana via x402), the required two-step challenge/retry handshake with the _meta["x402/payment"] field, and the equivalent HTTP endpoint. Payment and auth requirements are precisely the behavioral details the annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, then the commercial/transport details. Every sentence carries operational weight, though the x402 parenthetical is dense and could be tightened.
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?
There is no output schema, so the description could have hinted at what a 'normalized record' contains (fields, coverage). It covers invocation and payment completely but leaves the return shape entirely opaque for an agent that must decide whether the result is usable.
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% and the single parameter is already documented as a '20-character ISO 17442 LEI'. The description only restates 'by LEI code', adding no format, validation, or lookup-behavior detail 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?
States a specific verb and resource: 'Fetch a normalized GLEIF LEI record by LEI code.' The 'GLEIF LEI' qualifier distinguishes it from siblings like companies_uk_company, companies_uk_ownership, and companies_uk_search, though it never names them explicitly.
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 gives procedural guidance on how to invoke it (call once to receive the PaymentRequired challenge, then retry with payment), which is useful for the x402 flow. However, it offers no guidance on when to choose this over the sibling company tools that also take UK company identifiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
companies_uk_ownershipAInspect
Walk the PSC ownership chain for a UK company. $0.25 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/companies-uk/ownership/{companyNumber}.
| Name | Required | Description | Default |
|---|---|---|---|
| companyNumber | Yes | 8-character Companies House company number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile, while the description adds critical paid-call behavior: $0.25 per call, USDC on Solana, the x402 PaymentRequired challenge flow, the _meta["x402/payment"] retry key, and an HTTP equivalent. It lacks return-format details, but the payment mechanics are unusually well disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose; the remaining sentences are dense but necessary invocation details for a paid x402 endpoint. There is no filler.
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 there is no output schema, the description does not explain what the ownership chain returns, such as PSC entries, corporate entities, or error cases. Purpose and payment are covered, but output-shape uncertainty remains for a data-retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single companyNumber parameter is already documented as an 8-character Companies House number. The description only repeats it inside the HTTP path, adding no new semantics 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?
States a specific action ('Walk the PSC ownership chain') and target ('for a UK company'). The resource is distinct from sibling tools like companies_uk_company, companies_uk_search, and companies_uk_lei, so an agent can select it without opening schemas.
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?
There is no explicit when-to-use guidance, prerequisite explanation, or comparison to sibling company tools. The purpose implies the use case, but it does not route the agent among alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
companies_uk_searchAInspect
Search UK companies by name in the register. $0.02 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/companies-uk/search.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Company name keywords or a company number | |
| limit | No | 1-25, default 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description carries real behavioral weight beyond the annotations: it discloses the $0.02 price, the USDC-on-Solana/x402 payment flow, the payment-required challenge, and the exact retry location (_meta["x402/payment"]). It does not explain result format or volume, and it leaves the tension between a 'search' and readOnlyHint=false unaddressed, which prevents a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, and the payment mechanics follow. The x402 parenthetical is dense jargon but it earns its place because the agent cannot successfully invoke the tool without it.
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 two-parameter paid search endpoint with no output schema, the definition covers purpose, cost, and the payment retry protocol, which is the decisive operational detail. It is slightly incomplete in not characterizing returned company records or describing what happens when no match or limit is reached.
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% (q accepts name keywords or a company number; limit is 1–25, default 10), so the baseline is 3. The description adds no additional meaning about matching behavior, fuzzy vs exact name matching, or how limit interacts with result paging.
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?
States a specific verb and resource ('Search UK companies by name in the register'), so the agent knows exactly what the call does. It doesn't differentiate from close siblings such as companies_uk_company or companies_enrich_resolve, which also touch UK company data, so a 4 rather than a 5.
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?
There is no explicit when-to-use guidance, no exclusions, and no routing to sibling tools like companies_uk_company (lookup) or companies_uk_ownership. Usage is only implied by 'by name', and that hint is undercut by the schema accepting 'a company number' for the same q parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
courts_changesAInspect
Changes between the two seeded quarterly vintages (2026-06-30 -> 2026-09-30) for one judge, court, or disclosure record set: added/removed/changed with before/after on changed fields only. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/courts/changes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| kind | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context the annotations cannot carry: per-call pricing in USDC on Solana, the x402 challenge/retry protocol, and an HTTP endpoint equivalent. The annotations declare readOnlyHint=false while the description reads as a pure retrieval of precomputed deltas — that tension is explained by the payment side effect rather than a data mutation, so it is not a true contradiction, but the description never reconciles it.
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?
Front-loads purpose and scope in the first clause, then adds pricing and the payment protocol. The payment paragraph is long but earns its place given the non-obvious x402 mechanic; the HTTP endpoint line is useful but the least essential sentence.
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 paid, two-parameter tool with no output schema, the description covers purpose, result shape, cost, and the payment handshake — enough for an agent to call it correctly on the first attempt. Remaining gaps are the `id` format per kind and what the tool returns for an unknown or unchanged id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It effectively explains the `kind` enum by naming the three record types (judge, court, disclosure) and explains why there is no vintage parameter (the vintages are fixed and seeded), but gives no guidance on the format or identity semantics of `id` for each kind.
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?
States a specific verb and resource with full scope: 'Changes between the two seeded quarterly vintages ... for one judge, court, or disclosure record set', and clarifies the shape of the result (added/removed/changed with before/after on changed fields only). That distinguishes it in practice from the courts_*_record siblings, though it never names them explicitly.
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?
Gives concrete invocation guidance: the two vintages are fixed and seeded, the cost is $0.01, and the exact x402 flow is spelled out — call without payment to receive the PaymentRequired challenge, then retry with payment at _meta["x402/payment"]. It does not say when to use a record tool instead (courts_judge_record / courts_court_record / courts_disclosure_record for current state), which is the one missing routing cue.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
courts_court_recordBInspect
Court record by court id, with courthouses and appeals-to edges, from the quarterly bulk snapshot. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/courts/court-record.
| Name | Required | Description | Default |
|---|---|---|---|
| court_id | Yes | ||
| generation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give the generic read/write/idempotency flags, and the description adds genuinely non-obvious behavior: a $0.01 per-call charge, the x402 flow (call once, receive PaymentRequired, retry with _meta["x402/payment"]), the HTTP fallback endpoint, and the data vintage (quarterly bulk snapshot). It does not explain latency, failure modes, or what happens if payment is invalid, so it is not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose and scope before the payment mechanics, with no filler. The payment parenthetical is dense but operationally necessary, though it could be trimmed by pointing at a payment convention.
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 no output schema, the description carries the burden of describing returns, and it does so only in passing ('courthouses and appeals-to edges'). The generation/snapshot-selection parameter and the record's field shape remain undocumented, which leaves gaps for a 2-parameter tool that costs money per call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description only restates court_id as 'by court id' with no format or validation detail. The 'generation' parameter — which selects between the 2026-06-30 and 2026-09-30 snapshots — is never mentioned, leaving the agent to infer its meaning from the enum values alone.
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 names the exact resource (court record) and its key (court id), and adds what the payload contains — courthouses and appeals-to edges — which implicitly separates it from courts_judge_record, courts_disclosure_record, courts_stats and courts_changes. It lacks an explicit verb and never names a sibling, so it falls short of the top mark, but an agent can still tell what it retrieves.
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?
Usage is only implied: the reader infers 'use this for a single court's record' and the payment paragraph explains how to invoke it, not when to pick it over courts_changes or courts_judge_record. There is no when-to-use, when-not-to-use, or alternative routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
courts_disclosure_recordBInspect
A judge's financial-disclosure records by judge id (header + investments, debts, gifts, agreements, positions, reimbursements, spousal and non-investment income). An empty list is an honest delivered answer. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/courts/disclosure-record.
| Name | Required | Description | Default |
|---|---|---|---|
| judge_id | Yes | ||
| generation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this as not read-only and not idempotent, and the description usefully explains why: each call is a metered $0.01 x402 payment requiring a challenge/retry handshake at _meta["x402/payment"]. It also discloses that an empty list is a legitimate delivered answer rather than a failure, and gives the HTTP endpoint. It stops short of saying whether repeated calls re-charge or how errors after payment are handled.
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 payload contents are front-loaded and the payment mechanics are placed after, so the reader learns what they get before how they pay. The single dense payment sentence is long but each clause (price, asset, challenge-retry, meta key) carries operational weight.
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 paid, non-idempotent lookup with no output schema, the description covers cost, payment flow, and the shape of results at a section level. It omits the purpose and default of the 'generation' enum parameter and gives no sense of record size or response envelope, which are the remaining gaps an agent would hit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% with two parameters. The description clarifies judge_id as the lookup key, but the 'generation' parameter (enum 2026-06-30 / 2026-09-30) is never mentioned in either the schema or the description, leaving an agent to guess what a disclosure 'generation' means and whether it is optional.
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 names a specific resource (a judge's financial-disclosure records), the lookup key (judge id), and enumerates the record sections returned (header, investments, debts, gifts, positions, etc.). That detail distinguishes its payload from the sibling courts_judge_record, though the relationship between the two is never stated explicitly.
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?
There is no statement of when to use this tool rather than courts_judge_record, courts_court_record, or courts_changes, nor any prerequisites such as needing a judge id from a prior lookup. The only usage-adjacent guidance is how to interpret an empty result and how to complete payment, which does not help with tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
courts_judge_recordAInspect
Full judge record by judge id (biographical fields, positions, educations with school, political affiliations, races, retention events) from the Free Law Project quarterly bulk snapshot. Verbatim fields; response carries as_of = snapshot vintage. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/courts/judge-record.
| Name | Required | Description | Default |
|---|---|---|---|
| judge_id | Yes | ||
| generation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the coarse safety profile, so the description carries the important extras: data provenance (Free Law Project quarterly bulk snapshot), verbatim field fidelity, staleness signalled via as_of, and a hard $0.01 per-call cost with x402 payment requirements. It stops short of covering failure behavior — e.g. whether a rejected payment or a retry double-charges, and why the call is declared non-idempotent despite being a lookup.
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?
Front-loaded with purpose and field coverage, then provenance, then price/protocol, which is a sensible order with little waste. The x402 parenthetical and the HTTP-equivalent URL are dense but genuinely operational rather than filler.
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 no output schema, the description does the right work: it enumerates returned field groups and explains the as_of vintage marker, so an agent knows what comes back. The one meaningful hole is the undocumented generation input, which affects whether the returned snapshot matches what the agent wanted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and it only partly does: 'by judge id' implicitly covers judge_id. The second parameter, generation, with its two-value enum (2026-06-30 / 2026-09-30), is never mentioned — the description references snapshot vintage only as an output field (as_of), not as a selectable input, leaving the agent to guess what generation controls.
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 specific resource and scope: a full judge record keyed by judge id, with an enumerated field inventory (positions, educations, political affiliations, races, retention events). It is clearly distinguishable in content from siblings like courts_court_record and courts_disclosure_record, though it never names those siblings to make the contrast explicit.
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?
Usage is implied (look up one judge by id) and the payment choreography is spelled out in useful procedural detail (call once to receive the PaymentRequired challenge, retry with payment at _meta["x402/payment"]). However, there is no guidance on when to prefer this over courts_court_record/courts_disclosure_record, no prerequisite about where a valid judge_id comes from, and no guidance on choosing a generation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
courts_statsBInspect
Computed aggregates over the seeded bulk slice: judges per court, totals, disclosures by year and report type, investment row totals. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/courts/stats.
| Name | Required | Description | Default |
|---|---|---|---|
| generation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing cost ($0.01 per call), the payment rail (USDC on Solana via x402), the exact challenge-then-retry flow with the _meta["x402/payment"] key, and an HTTP equivalent endpoint. Missing only whether results are cached/snapshot-bound or how pricing failures surface. No annotation contradiction: readOnlyHint=false is consistent with a metered, payment-mutating call rather than a free read.
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?
Front-loads the capability, then condenses payment logistics and the HTTP mirror into one tight follow-on sentence. Every clause carries information; no filler or repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for invocation: cost, payment handshake, and endpoint are covered, and there is no output schema to explain. However, with one undocumented optional parameter and no sense of result size/shape or whether the slice is static, an agent still lacks enough to predict or parameterize the call fully.
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 single parameter 'generation' has an enum of two dates but zero schema description coverage, and the description never explains what a generation represents or what omitting it does (it is optional). The phrase 'seeded bulk slice' gestures at the concept without defining it, so the agent cannot confidently choose a value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific operation: computed aggregates over a seeded bulk slice, enumerating the aggregate families (judges per court, totals, disclosures by year/report type, investment row totals). This clearly distinguishes it from the sibling record-level tools (courts_court_record, courts_judge_record, courts_disclosure_record, courts_changes), though it does not name those alternatives explicitly.
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?
No guidance on when to pick this over the sibling courts_* record tools or courts_changes — the agent must infer from the word 'aggregates'. The only usage-like content is the payment retry mechanics, not tool selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cse_declare_indexAInspect
FREE index declaration: record the tenant's domains (<= 50) and queue the per-tenant index build (sitemap + Common Crawl CDX discovery over these domains only; pages fetched from these domains only). Tenant submits domains -> index builds -> search tolls $0.01. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/cse/index/declare.
| Name | Required | Description | Default |
|---|---|---|---|
| domains | Yes | The tenant's own domains (hostnames; URLs are normalised to hosts). | |
| tenant_id | Yes | Tenant identity: the payer wallet / key identity. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (non-read-only, open-world, non-destructive, non-idempotent), and the description adds substantive context beyond them: the call is free with no x402 payment challenge, the crawl is restricted to the declared domains, the build is queued asynchronously, and an HTTP equivalent endpoint is given. It does not address re-declaration semantics or build latency, which is notable given idempotentHint=false.
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?
Front-loaded with the key facts ('FREE index declaration') and packed with useful detail in a compact space. Slightly redundant in the payment clause ('no payment required: call directly without payment (no x402 challenge; this tool is free)' says the same thing three ways), which is the only thing keeping it from a 5.
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 2-parameter, no-output-schema mutation-ish tool, the description covers purpose, cost, payment/auth posture, crawl scope, and async behavior — enough to call it correctly. It stops short of saying what the caller gets back (job id, status handle) or how long a build takes, which an agent monitoring progress would want given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (domains description covers hostname normalization, maxItems 50), so the baseline is 3. The description earns a bump by adding an ownership constraint not in the schema ('the tenant's own domains') and by stating the operational consequence of the list ('pages fetched from these domains only'), which tells the agent what goes wrong if the list is wrong.
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?
States a specific verb+resource ('record the tenant's domains and queue the per-tenant index build') and immediately scopes what the build does (sitemap + Common Crawl CDX discovery over these domains only). It also implicitly separates itself from the sibling cse_search by naming the follow-on 'search tolls $0.01' step, so an agent knows this is the setup call, not the query 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?
Gives a clear workflow ('Tenant submits domains -> index builds -> search tolls $0.01') and an explicit precondition about payment ('call directly without payment, no x402 challenge'), which is the main thing that would otherwise block invocation. It does not explicitly say when NOT to use it (e.g. re-declaration vs. first-time setup, or to use cse_search for querying), leaving that to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cse_searchAInspect
Site-restricted search in Google CSE shape over our own per-tenant pre-index of the tenant's declared domains only: {tenant_id, q, max_results?} -> {items: [{title, link, snippet, indexed_at, display_link}], search_information}. Each result carries indexed_at, the date the page entered the index. Honest empty results (items: []) when nothing matches. Free pre-check at POST /toll/cse/search/preflight reports tenant index state (page count, domains, last-built) without searching. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/cse/search.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | string (required) - The search query (1-256 characters). | |
| tenant_id | Yes | string (required) - Tenant identity: the payer wallet / key identity that declared the domains. | |
| max_results | No | integer - Maximum items to return, 1-20 (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Carries far more than the annotations: discloses paid invocation ($0.01/call), the exact x402 flow (call unpaid to receive PaymentRequired, retry with payment at _meta["x402/payment"]), the alternate HTTP endpoint, and the empty-result contract. This clarifies why readOnlyHint is false despite being a search, resolving what would otherwise be a confusing annotation.
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?
Purpose and scope are front-loaded in the first clause, with payment mechanics trailing. Dense but nearly every clause carries operational content; the 'Honest empty results (items: [])' parenthetical is slightly informal yet does real work by preventing retry loops on legitimately empty results.
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 no output schema, the description compensates by listing the result fields (title, link, snippet, indexed_at, display_link) and explaining indexed_at semantically. Payment, preflight alternative, result shape, and empty behavior are all covered, so an agent has everything needed to invoke it correctly on the first attempt.
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 the schema already documents q, tenant_id, and max_results bounds and defaults. The description restates the parameter set and adds only the 'declared domains' framing of tenant_id; it gives no query syntax, matching behavior, or phrasing guidance beyond what the schema supplies.
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?
States a specific verb and resource ('site-restricted search ... Google CSE shape over our own per-tenant pre-index') and pins the exact scope ('the tenant's declared domains only'), which cleanly separates it from open-web siblings like news_search or cited_answer_search. The shape notation {tenant_id, q, max_results?} -> {items: [...]} lets an agent see inputs and outputs in one line.
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 offers a when-to-use-this-instead path: a free preflight endpoint that reports tenant index state 'without searching', giving the agent a cheaper alternative before paying. It lacks guidance on when to prefer this over sibling search tools or how to recover from an unbuilt index, so it stops short of full when/when-not coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
data_bundleAInspect
Fetch the ExchangeRebel premium data bundle. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/api/data. Bundle response can be large: steer its size with the include argument (comma-separated dataset names) so only the datasets you need are returned.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Comma-separated dataset names |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavior well beyond the annotations: a per-call price ($0.05 in USDC on Solana), the exact x402 challenge/retry handshake, an HTTP fallback endpoint, and the warning that responses can be large along with the mitigation. This is the kind of operational detail the readOnlyHint=false annotation implies but does not explain.
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?
Front-loads the purpose, then payment mechanics, then the sizing tip; every sentence carries information an agent needs (cost, handshake, response size). No filler or restatement of the tool name.
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 no output schema, the description correctly covers return-shape concerns by warning about bundle size and how to constrain it, and it covers the payment path fully. The one gap is discoverability of valid dataset names for `include`, which an agent cannot infer from this text alone.
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 single parameter is optional, so the baseline is 3; the description goes further by explaining that `include` is a comma-separated dataset list used to steer bundle size, implying that omitting it returns everything. It still doesn't say where valid dataset names come from.
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?
States a specific verb and resource: "Fetch the ExchangeRebel premium data bundle," which is concrete and distinguishable from generic bundle siblings by the ExchangeRebel qualifier and the premium/x402 framing. It does not explicitly contrast itself with near-neighbors like pack_get or render_bundle, so it falls short of full sibling differentiation.
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?
Gives clear procedural context for invocation: call once to receive the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"], plus guidance to narrow the response with `include`. It offers no when-not-to-use guidance or comparison to alternative data tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_color_convertAInspect
Color conversion HEX/RGB/HSL. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/color/convert.
| Name | Required | Description | Default |
|---|---|---|---|
| hex | No | Hex color |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing cost ($0.005/call), the payment rail (USDC on Solana via x402), and the non-obvious two-step challenge/retry protocol. That is exactly the auth/payment context an agent cannot infer. It does not explain the output shape or what happens if payment is declined, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, then cost and invocation mechanics. The x402 parenthetical is dense but every element is load-bearing for actually calling the tool. Slightly heavy for a one-parameter converter, but not padded.
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?
No output schema exists, so the description should say what a successful call returns (an HSL/RGB string? an object with all three?) and it doesn't. The payment mechanics are fully covered, but return value and zero-argument behavior are left undefined for a tool the agent must interpret results from.
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% and there is only one optional parameter ('hex': 'Hex color'), so the schema carries the load and baseline 3 applies. The description adds nothing about accepted input shapes (with/without '#', 3 vs 6 digits) or the case where hex is omitted entirely.
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?
States the resource and operation precisely: 'Color conversion HEX/RGB/HSL'. An agent knows it's a color-format converter, distinct from siblings like devutils_units_convert or devutils_fx_convert. It stops short of specifying direction/return format, but the verb+resource is 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?
No explicit when-to-use or when-not guidance versus alternative conversion tools. However, it does give invocation guidance that matters for selection: the payment handshake (call once to get PaymentRequired, retry with _meta["x402/payment"]) and an HTTP fallback URL. Usage is implied rather than scoped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_cron_parseAInspect
Parse a cron expression: next 5 runs + human description. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/cron/parse.
| Name | Required | Description | Default |
|---|---|---|---|
| expr | Yes | Cron expression |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare safety flags, so the description carries the real behavioral burden and does so well: it discloses a per-call price ($0.005 USDC on Solana), the exact payment retry mechanism, and an HTTP equivalent for out-of-band use. It stops short of describing failure behavior for malformed expressions.
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 purpose and return value are front-loaded in the first clause, with payment mechanics following. The payment sentence is long but each clause is actionable; the HTTP URL is the only element that could be trimmed for some agents.
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 no output schema, the description correctly states what is returned (next 5 runs plus a human description), and the paid-call workflow is fully spelled out. Only error/invalid-expression behavior is left unspecified for this otherwise simple one-parameter utility.
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 single required parameter `expr` has 100% schema description coverage, so the schema already defines it. The description adds nothing about accepted cron dialects or field ranges, leaving the baseline 3 appropriate for a fully documented single-param tool.
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?
States a specific verb (parse) and resource (cron expression) and even names the return content — next 5 runs plus a human-readable description. No sibling tool overlaps with this behavior, so the agent can select it unambiguously.
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 gives operational guidance for the payment handshake (call unpaid to receive the PaymentRequired challenge, then retry with the payment under _meta["x402/payment"]), which is genuinely useful. It gives no guidance on when to prefer this over alternatives or on preconditions such as expression syntax support, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_csv_to_jsonAInspect
Convert CSV to a JSON array. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/csv/to-json.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavior beyond annotations: exact cost, the x402 USDC-on-Solana payment mechanism, the PaymentRequired challenge/retry loop, and an HTTP equivalent endpoint. Annotations only say readOnly=false and destructive=false, so this pricing and payment-flow disclosure is real value. It stops short of describing error responses or output shape beyond 'JSON array'.
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 purpose is front-loaded, and the payment information follows in a compact, dense second sentence. It's efficiently packed with no filler, though the payment syntax is slightly dense for an agent parsing quickly.
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 one-parameter conversion tool with no output schema, the description covers purpose, output type (JSON array), cost, payment flow, and HTTP fallback. The only missing piece is how the 'text' input should be formatted, which the schema mostly covers.
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 the single 'text' parameter is already documented structurally. The description adds no detail on the parameter itself — e.g., whether it accepts multiline CSV, delimiters, or file paths — so the baseline of 3 applies.
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 first sentence names the exact verb and resource ('Convert CSV to a JSON array') and is unambiguous. An agent can distinguish it from sibling devutils_json_format and devutils_json_validate purely from this sentence.
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 gives operational invocation guidance (payment flow and HTTP equivalent) but never says when to prefer this over sibling tools like devutils_json_format or devutils_json_validate. The intended use case — turn CSV text into JSON — is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_decode_base64AInspect
Decode a Base64 string to UTF-8 text. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/decode/base64.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false and destructiveHint=false, so the safety profile is partly covered. The description adds genuinely non-obvious behavior: a per-call price, the x402 payment handshake, the exact _meta key for the payment payload, and an HTTP equivalent endpoint. It does not contradict the annotations, though readOnlyHint=false on a pure decode is left unexplained.
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?
Purpose is front-loaded in the first sentence, followed by pricing and payment mechanics, then the HTTP equivalent. Every sentence carries information, though the pricing and endpoint detail is dense and slightly crowds out anything about the response.
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 no output schema, the description must convey return shape, and it only implies a UTF-8 string without saying whether the result is raw text or wrapped in a JSON envelope. It also omits error behavior for invalid Base64 input. The payment and transport story, by contrast, 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 coverage is 100%, but the single parameter is documented only as "string" under the name "text", which is nearly meaningless. The description compensates by establishing that the input is a Base64 string to be decoded, but adds nothing about encoding variants, padding, whitespace, or size limits. Baseline 3 fits given the schema carries the structural load.
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?
States a specific verb and resource ("Decode a Base64 string to UTF-8 text"), which unambiguously separates it from the inverse sibling devutils_encode_base64. It does not explicitly name that sibling or any other alternative, so it falls short of the top mark.
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?
There is no explicit statement of when to reach for this versus devutils_encode_base64 or other devutils helpers; usage is implied purely by the verb. The description does supply procedural guidance for the payment flow (call without payment to get the challenge, then retry), which is real usage direction but not tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_dnsAInspect
DNS lookup via DNS-over-HTTPS. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/dns/{domain}.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Record type, default A | |
| domain | Yes | Domain name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations: per-call price ($0.005 USDC on Solana), the x402 payment challenge/retry protocol, and an HTTP fallback URL. This also explains why readOnlyHint=false is plausible despite the word "lookup" — the call spends funds. Missing only rate limits or response-shape details.
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?
Front-loads the purpose in the first clause, then the cost and payment mechanics, then the HTTP equivalent. Dense but every sentence carries operational weight; no filler.
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 two-parameter lookup with no output schema, the description covers purpose, cost, and the exactly-once payment flow an agent must follow. The one gap is not describing the response payload (record data/TTL), which matters slightly more given there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (domain, type with default A) are already documented in the schema. The description mentions no parameters directly; the {domain} in the HTTP equivalent only echoes the schema. Baseline 3 applies since the schema does the work.
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?
Names a concrete verb and resource ("DNS lookup") plus the transport mechanism (DNS-over-HTTPS), which is more specific than the bare name. It does not explicitly distinguish itself from nearby devutils siblings such as devutils_rdap or devutils_ip, but the operation is unambiguous on its own.
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?
There is strong procedural guidance for the payment handshake (call unpaid, read the PaymentRequired challenge, retry with _meta["x402/payment"]), but nothing about when to prefer this tool over devutils_rdap or devutils_ip, or when DNS resolution is the right call. Usage is implied by the tool's purpose rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_email_validateAInspect
Validate an email address format and domain. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/email/validate.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Email address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavior the annotations do not: price ($0.005/call), payment rail (USDC on Solana via x402), the PaymentRequired challenge flow, the _meta["x402/payment"] retry key, and an HTTP GET equivalent. This explains why readOnlyHint=false and idempotentHint=false (each call is a paid transaction). It does not say whether 'domain' validation means syntactic check or live DNS/MX lookup, which matters given openWorldHint=false.
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?
Purpose is front-loaded in the first sentence, followed by pricing and protocol details. The second sentence is dense with nested mechanics but each clause (price, rail, challenge flow, retry key, endpoint) is operationally necessary, so little is wasted.
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?
Payment mechanics are fully covered, but with no output schema the description never indicates what a validation result looks like (boolean, reason codes, DNS error vs. syntax error). For a paid call, an agent should know the response shape before spending money.
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?
One parameter with 100% schema description coverage and a required flag already in the schema. The description adds nothing about the email parameter's accepted format or edge cases, so baseline 3 applies.
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?
"Validate an email address format and domain" names a specific verb and resource and even scopes the two checks performed. No sibling in the tool list does email validation, so it is unambiguously distinct from the other devutils_* utilities.
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 the payment handshake and gives the HTTP equivalent endpoint, which is essentially how-to-invoke guidance. It gives no explicit when-to-use/when-not-to-use framing against alternatives (e.g. simple regex check vs. this paid tool), so usage selection is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_encode_base64AInspect
Encode a UTF-8 string as Base64 text. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/encode/base64.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=false, so the description usefully adds the real behavioral facts an agent needs: a fixed $0.005 USDC-on-Solana cost and the two-step x402 payment handshake. It omits rate limits, error/cancellation behavior, and doesn't reconcile the surprising non-idempotent annotation for what is a pure transformation.
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?
Purpose is front-loaded in the first clause, followed by the pricing and transport details. Three sentences with little waste, though the payment-parenthetical is dense enough that a reader must parse nested syntax to act on it.
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 one-parameter, no-output-schema utility, the description covers what the tool does, what it costs, and how to pay via both MCP and HTTP. Remaining gaps — output shape confirmation, input size limits, failure modes — are minor but non-zero.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter and 100% schema description coverage, the schema is nominally complete, so baseline 3 applies. The description adds one genuinely useful semantic detail — the input is interpreted as UTF-8 — but says nothing about size limits or what happens with invalid input.
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 first sentence names a specific verb (encode) and resource (UTF-8 string as Base64 text), which cleanly separates it from its sibling devutils_decode_base64. An agent can identify the operation without opening the schema.
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 gives actionable invocation context for the unusual case: call without payment to receive the PaymentRequired challenge, then retry with payment at _meta["x402/payment"], plus the HTTP equivalent. That is clear procedural context, but it never states when to prefer this tool over a free alternative or what to do on payment failure, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_fx_convertAInspect
Fiat currency conversion (ECB rates via Frankfurter). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/fx/convert.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | To currency | |
| from | Yes | From currency | |
| amount | Yes | Amount |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this non-read-only, open-world and non-idempotent, and the description explains why: each call costs $0.005 USDC on Solana and requires a two-step payment handshake. That is real added context beyond the annotations, plus an HTTP fallback URL. It stops short of describing failure/refund behavior or rate limits.
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?
Purpose is front-loaded in the first clause, followed by pricing and payment mechanics in a single parenthetical. It is dense but every element is load-bearing for a pay-per-call tool; only the HTTP URL is arguably expendable.
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?
Payment and sourcing are well covered, but with no output schema the description should say what a conversion returns (converted amount, rate used, rate date) so an agent can plan the follow-up. That return-shape gap leaves it only adequate for a 3-parameter conversion 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 coverage is 100%, so the three parameters are already documented by the schema, which sets the baseline at 3. The description adds nothing about currency code format (ISO 4217) or why amount is a string, so it does not exceed that baseline.
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 names a specific verb and resource — fiat currency conversion — and discloses the data source (ECB rates via Frankfurter). An agent can distinguish it from most siblings, though it never explicitly contrasts with devutils_fx_rates, the closest alternative, so differentiation is left implicit.
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 gives procedural guidance for invocation (call without payment to receive the PaymentRequired challenge, then retry with payment at _meta["x402/payment"]), which is genuinely useful. However, it never states when to choose this over devutils_fx_rates or what inputs are valid, so the when-to-use layer is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_fx_ratesAInspect
All FX rates for a base currency. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/fx/rates.
| Name | Required | Description | Default |
|---|---|---|---|
| base | No | Base currency, default USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare openWorldHint and non-idempotent, but they say nothing about cost or the x402 payment handshake. The description adds the per-call price, the exact payment protocol, and the underlying HTTP endpoint — genuinely non-obvious behavior an agent needs before invoking.
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 purpose is front-loaded in the first sentence, followed by cost and payment mechanics. Dense but every sentence carries actionable information; only the HTTP-equivalent clause is marginal.
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 one-parameter lookup with no output schema, the description covers what is returned (all rates), what it costs, and how to pay — the pieces an agent would otherwise get wrong. Return shape detail is the only minor gap.
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 single 'base' parameter is already documented with its USD default. The description adds no syntax or format detail beyond that, so the baseline 3 applies.
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?
States a specific verb+resource+scope: retrieve all FX rates for a given base currency. It is clearly distinguishable from devutils_fx_convert, though it never names that sibling explicitly.
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 payment flow guidance (call unpaid to get the PaymentRequired challenge, retry with payment in _meta) is useful operational context, but there is no guidance on when to use this versus devutils_fx_convert or when a paid call is warranted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_gen_passwordAInspect
Crypto-secure password (4-128 chars). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/gen/password.
| Name | Required | Description | Default |
|---|---|---|---|
| length | No | Default 20 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: discloses cost ($0.005/call), payment rail (USDC on Solana via x402), the exact two-step MCP flow (call bare, receive PaymentRequired, retry with _meta["x402/payment"]), and an HTTP fallback URL. That is high-value context annotations cannot carry. It does not say whether the generated password is returned in the response body or logged/stored, which matters for a secret-generating call.
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?
Front-loaded with the capability and constraint, then cost, then the payment procedure. Three dense sentences with no filler; the parenthetical payment detail is long but operationally necessary for a paid tool.
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 no output schema, the description should say what comes back — a plaintext password string in the result — and it never does, nor does it describe failure behavior beyond the payment challenge. Payment and cost are covered thoroughly, so the gap is narrow but real for a secret-producing 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 coverage is 100% but the schema only says "Default 20" for a string-typed field; the description adds the meaningful bound (4-128 chars) that the schema omits. It does not clarify why length is typed as a string, which is the one real ambiguity left.
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?
States a specific verb+resource ("Crypto-secure password") plus a concrete constraint (4-128 chars), which is enough to distinguish it from devutils_gen_token and devutils_gen_uuid by name. It stops short of explicitly contrasting itself with those two siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and the char range, but nothing states when to pick this over devutils_gen_token or devutils_gen_uuid. The only explicit procedural guidance is the payment retry loop, which is invocation mechanics rather than tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_gen_tokenAInspect
Random hex token (1-256 bytes). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/gen/token.
| Name | Required | Description | Default |
|---|---|---|---|
| bytes | No | Default 32 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover read-only/destructive/idempotency flags; the description adds material context they cannot: the $0.005 price, the USDC-on-Solana/x402 payment rail, the two-phase challenge-and-retry handshake, the exact _meta key, and an HTTP fallback URL. That is substantial disclosure beyond structured fields, though it omits whether the randomness is cryptographically secure and whether retries are billed twice.
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?
Single tight block: purpose and output shape first, then pricing, then the payment procedure, then the HTTP equivalent. The parenthetical payment explanation is dense but every clause is load-bearing; nothing is repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter generator with no output schema, the definition covers what is produced, its size range, its cost, and the unusual payment handshake an agent must perform. Only the error/edge behavior (invalid byte count, double-charging on retry) is left unstated.
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, but the description earns an extra point by adding the 1-256 range constraint and units that the schema only hints at ('Default 32' for a string-typed parameter). It still doesn't state what happens on out-of-range input or whether the boundary is inclusive.
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?
States a specific verb+resource with a concrete output shape: 'Random hex token (1-256 bytes)'. It is clearly distinct from devutils_gen_password and devutils_gen_uuid in output format, but it never names those siblings to make the distinction explicit.
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 gives a concrete operational procedure for payment ('call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]'), which is genuine when/how guidance. However, it never says when to pick this over the sibling generators (gen_password, gen_uuid) or what the token is suitable for, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_gen_uuidAInspect
Generate a random UUID (v4) value. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/gen/uuid.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare that this is a non-read-only, non-destructive, non-idempotent operation. The description goes well beyond that by disclosing the price ($0.005 USDC on Solana), the payment/auth requirement, and the exact 402-challenge retry protocol — exactly the kind of behavioral context annotations cannot convey.
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?
Purpose is front-loaded in the first sentence, followed by cost and the payment flow. Dense but every sentence carries operational information; the HTTP URL could arguably be dropped for an MCP caller but is cheap.
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 zero-parameter, no-output-schema tool, the description covers everything needed to invoke it successfully, including the non-obvious paid-call handshake that would otherwise cause a failed first attempt.
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 zero properties, so baseline is 4. The description actually adds meaning by documenting an out-of-schema argument, the _meta["x402/payment"] field, that the agent must supply on retry.
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?
States a specific verb and resource with the version pinned: 'Generate a random UUID (v4) value.' An agent can distinguish it from devutils_gen_token and devutils_gen_password without inspecting the schema.
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 gives detailed invocation mechanics (call without payment to receive the PaymentRequired challenge, retry with payment at _meta["x402/payment"]), but never says when to reach for this tool versus the sibling generators or the HTTP endpoint. Usage is implied by the name rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_hash_md5AInspect
Hash a text value with the MD5 algorithm. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/hash/md5.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give generic safety hints, and the description adds genuinely load-bearing context: a per-call price, the x402 challenge/retry protocol, where to put the payment (_meta["x402/payment"]), and an HTTP equivalent endpoint. It does not cover rate limits or the shape of the returned digest, but the paid-invocation behavior—the main surprise for an agent—is fully disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose first, then billing protocol, then the HTTP mapping. Every sentence carries information an agent needs before calling, with no filler.
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?
No output schema exists, so the description should say what comes back (a hex digest, its length/format), but it never does. The billing side is thorough while the result side is missing, leaving a real gap for a compute-style 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 coverage is nominally 100% but the sole parameter's description is just "string", so the schema conveys almost nothing; the description likewise never explains hashing semantics (encoding, byte handling, empty input). Baseline 3 applies since there is one parameter and the tool text does not contradict anything.
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?
States a specific verb and resource plus the exact algorithm ("Hash a text value with the MD5 algorithm"), which separates it from devutils_hash_sha256 on inspection. It stops short of explicitly contrasting the two hashes, so an agent must infer the choice from the algorithm name alone.
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?
Usage is only implied by the algorithm name; there is no statement of when to pick MD5 over the sibling devutils_hash_sha256, nor any warning that MD5 is unsuitable for security-sensitive use. The payment retry loop is explained, but that is invocation mechanics rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_hash_sha256AInspect
SHA-256 hex digest of text. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/hash/sha256.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare generic hints (readOnlyHint=false, idempotentHint=false, destructiveHint=false) for a pure computation, so the description must supply the real behavioral context — and it does, disclosing the exact price ($0.005 per call), the payment rail (USDC on Solana via x402), the challenge-then-retry protocol including the _meta["x402/payment"] key, and the equivalent HTTP endpoint. It does not cover failure modes such as insufficient payment, which keeps it below 5.
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 purpose is stated up front in one clause, followed by price, payment mechanics, and the HTTP equivalent — all relevant to a paid tool. The parenthetical payment instructions are dense but earn their place; nothing is duplicated or wasted.
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 single-input paid utility with no output schema, the definition covers what it computes, what it costs, how to pay, and where the HTTP mirror lives. It could note the digest's encoding casing or error behavior, but nothing essential to invoking it correctly 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?
Only one parameter, and its schema coverage is 100%, so the schema already documents it. The description restates that the input is 'text' to be digested, which is marginal added value; the baseline of 3 is appropriate when the schema carries the 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 names a specific operation and resource — 'SHA-256 hex digest of text' — which lets an agent identify it immediately and distinguish it from the sibling devutils_hash_md5 without consulting the schema.
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?
Use is strongly implied by the operation itself, and it usefully explains the payment flow (call once unpaid to receive a PaymentRequired challenge, then retry with the payment). But it never addresses when to choose this over an alternative — for example the HTTP endpoint, or the md5 sibling — beyond stating which HTTP equivalent exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_ipAInspect
Caller IP geolocation (country, city, ASN, timezone). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/ip.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavior beyond the annotations: a concrete price ($0.005/call), the payment rail (USDC on Solana), and the two-step challenge/retry protocol. This is critical context since readOnlyHint=false and idempotentHint=false would otherwise leave an agent unsure why a lookup isn't a plain read — the cost/payment disclosure explains it. It stops short of covering rate limits or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: purpose first, then cost, then the payment mechanics, then an HTTP fallback. Every element is functional, though the raw endpoint URL is marginal for an MCP caller and the long parenthetical could be split for readability.
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 zero-parameter, no-output-schema tool, the description covers what is returned (country, city, ASN, timezone) and the full payment loop, so an agent can invoke it correctly. It omits edge cases — behavior on private/localhost IPs, or whether the caller IP itself is echoed — which would round it out.
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?
Zero input parameters, so there is nothing for the description to document and the baseline of 4 applies. The mention of the _meta["x402/payment"] envelope is transport-level context, not a schema parameter the agent must construct.
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?
States a specific verb+resource ("Caller IP geolocation") and enumerates the returned fields (country, city, ASN, timezone). It is clearly distinguishable from siblings like devutils_dns, devutils_rdap, and devutils_useragent_parse, which deal with different network lookups.
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 the x402 payment dance (call once to get PaymentRequired, retry with payment in _meta) and gives the HTTP equivalent, which is genuine invocation guidance. However, it never says when to pick this over a sibling (e.g. devutils_rdap for registration data or devutils_dns for resolution), so the use-case routing is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_json_formatAInspect
Format and prettify a JSON document. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/json/format.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations say readOnlyHint=false and idempotentHint=false, and the description supplies the reason those are true: each call costs $0.005 USDC and the first attempt returns a PaymentRequired challenge rather than a result. That is real behavioral context an agent cannot derive from the annotations. It stops short of stating error behavior for malformed JSON or any input size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact clauses ordered by importance: what it does, what it costs, how to pay, plus an HTTP fallback. Every sentence carries information and the purpose is front-loaded. The HTTP equivalent URL is marginally beyond what an MCP caller needs but is cheap and useful for debugging.
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 no output schema, the description should say what comes back (a formatted JSON string? an object?) and what happens when the input is not valid JSON — it says neither. The paid-API mechanics are well covered, but the result contract for a simple one-parameter tool is left implicit.
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?
There is a single parameter 'text' at 100% schema description coverage, so the schema carries the burden and baseline is 3. The description adds no detail about whether 'text' must already be valid JSON, what encoding is expected, or how large it may be.
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 first sentence gives a specific verb pair and resource: 'Format and prettify a JSON document.' An agent immediately knows the operation. It does not differentiate from the obvious sibling devutils_json_validate, so an agent choosing between formatting and validating must infer the distinction from the names alone.
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 spends its space on the payment procedure (call without payment, get a challenge, retry with _meta["x402/payment"]) rather than on when to use this instead of devutils_json_validate or devutils_csv_to_json. Usage is implied by the verb, and the payment protocol is genuinely necessary call guidance, but the selection guidance between siblings is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_json_validateAInspect
Validate a JSON document's syntax. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/json/validate.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond annotations: a concrete cost ($0.005 per call), the payment rail (USDC on Solana via x402), the two-step challenge/retry handshake, and the HTTP equivalent. It does not explain what happens on invalid input (error vs. structured result), which matters given readOnlyHint=false and no output schema.
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?
Purpose is front-loaded in the first sentence and the payment mechanics follow as needed logistics. Every element — cost, protocol, retry path, HTTP mirror — is actionable information, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the payment side thoroughly, which is the hard part, but leaves the result contract unspecified: an agent cannot tell whether invalid JSON yields a structured verdict or a protocol error, and there is no output schema to fill that gap.
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%, but the single parameter 'text' has a placeholder description of just 'string'. The description implies it is the JSON document to validate, which adds modest meaning, but gives no size limits, encoding, or expected format details. Baseline 3 applies.
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?
States a specific verb and resource: validate a JSON document's syntax. The task is unambiguous, but the description never differentiates from the closely-named sibling devutils_json_format, so an agent must infer which of the two to 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 gives operational guidance for payment (call without payment to receive the PaymentRequired challenge, then retry) but no guidance on when to choose this over devutils_json_format or when validation is the wrong tool. Usage is only implied by the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_jwt_decodeAInspect
Decode a JWT header+payload (no signature verification). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/jwt/decode.
| Name | Required | Description | Default |
|---|---|---|---|
| token | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses the paid nature of the call ($0.005 per call in USDC on Solana via x402) and the exact MCP payment flow, including the PaymentRequired challenge and retry mechanism. It also documents the HTTP equivalent endpoint. These are important behavioral traits not captured by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core operation and then provides payment details. The payment mechanism is necessarily detailed for a paid tool, and the HTTP equivalent is extra but useful. It is appropriately sized overall.
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 one simple parameter and no output schema, the description covers the essential operation, its exclusion of signature verification, and the payment flow. It could briefly describe the decoded return shape, but the missing detail is minor for such a low-complexity 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?
The input schema has 100% description coverage, but the parameter description is only the tautological string 'string'. The tool description implies that the 'token' parameter is a JWT, but it does not add syntax, format, or validation details beyond that implication.
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 specific verb and resource: 'Decode a JWT header+payload'. It also scopes the operation by clarifying '(no signature verification)', so an agent can immediately tell this apart from tools that might validate or verify JWTs.
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 gives clear usage context by stating that it decodes only and explicitly excludes signature verification. It does not name an alternative verification tool, but the scope limitation is enough to know when this tool is not appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_markdown_to_htmlAInspect
Convert basic markdown to HTML. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/markdown/to-html.
| Name | Required | Description | Default |
|---|---|---|---|
| text | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry only generic safety hints, and the description adds substantial operational context: exact price ($0.005 per call), the settlement rail (USDC on Solana via x402), the two-step challenge/retry protocol with the _meta["x402/payment"] key, and an HTTP fallback endpoint. It stops short of stating output form or error behavior for invalid markdown.
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?
Purpose is front-loaded in the first clause, followed by the payment mechanics needed to actually invoke it. Slightly dense in the x402 parenthetical but every element (price, rail, retry, HTTP mirror) is actionable.
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 single-parameter pure conversion the definition covers purpose, cost, and invocation protocol, which is most of what an agent needs. With no output schema, a note on the returned HTML or on handling unsupported markdown would close the remaining gap.
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?
One optional parameter (text) with 100% nominal coverage, but the schema description is literally "string", so the description is what actually conveys that the value is markdown source. That is minimal added meaning and the baseline 3 applies.
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?
"Convert basic markdown to HTML" states a specific verb and resource, and no sibling in the long devutils_* family competes with it (csv_to_json, json_format, etc. are distinct conversions). "Basic" also scopes the input subset, which an agent would otherwise have no way to infer.
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 the payment procedure (call without payment, get the challenge, retry with the payment) but gives no guidance on when to choose this tool versus, say, doing the conversion locally or using pubconvert_convert. Usage is implied by the tool name rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_qrAInspect
QR code as SVG (max 106 bytes of text). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/qr.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Size, default 200 | |
| text | Yes | Text to encode |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations to disclose pricing ($0.005/call), the payment rail (USDC on Solana via x402), and the exact MCP invocation dance (call to get PaymentRequired, retry with payment at _meta['x402/payment']). This is exactly the operational context an agent needs for a paid tool.
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?
Front-loads the purpose and constraint, then the payment mechanics. Dense but each clause earns its place—pricing and the x402 retry flow are non-negotiable for a paid endpoint. Slightly heavy on payment prose but not wasteful.
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 no output schema, the description correctly states the return format (SVG). Combined with the byte limit, pricing, and payment flow, an agent has what it needs to call it correctly; only explicit size behavior is left implicit.
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 the baseline is 3, but the description adds the 106-byte cap that isn't in the schema's 'Text to encode' field, and returning SVG implies the size param governs output dimensions. Adds measurably more than the schema alone.
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?
States a specific resource and output format ('QR code as SVG') plus a concrete constraint (max 106 bytes of text). It's unambiguous what the tool produces, though it doesn't explicitly contrast with any devutils sibling since none is a near-equivalent.
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 106-byte limit and payment flow imply invocability constraints, but there's no 'use this when / not when' guidance. The payment retry instructions tell you how to call it, not when to prefer it over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_rdapAInspect
Domain registration data (RDAP). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/rdap/{domain}.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag openWorldHint=true and readOnlyHint=false; the description adds genuinely non-obvious behavior: a $0.005 per-call charge in USDC on Solana, the x402 payment handshake, and the equivalent HTTP GET endpoint. It stops short of describing failure modes other than the PaymentRequired challenge (e.g., unknown domain, rate limits), so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, followed by cost and payment mechanics, then the HTTP fallback. Dense but every clause carries functional information; only the pair of payment/HTTP details could be trimmed for a non-paying agent.
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 no output schema, the description never characterizes the returned registration data (registrar, dates, status, nameservers), which an agent needs to know whether this answers its question. Payment and endpoint context are thorough, but the return side is left entirely implicit.
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?
Only one parameter exists and schema coverage is 100%, so the schema already documents 'domain'. The description's URL template reinforces that domain is a path-style identifier but adds no format rules, TLD handling, or example beyond the schema. Baseline 3 applies when structured data carries the parameter burden.
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?
States the resource and data type precisely: "Domain registration data (RDAP)" plus the endpoint URL with a {domain} placeholder, so an agent knows it performs a registration-record lookup. It does not explicitly distinguish itself from near-siblings like devutils_dns or companies_uk_search, which is the only thing keeping it from a 5.
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 gives a detailed operational usage flow for payment (call once, receive PaymentRequired, retry with _meta["x402/payment"]), which is real guidance on how to invoke it. However, it offers no guidance on when to pick this over devutils_dns or other domain-data siblings, so selection guidance is only implied by the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_time_convertBInspect
Convert a time between timezones. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/time/convert.
| Name | Required | Description | Default |
|---|---|---|---|
| time | No | string | |
| to_tz | No | string | |
| from_tz | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds genuinely valuable non-schema behavior: the $0.005 USDC/x402 cost and the exact challenge-then-retry handshake at _meta["x402/payment"], plus an HTTP fallback. However it says nothing about accepted time formats or output shape, and the annotations (readOnlyHint=false, idempotentHint=false on what is a pure compute function) are left unexplained rather than contradicted.
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 purpose statement is front-loaded in the first sentence and the payment preamble follows. The x402 retry instructions are wordy but operationally necessary, so little is wasted.
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?
Payment, retry protocol, and an HTTP equivalent make this callable in principle, and there is no output schema to describe. Still missing are the input time format, timezone identifier convention, and DST/ambiguity behavior, which matter for a conversion tool whose schema is uninformative.
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 nominally 100%, but every property description is the placeholder string "string", so no parameter meaning is actually conveyed. The description does not compensate: it never states the expected time format (ISO 8601? epoch?) or that tz values are timezone names such as "America/New_York".
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?
States a specific verb and resource ("Convert a time between timezones") that an agent can act on immediately. It does not differentiate from the closest sibling devutils_time_now or note anything about conversion scope, so it falls just short of a 5.
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?
There is no guidance on when to use this versus devutils_time_now or other devutils converters, and no note on prerequisites beyond the payment mechanics. The agent must infer that from_tz/to_tz should be IANA identifiers and that this is the tool for shifting an existing timestamp.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_time_nowAInspect
Current time in any IANA timezone. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/time/now.
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | IANA timezone |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context annotations cannot convey: the $0.005 USDC-on-Solana price and the two-step x402 payment handshake, plus an HTTP equivalent endpoint. That is exactly the kind of paywall behavior an agent must know before calling. It doesn't explain the returned timestamp format, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences that front-load the capability, then the payment mechanics and HTTP equivalent. The payment parenthetical is long but every clause is operationally necessary; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers capability, cost, payment protocol, and an alternate transport for a single-parameter utility with no output schema. The only omission is return-value shape, which is largely self-evident for a clock 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 coverage is 100% and the only parameter (tz, IANA timezone) is documented in the schema. The description's 'any IANA timezone' matches rather than extends that, and it doesn't state the default when tz is omitted (required count is 0). Baseline 3 applies.
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?
States a specific resource and scope: the current time in any IANA timezone, which distinguishes it from the sibling devutils_time_convert. It stops short of naming the convert sibling explicitly, but the verb/resource pair is 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?
Tells the agent how to invoke it commercially (call unpaid to get the PaymentRequired challenge, then retry with payment at _meta["x402/payment"]), which is genuinely useful. It does not say when to prefer this over devutils_time_convert or what to do for non-current-time needs, so selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_units_convertAInspect
Unit conversion (length/weight/temp/volume/data/speed). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/devutils/units/convert.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | To unit | |
| from | Yes | From unit | |
| value | Yes | Value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Well beyond what the annotations provide: pricing ($0.005/call), payment rail (USDC on Solana via x402), and the exact two-step invocation pattern (call unpaid to receive the PaymentRequired challenge, then retry with the payment in _meta["x402/payment"]). That is genuinely actionable behavior an agent could not derive from readOnlyHint/openWorldHint alone. It does not explain the result shape, but the payment flow — the real operational risk here — is fully disclosed.
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?
Front-loads the purpose in six words, then the cost, then the payment mechanics, then the HTTP mirror — a sensible priority order with no filler. The endpoint URL is long but earns its place for agents that may fall back to HTTP.
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 3-required-param tool with no output schema, the payment protocol is covered thoroughly, but the description leaves the return value (numeric unit? string? rounded?) and accepted unit vocabulary entirely unaddressed. Those are the two things an agent most needs beyond the already-covered billing flow.
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, and the schema descriptions are bare ("From unit", "To unit", "Value"). The description's category list does help narrow what strings 'from'/'to' accept, but it adds no syntax, alias, or format guidance (e.g., whether 'lbs'/'pound' both work, or that 'value' is a string).
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?
States a specific verb+resource ("Unit conversion") and enumerates supported domains (length/weight/temp/volume/data/speed), which lets an agent distinguish it from devutils_fx_convert, devutils_time_convert and devutils_color_convert by exclusion. It stops short of naming those siblings explicitly, so the separation is inferred rather than stated.
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 category list implies scope (no currency, no color, no timezone), and the HTTP equivalent hints at an alternate access path, but there is no explicit "use this instead of X when Y" guidance and no statement of when the tool is inappropriate. Usage must be inferred from the parenthetical.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
devutils_useragent_parseAInspect
Parse a user-agent string into browser/OS/device/bot. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/devutils/useragent/parse.
| Name | Required | Description | Default |
|---|---|---|---|
| user_agent | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint=false and idempotentHint=false already declaring side effects, the description explains the cause: every call costs $0.005 in USDC on Solana, so invocations are billable and non-repeatable for free. That is real added context beyond the annotations, though it omits failure behavior (e.g. whether a rejected parse is still charged).
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?
Purpose is front-loaded in the first clause, followed by cost, payment mechanics, and an HTTP equivalent. Three sentences, each doing distinct work, with no repetition.
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 no output schema, the description partially compensates by naming the output dimensions (browser/OS/device/bot), but it does not describe the return structure, invalid-input handling, or whether malformed strings still incur the charge — gaps that matter for a paid call.
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 nominally 100%, but the single parameter is described only as 'string', so the description carries the actual meaning: it must be a user-agent string. That is a marginal but real addition; nothing is said about format, default, or behavior when the optional parameter is omitted.
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 opening clause states a precise verb (parse) plus the resource (user-agent string) and the shape of the result (browser/OS/device/bot). It is unambiguous against the many devutils_* siblings, each of which names a distinct resource, though it never explicitly contrasts itself with them.
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 gives essential invocation procedure — call first without payment to receive the PaymentRequired challenge, then retry with payment at _meta["x402/payment"] — but it never states when to choose this parse tool over related devutils utilities, nor any conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discovery_matchAInspect
Match a plain-language task to ranked agent tools/services. $0.02 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/discovery/match.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | string (required) - plain-language task | |
| limit | No | integer 1-20, default 5 | |
| max_price | No | number - max USD per call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this non-read-only and non-idempotent, and the description corroborates by disclosing that each call costs $0.02 USDC on Solana and requires an x402 payment handshake — critical context an agent cannot infer, since retries consume funds. It stops short of describing the shape of the ranked results, which matters given there is no output schema.
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?
Purpose is front-loaded in the first clause, followed by cost and payment mechanics, and the dense x402 parenthetical is justified because it is a required protocol step. Some readers may find the embedded HTTP endpoint line extraneous on an MCP surface, but it is compact.
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 no output schema and no annotations covering results, the description should say more about what a 'match' returns — number of ranked entries, scoring basis, or shape of each item. Payment behavior is fully covered, but the return value remains underspecified.
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%, so 'task', 'limit' (1-20, default 5) and 'max_price' are already documented in the schema. The description adds no additional meaning about, e.g., how 'task' phrasing affects ranking. Baseline 3 applies.
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 first sentence names a specific verb ('Match') and resource ('plain-language task to ranked agent tools/services'), so the agent knows exactly what the call produces. It doesn't name a competing sibling, but no sibling in the list offers comparable discovery/matching, so differentiation is implicit.
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 the mechanics of invoking it (unpaid call to obtain the PaymentRequired challenge, then retry with payment at _meta["x402/payment"]), which is genuinely useful procedural guidance. However, it never states when to prefer this over the catalog/enumeration siblings, nor any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ema_changesAInspect
Field-level change events computed between held EMA snapshot generations: per medicine when an identity is given ({ema_product_number}, or a resolved {name} / {inn}), feed-wide (all held product numbers, capped at 100 events per call, truncation flagged) when only {since} is given. Event types: added, status_changed, revision_advanced, procedure_updated, withdrawn_or_suspended_transition (a labelled subcase of status_changed, emitted additionally), field_changed — computed only from held diffs and source stamps, never inferred. since is a generation id or a UTC timestamp; a since before the first held generation is clamped to it and the clamp is stated in the payload; with no since, the window is the latest consecutive pair only. An unchanged medicine in the window delivers an explicit empty events list with covered:true — a delivered answer, not an error. Every payload carries the EMA acknowledgement + official-text-prevails lines. Free pre-check at POST /toll/ema/changes/preflight (tool ema_changes_preflight). Price: $0.01 per call (RULED). — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/ema/changes.
| Name | Required | Description | Default |
|---|---|---|---|
| inn | No | ||
| name | No | ||
| since | No | ||
| ema_product_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: enumerates the six event types, discloses the 100-event cap with truncation flagging, the clamping of an out-of-range {since} with the clamp reported in the payload, the covered:true empty-list convention, the mandatory acknowledgement lines, and the x402 payment handshake. The readOnlyHint=false / idempotentHint=false annotations are consistent with the disclosed per-call charge, so nothing conflicts.
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 (~200 words) but front-loaded with the core purpose and mode split, and nearly every clause carries operational information an agent needs (event types, cap, clamp, empty-list semantics, payment). The pricing/x402/HTTP-equivalent tail could be tightened, but it is not padding.
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 read-style change-feed tool with no output schema, the description still explains payload composition (events list, truncation flag, covered flag, acknowledgement lines) and the full invocation/payment flow. An agent has everything needed to call it correctly and interpret an empty result as success rather than failure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, and it does: {since} is documented as a generation id or UTC timestamp with clamping semantics, and the three identity parameters are documented as alternative resolution paths for the same medicine. It does not state precedence if more than one identity is supplied, which is the remaining gap.
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?
States a specific verb and resource ('Field-level change events computed between held EMA snapshot generations') and immediately splits the two modes of operation (per-medicine by identity vs feed-wide). An agent can tell this is a diff/delta tool rather than a record fetch, but the description never explicitly contrasts with the closest sibling, ema_record, so the differentiation from siblings is only implicit.
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?
Gives clear selection rules: supply an identity ({ema_product_number}, {name}, {inn}) for per-medicine events, supply only {since} for feed-wide, and with no {since} the window defaults to the latest consecutive pair. It also names the alternative free path (ema_changes_preflight). It stops short of explicit 'when not to use' guidance, e.g. when a full snapshot from ema_record is more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ema_changes_preflightARead-onlyIdempotentInspect
FREE pre-check twin for ema_changes: validation + identity resolution + coverage + toll fingerprint, with no change events. Accepts the same inputs as ema_changes (an identity and/or {since}; feed-wide when only {since} is given). The toll quoted is $0.01 RULED (10000 USDC units / 68000 lamports). You only pay for delivered answers. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/ema/changes/preflight.
| Name | Required | Description | Default |
|---|---|---|---|
| inn | No | ||
| name | No | ||
| since | No | ||
| ema_product_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful behavioral context beyond annotations: it is free, requires no payment (no x402 challenge), and returns no change events. It also provides the toll quote and HTTP endpoint. While it doesn't cover rate limits or authentication, the annotations already cover safety and idempotency.
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?
Front-loaded with the main purpose and reasonably concise. The toll quote and HTTP equivalent are useful but could be trimmed. Every sentence contributes to understanding, with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, inputs (partially), payment, and output nature (no change events). However, for a tool with 0% parameter description coverage and no output schema, it should clarify what the pre-check returns (e.g., validation results, identity resolution output) and specify the semantics of each input parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 4 parameters with 0% description coverage. The description only mentions 'an identity and/or {since}' and the feed-wide behavior when only {since} is given, but it never explains the individual parameters (inn, name, ema_product_number) or how they form an identity. This leaves significant ambiguity for an agent.
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?
States a specific verb ('pre-check twin') and resource ('ema_changes'), lists the operations it performs (validation + identity resolution + coverage + toll fingerprint), and explicitly says it produces 'no change events,' which clearly distinguishes it from the sibling ema_changes.
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?
Identifies itself as a FREE pre-check twin for ema_changes, implying it should be used before the paid version. States 'no payment required' and that you only pay for delivered answers (in ema_changes). It doesn't explicitly say 'use this when you don't need actual change events,' but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ema_recordAInspect
One EMA centrally authorised medicine at the latest held generation: every DESIGN.md §2 served field verbatim (name, INN, active substance, therapeutic area (MeSH), ATC code, pharmacotherapeutic group, EMA product number, marketing authorisation holder, opinion adopted date, marketing authorisation issued date, EC decision date, revision number, medicine_status, opinion_status, latest procedure affecting product information and its date, first_published_date, last_updated_date), the generation's source UTC stamp, and the EMA acknowledgement + official-text-prevails lines carried in every payload. Facts only, never advice: no dosage, therapeutic claim, patient-availability judgement, or annex (SmPC / leaflet) text exists in this service; barred shapes are refused free. Structured input only: one identity — {ema_product_number}, {name} (exact, case-insensitive), or {inn} (exact, case-insensitive). Ambiguous identities are refused free with the candidate product numbers listed. Free pre-check at POST /toll/ema/record/preflight (tool ema_record_preflight). Price: $0.01 per call (RULED). — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/ema/record.
| Name | Required | Description | Default |
|---|---|---|---|
| inn | No | ||
| name | No | ||
| ema_product_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: discloses price ($0.01, RULED), the x402/USDC payment handshake and the exact retry path at _meta["x402/payment"], the free-refusal semantics for barred and ambiguous shapes, and the conservation of acknowledgement text in every payload. These are operational facts an agent cannot infer from readOnlyHint/destructiveHint alone.
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?
Everything sits in a single dense run-on sentence with internal references like 'DESIGN.md §2', which is noise for an external agent, and the actual action is buried behind a long parenthetical field list. The content is mostly useful but not front-loaded.
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 no output schema, the description correctly takes on the return contract by enumerating fields, the source UTC stamp, and the fixed acknowledgement lines. Payment and error paths are covered. It does not state the response envelope or whether the result is a single object, a minor residual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load, and it does: it states that exactly one identity may be supplied, that name and INN are matched exactly and case-insensitively, and that ambiguity produces a refusal listing candidates. Only the ema_product_number format (e.g. EMEA/H/C/…) is left unexplained.
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 identifies the resource: one EMA centrally authorised medicine at the latest held generation, with an explicit enumeration of the served fields. An agent knows exactly what comes back. It stops short of a crisp verb-first statement and never contrasts itself with the sibling ema_changes, so the differentiation is only partial.
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 gives concrete routing advice: a free pre-check exists at ema_record_preflight, and ambiguous identities are refused with candidate product numbers listed, which tells the agent how to recover. It also states the hard exclusion (no dosage, claims, availability judgement, or SmPC/leaflet text), steering those queries elsewhere. What's missing is guidance on when to use this versus ema_changes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ema_record_preflightARead-onlyIdempotentInspect
FREE pre-check twin for ema_record: validation + identity resolution + coverage + toll fingerprint, with no record fields. Servable answers state the deliverable shape and freshness class; ambiguous identities list the candidate EMA product numbers free. The toll quoted is $0.01 RULED (10000 USDC units / 68000 lamports). You only pay for delivered answers. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/ema/record/preflight.
| Name | Required | Description | Default |
|---|---|---|---|
| inn | No | ||
| name | No | ||
| ema_product_number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/idempotent annotations: distinguishes servable from ambiguous answers, says ambiguous identities return candidate EMA product numbers at no cost, quotes the toll preview amount and notes you only pay for delivered answers. It also gives the equivalent HTTP endpoint, which is useful for an agent reasoning about transport.
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 core framing (free pre-check for ema_record) is front-loaded, but the sentence is overloaded with parenthetical detail such as '$0.01 RULED (10000 USDC units / 68000 lamports)' that is largely irrelevant for a tool advertised as free. Dense run-on phrasing costs readability without adding decision 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?
With no output schema, the description does the necessary work of describing the two answer shapes (servable vs ambiguous) and the freshness/deliverable payload, plus cost behavior. It stops short of explaining the inputs or what a validation failure looks like, which leaves a gap for a 3-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description never explains the three inputs (ema_product_number, name, inn) or the anyOf requirement that at least one must be supplied. The only hint is that ambiguous identities yield candidate product numbers, which implies name/inn can be used for resolution but does not clarify which identifier is preferred.
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?
States a specific role: a free pre-check twin of ema_record that performs validation, identity resolution, coverage and toll fingerprinting without writing records. That distinguishes it from the sibling ema_record. However, phrases like 'toll fingerprint' and 'deliverable shape' are jargon an agent must infer, keeping it short of fully self-explanatory.
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?
Establishes clear context: it is the free pre-flight counterpart to ema_record, so it is called before committing to the paid record path, and it explicitly says no payment or x402 challenge is required. It never states a when-not condition (e.g. when to skip preflight and call ema_record directly).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emissions_calculateAInspect
Calculate CO2e for one activity from a published factor. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/emissions/calculate.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | integer - optional activity year selecting the factor vintage; omitted = latest vintage, disclosed in the answer | |
| quantity | Yes | number (required) - activity quantity in the factor's unit (must be > 0) | |
| factor_id | Yes | string (required) - factor id from GET /toll/emissions/factors (base id or full record id incl. vintage) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond annotations: cost ($0.005/call), payment rail (USDC on Solana via x402), and the exact two-step flow (call without payment, receive PaymentRequired challenge, retry with _meta["x402/payment"]). This is exactly the kind of auth/billing detail annotations cannot express. It does not state whether a failed calculation still incurs the charge, which is a meaningful gap for a paid tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose before the payment mechanics. The parenthetical payment instructions and HTTP endpoint are dense but each serves a real invocation need; nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the payment dimension thoroughly, but with no output schema the description should say what the answer contains (CO2e value, which factor vintage was applied, units). The schema's year field hints at vintage disclosure in the response, but the description never confirms the return shape.
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%, so factor_id, quantity, and the year/vintage behavior are already fully documented in the schema. The description only echoes 'from a published factor' and adds no format, unit, or vintage-selection detail beyond it — baseline 3 for schema-covered params.
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?
States a specific verb and resource: 'Calculate CO2e for one activity from a published factor.' The phrase 'one activity' implicitly distinguishes it from emissions_calculate_batch, but the sibling is never named, so the differentiation is inferential rather than explicit.
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 frames the tool as pay-per-call and explains the x402 payment handshake, which tells the agent how to invoke it. However, it gives no explicit when-to-use guidance — nothing says to use emissions_calculate_batch for multiple activities or that a factor_id must first be retrieved from the factors endpoint (that hint lives only in the schema).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emissions_calculate_batchAInspect
Calculate CO2e for up to 100 activities in one call. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/emissions/calculate/batch.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | array (required) - 1-100 calculation items, each {factor_id: string, quantity: number, year?: integer} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-readonly, non-destructive, non-idempotent behavior, so the description does not need to repeat side-effect semantics. It adds valuable context beyond annotations: per-call pricing, the USDC/Solana payment requirement, the x402 challenge-retry mechanism, and the HTTP equivalent endpoint.
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 two sentences with the core purpose and limit front-loaded. The payment details are dense but operationally necessary for a paid x402 tool, and the HTTP equivalent is a compact addition.
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 one-parameter tool with full schema coverage and no output schema, the description covers the critical calling context: batch limit, cost, payment flow, and alternate HTTP endpoint. It does not describe the return shape or error behavior, which is a minor gap for a calculation endpoint.
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 the single items parameter and its nested item shape are already documented. The description repeats the batch maximum of 100 but does not add factor_id, quantity, or year semantics beyond what the schema 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 states a specific verb and resource: 'Calculate CO2e'. It also adds the batch scope: 'up to 100 activities in one call', which distinguishes it from the single-item sibling emissions_calculate.
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 gives clear batch-size guidance and a detailed payment/retry flow for x402, which is useful operational context. However, it does not explicitly say when to use this tool rather than emissions_calculate or name exclusions, so usage is mostly implied by the 'batch' scope and payment instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ergonomics_auditAInspect
$0.05 USDC on Solana — the payment buys one full tool-ergonomics audit report for one submitted MCP manifest: the categorical verdict band under the published criteria, per-section counted flags with evidence, per-tool rows, and a concrete ordered fix list. Submitted manifest content is processed in memory only and never stored; the paid retry re-sends the manifest (or its URL). Unlike the manifest-claim audit (V6 — are its claims true), this service grades whether a model can tell a manifest's tools apart and call them from what is written. It never runs the tools and never queries a model.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The URL of a tools/list JSON document to fetch (read-only GET, 512 KB / 10 s caps) and grade as the manifest. Mutually exclusive with manifest. | |
| manifest | No | The MCP server's tools/list manifest document, in any accepted shape: { tools: [...] }, { result: { tools: [...] } }, or a bare array of tools. Mutually exclusive with url. Submitted content is processed in memory only and never stored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: explicit $0.05 USDC price, one-report-per-payment semantics, in-memory-only processing with no storage, retry re-sends the manifest, and hard scope limits ('never runs the tools and never queries a model'). These are exactly the traits an agent cannot infer from readOnlyHint=false / openWorldHint=true / destructiveHint=false, and nothing contradicts those hints.
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?
Front-loaded with price and the concrete output list, with the sibling contrast and scope caveats following. It is dense but every clause carries information; the only cost is a long single paragraph that an agent must parse rather than scan.
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 no output schema, the description compensates by enumerating what the report contains (verdict band, counted flags with evidence, per-tool rows, ordered fixes). Combined with the billing, privacy, and scope statements, an agent has everything needed to decide to call it and what it will receive.
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%, so the schema already documents the url GET caps, the accepted manifest shapes, and mutual exclusivity. The description only adds the retry implication that the manifest or its URL must be re-supplied; it adds little else about the two parameters. Baseline 3 is appropriate when the schema carries the load.
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 opening clause names the exact artifact ('one full tool-ergonomics audit report for one submitted MCP manifest') and enumerates the deliverables: verdict band, per-section counted flags, per-tool rows, ordered fix list. It explicitly contrasts with the manifest-claim audit (V6), so an agent can distinguish this from manifest_audit and its ergonomics_* siblings without opening a schema.
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 states the selection condition clearly: use this when the question is whether a model can tell a manifest's tools apart and call them from what is written, versus whether the manifest's claims are true. It also warns about the paid retry behavior causing a re-send. However, it never mentions ergonomics_precheck or ergonomics_criteria as cheaper alternatives, which is a notable omission for a paid tool sitting beside a precheck sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ergonomics_criteriaARead-onlyIdempotentInspect
The published criteria for the Tool-Description Ergonomics Audit (tool-ergonomics/v1): description discrimination, parameter specification, definition-token economics, and naming hygiene — every threshold published with its evidence class. Read these before paying for an audit — every audit is reproducible from them. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/ergonomics/criteria.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds the crucial non-obvious operational fact that no payment or x402 challenge is involved, which an agent could otherwise wrongly assume for a paid audit product, plus a stable HTTP mirror.
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 content scope is front-loaded and dense with useful specifics, but the payment clause is stated three ways in one parenthetical ('no payment required / call directly without payment / no x402 challenge; this tool is free'), which is redundant packaging rather than information. Trimming that and the raw URL would tighten it without losing meaning.
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 zero-parameter read-only tool with no output schema, the description tells the agent what the payload covers (four named criteria areas with thresholds and evidence classes), that it is free, and that audits are reproducible from it — enough to decide to call it. Only the response format is left unstated.
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?
There are zero parameters, so there is no parameter semantics to document and the schema is trivially complete. Baseline of 4 applies; nothing in the description is needed or missing here.
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?
Names the exact resource (the published criteria for the tool-ergonomics/v1 Tool-Description Ergonomics Audit) and enumerates its four contents, so an agent knows what it will get. The verb is only implied by 'Read these', not stated as a retrieval action, and the distinction from ergonomics_audit/ergonomics_precheck is inferential rather than explicit.
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?
Gives concrete timing guidance — 'Read these before paying for an audit' — and justifies it with 'every audit is reproducible from them', which is a real usage rule. It stops short of naming the sibling tools it replaces or saying when not to call it, but the sequencing advice is clear enough to act on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ergonomics_precheckARead-onlyIdempotentInspect
FREE headline ergonomics check of an MCP tool manifest (100/day per wallet; pass caller). Submit the tools/list manifest (or the URL of a manifest document); get the headline counts ONLY: tool count, definition-token total, flagged-pair count, and undescribed-parameter count. The verdict band, per-section evidence, and the fix list are in the paid report. The audit grades measurable document properties only — it never runs the tools and never queries a model.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The URL of a tools/list JSON document to fetch (read-only GET, 512 KB / 10 s caps) and grade as the manifest. Mutually exclusive with manifest. | |
| caller | Yes | Solana base58 wallet of the operator; keys the free allowance (100/day per wallet). | |
| manifest | No | The MCP server's tools/list manifest document, in any accepted shape: { tools: [...] }, { result: { tools: [...] } }, or a bare array of tools. Mutually exclusive with url. Submitted content is processed in memory only and never stored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: states the free-tier quota (100/day per wallet), that submitted content is processed in memory only, that the audit never executes the tools and never queries a model, and that grading is limited to measurable document properties. These are exactly the side-effect and trust facts an agent needs before sending a manifest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences: offer and quota first, then inputs and outputs, then the free/paid boundary and grading limits. Every clause carries information; nothing is repeated from the schema verbatim beyond necessary naming.
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?
No output schema exists, but the description explicitly names the four returned counts, so an agent knows the return shape. Combined with quota, input modes, and the explicit statement of what the audit does not do, there is no material gap for a three-parameter read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so 'url', 'caller', and 'manifest' are already fully documented including the mutual exclusion. The description restates the same facts (manifest shapes, pass caller, URL alternative) without adding format or validation detail beyond the schema. Baseline 3 applies.
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 gives a specific verb+resource ('headline ergonomics check of an MCP tool manifest') and enumerates exactly what comes back: tool count, definition-token total, flagged-pair count, undescribed-parameter count. It distinguishes itself functionally from the paid tier ('the paid report'), but never names the sibling tool (ergonomics_audit) that an agent should pick when the headline counts are insufficient.
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?
Clear usage context: submit a manifest object or a manifest URL, and pass 'caller' to key the free allowance. It also implies the when-not case by pointing at 'the paid report' for verdict bands, evidence, and fixes. No explicit named alternative or prerequisite caveat beyond the quota, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
etf_distributionsAInspect
Fetch an ETF's full distribution history. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/etf/distributions/{ticker}.
| Name | Required | Description | Default |
|---|---|---|---|
| price | No | Optional current price for yield math | |
| ticker | Yes | ETF ticker |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorld, non-idempotent, non-destructive, but reveal nothing about cost or the payment handshake. The description fills exactly that gap: $0.01 per call, USDC on Solana, and the required two-step x402 retry with `_meta["x402/payment"]` — non-obvious behavior an agent could not infer. Not a 5 because it says nothing about rate limits, failure modes after payment, or whether the charge repeats on retries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what it does, then cost, then how to transact, then an HTTP fallback. Every clause carries operational weight and nothing is padded.
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 paid, output-schema-less tool, the invocation path is fully covered — an agent knows the cost, currency, and exact retry protocol. The only gap is the shape of the returned distribution history, which the agent must discover by calling.
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 both `ticker` and the optional `price` are already documented. The description adds no semantics beyond the HTTP path template implying ticker placement; the meaning of `price` for yield math is left entirely to 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 first sentence gives a specific verb and resource — fetching an ETF's full distribution history — which is unambiguous on its own. It does not, however, distinguish itself from the sibling 'etf_distributions_simulate', leaving the agent to infer the boundary between the real fetch and the simulated variant.
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?
Usage mechanics for payment are spelled out in detail (challenge-then-retry flow), which is genuinely operational guidance. But there is no statement of when to prefer this over 'etf_distributions_simulate' or when a ticker is invalid/unknown, so the alternative-selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
etf_distributions_simulateAInspect
Simulate an income portfolio and its distribution flywheel. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/etf/distributions/simulate.
| Name | Required | Description | Default |
|---|---|---|---|
| reinvest | No | boolean - default true (flywheel compounding; linear projection when off or any holding lacks a price) | |
| allocations | Yes | array (required) - holdings: {ticker, shares} | {ticker, units, price_per_share} | {ticker, amount_usd, price_per_share} (price_per_share required for units/amount forms) | |
| horizon_years | No | integer 1-10, default 5 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only give generic hints (readOnlyHint=false, openWorldHint=true, idempotentHint=false); the description adds genuinely valuable behavior beyond them: a $0.005 per-call price, USDC-on-Solana payment channel, and the exact two-step x402 handshake including the _meta["x402/payment"] retry key. It does not explain why the operation is flagged non-read-only or how long a simulation run takes, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the purpose front-loaded before the payment logistics. The billing/protocol detail is long but earns its place for a paid tool; nothing is redundant.
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?
There is no output schema, yet the description says nothing about what a simulation returns (projected income stream, distribution schedule, yield figures), nor what 'distribution flywheel' concretely means versus the linear projection. Payment mechanics are fully covered, but the result shape remains a gap for a paid compute tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — each of reinvest, allocations, and horizon_years is already documented with defaults and accepted holding shapes. The description adds no parameter meaning on top of that, so the baseline 3 applies.
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?
Specific verb plus resource: 'Simulate an income portfolio and its distribution flywheel'. This is clearly distinguishable from the sibling etf_distributions, though the description never explicitly names that sibling as the raw-data alternative. An agent can tell what the tool does without opening the schema.
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 gives detailed invocation mechanics (pay-and-retry challenge flow, HTTP fallback endpoint) but no guidance on when to use this versus etf_distributions or when a user should simulate rather than query actual distributions. Usage context is only implied by the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_address_verdictAInspect
Classify an Ethereum address: EOA vs contract, proxy, token. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/evm/address-verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | string (required) - 0x-prefixed 20-byte Ethereum address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavior that no annotation provides: a per-call price ($0.01 USDC), the x402 challenge-then-retry handshake with the exact _meta["x402/payment"] key, and an HTTP fallback. That is exactly the kind of non-obvious protocol detail the description should carry, and it is consistent with readOnlyHint=false since a call spends funds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the classification purpose before payment mechanics and the HTTP fallback. The payment sentence is dense but essential and earns its space.
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 one-parameter tool with no output schema, the description covers what is classified (EOA/contract/proxy/token) and the full payment protocol. It doesn't indicate the shape of the returned verdict, which is the only meaningful remaining gap.
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?
There is a single parameter and schema coverage is 100%, with the schema spelling out '0x-prefixed 20-byte Ethereum address.' The description adds nothing about the address beyond that, so the baseline 3 applies.
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?
States a specific verb and resource plus the classification taxonomy: 'Classify an Ethereum address: EOA vs contract, proxy, token.' That is far more informative than the name alone. It doesn't name or differentiate from the nearest siblings (evm_transfers, evm_tx_decode, address_verify), so it stops short of a 5.
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 when-to-use case is implied by the enumeration of verdicts, and the HTTP equivalent is given as an alternative transport. But there is no guidance on when to pick this over address_verify or address_bundle, and no stated exclusions or prerequisites beyond the payment flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_transfersAInspect
Decoded ERC-20 transfer history for an Ethereum address. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/evm/transfers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | integer 1-100, default 25 | |
| cursor | No | string - opaque cursor from a prior response's next_cursor | |
| address | Yes | string (required) - 0x-prefixed 20-byte Ethereum address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing the exact cost ($0.01), the payment rail (USDC on Solana via x402), and the concrete retry mechanics with _meta["x402/payment"], plus an HTTP equivalent. This explains why readOnlyHint=false despite a read-shaped operation: the call spends money. It stops short of describing pagination behavior or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: purpose first, then the payment mechanics and HTTP fallback. The dense parenthetical is justified because an agent cannot call the tool successfully without it, though it slightly buries the operational detail.
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?
There is no output schema, and the description never indicates what a decoded transfer record contains (token, from/to, value, timestamp) or how cursor paging terminates. Given the tool is a paginated paid query, that leaves an agent without a picture of the response it is buying.
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%, so address, limit and cursor are already documented with formats and defaults. The description adds no further parameter meaning such as what a cursor is scoped to or how limit interacts with paging, so the baseline of 3 applies.
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?
States a specific resource and scope: decoded ERC-20 transfer history for one Ethereum address, which is more precise than a generic 'get transactions'. It does not explicitly differentiate itself from nearby siblings like evm_tx_decode or evm_address_verdict, so an agent must infer the boundary from the token-standard wording.
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 intended use case (ERC-20 transfer history for an address) is implied clearly enough to select the tool, but there is no explicit when-not guidance and no alternative sibling is named for adjacent needs such as raw transaction decoding. The payment flow is procedural guidance for invocation, not tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
evm_tx_decodeAInspect
Decode an Ethereum transaction: function, args, amounts, ENS. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/evm/tx-decode.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_hash | Yes | string (required) - 0x-prefixed 32-byte transaction hash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly=false/openWorld=true/idempotent=false/destructive=false; the description adds the material facts those annotations cannot convey — a $0.01 USDC-on-Solana charge, the x402 challenge-and-retry handshake, and an HTTP equivalent endpoint. It does not cover rate limits, caching, or behavior on an invalid/unknown hash, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, then payment mechanics follow. Dense but every sentence carries operational weight; the nested parenthetical payment retry instruction is slightly run-on but justified by the complexity it encodes.
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 no output schema, the description compensates by enumerating the returned fields (function, args, amounts, ENS), and it fully covers the non-obvious cost and payment flow. For a one-parameter paid decoder, an agent has everything needed to call it 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?
The single parameter is fully documented in the schema (0x-prefixed 32-byte transaction hash) at 100% coverage, so the schema does the work. The description contributes no additional parameter meaning such as accepted formats or chain scoping, which is the expected baseline.
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?
A precise verb+resource statement ('Decode an Ethereum transaction') plus the specific artifacts returned (function, args, amounts, ENS). An agent can tell it does calldata/log interpretation rather than the balance-listing of evm_transfers or the raw passthrough of rpc_call, though no sibling is named explicitly.
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?
Usage is implied by the purpose and heavily colored by the payment procedure (call, get challenge, retry with _meta["x402/payment"]), which is real operational guidance. However there is no statement of when to prefer this over evm_transfers, rpc_call, or txcheck_check, nor any exclusion or failure condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fact_bank_catalogARead-onlyIdempotentInspect
FREE fact bank catalog. Counts and labels only: stream labels, entity and fact counts, field names, op list and RULED prices, store freshness. No fact values. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/facts/catalog.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered; the description adds genuinely new context — that the call is free with no x402 payment challenge and returns no fact values, only metadata. The HTTP equivalent endpoint is a bonus for agents that can fall back to raw HTTP.
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?
Purpose and payload contents are front-loaded, which is good, but the payment message is stated twice ('FREE' in the opening and the full 'no payment required... this tool is free' clause), and the em-dash fragment plus HTTP endpoint add bulk. Trimming the duplicate free/payment note would make it tighter.
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 no output schema, the description carries the burden of describing the return payload, and it does so concretely (labels, counts, field names, op list, prices, freshness). Combined with annotations covering safety and zero parameters, an agent has nearly everything needed; only the relationship to sibling fact-bank tools is left implicit.
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 takes zero parameters, so there is nothing for the description to disambiguate at the argument level; baseline 4 applies. The schema is an empty object and the description correctly makes no parameter claims.
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 names the resource (fact bank catalog) and enumerates exactly what it returns: stream labels, entity/fact counts, field names, op list, ruled prices, and store freshness. The line 'No fact values' usefully separates it from data-returning siblings such as fact_bank_status or fact_bank_tendency, though it never names a sibling explicitly.
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?
Usage is only implied: the emphasis on 'counts and labels only' and 'no payment required: call directly' suggests a free discovery/introspection call to run before fetching facts, but the description never states when to prefer this over fact_bank_status, fact_bank_health, or packs_catalog. The agent must infer the discovery-first pattern.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fact_bank_healthARead-onlyIdempotentInspect
FREE fact bank health. Counts only: snapshot_loaded, fact/entity totals, stream labels, store freshness and store_stale flag. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/facts/health.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds genuinely non-obvious behavior: the tool is free and requires no x402 payment challenge, and it returns aggregates only rather than content. Payment/auth behavior is exactly the kind of thing annotations cannot express.
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?
Front-loaded and short, but the free/no-payment fact is restated four times ('FREE', 'no payment required', 'call directly without payment', 'no x402 challenge', 'this tool is free'), which is redundant waste in an otherwise two-sentence description.
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 zero-parameter read with full annotation coverage and no output schema, the description supplies the metric list, the freshness/staleness signal, and the payment model — everything needed to call it correctly. Only the absence of any guidance versus sibling fact-bank tools keeps it off a 5.
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 takes zero parameters and the description correctly describes it as a no-input aggregate read. Baseline 4 applies for a 0-param tool; nothing is left ambiguous about what must be supplied.
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?
States a specific resource (fact bank) and enumerates the exact health metrics returned — snapshot_loaded, fact/entity totals, stream labels, freshness, store_stale — plus a scope qualifier ('counts only'). That is more than enough to separate it from fact_bank_catalog or fact_bank_tendency, though it never names those siblings explicitly.
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?
Gives real call guidance about payment ('call directly without payment; no x402 challenge'), which tells the agent it can be invoked with no auth dance. However, it offers no guidance on when to pick this over fact_bank_status or fact_bank_status_preflight, so the tool-selection question is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fact_bank_statusAInspect
Fact bank STATUS lookup, $0.01 per call (x402), price RULED. Latest-per-status_field current state for one entity, served verbatim with per-fact provenance. Call fact_bank_status_preflight first to check coverage for free. — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/facts/status.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name-resolution form (alternative to entity_id). | |
| team | No | ||
| limit | No | ||
| cursor | No | ||
| league | No | ||
| stream | Yes | ||
| position | No | ||
| entity_id | No | Canonical entity id, verbatim as stored. | |
| series_id | No | ||
| status_field | No | Optional; omit for all current fields. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context the annotations do not: $0.01 per call, USDC on Solana via x402, the exact MCP retry mechanics ('call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]'), and an HTTP equivalent. This is exactly the billing/auth disclosure the sparse annotations leave uncovered; it stops at 4 because return shape and pagination behavior (limit/cursor) are never described.
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 core purpose appears early, but the opening clause 'price RULED' is opaque filler and the payment/HTTP mechanics sprawl into a long final sentence. Everything is relevant, yet the ordering leads with cost rather than with what the tool returns.
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 10-parameter, paid, no-output-schema tool the description covers the billing path and provenance well, but an agent still cannot infer which stream to pass, how the optional filters behave, or how results are paginated. Payment is complete; parameter selection is not.
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 only 30% across 10 parameters, and the description compensates for very little: it clarifies that results are per entity and per status_field, but never explains the required `stream` enum values, how `league`/`team`/`position`/`series_id` combine per stream, or what `limit`/`cursor` do. The majority of parameters remain undocumented in both schema and prose.
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?
States a specific verb and resource: 'Fact bank STATUS lookup' returning 'Latest-per-status_field current state for one entity, served verbatim with per-fact provenance.' That scope is precise enough to separate it from a trend/history tool, but no sibling (fact_bank_tendency, fact_bank_catalog) is named to confirm the distinction, so it stops short of a 5.
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?
Gives actionable routing advice: 'Call fact_bank_status_preflight first to check coverage for free,' which directly steers sequencing against a real sibling. It does not state when to prefer fact_bank_tendency or fact_bank_catalog instead, so the when-not side is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fact_bank_status_preflightARead-onlyIdempotentInspect
FREE preflight for fact_bank_status. Counts only: existence, coverage counts, per-field history depth, freshness, servable/reason_class, and the $0.01 RULED toll quote. No fact values are returned. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/facts/status/preflight.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name-resolution form (alternative to entity_id). | |
| team | No | ||
| limit | No | ||
| cursor | No | ||
| league | No | ||
| stream | Yes | ||
| position | No | ||
| entity_id | No | Canonical entity id, verbatim as stored. | |
| series_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive, and the description adds genuinely new behavioral facts: returns counts only, no fact values, the $0.01 toll quote, no x402 challenge, and the HTTP equivalent endpoint. Missing only things like rate limits or exact return shape, but the added context is substantive.
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?
Front-loaded with purpose and return contents, and each clause earns its place, but 'FREE' plus '— no payment required... this tool is free' is redundant restatement of the same fact, costing a little tightness.
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 9-parameter tool with no output schema, the description covers what is returned but leaves the central required enum parameter and seven other inputs undocumented, so an agent cannot confidently construct a call from the definition plus schema alone.
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 only 22% (only name and entity_id are described), yet the description never explains the required 'stream' parameter or its four enum values, nor limit/cursor/team/league/position/series_id. With such low structured coverage the description was expected to compensate and does not.
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?
Opens with a specific verb+resource ('FREE preflight for fact_bank_status') and immediately differentiates itself from the sibling paid tool by enumerating what it returns (existence, coverage counts, history depth, freshness, servable/reason_class, toll quote). An agent can distinguish it from fact_bank_status or fact_bank_tendency_preflight without opening the schema.
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 states the selection condition versus the sibling: 'no payment required: call directly without payment (no x402 challenge; this tool is free)', so an agent knows to pick this when it wants the data without paying. It doesn't spell out an ordered workflow (e.g., call this before fact_bank_status), so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fact_bank_tendencyAInspect
Fact bank TENDENCY, $0.02 per call (x402), price RULED. Computed direction over one (entity, status_field) history with at least 3 facts; the verbatim steps and any rank map are shipped so the computation is checkable. Nominal, period-parameterised and structured fields are refused as not_computable. Call fact_bank_tendency_preflight first to check eligibility for free. — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/facts/tendency.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name-resolution form (alternative to entity_id). | |
| team | No | ||
| limit | No | ||
| cursor | No | ||
| league | No | ||
| stream | Yes | ||
| position | No | ||
| entity_id | No | Canonical entity id, verbatim as stored. | |
| series_id | No | ||
| status_field | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: fixed $0.02 price, USDC-on-Solana x402 payment handshake (call without payment to get the PaymentRequired challenge, retry with payment at _meta["x402/payment"]), an HTTP fallback URL, minimum-fact eligibility, refusal semantics, and the fact that verbatim steps and rank maps are returned so results are checkable. The non-readOnly annotation is explained by the billing side effect rather than contradicting the text.
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?
Front-loads purpose, then eligibility, then pricing/payment mechanics, which is the right order for a paid tool. Some phrasing is wasteful and opaque ('Fact bank TENDENCY', 'price RULED'), but the core content is tight.
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?
Payment flow, eligibility, refusal cases and output verifiability are all covered, so the paid-call mechanics are complete. However, for a 10-parameter tool with only 20% schema coverage and no output schema, the parameter surface and failure behavior (what a not_computable or insufficient-facts response looks like) remain under-described.
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?
Only hints at semantics for the (entity, status_field) pair and mentions a name-resolution alternative, but with 20% schema description coverage the other parameters (stream, league, team, position, series_id, limit, cursor) are left entirely undocumented. An agent gets no explanation of how name differs from entity_id, what a series_id means, or how limit/cursor paginate.
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?
States a specific operation (computed direction over an (entity, status_field) fact history) and a concrete precondition (at least 3 facts), which an agent can distinguish from a plain status lookup. It does not explicitly contrast itself with fact_bank_status, so the sibling routing is only implicit via the named preflight.
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?
Gives a clear free-first path: call fact_bank_tendency_preflight to check eligibility before paying. It also names when the tool refuses (nominal, period-parameterised, structured fields -> not_computable), which is real when-not guidance. It stops short of saying when to prefer fact_bank_status instead of a tendency computation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fact_bank_tendency_preflightARead-onlyIdempotentInspect
FREE preflight for fact_bank_tendency. Counts only: eligibility, history depth, distinct-value count, freshness, servable/reason_class, and the $0.02 RULED toll quote. No fact values are returned. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: POST https://exchangerebel.com/toll/facts/tendency/preflight.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name-resolution form (alternative to entity_id). | |
| team | No | ||
| limit | No | ||
| cursor | No | ||
| league | No | ||
| stream | Yes | ||
| position | No | ||
| entity_id | No | Canonical entity id, verbatim as stored. | |
| series_id | No | ||
| status_field | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely new behavior: no x402 payment challenge, no fact values in the response, and the exact set of count fields returned. It does not describe failure modes (what happens when an entity is ineligible or the stream has insufficient history) or error shapes.
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?
Front-loads the key fact (free preflight, counts only) and the sentence order is logical: purpose, response shape, payment note, HTTP equivalent. The free-ness is restated three times ('FREE', 'no payment required', 'this tool is free'), which is mild waste but not disruptive.
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 no output schema, the description usefully compensates by enumerating the returned count fields, and it removes payment ambiguity. But for a 10-parameter tool with 20% schema coverage, the input side is badly under-explained — an agent cannot tell what 'status_field' should contain or when 'stream' vs 'series_id' applies.
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 only 20% across 10 parameters, yet the description says nothing about them — the enumerated items (history depth, freshness, servable) are output fields, not inputs. Required parameters 'stream' and 'status_field' are left entirely uninterpreted, and the name/entity_id alternative forms go unmentioned.
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?
States a specific verb and resource ('preflight for fact_bank_tendency') and enumerates exactly what is computed: eligibility, history depth, distinct-value count, freshness, servable/reason_class, and the toll quote. It also distinguishes itself from the paid sibling by declaring 'No fact values are returned,' so an agent can tell the two apart without opening either schema.
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 word 'preflight' plus the explicit 'no payment required: call directly without payment (no x402 challenge; this tool is free)' tells the agent this is the cheap check to run before spending $0.02 on fact_bank_tendency. It falls short of an explicit 'use this before X, skip it when Y' instruction, leaving the sequencing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fee_oracle_recipeAInspect
Solana landing recipe: one call that fuses the fee oracle's /estimate and /optimize — send an unsigned transaction, get the simulated compute-unit limit, priority-fee tiers (economy=p50, balanced=p75, fast=p95) with the chosen tier marked, the expected total fee, the ready-to-sign rewritten transaction, and a precomputed 3-rung escalation ladder. Optional fee_cap_lamports: if the chosen tier exceeds it, the answer flags cap_exceeded and returns no rewritten transaction. Paid: $0.01 flat per call via x402. Free pre-check at POST /toll/fees/recipe/preflight (same JSON body) validates structurally and states the exact price before payment; our-side failure after settlement queues an automatic refund intent (you only pay for delivered answers).
| Name | Required | Description | Default |
|---|---|---|---|
| urgency | No | economy=p50, balanced=p75, fast=p95 priority-fee percentile; selects the tier baked into rewritten_tx. | balanced |
| fee_cap_lamports | No | Optional max total fee in lamports. If the chosen tier's expected total fee exceeds it, the answer carries cap_exceeded:true and rewritten_tx:null — never an over-cap transaction. | |
| transaction_base64 | Yes | Unsigned Solana transaction, base64 (same field as /estimate and /optimize). Required. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, openWorldHint=true), the description discloses pricing, the exact preflight save-point, the refund intent on post-settlement server failure, and the precise cap semantics (cap_exceeded:true plus a null rewritten_tx rather than an over-cap transaction). These are the operational facts an agent needs before spending money, and none of them are recoverable from the structured fields.
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?
It is front-loaded with the core promise and then layers on payment and cap semantics, and nearly every clause carries information. It is a single dense run-on block, though, and the pricing/refund sentence could be split or trimmed without loss of decision-relevant content.
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 no output schema, the description compensates by enumerating every returned field (simulated CU limit, marked tiers, expected total fee, rewritten transaction, 3-rung ladder) plus the one conditional branch that changes the shape (cap_exceeded / rewritten_tx null). Combined with pricing and preflight guidance, an agent has everything needed to call it and interpret the answer.
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%, so the schema already documents the urgency enum with p50/p75/p95 mapping, the fee_cap_lamports cap behavior, and the required base64 transaction field. The description restates the same facts (tier percentiles, cap_exceeded outcome) without adding new syntax, format, or constraint detail, so the baseline 3 applies.
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 names a specific verb and resource ('Solana landing recipe') and explicitly frames it as a fusion of the fee oracle's /estimate and /optimize endpoints, which maps directly onto the sibling tools fees_estimate and fees_optimize. It then enumerates the concrete outputs (compute-unit limit, marked fee tiers, expected total fee, rewritten transaction, escalation ladder), so an agent knows exactly what this call buys that the siblings do not.
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?
Usage context is clear: it is a paid all-in-one call ($0.01 flat via x402) and a free structural pre-check is available at /toll/fees/recipe/preflight before paying. However, it never states when NOT to use it — e.g. 'use fees_estimate if you only need tiers for a transaction you won't rewrite' — and it does not name the sibling tools it displaces, leaving that routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fees_estimateAInspect
Estimate a Solana transaction's total fee cost. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/fees/estimate.
| Name | Required | Description | Default |
|---|---|---|---|
| accounts | No | array of pubkeys | |
| priority | No | low|medium|high | |
| transaction_base64 | No | string (or use accounts) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing concrete cost ($0.005 per call), the payment rail (USDC on Solana via x402), the two-step MCP challenge/retry flow, and an HTTP fallback endpoint. This is consistent with readOnlyHint=false and idempotentHint=false. It stops short of saying what happens on payment failure or whether a failed estimate still charges.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose front-loaded, operational details second. The payment sentence is dense but every clause carries information an agent needs to actually complete a call.
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 no output schema, the description should hint at what comes back — a fee breakdown by signature/priority component, units, or confidence — and it says nothing. The billing and transport story is complete; the result story is absent for a tool whose whole point is producing an estimate.
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%, so the three parameters are already documented in structured form, and the description adds nothing about accounts, priority levels, or the transaction_base64-vs-accounts choice. Baseline 3 applies.
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?
States a specific verb and resource: 'Estimate a Solana transaction's total fee cost.' That cleanly separates it from chain-agnostic or optimization siblings, though it never names fees_optimize or tron_estimate as the alternatives an agent should weigh.
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 invocation protocol is spelled out well (call without payment, read the PaymentRequired challenge, retry with _meta["x402/payment"]), which is genuinely useful. But there is no guidance on when this tool is the right choice versus fees_optimize or tron_estimate — selection between siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fees_optimizeAInspect
Return an unsigned, fee-optimized version of a transaction. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/fees/optimize.
| Name | Required | Description | Default |
|---|---|---|---|
| priority | No | low|medium|high | |
| transaction_base64 | No | string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds valuable context beyond annotations: the cost ($0.005 per call), payment mechanism (USDC on Solana via x402), and that the returned transaction is unsigned. 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 front-loaded with the core purpose and then provides necessary payment details. It is appropriately sized, though the payment mechanics add some length; every sentence contributes useful information.
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 as a paid API with no output schema, the description covers the critical payment flow and the nature of the return value (unsigned transaction). It is largely complete, though it could clarify parameter usage or alternatives.
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%, so the schema already documents both parameters. The description does not add meaning beyond the schema for priority or transaction_base64, so the baseline score of 3 is appropriate.
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 specific verb and resource: 'Return an unsigned, fee-optimized version of a transaction.' It clearly distinguishes the action from a fee estimate, though it does not explicitly name the sibling tool fees_estimate as an alternative.
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 the payment flow for using the tool, including the x402 challenge and retry mechanism, but it does not state when to use this tool versus alternatives like fees_estimate or fee_oracle_recipe. Usage is implied rather than explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fleet_activityARead-onlyIdempotentInspect
Agent Activity for ExchangeRebel — the machine-readable twin of the public activity board at https://exchangerebel.com/activity : fleet counters (services live, paid operations, MCP tools, bots connected, script calls served) and the 402 Open Book's counters (posts, cards, settled paid posts, categories, outside USDC settled), each with its source and as-of date, plus the publication state of every market source the board tracks — market figures are included only from sources cleared for republication — and the standing invitation to post on the Book. Counts only: no customer identities, ever. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/activity.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds real value beyond that by stating no payment or x402 challenge is required, that figures carry source and as-of dates, that market figures appear only for sources cleared for republication, and that no customer identities are exposed. These are substantive behavioral constraints an agent could not infer from structured fields.
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?
Content is front-loaded toward the resource name, but the prose is a dense run-on with nested parentheticals, and the payment point is stated three times ('FREE', 'no payment required', 'call directly without payment', 'this tool is free'). Trimming that redundancy would materially improve it.
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 no parameters and no output schema, the description bears responsibility for describing what comes back, and it does list the counter families, their source/as-of metadata, and the market-source publication states. The one omission is pagination or response shape, which is low-risk for a fixed-shape snapshot 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?
The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to disambiguate. The description instead characterizes the payload categories, which is a mild bonus rather than a gap.
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 names the resource concretely: fleet counters, the 402 Open Book counters, and publication state of tracked market sources, calling itself the machine-readable twin of the public activity board. An agent can tell this is an aggregate stats/status read rather than a lookup of an individual entity. It stops short of naming how it differs from the nearby fleet_kpis and fleet_what_changed siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by 'FREE — call directly without payment (no x402 challenge)', which is genuinely actionable for an agent deciding whether payment prep is needed. But there is no explicit when-to-use statement and no reference to the sibling fleet_* tools that also report fleet metrics, leaving the choice between them to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fleet_kpisARead-onlyIdempotentInspect
Fleet KPIs for ExchangeRebel, computed live from the systems themselves: services live, paid endpoints, MCP tools, external settlements, agents served, bots connected, script calls served, and repeat customers — each with its printed definition and, where a counter is new, its counting-since date. Counts only: no customer identities, no per-agent details, ever. The same result object powers the human board page, so the machine door and the human door can never disagree. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/api/kpis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description adds material behavioral context: the KPIs are computed live from the systems themselves, counts are privacy-bounded with no customer identities or per-agent details ever, new counters carry a counting-since date, and the tool is free with no x402 payment challenge. It also explains the consistency guarantee that the same result object powers the human board page.
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 purpose is front-loaded in the opening clause and the enumerated counters are informative rather than padding. A few clauses, notably the human-board-page consistency point and the HTTP equivalent URL, are nice-to-have rather than essential, keeping it just short of maximally tight.
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 no input params and no output schema, the description correctly carries the burden of explaining the return contents, and it does so in detail (counters plus printed definitions plus counting-since dates). What it lacks is an explicit statement of when to prefer it over the sibling fleet_activity and fleet_what_changed tools.
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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description spends its words on the response shape instead, which is the appropriate use of space for a parameterless tool.
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 names a specific resource (Fleet KPIs for ExchangeRebel) and enumerates exactly which counters are returned, so an agent knows precisely what it will get. It implicitly distinguishes itself from sibling tools like fleet_activity by stating it returns aggregate counts rather than per-event or per-agent detail, though it never names a sibling explicitly.
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?
Usage is only implied: an agent can infer this is the call for a fleet-wide summary, and the description usefully states it is free and callable without a payment challenge. There is no explicit 'use this instead of fleet_activity / fleet_what_changed when...' guidance or exclusion, so the agent must infer the boundary from the counts-only wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fleet_what_changedARead-onlyIdempotentInspect
Fleet freshness / what changed across ExchangeRebel since a timestamp: per-service freshness metadata only (as_of stamps and whether each dataset-grade service's data is newer than since), each service's changes-op pointer (supported, paid, price, basis, endpoint) mirrored from its own free health envelope, and whitelisted already-free freshness facts. Change COUNTS are returned only for the free Ideas Commons event log; paid services' change counts are part of their paid changes ops and are never republished here. Never returns record contents or paid payloads. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/api/freshness.
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes | ISO-8601 timestamp, e.g. 2026-10-01T00:00:00Z. Required. A future timestamp is valid and returns zeros/nulls. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: it discloses the free/no-payment/no-x402 behavior, that counts come only from the free Ideas Commons log, that paid counts are never republished, and that no record contents or paid payloads are returned. That is substantive behavioral context an agent cannot infer from structured fields.
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?
Front-loaded with the purpose, which is good, but the single dense paragraph is bloated with repetition: 'FREE — no payment required: call directly without payment (no x402 challenge; this tool is free)' says the same thing three times, and the change-counts limitation is restated across two sentences. It could be materially tightened without information loss.
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 no output schema, the description carries the burden of explaining return values, and it does so adequately by describing freshness metadata, per-service pointer fields, and the free-facts subset. It stops just short of a precise field enumeration, but for a metadata-read tool this is close to 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?
The single `since` parameter is already 100% documented in the schema (ISO-8601, required, future timestamps valid), so the schema carries most of the load. The description adds semantic value by explaining that `since` is used to test whether each dataset's data is newer than the timestamp, clarifying its role beyond the format definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (fleet freshness across ExchangeRebel since a timestamp) and delimits scope sharply: per-service freshness metadata only, never record contents or paid payloads. An agent can tell what it returns without opening the schema, though it doesn't explicitly name sibling alternatives like fleet_activity or fleet_kpis for actual change counts.
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 says it is free, requires no payment, and can be called directly without an x402 challenge, plus gives the HTTP equivalent endpoint. This gives clear context for when to reach for it, but it stops short of naming an alternative tool for retrieving the change counts or record contents it excludes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
funding_fundingAInspect
Fetch funding rates across three perp venues. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/funding/funding/{symbol}.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Symbol, flexible format (BTC, btc-usdt, BTC/USDT) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the per-call cost ($0.005 USDC on Solana), the x402 payment handshake (call unpaid to receive a PaymentRequired challenge, then retry with payment at _meta["x402/payment"]), and an HTTP equivalent endpoint. These are exactly the operational facts an agent needs before invoking a pay-per-call tool.
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?
Front-loads purpose, then cost/payment mechanics, then an HTTP fallback, with each segment doing work. The x402 retry instruction is dense but necessary; no sentence is pure filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, price, payment flow, and an alternate transport, which is strong for a tool with no output schema. It stops short of indicating which three venues are covered or what shape the returned funding data takes.
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 schema already documents the flexible symbol format, so the description's main addition is showing {symbol} as a URL path component. That is a marginal gain over the structured schema, consistent with the baseline 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?
States a concrete verb and resource: 'Fetch funding rates across three perp venues.' An agent can tell this returns aggregated perp funding data. It doesn't differentiate itself from the sibling funding_liquidations, which is a related but distinct funding-domain tool.
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?
Usage is implied by the description (get funding rates for a symbol), but there is no explicit when/when-not guidance or routing to a sibling like funding_liquidations. The payment procedure is spelled out, which is operational rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
funding_liquidationsAInspect
Fetch the liquidation heatmap for a symbol. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/funding/liquidations/{symbol}.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Window hours, default 24 | |
| symbol | Yes | Symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses the two traits annotations can't convey: the $0.005 per-call cost and the USDC-on-Solana x402 payment requirement, plus the exact retry key _meta["x402/payment"]. This also resolves the apparent tension with readOnlyHint=false, since the paid retry is a billable side effect rather than a data mutation. It does not mention rate limits, refund/failure behavior, or what the heatmap contains.
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?
Purpose is front-loaded in the first sentence, with payment mechanics and the HTTP equivalent following in a single dense sentence each. No filler, though the parenthetical payment instructions are packed tightly enough to be slightly hard to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description never characterizes the return value (heatmap dimensions, price-bucket structure, time granularity), which is the main thing an agent must guess. Payment and endpoint details are complete, but the response shape is left entirely unexplained for a paid call.
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%, so both parameters are already documented (symbol, and hours defaulting to 24). The description adds only that symbol is a path segment; it does not clarify valid symbol formats or hour granularity, so baseline 3 applies.
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?
"Fetch the liquidation heatmap for a symbol" gives a specific verb and resource, and the URL template confirms the exact resource path. It does not explicitly distinguish itself from the closely named sibling funding_funding (funding rates), leaving that separation to inference.
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 the payment handshake flow (call unpaid to get the challenge, then retry with the payment), which is real usage guidance for invoking it. It never says when to prefer this over funding_funding or other funding tools, and gives no guidance on choosing an 'hours' window.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdelt_news_clustersAInspect
Same-story headline clusters over a GDELT query pool. Deterministic headline clustering COMPUTED by this service over GDELT headline metadata (title/domain/url/timestamps only; article text is never read): overlap coefficient over normalized headline token sets, threshold 0.40 with at least 3 shared tokens, single-linkage. Not a GDELT-reported grouping. Singletons are counted, not returned. Call gdelt_news_clusters_preflight first to check story counts for free. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/news/clusters.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| days | No | ||
| limit | No | Article pool size the clustering runs over; stated in the response as articles_considered. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: discloses the exact clustering algorithm (overlap coefficient on normalized headline tokens, 0.40 threshold, ≥3 shared tokens, single-linkage), that article text is never read, that singletons are counted but not returned, and the full x402 payment procedure including the challenge/retry at _meta["x402/payment"]. readOnlyHint=false is consistent with a paid call rather than a data mutation.
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?
Front-loaded with what the tool returns and how it is computed, with caveats (not GDELT-reported, singletons excluded) placed before the call instructions. Dense but every sentence carries signal; the HTTP endpoint mention is the one marginally expendable item.
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 no output schema, the description still tells the agent what it gets back (clusters, counted singletons, articles_considered) and what the cost and payment path are. It stops short of describing the shape of a returned cluster (members, domains, timestamps), which would fully close the gap.
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 only 33%; only `limit` is documented in the schema. The description explains what the article pool is over and that the pool size is reported as articles_considered, but leaves `q` (GDELT query syntax) and `days` (defaults/limits) uninterpreted, so it only partially compensates for the coverage gap.
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?
Names a specific verb and resource — deterministic same-story headline clustering computed by this service over a GDELT query pool — and explicitly separates itself from GDELT-reported groupings and from sibling news tools. An agent can tell exactly what it produces versus gdelt_news_crypto or news_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?
Explicitly routes the agent to gdelt_news_clusters_preflight first to check story counts for free, and states the per-call price and payment flow before use. It does not state when to prefer the plain news tools over clustering, but the preflight alternative covers the main decision point.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdelt_news_clusters_preflightARead-onlyIdempotentInspect
FREE preflight for gdelt_news_clusters. Counts only: articles_in_window, multi_outlet_story_count, singleton_count, servable/reason_class, and the $0.01 toll quote. No cluster membership or representatives are returned. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/news/clusters/preflight.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| days | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantial extra context: the exact returned counts, the exclusion of cluster membership, the $0.01 toll quote, and the explicit absence of an x402 payment challenge. It also names the HTTP equivalent endpoint for agents that prefer raw HTTP.
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?
Front-loaded with 'FREE preflight' and the return-field enumeration, which is what an agent needs first. Slightly dense with the em-dash clause and the HTTP equivalent tacked on, but every sentence carries information.
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?
There is no output schema, so the description usefully enumerates the return fields and states what is omitted, which covers the output side well. However, with three undocumented parameters it leaves the input side entirely unexplained, which is a real gap for a tool the agent is told to call freely.
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?
All three parameters (q, days, limit) have 0% schema description coverage, so the description is the only place semantics could be supplied — but it says nothing about the query string, the default 7-day window with a 31-day cap, or the limit range. 'articles_in_window' hints that a time window exists but gives no usable guidance.
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?
States a specific verb and resource ('preflight for gdelt_news_clusters') and immediately enumerates exactly what is returned (articles_in_window, multi_outlet_story_count, singleton_count, servable/reason_class, toll quote) and what is not (no cluster membership or representatives). An agent can distinguish it from the paid gdelt_news_clusters sibling without opening the schema.
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 word 'preflight' plus the explicit '$0.01 toll quote' and 'no payment required: call directly without payment' make it clear this is the free cost-check step before the paid clusters tool. It does not explicitly state when NOT to use it or differentiate from the same-family preflights (gdelt_news_crypto_preflight, gdelt_news_enriched_preflight), so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdelt_news_cryptoAInspect
Crypto-vertical GDELT news feed. Deterministic whole-token matching over headline text (title/domain/url only; article text is never read). Tags are COMPUTED by this service, not reported by GDELT. Each article carries computed_tags {assets, topics} (taxonomy crypto-v1) and crypto_native_source. Call gdelt_news_crypto_preflight first to check coverage for free. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/news/crypto.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| lang | No | Optional ISO language code. | |
| asset | No | Optional taxonomy asset id, e.g. BTC, ETH, SOL, XRP, DOGE, USDC, USDT, HYPE, TAO, NEAR, SUI, LTC, SEI, AURORA. | |
| limit | No | ||
| topic | No | Optional taxonomy topic id, e.g. etf, regulation, stablecoin, tokenization, treasury, defi, hack-exploit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations: discloses that matching is whole-token over title/domain/url only, that article text is never read, that tags are computed by the service rather than reported by GDELT, and that each call costs $0.01 via x402 with the exact retry mechanism. This also reconciles readOnlyHint=false (it spends funds) which would otherwise look odd. Missing only result-cap/pagination behavior.
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?
Front-loaded with the core identity, then matching semantics, payload shape, preflight guidance and payment mechanics in a logical order. Dense but nearly all functional; the HTTP-equivalent line is marginal extra weight.
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 no output schema, the description partially compensates by naming returned fields (computed_tags {assets, topics}, crypto_native_source) plus taxonomy version. Pricing, preflight and payment flow are covered; response size/pagination remains unspecified.
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 60%, with asset/topic/lang already documented inline including example values. The description adds that asset/topic ids come from the crypto-v1 taxonomy and that filters work by headline token matching, but says nothing about `days` (default 7, max 31) or `limit` beyond what the schema states. Baseline 3 fits.
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?
States a specific resource and scope: a crypto-vertical GDELT news feed with deterministic whole-token headline matching. It distinguishes itself from the generic gdelt_news_clusters/news_search siblings by naming the crypto taxonomy and computed_tags payload.
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 routes the agent to gdelt_news_crypto_preflight for a free coverage check before spending money, and gives the paid-call mechanics. It does not explicitly contrast with non-crypto siblings (news_search, gdelt_news_clusters), so the alternative-selection guidance is partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdelt_news_crypto_preflightARead-onlyIdempotentInspect
FREE preflight for gdelt_news_crypto. Counts only: articles_in_window, crypto_matched_count, per_asset_counts, per_topic_counts, servable/reason_class, and the $0.01 toll quote. No titles, URLs, or tag assignments are returned. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/news/crypto/preflight.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| lang | No | ||
| asset | No | ||
| limit | No | ||
| topic | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description still adds real value: free vs. $0.01 toll, no x402 challenge, exact return-field set, and the HTTP endpoint. Only gap is that it doesn't say whether the $0.01 quote applies to the subsequent paid call or this one, or note any rate limits.
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?
Front-loaded and dense: purpose, returned fields, exclusions, and payment model in a few clauses. Minor redundancy — 'FREE' at the start is restated by 'no payment required: call directly without payment (no x402 challenge; this tool is free)'.
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 no output schema, the field enumeration is a genuine asset and the payment model is fully covered. But for a 5-parameter filtering tool with zero schema documentation, the absence of any parameter guidance leaves an agent guessing how to shape requests 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 description coverage is 0%, so all five parameters (days, lang, asset, topic, limit) depend on the description for meaning — yet none are explained. The mention of per_asset_counts and per_topic_counts faintly hints that asset/topic are filters, but the 1-31 day window, lang format, and limit semantics are left entirely undocumented.
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?
States a specific verb and resource — a free preflight for gdelt_news_crypto that counts articles — and enumerates exactly which fields come back. The 'Counts only ... No titles, URLs, or tag assignments' contrast cleanly separates it from the paid sibling that presumably returns those fields.
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 implicitly positions itself as the step before gdelt_news_crypto and makes the no-payment path explicit ('call directly without payment; no x402 challenge'). It never says outright 'use this first, then call gdelt_news_crypto to get titles/URLs', so the workflow is inferred rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gdelt_news_enriched_preflightARead-onlyIdempotentInspect
FREE preflight for the held gdelt enriched search. Counts + snapshot state only: articles_in_window, gkg_snapshot_present, gkg_snapshot_as_of, gkg_coverage_pct, servable/reason_class, and the $0.01 toll quote. No GKG field values are returned. Until the GKG ingest is loaded it honestly reports servable:false, reason_class gkg_snapshot_absent; the enriched op itself is held and is not purchasable on any surface. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/news/enriched/preflight.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| days | No | ||
| lang | No | ||
| limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Restates that it is free and adds behavior the annotations cannot express: no x402 challenge, no payment required, honest servable:false / gkg_snapshot_absent reporting until ingest loads, and no GKG field data leaked. The HTTP equivalent endpoint is also given, which is real operational context.
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?
Front-loads what it is and what it returns before the caveats, which is the right order. Slight redundancy between 'FREE preflight' and 'no payment required: call directly without payment' costs it a point but no sentence is filler.
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 no output schema, the description does the necessary work of naming every returned field and the failure state, and the readOnly/idempotent annotations cover safety. The remaining gap is the input side: four parameters, one required, are left entirely unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries full burden for q, days, lang, and limit — yet it never mentions any of them. 'articles_in_window' hints obliquely at a time window but gives no format, defaults, or meaning for the four actual inputs.
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?
States a specific verb and resource ('FREE preflight for the held gdelt enriched search') and enumerates exactly what is returned (articles_in_window, gkg_snapshot_present, gkg_snapshot_as_of, gkg_coverage_pct, servable/reason_class). Explicitly says 'No GKG field values are returned,' which cleanly separates it from the enriched operation it fronts.
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?
Makes the routing decision clear: call directly, no payment, and the underlying enriched op is held and unpurchasable, so this is the only callable surface. It does not name other preflight siblings (e.g. gdelt_news_clusters_preflight, gdelt_news_crypto_preflight) or say when those would be preferred, which keeps it short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inference_chatAInspect
OpenAI-compatible chat completion over the open-weight GPT-OSS 120B model: openai/gpt-oss-120b (GPT-OSS family, Apache 2.0). Paid: $0.01 flat per call via x402. Limits: estimated input <= 2000 tokens (estimate: chars/4 + 4 per message), max_tokens <= 500, temperature 0..2, NO streaming at v1. Free pre-check at POST /toll/inference/chat/preflight (same JSON body) validates and states the exact price before payment; upstream failure after settlement queues an automatic refund (you only pay for delivered answers). — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/inference/chat.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | ||
| messages | Yes | ||
| max_tokens | No | ||
| temperature | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Provides rich behavioral context beyond annotations: flat $0.01 cost via x402, free pre-check endpoint, automatic refund on upstream failure, no streaming at v1, and exact payment flow (call without payment, then retry with _meta["x402/payment"]). This fully discloses the non-readOnly, open-world nature of the operation.
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 dense and front-loaded with the core purpose, then covers pricing, limits, and payment flow. It is appropriately sized for the complexity but could be better organized (e.g., using bullet points instead of a single paragraph).
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 absence of an output schema and the complexity of payment handling, the description is quite complete—covering pricing, refunds, limits, and payment flow. It omits the response format (e.g., choices structure), which would be helpful but is not critical for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds some meaning: input token estimation formula, max_tokens <= 500, temperature range 0..2, and the model enum value. However, it does not explain the message role/content structure or provide detail on the messages array beyond the schema itself.
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?
States a specific verb (chat completion) and resource (open-weight GPT-OSS 120B model, openai/gpt-oss-120b), clearly distinguishing it from all siblings. The model name and compatibility are 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?
The description clearly positions the tool as an OpenAI-compatible chat completion endpoint with specific limits (no streaming, token caps) that implicitly guide usage. It does not explicitly state when to use it versus alternatives, but no direct alternative exists among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
injection_precheckARead-onlyIdempotentInspect
FREE verdict-line pre-check of one text your agent is about to read (100/day per wallet; pass caller). Submit { text, caller }; get the safe / suspicious / malicious verdict line only. Matched patterns and the sanitized copy are in the paid scan. Submitted text is processed in memory only and never stored.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to screen (up to 8,000 characters). | |
| caller | Yes | Solana base58 wallet of the operator; keys the free allowance (100/day per wallet). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive, and the description adds substantial context on top: a 100/day per-wallet rate limit keyed by caller, that only the verdict line is returned, and that text is processed in memory and never stored. That privacy and rate-limit detail is exactly the kind of behavior an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the free/pre-check identity, then the return shape, then the privacy note. Every sentence carries distinct information with no padding.
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 two-parameter read tool with no output schema, the description covers purpose, return value (verdict line only), limits, and data handling. Nothing an agent needs to call it correctly 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?
Schema coverage is 100%, so both parameters are already documented, and the description mostly restates them ('pass caller', 'Submit { text, caller }'). It adds no format or constraint detail beyond what the schema provides, so baseline 3 applies.
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?
States a specific verb+resource ('verdict-line pre-check of one text') and immediately scopes it against the paid scan, so an agent can tell it apart from injection_scan and injection_rules without opening either schema. The 'FREE ... verdict line only' framing makes the tool's identity 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?
The description establishes the use context ('one text your agent is about to read') and implicitly routes to the paid scan when matched patterns or sanitized copy are needed. It stops short of naming the sibling tool explicitly or stating when-not-to-use, but the free-vs-paid split is clear enough to select correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
injection_rulesARead-onlyIdempotentInspect
The published detection rulebook for the Prompt-Injection Verdict: every pattern, category, and severity, the normalization views, the verdict rule, and the sanitization method. Read these before paying — every verdict is reproducible from them. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/injection/rules.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior. The description adds genuinely new context beyond that: the tool is free, requires no x402 payment challenge, and has a direct HTTP equivalent. This payment/auth-free disclosure is exactly the kind of behavioral detail annotations cannot convey.
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 core purpose is front-loaded in the first sentence and payment details follow. The em-dash clauses are slightly verbose, but each carries real information (reproducibility, free access, HTTP endpoint), so little is wasted.
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 no output schema and no parameters, the description carries the return-content burden and does so by enumerating the rulebook's contents. An agent knows what it receives and that no payment is needed. A minor gap is the absence of return format (JSON/text) detail, but overall it is complete for a static-read 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?
The tool takes zero parameters, so the parameter baseline of 4 applies. The description correctly characterizes this as a direct-read endpoint requiring no input, consistent with the empty 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 clearly identifies the resource: a published detection rulebook enumerating every pattern, category, severity, normalization views, verdict rule, and sanitization method. This distinguishes it from the injection_scan and injection_precheck siblings, which perform verdicts rather than document the rules. It stops short of an explicit verb phrase naming the action, but the content enumeration is specific enough.
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?
'Read these before paying' provides an implicit when-to-use cue, orienting the agent toward consulting this before invoking paid verdict tools. However, it never names the specific sibling alternatives or states when-not to call it, so guidance remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
injection_scanAInspect
$0.01 USDC on Solana — the payment buys one prompt-injection scan of one submitted text: the signed verdict, every matched pattern with its position, and a sanitized copy with the flagged spans neutralized, under the published rulebook. Submitted text is never stored; the paid retry re-sends the text. A safe verdict means no published pattern matched — it is not a guarantee that a text is safe.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to scan (up to 8,000 characters). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare non-read-only, non-destructive, and non-idempotent behavior. The description adds substantial context beyond them: the $0.01 USDC Solana payment, per-scan billing, no text storage, paid retry semantics, and the important caveat that a safe verdict is not a guarantee of safety.
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 and front-loads the cost and purpose. Each sentence adds distinct information — outputs, privacy/retry behavior, and the safe-verdict caveat — with no repetitive filler.
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?
There is no output schema, but the description enumerates the return components: signed verdict, every matched pattern with position, and a sanitized copy. It also covers cost, privacy, retry behavior, and the key limitation, which is sufficient for a one-parameter paid scanning 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?
There is a single parameter and schema description coverage is 100%, so the schema already documents that 'text' is the text to scan and has an 8,000-character limit. The description confirms it scans 'one submitted text' but adds no format or syntax details beyond the schema baseline.
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 specific verb and resource: a paid prompt-injection scan of one submitted text, and it lists the deliverables. It does not explicitly name injection_precheck as the free alternative, so sibling differentiation is only implied by the word 'paid.'
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 makes the paid nature and safety limitation clear, which helps an agent understand the tradeoff. However, it does not explicitly say when to use this paid scan instead of injection_precheck or injection_rules, leaving the routing decision inferential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobs_searchAInspect
Search remote jobs across three public boards. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/jobs/search.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Keyword query (titles/companies/tags) | |
| remote | No | true = remote only, false = on-site only | |
| source | No | Comma-separated subset of arbeitnow,himalayas,remotive | |
| location | No | Location substring |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the provided annotations by explicitly detailing the complex payment mechanism and the multi-step calling procedure. This provides critical behavioral context regarding transactional safety and resource management not found in structured data.
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 definition is dense due to necessary technical specifications (cost, payment workflow), but it is structured efficiently to deliver this complex information in a single, focused statement.
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?
While it explains how the search process works (payment flow, boards), it does not explicitly state the nature of the output, such as whether it returns a list of job objects or raw HTML/JSON, which is a key piece of contextual information missing when no output schema is provided.
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 100% description coverage, making the baseline score 3. The description provides no additional semantic meaning for 'q', 'remote', 'source', or 'location' beyond what is already detailed in 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 tool's purpose is clearly stated as searching remote jobs across three public boards. It successfully differentiates its domain (jobs) from other potential search tools in the environment.
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 highly specific operational guidelines, detailing the cost ($0.005 per call) and the technical workflow required (the two-step process involving the PaymentRequired challenge and subsequent retry), which guides usage and cost management.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_billsAInspect
Congress bills (Congress.gov, public domain). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/macro/bills.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Result limit | |
| congress | No | Congress number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the exact cost ($0.005/call), the payment rail (USDC on Solana via x402), and the concrete MCP flow — call unpaid, read the PaymentRequired challenge, retry with payment at _meta["x402/payment"] — plus the HTTP fallback endpoint. This is the context an agent needs to avoid a failed first call, and nothing contradicts the annotations (readOnlyHint=false is consistent with a metered, side-effecting payment call).
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?
Dense but front-loaded: source first, then price, then the mechanical payment recipe, then the HTTP equivalent. Every clause is actionable; the raw HTTP URL is the one element of marginal value for an MCP-only agent.
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 2-optional-param retrieval tool with no output schema, the operational side is thoroughly covered, but the description never says what a result looks like, how many bills are returned by default, or what fields each record carries. An agent knows how to pay but not what it will receive.
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%, so 'limit' and 'congress' are already documented in the schema. The description adds no meaning about expected values (e.g., congress number range, default limit) beyond what the schema provides, so the baseline 3 applies.
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 resource is stated precisely — 'Congress bills' from Congress.gov — and the sibling prefix (macro_cpi, macro_payrolls, macro_fed_rate) makes the domain unambiguous. It never states the operation, though: an agent cannot tell from the text whether this lists, searches, or fetches a single bill by ID.
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?
There is no guidance on when to choose this over sibling macro_* tools or news/courts tools, and no note on prerequisites beyond payment. The x402 retry instructions describe how to pay, not when the tool is the right selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_census_populationAInspect
Population data (US Census, public domain). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/macro/census/population.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | State filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are sparse on behavior, but the description adds substantial context the annotations lack: exact price ($0.005), payment asset/chain (USDC on Solana via x402), the required challenge-retry flow, and the _meta key for payment. There is mild tension between the 'GET' read semantics and readOnlyHint=false, but this plausibly reflects the on-chain payment side effect rather than a real 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?
Purpose is front-loaded in the first clause, followed by pricing and payment mechanics. The payment and HTTP-equivalent details are dense but each earns its place for correct invocation; only the URL restatement is slightly redundant.
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 single-param tool with no output schema, the definition covers what an agent needs to know to invoke it correctly, including the non-obvious payment handshake that would otherwise cause failures. Return data shape is unspecified but the source (US Census population) makes it reasonably predictable.
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% with a single 'state' filter that is already documented in the schema. The description adds nothing about the parameter (e.g., accepted formats or whether it's an abbreviation vs full name), so the schema carries all meaning — baseline 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?
States a specific resource (US Census population data) with a concrete retrieval verb implied, and the name plus source give an agent a clear sense of the tool's scope. It does not explicitly differentiate itself from the macro_* siblings (cpi, payrolls, unemployment), leaving that to the names alone.
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 a detailed payment procedure (challenge-then-retry), which is genuinely useful usage guidance for invocation, but gives no when-to-use rationale or alternatives relative to the other macro_* tools. The usage guidance present is procedural rather than about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_cpiAInspect
US CPI series (BLS, public domain). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/macro/cpi.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End period | |
| start | No | Start period |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true and readOnlyHint=false, but the description adds material context they do not carry: the $0.005 per-call price, the USDC-on-Solana payment rail, the two-step challenge/retry handshake, and an HTTP fallback URL. It does not explain granularity (monthly?), seasonality adjustment, or unit of the returned index.
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?
Purpose is front-loaded in the first clause, followed by cost and mechanics in priority order. The payment parenthetical is dense but every element is operationally necessary, and there is no filler.
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 no output schema, the description should convey what comes back; 'US CPI series' hints at a time series but leaves the response shape, granularity, and index basis unspecified. For a two-param data-retrieval tool the payment side is well covered while the data side is left implicit.
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%, so the schema nominally documents both parameters, but its text ('Start period' / 'End period') is thin and the description adds nothing about the expected format (e.g., YYYY-MM) or inclusive/exclusive bounds. Baseline 3 applies since the schema technically carries the parameter documentation.
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 names a specific resource and provenance: 'US CPI series (BLS, public domain)', which distinguishes it from the other macro_* siblings (bills, fed_rate, payrolls, unemployment) by subject matter. There is no explicit 'use X instead' routing sentence, but the subject itself is 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?
The paid-invocation flow is spelled out precisely (call without payment to get the PaymentRequired challenge, then retry with payment at _meta["x402/payment"]), which is genuine how-to guidance. However, nothing says when to pick this over macro_fed_rate or macro_unemployment, nor what start/end to supply or what the defaults are.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_fed_rateAInspect
Federal funds rate (FRED, public domain). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/macro/fed-rate.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations by disclosing the exact cost ($0.005/call), the currency and chain (USDC on Solana), the x402 payment handshake, and an HTTP equivalent endpoint. This explains why readOnlyHint=false despite it being a data read — the call spends money. It stops short of describing the return payload (units, date range, series frequency), which with no output schema would be useful.
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?
Front-loads the dataset and then the payment cost, followed by the invocation recipe — a sensible order. It is dense but nearly every clause (cost, x402 flow, HTTP fallback) earns its place; the raw URL is the only slightly expendable element.
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 0-param tool with no output schema and openWorldHint=true, the description covers what the data is and exactly how to complete a paid call, which is the hard part. The remaining gap is the shape of the result (series values, units, dates), which an agent must discover at runtime.
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?
Zero parameters, so there is nothing to disambiguate and the baseline of 4 applies. The description correctly implies a parameterless GET-style data fetch.
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?
States a specific resource (federal funds rate) and source (FRED, public domain), so an agent knows exactly what data comes back. It does not explicitly distinguish itself from sibling macro tools like macro_cpi or macro_unemployment, relying on the name for that differentiation.
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 thoroughly explains HOW to invoke the paid flow (challenge → retry with _meta["x402/payment"]), but gives no guidance on WHEN to prefer this over sibling macro_* series or alternatives. Usage is only implied by the dataset name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_payrollsAInspect
US payrolls series (BLS, public domain). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/macro/payrolls.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End period | |
| start | No | Start period |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavior the annotations cannot: exact price ($0.005/call), payment rail (USDC on Solana), and that the first unpaid call returns a PaymentRequired challenge rather than data. Annotations say readOnlyHint=false and openWorldHint=true, consistent with a paid external call. Missing: whether the probe call itself is billed, and any rate limit or caching behavior.
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?
Front-loads the data resource, then the commercial/transport details in one tight sentence plus an HTTP equivalent. No filler, though the inline JSON key makes the middle clause dense to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description carries the burden of describing the return, and it never says what a payrolls series looks like (units, thousands of jobs, seasonally adjusted or not, frequency). The payment mechanics are thorough, but the actual shape of the returned data is left unspecified.
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 3 applies, but the schema text is thin ('Start period' / 'End period') and the description adds nothing about accepted date format, granularity (monthly?), or default range when both are omitted. Without that, an agent must guess at formats for a time-series query.
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?
States the specific resource (US payrolls series, BLS, public domain) and pairs it with a concrete HTTP endpoint, so an agent knows exactly what data it gets. It doesn't explicitly differentiate itself from macro_unemployment or macro_cpi in the sibling list, but the resource name is distinctive enough to route correctly.
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 payment workflow is spelled out precisely (challenge-then-retry with _meta["x402/payment"]), which is real invocation guidance. But there is no guidance on when to pick this series versus the other macro_* siblings, and no statement of what happens if start/end are omitted (required parameters = 0).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
macro_unemploymentAInspect
US unemployment series (BLS, public domain). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/macro/unemployment.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | End period | |
| start | No | Start period |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare openWorldHint=true and readOnlyHint=false, so the description's job is to explain why a data fetch is non-read-only — and it does: each call costs $0.005 in USDC on Solana, requiring an x402 challenge-then-retry handshake. That is genuinely valuable behavioral context an agent cannot infer from the annotations, though it omits coverage range, update cadence, and units.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly packed sentences, front-loaded with what the series is and immediately followed by cost and the payment protocol. The x402 parenthetical is long but every clause is operationally necessary; nothing is filler.
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 no output schema, the description should at least signal the shape of the return (observations, units, frequency). It thoroughly covers cost and payment but leaves the response format and date syntax undocumented, which is a real gap for a first-call experience.
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, but the schema descriptions are only 'Start period' and 'End period' with no format. The tool description adds nothing about whether these are ISO dates, years, or YYYY-MM, which is the exact ambiguity an agent needs resolved before its first call.
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?
Names the specific resource (US unemployment series, BLS source) with enough topic specificity to separate it from siblings like macro_cpi, macro_payrolls, and macro_fed_rate. The retrieval verb is implied rather than stated, but for a series-fetch tool the resource naming carries the meaning.
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?
There is no explicit when-to-use or when-not-to-use guidance relative to macro_cpi/macro_payrolls, nor any statement of prerequisites such as date format or data frequency. The payment mechanics tell the agent how to invoke but not when this tool is the right choice over its macro siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manifest_auditAInspect
$0.05 USDC on Solana — the payment buys one full manifest-claim audit report for one submitted MCP manifest: the verdict line and score under the published criteria, per-tool, per-check results with evidence, the findings list (spec-default traps, both-claimed traps, schema inconsistencies), and a concrete fix list. Submitted manifest content is processed in memory only and never stored; the paid retry re-sends the manifest (or its URL). It does not execute the server, observe its runtime behaviour, or certify that the server is safe or honest in operation.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The URL of a tools/list JSON document to fetch (read-only GET, 512 KB / 10 s caps) and grade as the manifest. Mutually exclusive with manifest. | |
| manifest | No | The MCP server's tools/list manifest document, in any accepted shape: { tools: [...] }, { result: { tools: [...] } }, or a bare array of tools. Mutually exclusive with url. Submitted content is processed in memory only and never stored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=true, idempotentHint=false and destructiveHint=false, so the description's job is to add what the annotations can't. It does: exact price ($0.05 USDC on Solana), the fact that a retry is a fresh paid call requiring the manifest to be re-sent, and that submitted content is processed in memory and never stored. The remaining gap is credible failure/payment behaviour — what happens if payment succeeds but the fetch fails, or whether the score is deterministic.
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?
Front-loaded with the price, which is the single decision-relevant fact, then the deliverable, then privacy, retry semantics and limits. Every sentence carries information. It is one dense run-on block rather than separated clauses, which slightly hurts scannability, but nothing is wasteful.
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?
There is no output schema, so the description must carry the return contract — and it does, itemising verdict/score, per-tool per-check results with evidence, findings categories (spec-default traps, both-claimed traps, schema inconsistencies) and a fix list. Combined with the explicit non-guarantees, an agent knows both what it gets and what it must not claim from the result.
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%: both `url` (with GET, 512 KB / 10 s caps) and `manifest` (accepted shapes, in-memory only) are fully documented, including their mutual exclusivity. The description only restates the url-or-manifest choice in the retry sentence, adding no format or constraint detail beyond the schema. Baseline 3 is correct.
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 specific verb and resource — a paid audit of one submitted MCP manifest for one price — and enumerates exactly what the deliverable contains (verdict line and score, per-tool/per-check results with evidence, findings list, fix list). It also sharply bounds the resource: 'It does not execute the server, observe its runtime behaviour, or certify that the server is safe.' An agent can tell this apart from manifest_precheck/manifest_criteria/manifest_drift without opening any schema.
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?
Usage is implied rather than stated: the phrase 'the paid retry re-sends the manifest (or its URL)' hints there is a cheaper first pass, but no sibling is named and no explicit 'use X first' or 'use Y instead for drift' routing is given. The exclusions describe scope boundaries, not alternatives. Adequate, but the agent must infer when this is the right tool versus manifest_precheck.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manifest_criteriaARead-onlyIdempotentInspect
The published scoring criteria for the MCP Manifest-Claim Audit (mcp-manifest-claims/v1): the seven scored checks per tool, the exact present_and_consistent/misshaped/absent rules, the published keyword and claim-phrase lists, the MCP spec defaults, and the scoring. Read these before paying for an audit — every audit is reproducible from them. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/manifest/criteria.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and closed-world, so the safety profile is handled. The description adds genuinely new behavior: no x402 challenge, no payment required, free to call directly, and an equivalent HTTP endpoint — useful agent-facing operational context.
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 leading clause front-loads the content inventory well, but the trailing payment note is redundant — 'no payment required', 'call directly without payment', 'no x402 challenge', and 'this tool is free' all restate the same fact, and the HTTP URL is boilerplate for a tool the agent is already calling.
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 no parameters and no output schema, the description carries the burden of explaining what comes back, and it does so thoroughly via the content inventory. The one gap is the response format (markdown text vs. structured JSON), which the agent must still discover by calling.
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 takes zero parameters, which is the baseline-4 case; nothing needs explaining in the description and none is attempted.
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?
States a concrete resource with enumerated contents: the seven scored checks, present_and_consistent/misshaped/absent rules, keyword and claim-phrase lists, MCP spec defaults, and scoring. It is unambiguously the reference document rather than the audit itself, which separates it from manifest_audit, though it never names the sibling tools that apply these criteria (manifest_precheck, manifest_drift_criteria).
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?
Gives an explicit pre-condition: 'Read these before paying for an audit — every audit is reproducible from them,' which tells the agent to consult this before invoking the paid audit. No exclusions or guidance on when to skip it, but the intended sequence is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manifest_driftAInspect
$0.05 USDC on Solana — $0.05 buys one drift comparison report for one submitted manifest against one customer-held baseline. The report states, per tool, UNCHANGED / CHANGED / ADDED / REMOVED with field-level diffs for changed tools, re-grades the current manifest under mcp-manifest-claims/v1, and screens changed tools' new descriptions under prompt-injection-rules/v1 in a separately labelled section. Submitted content is processed in memory only and never stored; the paid retry re-sends the baseline and the current manifest (or its URL).
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The URL of a tools/list JSON document to fetch (read-only GET, 512 KB / 10 s caps) and compare as the current manifest. Mutually exclusive with manifest. | |
| manifest | No | The current MCP server's tools/list manifest document, in any accepted shape: { tools: [...] }, { result: { tools: [...] } }, or a bare array of tools. Mutually exclusive with url. Submitted content is processed in memory only and never stored. | |
| baseline_report | No | A full paid manifest-claim audit report object previously issued by this service (signed mode). Mutually exclusive with the other baseline fields. | |
| baseline_digests | No | The manifest_digest block from a paid audit report, submitted verbatim (signed mode; requires baseline_signature). | |
| baseline_manifest | No | A second manifest document asserted by the customer as the baseline (fallback mode; the report states the baseline was customer-asserted, not service-anchored). | |
| baseline_signature | No | The manifest_digest_signature from the same paid audit report (the signature object or its base64 value; requires baseline_digests). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Strong beyond-annotation disclosure: exact price and denomination ($0.05 USDC on Solana), data-handling guarantee (in-memory only, never stored), the paid-retry semantics, and the two grading rule sets applied (mcp-manifest-claims/v1, prompt-injection-rules/v1 in a separately labelled section). What it omits is payment/auth mechanics and any rate or latency expectations for a paid call; openWorldHint=true already covers the outbound URL fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the price and the deliverable, then the report contents, then privacy/retry terms — no filler. It is dense (multiple clauses chained with dashes and semicolons), which costs a little readability but nothing is redundant.
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 no output schema, the description does the necessary work by describing the report's structure (per-tool verdicts, field-level diffs, re-grade, injection screen) as well as cost and data retention. Remaining gaps are how exactly one baseline source must be chosen and what the agent gets back on failure, both partly mitigated by the schema text.
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% and the schema itself already spells out the url/manifest mutual exclusion and the signed-vs-fallback baseline modes. The description only echoes that framing ('one submitted manifest against one customer-held baseline' and the retry re-sending baseline plus manifest) without adding syntax, format, or selection guidance the schema lacks. Baseline 3 is correct.
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 names a concrete deliverable — a drift comparison of one submitted manifest against one customer-held baseline — with per-tool UNCHANGED/CHANGED/ADDED/REMOVED verdicts and field-level diffs. That is far more specific than the name alone. It stops short of a 5 because it never contrasts itself with the closely named siblings manifest_audit, manifest_criteria, or manifest_drift_precheck, so the agent must infer the boundary.
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 the use case (you have a current manifest and a baseline and want a diff) and states the price up front, but gives no explicit when-to-use, when-not-to-use, or prerequisite (e.g. run manifest_drift_precheck first, or use manifest_audit for a single-manifest grade). With four manifest_* siblings in the list, the absence of routing is a material gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manifest_drift_criteriaARead-onlyIdempotentInspect
The published drift criteria for the MCP Manifest-Claim Audit extension (mcp-manifest-drift/v1): the digest canonicalisation rules, the independently signed digest block, the drift input contract, and the comparison rules. Read these before paying for a drift report — every drift report is reproducible from them. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/manifest/drift-criteria.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new operational context: it is free, triggers no x402 payment challenge, and has an HTTP equivalent endpoint. The only gap is that it never says whether the criteria are stable/versioned over time, which matters for a spec-document tool.
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 payload list is front-loaded and the key ordering hint follows immediately, so the important information lands early. The no-payment note is stated three ways ("before paying", "no payment required: call directly without payment", "no x402 challenge; this tool is free"), which is redundant length for a tool that already reads as a free GET.
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?
There is no output schema, but the description compensates by listing the four components of the returned criteria, which is exactly what an agent needs to know before calling. With zero parameters and annotations covering the safety profile, nothing material is missing for correct invocation.
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 takes zero parameters, so there are no parameter semantics to explain and no risk of ambiguity. The description correctly implies a direct, unfiltered retrieval rather than a query.
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 names a specific resource (published drift criteria for the MCP Manifest-Claim Audit extension, mcp-manifest-drift/v1) and enumerates exactly what it returns: digest canonicalisation rules, the signed digest block, the drift input contract, and comparison rules. That is materially distinct from manifest_drift (the actual report) and manifest_criteria (a different criteria set), so an agent can tell them apart without opening a schema.
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?
"Read these before paying for a drift report — every drift report is reproducible from them" gives a clear when-to-use condition and an ordering relative to the paid drift tool. It stops short of naming the sibling (manifest_drift) explicitly or stating when not to call it, which keeps it off a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manifest_drift_precheckARead-onlyIdempotentInspect
FREE headline drift check (100/day per wallet; pass caller). Submit a current tools/list manifest (or its URL) plus a customer-held baseline — a full paid audit report, its manifest_digest block + signature, or a second manifest (customer-asserted) — and get the verdict line (MANIFEST UNCHANGED, or MANIFEST CHANGED with the number of differing tools) and the per-status counts only. Per-tool differences, the re-grade, and the pattern screen are in the paid drift report. The service retains nothing; the baseline stays customer-held.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The URL of a tools/list JSON document to fetch (read-only GET, 512 KB / 10 s caps) and compare as the current manifest. Mutually exclusive with manifest. | |
| caller | Yes | Solana base58 wallet of the operator; keys the free allowance (100/day per wallet). | |
| manifest | No | The current MCP server's tools/list manifest document, in any accepted shape: { tools: [...] }, { result: { tools: [...] } }, or a bare array of tools. Mutually exclusive with url. Submitted content is processed in memory only and never stored. | |
| baseline_report | No | A full paid manifest-claim audit report object previously issued by this service (signed mode). Mutually exclusive with the other baseline fields. | |
| baseline_digests | No | The manifest_digest block from a paid audit report, submitted verbatim (signed mode; requires baseline_signature). | |
| baseline_manifest | No | A second manifest document asserted by the customer as the baseline (fallback mode; the report states the baseline was customer-asserted, not service-anchored). | |
| baseline_signature | No | The manifest_digest_signature from the same paid audit report (the signature object or its base64 value; requires baseline_digests). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond annotations: rate limit per wallet, 'The service retains nothing; the baseline stays customer-held', and the caveat that a customer-asserted baseline is flagged as such in the output. It also summarizes the exact returned content (verdict line plus per-status counts) for a tool with no output schema.
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?
Front-loads the free/rate-limited framing and the output scope with no filler, though the first sentence is a long em-dash stack enumerating baseline types that could be tightened. Every clause carries information; none is redundant with the name.
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 7-parameter tool with no output schema, the description covers inputs, return payload, limitations, and data-handling policy, which is essentially everything an agent needs to invoke it confidently without guessing.
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%, so the schema already documents URL fetch caps, mutually-exclusive groups, and the signature/digests pairing. The description's added value is limited to framing the baseline modes (paid report, digest block + signature, or second manifest) rather than adding new 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?
States a specific verb+resource ('FREE headline drift check' comparing a tools/list manifest against a baseline) and precisely delimits its output (verdict line + per-status counts). It explicitly contrasts itself with the paid variant by naming what is excluded: 'Per-tool differences, the re-grade, and the pattern screen are in the paid drift report.'
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?
Explains the free-tier context (100/day per wallet, caller required) and enumerates the three acceptable baseline forms with their trust implications (service-anchored vs customer-asserted fallback). It does not name the paid sibling tool (manifest_drift) outright, so the routing to the full report is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manifest_precheckARead-onlyIdempotentInspect
FREE headline check of whether an MCP server's published tool annotations hold up (100/day per wallet; pass caller). Submit the tools/list manifest (or the URL of a manifest document); get the verdict line, score, and counts. Per-tool evidence and the fix list are in the paid report. The audit grades the manifest's published claims against the MCP specification and its own internal evidence — it does not execute the server or certify its safety or honesty.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | The URL of a tools/list JSON document to fetch (read-only GET, 512 KB / 10 s caps) and grade as the manifest. Mutually exclusive with manifest. | |
| caller | Yes | Solana base58 wallet of the operator; keys the free allowance (100/day per wallet). | |
| manifest | No | The MCP server's tools/list manifest document, in any accepted shape: { tools: [...] }, { result: { tools: [...] } }, or a bare array of tools. Mutually exclusive with url. Submitted content is processed in memory only and never stored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive and open-world, so the safety bar is low. The description still adds real context: a 100/day-per-wallet allowance, in-memory input handling, and an explicit statement that it does not execute the server or certify its safety or honesty, which meaningfully bounds what the verdict means.
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?
Four tight sentences: the offer and rate limit come first, then inputs, then the return, then the scope disclaimer. Only 'pass caller' is slightly jargon-ish, but no sentence is redundant.
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?
No output schema exists, and the description does describe what comes back (verdict line, score, counts) plus its limits and non-goals. For a single-input, non-mutating grading tool this is close to complete; only error or failure behavior is left unstated.
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 each parameter already documents its format and mutual exclusivity, so the description only needs to add framing. It contributes 'pass caller' and the free-allowance tie-in but no additional syntax or format guidance, making the baseline 3 appropriate.
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?
States a specific verb and resource (grade an MCP server's tools/list manifest against the spec) and scopes it as a free headline check whose detail lives in the paid report. It never names its closest siblings (manifest_audit, manifest_drift_precheck), so an agent must infer which of the several manifest_* tools is the paid counterpart, but the free/paid boundary is made explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies the usage context (quick free triage; go to the paid report for per-tool evidence and fixes) but never states a when-not rule or names an alternative tool. Nothing tells the agent how this differs from manifest_drift_precheck or when to skip straight to manifest_audit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nadac_changesAInspect
Per-NDC per-unit NADAC values at every held snapshot generation, with latest-vs-previous and latest-vs-12-month-anchor deltas. Input {ndc} or {ndcs: [max 25]}; uncovered batch members are marked covered:false. Free pre-check at POST /toll/nadac/changes/preflight. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/nadac/changes.
| Name | Required | Description | Default |
|---|---|---|---|
| ndc | No | ||
| ndcs | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: discloses per-call pricing ($0.01 USDC on Solana via x402), the exact MCP payment handshake (call without payment, receive PaymentRequired, retry with _meta["x402/payment"]), the HTTP equivalent endpoint, and the coverage-flag behavior for uncovered batch members. The annotations only mark readOnly=false and idempotent=false; the description explains why the flow behaves as it does.
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?
Front-loads what the tool returns, then input modes, then preflight and payment mechanics. Dense but every clause carries operational value; only slight compression possible in the payment retry explanation.
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?
No output schema exists, yet the description conveys the return shape (per-snapshot series plus two delta comparisons and coverage flags) and complete payment/preflight mechanics. Remaining gap is NDC format and the single-vs-batch mutual requirement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains the ndc vs ndcs alternatives and the max-25 batch semantics with covered:false marking, but omits NDC string format and does not clarify that at least one of the two zero-required parameters must be supplied.
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?
States the specific resource and shape: per-NDC per-unit NADAC values across every held snapshot generation, plus latest-vs-previous and latest-vs-12-month-anchor deltas. This implicitly distinguishes it from point-in-time siblings such as nadac_fact and dispersion tools, though it never names them.
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?
Gives concrete input modes (single ndc or ndcs batch up to 25) and points to a free preflight endpoint, which is useful routing. However, it never says when to choose this over nadac_fact or nadac_dispersion, and gives no exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nadac_dispersionAInspect
Dispersion across all latest-generation presentations sharing the input NDC's exact ndc_description: presentations, stats {count,min,max,median,mean}, and brand-vs-generic medians and gap with honest nulls when a side is absent. Free pre-check at POST /toll/nadac/dispersion/preflight. $0.02 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/nadac/dispersion.
| Name | Required | Description | Default |
|---|---|---|---|
| ndc | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations: discloses pay-per-call cost ($0.02 USDC on Solana via x402), the MCP payment dance (call unpaid to get PaymentRequired, then retry with _meta["x402/payment"]), a free preflight endpoint, and the HTTP equivalent URL. Also discloses that absent brand/generic sides yield 'honest nulls'. Annotations only flag readOnlyHint=false and openWorldHint=true, so this added context is substantive.
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?
Front-loads what the tool computes before the payment/logistics detail, and every sentence carries information (output shape, preflight, x402 flow, HTTP fallback). The payment instructions are dense but functional; nothing is redundant.
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 no output schema, the description still describes the return payload (presentations list plus stats object and brand/generic comparison), and it fully covers the access/payment path an agent must follow to invoke it successfully. Nothing material is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single 'ndc' param is undocumented in the schema, but the description compensates by explaining the matching key: the NDC resolves to an exact ndc_description against which dispersion is computed. That adds real semantics, though the expected NDC format (11-digit? hyphens?) is never specified.
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?
States a specific operation (dispersion metrics across presentations sharing the input NDC's exact ndc_description) and enumerates the outputs (count/min/max/median/mean, brand-vs-generic medians and gap). It is distinguishable from siblings like nadac_fact and nadac_changes, though it never names those siblings explicitly.
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?
Mentions a free pre-check at /toll/nadac/dispersion/preflight but gives no explicit guidance on when to prefer this tool over nadac_fact or nadac_changes, or when the preflight is required versus optional. Usage is implied by the pricing/payment flow rather than stated as a use criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nadac_factAInspect
Per-NDC NADAC fact at the latest held generation: verbatim published fields (ndc_description, nadac_per_unit, pricing_unit, effective_date, classification, corresponding-generic pair), the computed corresponding-generic gap, and long-horizon changes (~1 week / ~1 month / ~6 months / 12 months, honest nulls). NADAC is a national average pharmacy acquisition benchmark published by CMS — not a consumer figure; every response carries the label sentence. Structured input only. Free pre-check at POST /toll/nadac/fact/preflight. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/nadac/fact.
| Name | Required | Description | Default |
|---|---|---|---|
| ndc | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses the $0.01 price, the USDC-on-Solana x402 payment flow including the call-without-payment-then-retry-with-_meta pattern, the availability of a free preflight, that nulls are honest rather than fabricated, and that every response carries a benchmark label. readOnlyHint=false is not explicitly reconciled, but the paid call is a genuine side effect, so there is 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?
Front-loaded with the payload shape, then pricing and payment mechanics, then the HTTP equivalent. Dense but every clause is informative; the payment-flow sentence is long but necessary for a paid tool.
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 no output schema, the description carries the return-value burden and does so thoroughly — field list, computed gap, horizon set, null policy, and label sentence. The only material gap is input format guidance for 'ndc'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and there is only one parameter, 'ndc', whose expected format (10- vs 11-digit, hyphenation, validation) is never stated in the description. 'Per-NDC' at least confirms the parameter's role, but nothing compensates for the missing format guidance.
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?
States a specific resource (a per-NDC NADAC fact at the latest generation) and enumerates exactly what comes back: verbatim published fields, the computed corresponding-generic gap, and four horizon changes. It does not, however, distinguish itself from siblings like nadac_changes or nadac_dispersion, which an agent must infer from the single-NDC scope.
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?
Usage is only implied: 'per-NDC' signals a single-record lookup and the preflight endpoint is offered as a free validation step. There is no explicit when-to-use/when-not guidance and no routing to the sibling NADAC tools, so the agent has to infer the boundary itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_searchAInspect
Search global news coverage (GDELT). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/news/search.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Query | |
| days | No | Lookback days | |
| lang | No | Language filter | |
| limit | No | Result limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context the annotations do not carry: per-call pricing ($0.005 USDC on Solana), the x402 challenge-and-retry payment flow, and the underlying HTTP endpoint. This also explains why readOnlyHint=false — the call involves a payment side effect — so annotations and description are coherent.
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?
Front-loaded with the purpose, then payment mechanics and endpoint in compact clauses. Every sentence carries operational weight, though the x402 retry instructions are dense enough that an agent could mis-parse the _meta key syntax on first read.
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?
There is no output schema, and the description never says what a search returns (article list, clusters, fields, pagination). For a monetized search endpoint where the result shape determines follow-up calls, this is a meaningful gap, even though payment behavior is well covered.
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% but the parameter descriptions are terse ('Query', 'Lookback days', 'Language filter', 'Result limit'), and the tool description adds nothing about formats (e.g. days as string, query syntax, language codes). Baseline 3 is appropriate since the schema does the work without compensating detail.
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?
States a specific verb and resource ('Search global news coverage (GDELT)') so the agent knows exactly what the tool does. It could be sharper against siblings like gdelt_news_clusters or news_trending, but the GDELT label already distinguishes the general news-search scope.
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?
Explains the payment workflow but gives no guidance on when to use this versus gdelt_news_clusters, news_trending, news_timeline, or cited_answer_search. The agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_timelineAInspect
Coverage timeline for a query (GDELT). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/news/timeline.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Query | |
| days | No | Lookback days |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (openWorld, non-idempotent, non-destructive), so the description earns credit for adding what annotations cannot: an exact price ($0.005/call), the x402 payment handshake (call, receive PaymentRequired, retry with _meta["x402/payment"]), and the HTTP fallback endpoint. These are non-obvious operational facts an agent must know before calling. It does not disclose the shape/granularity of the returned timeline, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, purpose front-loaded, then the payment mechanics, then the HTTP equivalent. The parenthetical payment instructions are dense but every clause is actionable. Minimal waste.
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?
Payment and endpoint details are complete, but with no output schema the description carries the burden of explaining what a 'timeline' returns — bucket granularity, units (article counts?), and how `days` shapes the series — and it does not. That gap matters for an agent deciding whether to call this at all.
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%, so both parameters are already documented and the baseline is 3. The description adds only the notion that `q` is a coverage query; it says nothing about `days` (default lookback, unit, upper bounds) beyond the terse schema text.
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?
States a specific resource and dimension: a coverage timeline for a query, sourced from GDELT. That is materially different from news_search (articles) or news_trending (current buzz), so an agent can infer the temporal-distribution role. It stops short of explicitly naming a sibling it should be chosen over, which keeps it off a 5.
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?
Usage is only implied by the phrase 'coverage timeline for a query' — the agent must infer this is for gauging volume/trend of coverage over time rather than retrieving articles. There is no explicit when-to-use, when-not, or pointer to news_search/news_trending/gdelt_news_clusters as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
news_trendingBInspect
Trending stories (GDELT). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/news/trending.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback days | |
| limit | No | Result limit |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past the annotations by disclosing the per-call price ($0.005), the payment handshake (call, receive PaymentRequired, retry with payment metadata), and the underlying HTTP endpoint. The only gap is that it does not describe the response shape or default behaviour, and there is mild tension between the stated HTTP GET and readOnlyHint=false, though that is plausibly explained by the payment side effect.
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?
Front-loads what the tool is in four words, then the cost and payment steps in a single compact parenthetical, then the HTTP equivalent. Dense but every clause carries information; the payment parenthetical is long but operationally necessary.
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 no output schema and two optional parameters, the description leaves the agent guessing what a 'trending story' record contains and what the defaults are when days/limit are omitted. Coverage of cost and auth is strong, but return-value context is absent.
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% for both parameters, so the schema already carries the burden, and the description adds no clarity on units, defaults, or ranges for 'days' and 'limit'. Baseline 3 applies.
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?
States a specific resource and mode (trending stories from GDELT) in the opening fragment, which is enough to distinguish it from news_search and news_timeline. It stops short of explicitly contrasting itself with the GDELT cluster siblings, so it is clear but not fully differentiated.
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 body is entirely about payment mechanics (x402, USDC on Solana, retry with _meta["x402/payment"]) and says nothing about when an agent should pick this over news_search, news_timeline, or gdelt_news_clusters. There are no exclusions or selection criteria, only invocation protocol.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
observability_criteriaARead-onlyIdempotentInspect
The published scoring criteria for the Agent Observability Readiness Check: the four auditor record types, the exact present/misshaped/absent rules, and the scoring. Read these before paying for a report — every report is reproducible from them. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/observability/criteria.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, and the description adds genuinely non-obvious context beyond them: the call is free, requires no payment, and involves no x402 challenge. It also notes that reports are reproducible from these criteria, which is meaningful behavioral framing; return format is only loosely implied.
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 core purpose is front-loaded and the content list is compact. Slight waste in 'no payment required: call directly without payment (no x402 challenge; this tool is free)' which states the same fact three ways, plus a trailing HTTP equivalent URL.
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 documentation-retrieval tool with no schema and no output schema, the description covers what the content contains, why to read it, and its cost/access model. It does not describe the shape or length of the returned document, but nothing needed to invoke it correctly 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 takes zero parameters, so the baseline is 4. The description correctly spends no space on parameter semantics and instead describes the content the call returns.
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?
States a specific resource (the published scoring criteria for the Agent Observability Readiness Check) and enumerates its contents: four auditor record types, present/misshaped/absent rules, and scoring. It distinguishes itself implicitly from observability_report by framing itself as the material to read before paying for one, though it never names that sibling explicitly.
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?
'Read these before paying for a report' gives a clear sequencing directive that links this tool to the report siblings. It stops short of explicit when-not guidance or naming observability_precheck/observability_report as alternatives, so the routing is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
observability_precheckARead-onlyIdempotentInspect
FREE headline check of your own agent deployment's observability readiness (100/day per wallet; pass caller). Submit your config and/or a sample trace; get the verdict line, readiness score, and which of the four auditor record types are present/absent/misshaped. Evidence and the fix list are in the paid report. The check verifies record emission and shape only — it does not certify that an agent is safe.
| Name | Required | Description | Default |
|---|---|---|---|
| trace | No | Optional array of event objects: a sample trace/log the operator generated. | |
| caller | Yes | Solana base58 wallet of the operator; keys the free allowance (100/day per wallet). | |
| config | No | Optional object: the deployment's framework/config description (key/value). | |
| framework | No | Optional label for the deployment's framework (descriptive only). | |
| trace_text | No | Optional string: the sample trace as JSONL or raw log lines. | |
| deployment_label | No | Optional short label for the deployment, echoed in the report. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds substantial context beyond them: a 100/day per-wallet quota keyed by caller, the exact return payload (verdict line, readiness score, present/absent/mishaped record types), and an explicit non-goal that it does not certify safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with 'FREE headline check' and the quota, then inputs, then outputs, then scope limits. Dense but every clause carries information; the parenthetical quota could arguably be tightened but nothing is wasted.
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?
No output schema exists, yet the description enumerates the returned artifacts (verdict line, readiness score, four record-type statuses). Along with quota, required caller, and an explicit scope disclaimer, an agent has everything needed to call and interpret it.
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%, so every parameter including caller, trace, config and trace_text is already documented. The description only reinforces that caller keys the free allowance and that config and/or trace are the inputs; baseline 3 applies since the schema does the heavy lifting.
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?
States a specific verb and resource: a free 'headline check' of an 'agent deployment's observability readiness', with the exact outputs it returns. It implicitly separates itself from the paid report and the criteria sibling by scoping to the headline verdict only.
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?
Tells the agent to 'submit your config and/or a sample trace' and notes that evidence and the fix list live in the paid report, which implies the escalation path to observability_report. It does not explicitly name observability_report or observability_criteria as alternatives, so the routing is inferential rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
observability_reportAInspect
$0.05 USDC on Solana — the payment buys one full observability readiness report for one submitted deployment sample: the verdict line and score under the published criteria, per-record-type status with evidence from your sample, and a concrete fix list. Submitted material is processed transiently and never stored; the paid retry re-sends the sample. It does not certify that an agent is safe.
| Name | Required | Description | Default |
|---|---|---|---|
| trace | No | Optional array of event objects: a sample trace/log the operator generated. | |
| config | No | Optional object: the deployment's framework/config description (key/value). | |
| framework | No | Optional label for the deployment's framework (descriptive only). | |
| trace_text | No | Optional string: the sample trace as JSONL or raw log lines. | |
| deployment_label | No | Optional short label for the deployment, echoed in the report. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial context the annotations cannot convey: an exact price ($0.05 USDC on Solana), transient processing with no storage, and the fact that a paid retry re-sends the sample — which explains why idempotentHint=false matters financially. It also scopes the claim ('does not certify that an agent is safe'), preventing over-reading of the verdict. Nothing here conflicts with readOnlyHint=false or destructiveHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with the price and the deliverable, then data-handling and retry mechanics, then the safety caveat. No filler, and each sentence carries information an agent would otherwise have to guess.
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 no output schema, the description correctly takes on the burden of describing the return (verdict, score, per-record-type status, fix list), and it covers cost and data retention. It is not fully complete: failure/refund behavior, how payment is authorized, and the relationship to the free precheck path are unaddressed.
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% and every parameter is optional, so the schema already does the heavy lifting. The description adds one meaningful constraint — one payment buys a report for one submitted deployment sample — but never clarifies that trace, trace_text, config and framework are alternative or complementary inputs, so it adds only marginal 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 names a concrete resource (a full observability readiness report for one submitted deployment sample) and enumerates the deliverable contents: verdict line and score, per-record-type status with evidence, and a fix list. That is far more specific than a tautology. It stops short of a 5 because it never names its closest siblings (observability_precheck, observability_criteria), so the agent must infer the difference between the paid report and the free precheck.
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?
Usage is only implied: the price and the statement that the retry re-sends the sample suggest this is the full paid path rather than a cheap first pass, and 'It does not certify that an agent is safe' is a useful exclusion. But there is no explicit instruction such as running observability_precheck first or consulting observability_criteria, and no guidance on when a paid report is warranted over the free check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pack_getAInspect
Compose one pre-computed Agent Data Core pack from the Layer 0 store: the pack's authored guidance plus, for every constituent, its pack-authored use-when line, verification state, and verbatim endpoints, with totals computed at compose time. An unknown pack id is answered free, before payment. Per-pack price (RULED): chain-reads $0.01 per call; web-evidence, company-diligence, market-intel and safety-preflight $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/packs/{pack_id}.
| Name | Required | Description | Default |
|---|---|---|---|
| pack_id | Yes | The pack id to compose (see packs_catalog): chain-reads, web-evidence, company-diligence, market-intel or safety-preflight. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false), and the description adds what annotations cannot: paid, cost-bearing behavior with per-pack prices, USDC-on-Solana/x402 auth mechanics, and free handling of unknown ids. It does not cover failure modes such as expired or insufficient payment, which keeps it at 4.
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?
Front-loaded with the core action, then pricing and payment mechanics; nearly every clause carries actionable information. Minor drag from internal jargon ('(RULED)') and a dense parenthetical payment sentence, but no filler.
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 single-parameter tool with no output schema, the description covers return contents, pricing, payment protocol, HTTP equivalent and unknown-id handling. Remaining gaps (payment failure behavior, response envelope shape) are minor, and annotations already carry the mutation-safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema_description_coverage at 100% and only one parameter, the schema already enumerates the valid pack ids. The description adds one relevant datum — that an unknown pack id returns free before payment — but nothing about id format or discovery beyond the schema's reference to packs_catalog.
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?
States a specific verb and resource: 'Compose one pre-computed Agent Data Core pack from the Layer 0 store', and enumerates what the result contains (authored guidance, use-when line, verification state, endpoints, totals). It only implicitly differentiates from the sibling packs_catalog (the schema points there for id discovery), so it stops short of a 5.
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?
Gives concrete invocation guidance: unknown pack ids are answered free before payment, and the x402 flow ('call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]') is spelled out. It lacks an explicit 'call packs_catalog first to discover ids / use this only after choosing a pack' statement in the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
packs_catalogARead-onlyIdempotentInspect
FREE catalog of the Agent Data Core pre-computed packs: for each pack, its id, name, buyer job, use-when line, proven payer category evidence, and constituent service ids. Returns no endpoint data and no pack prices. Free — no payment required, call it directly. HTTP equivalent: GET https://exchangerebel.com/toll/packs/packs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds value beyond that: it states what the response deliberately excludes (no endpoint data, no pack prices), confirms the zero-cost, no-auth purchase model, and even gives the HTTP equivalent for parity checking. That is disclosure of real behavioral traits, not repetition of annotated flags.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences front-loaded with the catalog scope and its cost status, with the exclusions and HTTP equivalent trailing as clarifications. Every clause carries information an agent would otherwise have to discover by calling.
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?
There is no output schema and no input schema, so the description bears the full burden of telling the agent what comes back — and it does, by listing the exact fields returned plus what is excluded. For a zero-parameter read of a static catalog, nothing an agent needs to invoke it correctly 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 takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. No misleading parameter language is present.
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 names a specific resource (the Agent Data Core pre-computed packs catalog) and enumerates exactly what each entry contains: id, name, buyer job, use-when line, payer category evidence, constituent service ids. That is far more than a restatement of the name. It stops short of a 5 because it never distinguishes itself from the obvious sibling pack_get, which an agent must choose between.
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?
'Free — no payment required, call it directly' tells the agent there is no prerequisite gate before invoking it, which is real usage guidance. What is missing is an explicit routing statement such as 'browse this catalog first, then call pack_get with an id' — the condition that selects this tool over pack_get is only implied by the field list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
power_flags_batteryAInspect
ERCOT daily battery charge/discharge windows. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/power/flags/battery.
| Name | Required | Description | Default |
|---|---|---|---|
| hub | No | Optional ERCOT hub filter (HB_*); omit for all 7 hubs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare hints (readOnly=false, openWorld=true, idempotent=false); the description adds the genuinely important behavior the annotations omit: a $0.01 per-call cost, the USDC-on-Solana payment rail, and the two-step payment-required handshake. It does not explain what the response body contains or how large it is, which leaves some behavioral gaps for a metered call.
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 dataset statement is front-loaded, followed by pricing and invocation mechanics — an appropriate ordering for a paid endpoint. The three-sentence block is dense but each element (cost, payment flow, HTTP mirror) serves the caller; minor redundancy between the MCP and HTTP instructions.
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 no output schema and no annotation coverage of the payment/error model, the description should ideally sketch the returned payload (fields, per-hub rows, date range). It covers cost and invocation thoroughly but leaves the return shape entirely unspecified, which is a meaningful gap for a metered data endpoint.
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 single 'hub' parameter has 100% schema description coverage stating it is optional, HB_* formatted, and that omission returns all 7 hubs. The description adds nothing beyond that, so the baseline of 3 applies when the schema carries the 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 first sentence names a specific resource and dataset: ERCOT battery charge/discharge windows at daily granularity. An agent can tell it returns power-market battery scheduling data rather than congestion or negative-price flags. It stops short of explicitly contrasting itself with siblings like power_flags_congestion or power_flags_dart.
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 gives operational guidance on how to invoke the paid call (call once to get the 402 challenge, retry with _meta["x402/payment"]) and supplies the HTTP equivalent. It gives no guidance on when to choose this tool over the sibling power_flags_* tools, so selection among them remains inferred from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
power_flags_congestionAInspect
ERCOT hub-spread congestion spikes, ranked. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/power/flags/congestion.
| Name | Required | Description | Default |
|---|---|---|---|
| threshold | No | Spread threshold USD/MWh, 5..500, default 25 | |
| window_hours | No | Trailing window in hours, 1..168, default 48 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses important behavior beyond annotations: $0.01 per call, USDC on Solana, and the MCP x402 challenge-retry flow. This explains why readOnlyHint is false despite the HTTP GET equivalence, though it omits whether subsequent retries recharge and does not cover return behavior.
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 purpose, followed by payment mechanics and an HTTP equivalent. Every sentence carries operational value, and there is no redundant or filler text.
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?
It covers the unusual payment flow and invocation path thoroughly for a two-parameter tool, and annotations supply read/write and openness hints. However, with no output schema, it does not describe what a ranked spike list contains beyond the phrase 'ranked'.
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%, so both parameters are fully documented in the schema with ranges and defaults. The description adds no parameter meaning beyond what the schema already provides, which is acceptable at baseline.
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 identifies a specific resource and action: ERCOT hub-spread congestion spikes, ranked. It is distinct from siblings like power_flags_battery or power_flags_negative, but does not use an explicit retrieval verb or call out the sibling boundary.
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 to invoke the paid tool via x402, but it never states when to use this tool versus alternatives such as power_scan or the other power_flags tools. There are no exclusions or routing cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
power_flags_dartBInspect
ERCOT DA vs RT divergence flags for one hub. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/power/flags/dart.
| Name | Required | Description | Default |
|---|---|---|---|
| hub | Yes | ERCOT hub: HB_NORTH | HB_HOUSTON | HB_SOUTH | HB_WEST | HB_PAN | HB_BUSAVG | HB_HUBAVG | |
| threshold | No | Divergence threshold USD/MWh, 5..500, default 25 | |
| window_hours | No | Trailing window in hours, 1..168, default 48 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, openWorld=true, idempotent=false, and destructive=false. The description adds important paid-access behavior: cost, x402 challenge/retry flow, and HTTP equivalent, though it omits return format and flag semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three efficient sentences: purpose first, payment mechanics second, HTTP fallback third. The payment parenthetical is dense but necessary for a paid tool, and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the non-obvious paid invocation flow, which is the main operational complexity. But with no output schema, it never explains what the returned divergence flags look like or how threshold and window_hours affect output, leaving a clear gap.
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 the hub enum, threshold range/default, and window_hours range/default are fully documented in the schema. The description adds no parameter detail beyond implying the hub scope, matching the baseline for high schema coverage.
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?
States it returns ERCOT DA vs RT divergence flags for one hub, which is specific enough to separate it from power_flags_battery, power_flags_congestion, and power_flags_negative by flag type. It does not explicitly position itself against siblings such as power_scan, so it stops short of a 5.
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?
Offers no explicit when-to-use or when-not guidance; only scope ('for one hub') and payment logistics. Nothing tells an agent when to prefer power_scan or another power_flags_* tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
power_flags_negativeAInspect
ERCOT negative-price windows: 24h/7d counts. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/power/flags/negative.
| Name | Required | Description | Default |
|---|---|---|---|
| hub | No | Optional ERCOT hub filter (HB_*); omit for all 7 hubs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: explicit pricing ($0.01 per call), the payment rail (USDC on Solana via x402), the two-step 402-challenge handshake, and the equivalent HTTP endpoint. This explains why readOnlyHint=false on an apparently read-only query. It does not disclose response shape or whether counts are rolling-window, which is a remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the data purpose, followed by the payment mechanics and HTTP equivalent — each sentence carries non-redundant information. The x402 sentence is dense but only as long as it needs to be to make the two-call flow actionable.
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 one-parameter tool with no output schema, the description covers what an agent most needs to call it correctly: cost, payment handshake, and the alternate HTTP path. Missing only the return-value semantics (what the counts look like, rolling vs. fixed window), which matters more without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single optional 'hub' parameter is fully documented in the schema as an HB_* filter defaulting to all seven hubs. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.
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 names the resource precisely — ERCOT negative-price windows with 24h/7d counts — which distinguishes it by domain qualifier from its power_flags_* siblings (battery, congestion, dart) and power_scan. The verb is implicit ('returns counts') rather than stated, but an agent can tell what data it yields without opening the schema.
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 sentence about calling without payment first to receive the PaymentRequired challenge, then retrying, is genuinely useful procedural guidance for invocation. However, there is no guidance on when to choose this tool over power_flags_congestion/battery/dart or power_scan, and no mention of the hub filter's role in selecting it. Usage is implied by the domain label only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
power_scanBInspect
Ranked ERCOT multi-hub power-flag scan. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/power/scan.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnlyHint=false, openWorldHint=true, and idempotentHint=false, the description adds genuinely useful context the annotations cannot: the exact price ($0.05/call), the USDC-on-Solana x402 payment rail, the concrete retry protocol via _meta["x402/payment"], and an HTTP equivalent endpoint. What is missing is whether the paid call is billed on the challenge attempt, and what happens if payment fails mid-scan.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool is, then the payment mechanics. The x402 retry instruction is dense but every clause is actionable; the HTTP URL is arguably redundant for an MCP-only agent but is cheap.
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?
Payment, billing amount and transport are fully covered, and there is no output schema to explain. However, nothing is said about what the ranked scan actually returns — which hubs, what a flag is, how many results, how fresh the data is — which is exactly what an agent needs to decide whether the result will answer its question.
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 takes zero parameters, so schema semantics are a non-issue and the baseline is 4. The description spends no words redundantly describing inputs, which is appropriate.
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 phrase 'Ranked ERCOT multi-hub power-flag scan' names a domain (ERCOT power), a resource (multi-hub) and a verb (scan), which is more than a tautology. But it never says what a 'power flag' is or what is being ranked, and it does not distinguish itself from the four sibling power_flags_* tools (battery, congestion, dart, negative), which plausibly overlap.
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?
There is no statement of when to call this versus power_flags_congestion or power_flags_negative, nor any precondition about market hours or hub availability. The only procedural guidance given is the payment handshake, which is invocation mechanics rather than use-case selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubconvert_batchAInspect
Batch-convert Publisher files to PDF (async). $0.05 per file, up to 100 files per batch — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/pubconvert/batch.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the mutation/idempotency profile; the description adds genuinely new behavior: it is asynchronous, costs $0.05 per file billed in USDC on Solana, and caps at 100 files. It omits what happens on partial batch failure and how completion is signaled, which are meaningful gaps for an async job.
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?
A single dense passage with the action first, then price/limits, then payment protocol, then the HTTP equivalent. Every clause carries operational information and nothing is padded.
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 no output schema and an asynchronous operation, the description should explain how results are retrieved (poll a job id, receive a callback, etc.), but it does not. Combined with the empty input schema versus the stated 100-file capability, an agent knows the payment ritual but not how to submit files or collect the converted PDFs.
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?
Zero-parameter schema, so the baseline is 4. However, the description mentions 'up to 100 files per batch' while the input schema declares no properties at all, leaving it unclear how the Publisher files are actually supplied; a note on the input mechanism would have earned a 5.
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?
States a specific verb and resource ('Batch-convert Publisher files to PDF') with the async qualifier front and center, so it is clearly distinguishable from the single-file sibling pubconvert_convert. It does not explicitly name that sibling or contrast with it, which keeps it from a 5.
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?
Gives concrete procedural guidance on the x402 flow (call without payment to receive the PaymentRequired challenge, then retry with payment at _meta["x402/payment"]) and states the batch ceiling of 100 files. It stops short of saying when to prefer this over pubconvert_convert or pubconvert_verify.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubconvert_convertCInspect
Convert a Publisher file to PDF + verdict. $0.10 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/pubconvert/convert.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare openWorldHint=false, idempotentHint=false and destructiveHint=false, so the safety profile is covered; the description adds genuinely new context — a $0.10 per-call price, USDC-on-Solana payment, and the two-step x402 retry handshake. However, it omits how the source Publisher file is transmitted (the schema has zero parameters) and what 'verdict' contains, which are material behavioral facts for a paid conversion call.
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?
Purpose is front-loaded in the first clause, which is good. The remainder is a dense run-on packing pricing, chain, currency, x402 handshake, a _meta key path, and an HTTP URL into one parenthetical — mostly necessary but poorly structured for scanning.
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 non-idempotent, paid, destructive-capable conversion tool with no output schema and no parameters, the description should say how input is supplied, what is returned (PDF handle/link, verdict shape), and limits or failure modes. Instead it covers only payment mechanics, leaving the agent unable to predict inputs or outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters the nominal baseline is 4, but the complete absence of parameters on a file-conversion tool is itself surprising: the description never explains where the Publisher file comes from (upload, URL, or out-of-band), so the schema/description pair leaves a real semantic hole. The HTTP endpoint reference is the only hint at input delivery.
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?
States a specific verb and resource ('Convert a Publisher file to PDF') plus a secondary artifact ('verdict'), which is enough for an agent to know what the tool does. It does not distinguish itself from the closely named siblings pubconvert_batch and pubconvert_verify, so the boundary is left to inference.
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 to pay (call, get PaymentRequired challenge, retry with _meta["x402/payment"]) but never says WHEN to pick this over pubconvert_batch or pubconvert_verify, nor what input conditions are required. Only invocation mechanics are covered, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pubconvert_verifyBInspect
Publisher file verification verdict only. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/pubconvert/verify.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial context beyond the annotations: an explicit $0.05 per-call price, the payment rail (USDC on Solana via x402), the two-step challenge/retry handshake, and the equivalent HTTP endpoint. Annotations only declare non-read-only/non-destructive/idempotency flags, so the cost and authorization flow are real added value. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The scope statement is front-loaded and the payment detail follows compactly, with the HTTP equivalent last. The parenthetical about the challenge/retry loop is dense but each clause carries information an agent needs to actually make a paid call.
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 tool with an empty input schema and no output schema, the description must explain what artifact is verified and what a verdict looks like, and it does neither — it is entirely about billing. The result is a definition where an agent knows how to pay but not what it is paying to have verified or what comes back.
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 declares zero parameters, so there is nothing for the description to disambiguate at the parameter level; the baseline for a parameterless tool applies. The one related detail the description does supply is the _meta["x402/payment"] channel, which explains how the payment argument is passed outside the normal 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 phrase "Publisher file verification verdict only" tells the agent this returns a verdict about a publisher file rather than a converted file, which loosely contrasts with pubconvert_convert and pubconvert_batch. But it is a noun phrase with no verb and never says what is being verified or how input reaches the tool, especially given the empty parameter schema.
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?
Usage mechanics around payment are spelled out in detail (call once to receive the PaymentRequired challenge, retry with payment at _meta["x402/payment"]), which is genuinely useful invocation guidance. However, there is no guidance on when to choose this tool over pubconvert_convert or pubconvert_batch, beyond the weak "verdict only" hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rates_curveAInspect
$0.02 USDC on Solana per call — One $0.02 call returns the full 14-tenor Daily Treasury Par Yield Curve for one business day in the snapshot range 1990-01-02–2026-10-09; tenors not published that day are returned as null and are never interpolated. Data vintage: a fixed historical snapshot of the Daily Treasury Par Yield Curve Rates — business days 1990-01-02 through 2026-10-09, collected October 2026 from the official U.S. Department of the Treasury feed (fiscaldata.treasury.gov / home.treasury.gov), whose terms offer the data free, without restriction, for commercial redistribution. Dates after 2026-10-09 are not covered by this snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Business day YYYY-MM-DD within 1990-01-02..2026-10-09. Default: latest date in the snapshot (2026-10-09). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses a $0.02 USDC-per-call charge, null-not-interpolated semantics for unpublished tenors, the fixed-snapshot vintage and provenance, and redistribution licensing. It stops short of error behavior for out-of-range dates or the shape of the response, which matters given there is no output schema.
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 price and the core return are front-loaded in the first clause, so an agent learns what it costs and what it gets immediately. The second sentence is a long chain of provenance and licensing detail that is useful but could be tightened.
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 single-parameter data-return tool with no output schema, the description explains what is returned conceptually (14 tenors, nulls preserved) but not the actual response structure or tenor keys. The date-range, vintage, and pricing context is complete, but the return-value contract has a real gap.
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 schema already documents the date format, the range, and the default of the latest snapshot date. The description restates the same range and adds only the null/interpolation rule, which is modest value over the schema text.
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 concrete verb and resource: one paid call returns the full 14-tenor Daily Treasury Par Yield Curve for a single business day. It never names or distinguishes the closely related siblings rates_history, rates_spreads, or rates_schema, so the agent must infer the boundary itself.
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?
Usage is implied through a hard coverage boundary (business days 1990-01-02 through 2026-10-09, nothing after) and the single-business-day scope. There is no explicit statement of when to prefer this over rates_history or rates_spreads, so the agent gets constraints but no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rates_historyBInspect
$0.02 USDC on Solana per call — One $0.02 call returns one tenor's dated yield series over the requested start/end range within the snapshot range 1990-01-02–2026-10-09; dates on which the tenor was not published are returned with a null yield and are never interpolated. Data vintage: a fixed historical snapshot of the Daily Treasury Par Yield Curve Rates — business days 1990-01-02 through 2026-10-09, collected October 2026 from the official U.S. Department of the Treasury feed (fiscaldata.treasury.gov / home.treasury.gov), whose terms offer the data free, without restriction, for commercial redistribution. Dates after 2026-10-09 are not covered by this snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Inclusive end date YYYY-MM-DD. | |
| limit | No | Max rows (the LAST limit matching rows); default 365, clamped 1-3650. | |
| start | No | Inclusive start date YYYY-MM-DD. | |
| tenor | No | One of the 14 tenors: 1mo, 1.5mo, 2mo, 3mo, 4mo, 6mo, 1yr, 2yr, 3yr, 5yr, 7yr, 10yr, 20yr, 30yr. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must cover behavior itself; it discloses per-call pricing ($0.02 USDC on Solana), the treatment of unpublished dates (null yield, never interpolated), and the hard snapshot cutoff of 2026-10-09, which is not covered. It omits the output ordering and whether the rows are ascending or descending, but the most important behavioral traits are disclosed.
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 leads with price and the core contract, which is good. The description also spends a full clause on the data source's licensing terms (free commercial redistribution), which does not help an agent invoke the tool, and the closing sentence about dates after 2026-10-09 repeats the range already given, so the description could be tighter.
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 four optional parameters, no annotations, and no output schema, the definition covers scope, null handling, and vintage, which is enough to call the tool safely. It never says whether results are sorted, whether limit trims from the end of the range, or what a row looks like, leaving real gaps for a series-returning 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?
The schema is fully described (100% coverage), which sets the baseline at 3. The description does add real value by stating that tenor selects exactly one series and that start/end are bounded by the 1990-01-02 to 2026-10-09 snapshot. It says nothing about limit, whose 'last N rows' semantics live only in 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 states a specific verb and resource: it returns one tenor's dated yield series for a requested start/end range. The scope and snapshot window are explicit. It never names or contrasts with the closely related siblings rates_curve, rates_spreads, or rates_schema, so an agent must guess which one to 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?
There is no guidance on when to use this tool rather than rates_curve, rates_spreads, or rates_schema, even though those tools fill the same subject area. The description gives no decision criteria, so the agent must infer from the name alone that this one returns a dated time series.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rates_schemaAInspect
The contract, criteria, data vintage and licence for the Treasury Curve History service (rates): the endpoint contract, the 14 tenors, the source line, the settled vintage text and the licence line. Read these before paying — every response is reproducible from the pinned public test corpus. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/rates/schema. Data vintage: a fixed historical snapshot of the Daily Treasury Par Yield Curve Rates — business days 1990-01-02 through 2026-10-09, collected October 2026 from the official U.S. Department of the Treasury feed (fiscaldata.treasury.gov / home.treasury.gov), whose terms offer the data free, without restriction, for commercial redistribution. Dates after 2026-10-09 are not covered by this snapshot. Public test corpus: treasury-curve-history-corpus/v1, SHA-256 pin cbf25f7b8e109235ed7d00518b355fce6a5a7539ded5f42aeccd6721ce729d5c.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses that the tool is free, requires no payment/challenge, gives the HTTP equivalent URL, pins the data vintage (business days 1990-01-02 through 2026-10-09, collected Oct 2026 from the Treasury feed), states dates after 2026-10-09 are not covered, and pins reproducibility to a SHA-256 corpus. It stops short of describing the returned document's shape or whether the call is cached/side-effect-free.
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?
Purpose is front-loaded, but the opening sentence lists the returned fields twice ('the contract, criteria, data vintage and licence... : the endpoint contract, the 14 tenors, the source line, ...'), and 'no payment required: call directly without payment (no x402 challenge; this tool is free)' says the same thing three ways. The dense em-dash chaining makes it harder to scan than necessary.
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 zero-parameter, no-output-schema metadata endpoint, the description covers provenance, coverage window, licensing and reproducibility, which is what an agent needs to decide to call it. The one real gap is that the exact contents/shape of the returned document are only gestured at rather than enumerated precisely.
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 takes zero parameters, so the baseline is 4. The schema is empty and there is nothing for the description to compensate for; no misleading parameter claims are made.
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 names a specific resource: the contract/tenancy/vintage/licence metadata document for the Treasury Curve History service, and enumerates the sections it contains ('the endpoint contract, the 14 tenors, the source line, the settled vintage text and the licence line'). It does not name its obvious siblings (rates_curve, rates_history, rates_spreads) to distinguish itself, but the 'schema' role is unmistakable.
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?
'Read these before paying' gives an explicit ordering instruction relative to the paid rates endpoints, and 'call directly without payment (no x402 challenge; this tool is free)' clarifies that no payment flow is required. It never names the specific alternative tools or states any exclusion, so it falls short of a full when/when-not treatment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rates_spreadsAInspect
$0.02 USDC on Solana per call — One $0.02 call returns the spreads, in percentage points, between two tenors (2s10s, 3m10y, 2s30s, 5s30s, 10s30s, 3m2y) for the requested date in the snapshot range 1990-01-02–2026-10-09; a spread is null when either tenor was not published that day. Data vintage: a fixed historical snapshot of the Daily Treasury Par Yield Curve Rates — business days 1990-01-02 through 2026-10-09, collected October 2026 from the official U.S. Department of the Treasury feed (fiscaldata.treasury.gov / home.treasury.gov), whose terms offer the data free, without restriction, for commercial redistribution. Dates after 2026-10-09 are not covered by this snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Business day YYYY-MM-DD within 1990-01-02..2026-10-09. Default: latest date in the snapshot (2026-10-09). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does substantial work: it discloses the paid-call model ($0.02 USDC on Solana), the fixed-snapshot data vintage, the null-result behavior when either tenor was unpublished, and the source feed and its redistribution terms. The main omission is any statement of what happens on dates outside the range (error vs. empty) and whether all pairs are always returned together.
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?
It is a single dense, run-on sentence of roughly 120 words that mixes pricing, output shape, null semantics, provenance, licensing, and date bounds without paragraph or bullet structure. The lead is well front-loaded with price and return payload, but the licensing clause ('commercial redistribution') does little for an agent deciding how to invoke the tool.
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 one-optional-parameter tool with no output schema and no annotations, the description supplies the return semantics (percentage-point spreads per named pair, null when a tenor is missing), the valid date window, the default, and the data vintage. Only the exact response envelope (field names, ordering, error behavior) is left undefined, which is a minor gap for a tool this simple.
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% for the single optional date parameter, so the schema already defines the format and default. The description adds value by restating the accepted window and default snapshot date in the same breath as the payload, tying the parameter to the returned data rather than repeating field names verbatim.
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 specific verb and resource: it returns interest-rate spreads, in percentage points, between listed tenor pairs for a requested date. The tenor pairs are enumerated, so an agent knows exactly what output to expect. It never names or contrasts itself with the obvious siblings (rates_curve, rates_history), so differentiation is left to inference.
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?
Usage is implied rather than stated: the price-per-call framing suggests batching all pairs into one call, and the snapshot range plus default date tell the agent what inputs are valid. There is no explicit statement of when to choose this over rates_curve or rates_history, and no exclusion guidance beyond 'dates after 2026-10-09 are not covered'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
readiness_auditAInspect
$0.05 USDC on Solana — the payment buys one full agent-readiness audit report for one submitted URL: the verdict line and score under the published criteria, per-criterion status with evidence from the fetched documents, and a concrete fix list of additive machine surfaces. Fetched page content is processed in memory only and never stored; the paid retry re-sends the URL. It does not certify the business, its safety, or its honesty.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The page to audit — its public http/https URL. Submit only URLs of sites you operate or are authorized to audit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it non-read-only, open-world, non-idempotent, and non-destructive; the description adds meaningful context: price, in-memory-only processing, no storage, paid retry re-sends the URL, and non-certification limits. It does not cover payment failure/refund behavior, but it substantially exceeds annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with price and deliverable, followed by privacy/retry/disclaimer details. Dense but without filler, though the first sentence is long and could be easier to scan.
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 paid open-world audit with no output schema, the description covers report contents, cost, privacy, retry semantics, and scope limitations. It omits explicit sibling routing and payment mechanics, but is otherwise sufficient for correct invocation.
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?
There is only one URL parameter and schema coverage is 100%, including public http/https and authorization guidance. The description reinforces 'one submitted URL' and retry behavior but adds no syntax or format beyond the schema, so baseline 3 is appropriate.
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?
States a specific verb and resource: audits one submitted URL for agent-readiness and returns a verdict/score, per-criterion evidence, and a fix list. It clearly describes the paid full-report deliverable, though it does not name sibling tools like readiness_precheck or readiness_criteria to sharpen differentiation.
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 cost and retry context and a scope exclusion ('does not certify the business, its safety, or its honesty'), but never says when to use this instead of readiness_precheck or readiness_criteria, nor whether a precheck should be run first. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
readiness_criteriaARead-onlyIdempotentInspect
The published scoring criteria for the Agent-Readiness Audit: the nine criteria, the exact present/misshaped/absent rules, the scoring, and the exact fetch contract. Read these before paying for an audit — every audit is reproducible from them. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/readiness/criteria.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive and closed-world, so the safety profile is handled. The description adds genuinely new behavioral facts not in structured data: no x402 payment challenge, free call, and an HTTP GET equivalent URL for out-of-band fetching. It does not describe the response shape, but the content list largely covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences, front-loaded with what the criteria are, then the usage cue and the free-access note. The parenthetical 'no payment required: call directly without payment (no x402 challenge; this tool is free)' says the same thing three times and could be one clause.
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 no parameters, no output schema and rich annotations, the description covers what an agent needs: the subject matter, the reason to read it first, the cost, and an alternate fetch path. The phrase 'the exact fetch contract' is left undefined, but the HTTP equivalent line resolves it in practice.
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 takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The only 'parameter-like' element is the equivalence to GET /toll/readiness/criteria, which is handled cleanly.
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?
It states a specific resource and its exact contents: 'the nine criteria, the exact present/misshaped/absent rules, the scoring, and the exact fetch contract' for the Agent-Readiness Audit. That is far more precise than a tautology. It does not explicitly name the sibling criteria tools (manifest_criteria, observability_criteria, ergonomics_criteria) or contrast itself with readiness_precheck, so differentiation is implied by domain rather than stated.
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?
'Read these before paying for an audit — every audit is reproducible from them' gives a concrete trigger for calling it, and the free/no-x402 note removes the main hesitation about invoking a paid-looking flow. It stops short of saying when not to call it or pointing to readiness_precheck for the cheaper pre-check path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
readiness_precheckARead-onlyIdempotentInspect
FREE headline check of whether your own website can be found, read, and acted on by AI agents (100/day per wallet; pass caller). Submit your site's URL; get the verdict line, readiness score, and which of the nine criteria are present/misshaped/absent. Evidence and the fix list are in the paid report. The audit grades fetched machine-readiness signals only — it does not certify the business, its safety, or its honesty.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The page to audit — its public http/https URL. Submit only URLs of sites you operate or are authorized to audit. | |
| caller | Yes | Solana base58 wallet of the operator; keys the free allowance (100/day per wallet). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, open-world, idempotent, non-destructive operation. The description adds meaningful behavior beyond that: a 100/day per-wallet free allowance, the caller parameter keying that allowance, and a clear scope disclaimer that the audit only grades machine-readiness signals.
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 free headline check and then adds quota, return contents, paid-report boundary, and scope disclaimer. It is dense but every sentence carries useful information; the disclaimer is slightly lengthy but justified for a trust-sensitive audit tool.
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 two-parameter read-only precheck with full schema coverage and rich annotations, the description is largely complete: it explains the free allowance, return shape, paid boundary, and audit scope. Output schema absence is mitigated by the explicit mention of verdict, score, and nine criteria states.
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%, so both parameters are already documented in the schema. The description reinforces that the URL is the site being audited and that caller is the wallet keying the free allowance, but adds little beyond what the schema already says.
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 specific verb and resource: a free headline readiness check of a website's AI-agent accessibility. It clearly frames the result as a compact verdict/score/criteria snapshot rather than the full paid report, though it does not explicitly name the sibling paid tool.
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?
Usage is strongly implied: submit a URL to get a free preview, and use the paid report for evidence and fixes. It also states the quota constraint tied to the caller. However, it does not explicitly compare against siblings such as readiness_audit or readiness_criteria, so the agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recalls_changes_sinceAInspect
Match-state changes over watched products since an ISO8601 timestamp. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/recalls/changes-since.
| Name | Required | Description | Default |
|---|---|---|---|
| since | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring readOnlyHint=false and idempotentHint=false, the description adds genuinely useful context the annotations cannot carry: the $0.005 USDC-on-Solana x402 cost, the exact retry flow with the PaymentRequired challenge, and the _meta["x402/payment"] key. It does not contradict the annotations. It stops short of describing what the response contains or behavior when no watches exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool returns, then the payment and transport details an agent needs to actually invoke it. No filler; every clause carries operational information.
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 one-parameter, no-output-schema tool, the description covers the payment/auth path and the timestamp format well. The main remaining gap is the shape of the returned change records, which no structured field covers since there is no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single 'since' parameter is a bare string in the schema, so the description must compensate — and it does by specifying the format as an ISO8601 timestamp. It stops short of stating inclusivity (strictly after vs. at) or timezone handling.
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?
States a specific resource and operation: changes to match-state for watched products since a timestamp. An agent can tell this is a change-feed reader distinct from recalls_watch (which registers the watch) and recalls_search (which searches recalls). The jargon 'match-state' is slightly opaque but the intent is recoverable.
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 phrase 'watched products' implies a prerequisite (a watch must already exist via recalls_watch), but this is left implicit rather than stated. No explicit when-to-use/when-not guidance or named alternative appears, only the payment mechanics for actually paying.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recalls_product_checkBInspect
Join a product identity (GTIN/UPC, model, or listing) to US CPSC + openFDA recall status: graded verdict clear | matched | probable with confidence and evidence. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/recalls/product-check.
| Name | Required | Description | Default |
|---|---|---|---|
| upc | No | ||
| gtin | No | ||
| brand | No | ||
| model | No | ||
| listing | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses per-call cost ($0.01 USDC on Solana), the exact x402 payment handshake (call unpaid, receive PaymentRequired, retry with _meta["x402/payment"]), and the HTTP equivalent endpoint. This explains why readOnlyHint=false and idempotentHint=false (payment side effect) without contradicting them. It stops short of covering failure modes, e.g. what happens with conflicting or missing identifiers.
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?
Front-loads the purpose and verdict shape, then the payment details, then the HTTP fallback. The payment sentence is long but operationally necessary; the HTTP-equivalent line is lower value but short.
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 5-param, 0%-coverage tool with an unspecified nested object and no output schema, the description covers the verdict vocabulary (clear | matched | probable, confidence, evidence) and payment flow but leaves the input contract underspecified — precedence among identifiers, brand's role, and the listing object's structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% with 5 undocumented parameters, and the description only names four of them (GTIN/UPC, model, listing), omitting 'brand' entirely. Critically, 'listing' is a nested object with no declared properties, and the description gives no shape or example for it, nor does it state that at least one identifier is required.
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?
States a specific verb and resource: join a product identity (GTIN/UPC, model, listing) to US CPSC + openFDA recall status, returning a graded verdict. The product-identity scope implicitly distinguishes it from recalls_vehicle and recalls_search, but no sibling is named explicitly, so an agent must infer the boundary.
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?
Usage is implied by the input framing (product identity, not vehicle or keyword), and the payment mechanics are spelled out. However, there is no explicit when-to-use/when-not guidance and no routing statement pointing to recalls_search or recalls_vehicle for other query shapes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recalls_recallAInspect
Fetch one full normalized recall record by its id. $0.02 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/recalls/recall/{id}.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Source-prefixed record id, e.g. fda:H-1395-2026, cpsc:11020, nhtsa:19V903000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description carries real behavioral weight beyond the annotations: a concrete price ($0.02/call), the settlement rail (USDC on Solana via x402), the exact retry protocol (_meta["x402/payment"]), and an HTTP fallback URL. The payment flow also explains why readOnlyHint is false despite the read-like nature of the call. It omits error/not-found behavior, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the operation and followed by the payment/pricing detail that an agent must know before calling. The parenthetical is dense but every clause is load-bearing; only the HTTP URL is arguably optional.
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 no output schema, the description is the only source of return-value information, yet "full normalized recall record" is undefined — the agent cannot tell what fields come back. Pricing and transport are complete; the response shape and not-found behavior are not.
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 id property already documents the source-prefixed format with three concrete examples, so the description adds nothing further about the single parameter. Baseline 3 applies when the schema does the work.
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?
"Fetch one full normalized recall record by its id" gives a specific verb (fetch), a specific cardinality (one), and a resource (recall record), which cleanly separates it from recalls_search and recalls_vehicle. It stops short of naming a sibling outright, so it lands at 4 rather than 5.
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?
Usage is only implied: the id-format examples in the schema signal "use this when you already have a source-prefixed id," but the description never states when to prefer this over recalls_search or recalls_product_check, and gives no exclusions or prerequisites beyond payment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recalls_searchAInspect
Search FDA, CPSC, and NHTSA recall records in one call. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/recalls/search.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text query over product, firm, hazard (or use filters alone) | |
| to | No | Announced-date upper bound YYYY-MM-DD | |
| from | No | Announced-date lower bound YYYY-MM-DD | |
| class | No | FDA hazard class I | II | III | |
| limit | No | 1-50, default 20 | |
| source | No | fda | cpsc | nhtsa | all (default all) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context the annotations cannot convey: per-call cost, the x402/USDC payment flow, the challenge-retry handshake via _meta["x402/payment"], and an HTTP equivalent endpoint. It does not describe result format or limits, but the payment behavior is exactly the kind of operational detail that earns credit here.
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?
Purpose is front-loaded in the first sentence, with payment mechanics and transport fallback following. Three compact sentences, none redundant.
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 6-param optional search with a fully documented schema, the description covers purpose, cost, and invocation path. Only the return shape and result limits are undocumented, and there is no output schema to compensate, which keeps this below a 5.
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% with per-parameter descriptions (including enum-like values for source and class), so the schema carries the parameter burden. The description's only addition is that all params are optional frees ('or use filters alone'), which is consistent but minimal.
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?
States a specific verb ('Search') and resource ('FDA, CPSC, and NHTSA recall records'), plus the key differentiator 'in one call' that signals cross-agency aggregation versus the single-source siblings recalls_product_check and recalls_vehicle.
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?
There is no guidance on when to reach for this tool versus recalls_product_check, recalls_recall, recalls_vehicle, or recalls_watch, nor any prerequisites beyond the payment mechanic. The agent must infer that this is the free-text multi-source search sibling from the resource string alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recalls_vehicleAInspect
List NHTSA recall campaigns for one vehicle. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/recalls/vehicle.
| Name | Required | Description | Default |
|---|---|---|---|
| make | Yes | Vehicle make, e.g. ford | |
| year | Yes | Model year, e.g. 2025 | |
| model | Yes | Vehicle model, e.g. f-150 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are thin and partly counter-intuitive (readOnlyHint=false, idempotentHint=false for what looks like a read), and the description explains why: the call is a paid x402 transaction, with the exact challenge/retry protocol and the _meta["x402/payment"] field. The price ($0.05 USDC on Solana) and an HTTP equivalent endpoint are also disclosed. It stops short of describing what a returned campaign record contains.
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?
Purpose is front-loaded in the first clause, then the cost and payment mechanics follow. Dense but every sentence carries information an agent needs. The HTTP equivalent is marginally useful for an MCP-only caller but is cheap in length.
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?
There is no output schema, so the description bears some burden for describing the return shape, and it says nothing about what a recall campaign record looks like or how many are returned. Payment and access mechanics are fully covered, which is the harder half, but the response side is a gap for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each of the three parameters already carries an example value in the schema. The description only restates the combined meaning ("one vehicle") and adds no format constraints, casing rules, or edge-case handling (e.g. model-name normalization) 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?
"List NHTSA recall campaigns for one vehicle" gives a specific verb (List), a specific resource (NHTSA recall campaigns) and a scope (one vehicle). It does not, however, distinguish itself from nearby siblings such as recalls_search, recalls_recall or recalls_product_check, so an agent cannot route between them from the description alone.
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 "for one vehicle" phrasing plus the three required params (make/model/year) implies the usage pattern: you already have a specific vehicle and want its campaigns. Prerequisites for payment are spelled out in detail. But there is no explicit when-to-use/when-not guidance and no named alternative among the four other recalls_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recalls_watchBInspect
Register a product identity into the recall-join watched set. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/recalls/watch.
| Name | Required | Description | Default |
|---|---|---|---|
| gtin | No | ||
| model | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it discloses the $0.005 per-call cost, the USDC-on-Solana x402 payment mechanism, and the exact two-step protocol (call without payment to receive the PaymentRequired challenge, then retry with payment at _meta["x402/payment"]). It also gives the raw HTTP equivalent, which matters for an openWorldHint, non-idempotent paid mutation — none of which the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose before the payment mechanics, with no filler. The x402 parenthetical is long but operationally necessary for a paid tool, so it earns its space.
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 payment flow — the hardest part of calling this tool — is fully covered, and there is no output schema to explain. However, with zero schema coverage on two parameters, a non-idempotent annotation, and no statement of what registration returns or how re-registration behaves, the definition is not complete for an agent to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and both parameters (gtin, model) are undocumented in the schema, yet the description adds no field-level meaning — it never mentions GTIN, model strings, or which identifier to supply. 'Register a product identity' is only a vague hint, so the agent cannot tell whether gtin and model are alternatives, complements, or either-or.
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?
States a specific verb and resource — 'Register a product identity into the recall-join watched set' — so the agent knows this is a subscription/monitoring action for product recall data rather than a one-off lookup. The domain and the sibling family (recalls_*, trademarks_watch, sec_alerts_register_watch) make the distinction reasonably clear, though 'recall-join watched set' is idiosyncratic phrasing.
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?
No explicit when-to-use guidance and no named alternative, even though recalls_product_check is the obvious one-shot counterpart to this persistent watch. The agent must infer from 'watched set' that this is for ongoing monitoring rather than a single check, and nothing says when registration is unnecessary or what happens on re-registration.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refcheck_checkAInspect
$0.01 USDC on Solana — $0.01 buys one reference check of one submitted citation reference (PMID, DOI, or arXiv). The payment buys the full signed field-by-field report: the verdict, per-field comparison, and the register record relied on. Submitted reference content is processed in memory only and never stored; the paid retry re-sends the reference. This service verifies that a submitted citation reference resolves in its register and whether the claimed fields match the register's record. It does not judge whether the cited work supports any claim made about it, and it does not grade the cited work.
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Solana base58 wallet of the caller; keys the free allowance (100/day per wallet). | |
| reference | No | The submitted citation reference: { type?, id, claimed: { title, authors?, year? } }. type is optional (inferred from the id form: PMID, DOI, or arXiv). Submitted content is processed in memory only and never stored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations by disclosing the $0.01 USDC on Solana cost model, that the paid report contains the verdict plus per-field comparison and register record, and that submitted content is processed in memory only and never stored. The non-idempotency announced in annotations is only obliquely supported ('the paid retry re-sends the reference'), and the interplay between the 100/day free allowance and the per-call price is left slightly ambiguous.
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 opening repeats the price twice ('$0.01 USDC on Solana — $0.01 buys...') and the actual verification semantics arrives only in the fourth sentence, after pricing and data-handling text. Content is mostly useful, but the front-loading favors price over function.
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 no output schema, the description correctly compensates by enumerating what the paid report contains (verdict, per-field comparison, register record) and what it does not do. For a two-parameter tool with full schema coverage and annotations, this is close to sufficient; only the precheck relationship and free-tier mechanics remain underspecified.
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% and both parameters are already well documented there, including the reference shape and the wallet-keyed allowance. The description adds no syntax or format detail beyond the schema, so baseline 3 applies.
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?
States a specific verb and resource: verifies that a submitted citation reference resolves in its register and whether the claimed fields match. It also clearly bounds the purpose with exclusions (does not judge support for claims, does not grade the work). It stops short of naming sibling refcheck_precheck/refcheck_criteria, so an agent must infer the relationship from 'the paid retry'.
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 price and the free-allowance concept (100/day per wallet, in the schema) imply this is the paid call, and 'the paid retry re-sends the reference' hints at a separate precheck path, but the description never says when to call this versus refcheck_precheck or refcheck_criteria. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refcheck_criteriaARead-onlyIdempotentInspect
The published criteria for the Reference Check (reference-resolution/v1): identifier forms, type inference, ID normalization, the three register adapters, the title/author/year comparison rules, the verdict vocabulary, the leg switches, and the scope line. Read these before paying for a check — every check is reproducible from them. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/refcheck/criteria.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, but the description adds materially new behavior: it is free with no x402 challenge, so it should be called directly rather than through a payment flow, and the results are deterministic ("every check is reproducible from them"). It also gives the HTTP equivalent endpoint for parity.
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?
Front-loaded with the content list, which is the useful part, and the payment note follows. The payment clause is internally redundant ("no payment required" restated as "this tool is free"), and the trailing HTTP URL is auxiliary, but neither buries the key information.
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 no parameters, no output schema, and safety already covered by annotations, the remaining need is to tell the agent what it will get back and why it matters — the description enumerates the document's sections and asserts reproducibility. There is no material gap left for an agent deciding whether to call it.
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 takes zero parameters and the schema is empty, so there is nothing to disambiguate; baseline for a no-param tool is 4. Nothing in the description contradicts or is needed to interpret an empty input.
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?
States a specific resource (the published Reference Check criteria, reference-resolution/v1) and enumerates what it contains: identifier forms, type inference, ID normalization, adapters, comparison rules, verdict vocabulary, leg switches, scope line. An agent can immediately tell this is the specification document rather than the checker itself, distinguishing it from refcheck_check/refcheck_precheck.
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?
"Read these before paying for a check" gives an explicit trigger for calling this tool and implicitly positions the paid check as the downstream action. It doesn't name refcheck_check directly or state when-not-to-use, so it stops short of a full routing sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refcheck_precheckARead-onlyIdempotentInspect
FREE headline check of whether a submitted citation reference resolves in its register (100/day per wallet; pass caller). Submit one reference (PMID, DOI, or arXiv ID plus the claimed title, and optionally authors and year); get the signed verdict line only. Field-by-field detail and the register record are in the paid report. This service verifies that a submitted citation reference resolves in its register and whether the claimed fields match the register's record. It does not judge whether the cited work supports any claim made about it, and it does not grade the cited work.
| Name | Required | Description | Default |
|---|---|---|---|
| caller | Yes | Solana base58 wallet of the caller; keys the free allowance (100/day per wallet). | |
| reference | Yes | The submitted citation reference: { type?, id, claimed: { title, authors?, year? } }. type is optional (inferred from the id form: PMID, DOI, or arXiv). Submitted content is processed in memory only and never stored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/open-world, and the description adds genuinely new behavioral facts: a hard 100/day per-wallet allowance, the requirement to pass caller to key that allowance, the deliberately truncated return (signed verdict line only), and in-memory-only processing that never stores submitted content.
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?
Front-loads the free-tier hook and the limit well, but the second sentence largely re-states the first ('verifies that a submitted citation reference resolves in its register'), and the parameter recap duplicates the schema. Two of five sentences do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the essentials an agent needs: cost/limit model, required caller keying, submission shape, redaction rules, and scope exclusions, with the truncated output described since no output schema exists. It does not say what fields the verdict line contains or what a non-resolving verdict looks like, a minor remaining gap.
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%, so the caller and reference shapes — including type inference from PMID/DOI/arXiv and the claimed fields — are already documented. The description restates those forms without adding syntax, formats, or failure behavior beyond what the schema 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?
States a specific verb and resource — a free headline check of whether a submitted citation reference resolves in its register — and pins the scope to 'the signed verdict line only' versus the paid full report. An agent can distinguish this from refcheck_check (full report) and refcheck_criteria without opening schemas.
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?
Clearly frames the free-tier use case (100/day per wallet, one reference, verdict line only) and explicitly excludes two jobs it does not do: judging whether the work supports a claim, and grading the work. It never names the paid sibling tool outright, leaving the escalation path to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_bundleAInspect
Render + read/extract bundle of one public web page, self-rendered by our own headless Chromium: body {url, op?: bundle|full-page|read, width?, height?, format?: markdown|text, max_chars?} -> PNG inline (base64 in JSON, image legs) plus extracted text/markdown from the SAME render session, with render metadata and extraction counts. Bundle leg $0.02, full-page leg $0.05, read leg (extraction only) $0.01 — leg selected by body field op; the 402 challenge carries the selected leg's price. Full SSRF fence, refusals free before payment. Free pre-check at POST /toll/render/preflight (shape + full fence incl. resolve-then-pin, no render). $0.02 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/render.
| Name | Required | Description | Default |
|---|---|---|---|
| op | No | Leg: bundle (default, viewport PNG + extraction, $0.02), full-page (full-page PNG + extraction, $0.05, height capped at 8,000 px), or read (extraction only, $0.01). | |
| url | Yes | The bare public URL to render. No credentials in the URL; caller cookies/headers are never accepted. | |
| width | No | Viewport width in CSS pixels, 1..1920, default 1280. | |
| format | No | Extraction format: markdown (default) or text. | |
| height | No | Viewport height in CSS pixels, 1..1080, default 800. Bundle and read legs only; rejected with the full-page leg. | |
| max_chars | No | Caller ceiling on returned extraction characters, 1000..262144; truncation is disclosed with untruncated totals. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag openWorldHint and non-idempotent, and the description adds substantial context beyond them: a full SSRF fence, refusals billed at $0 which happen before payment, no caller cookies/credentials accepted, per-leg pricing, and the exact x402 payment retry flow over MCP. That is unusually rich behavioral disclosure.
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 core action is front-loaded, but the paragraph is a dense run-on that repeats pricing ($0.02 appears twice) and packs payment, preflight, SSRF, and sibling-equivalent info without structure. Informative but not tight.
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 paid, open-world render tool with no output schema, the description covers output shape (inline base64 PNG plus text/markdown with counts), pricing per leg, payment mechanics, SSRF safety, and a free preflight path. Nothing essential to a correct call 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?
With 100% schema coverage the baseline is 3, but the description adds real meaning: it shows the body shape, ties op to leg pricing and to height being rejected on full-page, and notes max_chars truncation disclosure. The overlap with the schema's own op/height text keeps it from a 5.
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 specific compound action: render a public web page with headless Chromium and extract text/markdown from the same session, with PNG output. That is far more specific than the name alone. It does not explicitly name siblings like screenshot_render or access_crawl, so differentiation is inferred from the bundle/extraction framing rather than stated.
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 clearly explains how to pick a leg (bundle vs full-page vs read) via the op field and what each costs, which is genuine usage guidance. However, it never says when to choose this tool over the many sibling render/crawl/screenshot tools, nor any exclusion beyond 'one public web page'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_attestAInspect
$5.00: everything in one check, plus one portable on-chain attestation of the snapshot, verifiable by third parties without calling this service.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | Yes | Solana base58 pubkey of the key/identity to check. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It adds cost ($5.00), output nature (portable on-chain attestation), and verifiability without the service—context beyond annotations. Annotations already flag write/open-world/non-idempotent; the description does not explain payment mechanics or irreversibility, but there is 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?
One front-loaded sentence carries the price and key differentiator with little waste. 'Everything in one check' is slightly vague but still compact.
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 one-parameter tool with rich annotations, it covers cost and attestation output sufficiently. It leaves 'snapshot' and the check contents undefined, but not enough to block correct invocation.
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 single subject parameter is fully documented in the schema at 100% coverage, and the description adds no further parameter detail. Baseline 3 is appropriate when the schema does the heavy lifting.
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 name plus description identify a reputation attestation: 'everything in one check' plus a portable on-chain attestation of the snapshot. It differentiates from reputation_check by the added attestation, though it never explicitly says the check is reputation or what 'everything' includes.
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 signals use when a third-party-verifiable on-chain attestation is needed, and the $5.00 price helps compare against reputation_check. But it never names reputation_check or states when to use the cheaper check-only sibling, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_checkAInspect
Check one construct's standing record on the 402 Open Book. FREE within your wallet's 100/day allowance (pass caller); otherwise $0.01 USDC on Solana — the payment buys one check of one key/identity, returned as a signed verdict with the record's as-of time. It does not include identity verification and is not a guarantee of future behaviour.
| Name | Required | Description | Default |
|---|---|---|---|
| caller | No | Your wallet — keys the 100/day free allowance. | |
| subject | Yes | Solana base58 pubkey of the key/identity to check. | |
| liveness_nonce | No | Optional liveness proof nonce. | |
| liveness_signature | No | Optional ed25519 signature from the subject key over the liveness answer. | |
| liveness_challenge_id | No | Optional liveness challenge id from reputation liveness challenge (POST /toll/reputation/liveness/challenge). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the payment mechanic (free allowance keyed by caller, otherwise $0.01 USDC on Solana), the one-key-per-charge semantics, and the return shape ('signed verdict with the record's as-of time'). It also bounds expectations ('not a guarantee of future behaviour'). It does not explain why readOnlyHint is false (presumably the charge), which an agent might find mildly confusing, but there is 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?
Three tightly packed sentences with the core action front-loaded and pricing/payment details following. The em-dash parenthetical and clause stacking make it dense to parse, but no sentence is filler.
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 no output schema, the description does the work of naming the return ('signed verdict' plus 'as-of time'), and it flags the paid path so an agent isn't surprised. Remaining gaps are the unexplained liveness parameters and no indication of what the verdict looks like or how failures/refusals are reported.
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%, so the schema already documents all five parameters, including that 'caller' keys the free allowance. The description reinforces caller/subject semantics and per-call scope but says nothing about the three optional liveness_* parameters, leaving that schema text to stand alone. Baseline 3 is appropriate.
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?
States a specific verb and resource: 'Check one construct's standing record on the 402 Open Book', scoped to exactly one key/identity per call. An agent can distinguish it from attest/formula siblings in the reputation_* family, though the description never names those siblings to sharpen the boundary.
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?
Usage context is implied through the pricing model (free within the 100/day allowance, otherwise $0.01 USDC), which tells the agent cost trade-offs but not when to choose this over reputation_attest, reputation_formula, or commons_get_operator_reputation. The only real guidance is negative ('does not include identity verification'), with no named alternative tool to route to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reputation_formulaARead-onlyIdempotentInspect
FREE: the published cost-to-fake formula and parameters (cost-to-fake/v1) behind the Reputation-Integrity Verdict's cost-to-fake factor — anyone can recompute a verdict from the 402 Open Book's public record. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/reputation/formula.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context that annotations cannot express: the tool is free, requires no payment, has no x402 challenge, and has an HTTP GET equivalent. It stops short of describing what the response actually contains (text spec vs. structured parameters).
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 free/no-payment message is stated twice — once as the 'FREE:' prefix and again in a long parenthetical ('no payment required: call directly without payment (no x402 challenge; this tool is free)') — which is redundant. The core subject (what the formula is) is buried mid-sentence after the pricing hook rather than front-loaded. The HTTP URL is also duplicated information rather than added 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?
With zero parameters and no output schema, the description carries the full burden of explaining what comes back, and it only says 'formula and parameters' without indicating the shape, units, or whether the returned parameters are machine-usable values. It is adequate to decide whether to call it, but not to know what to expect from the response.
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 takes zero parameters, so there is nothing for the description to disambiguate. The baseline for a no-parameter tool applies, and the description correctly implies it is called with no arguments.
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 names a concrete resource: the published cost-to-fake formula and its parameters (versioned as cost-to-fake/v1) underlying the Reputation-Integrity Verdict. That is specific enough to distinguish it from an action tool. It does not, however, contrast itself with the sibling tools reputation_check and reputation_attest, so sibling differentiation is left implicit.
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?
Usage is only implied: 'anyone can recompute a verdict from the 402 Open Book's public record' suggests this is for independent verification, and 'FREE' signals cost. There is no explicit when-to-use statement, no when-not-to-use, and no routing to reputation_check or reputation_attest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rpc_callAInspect
Call Solana JSON-RPC (cached, failover proxy). $0.01 per call via MCP (each tool call is toll-gated individually; the direct HTTP gateway at /toll/rpc is billed as $0.01 per 1,000 requests = $0.00001/request) — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/rpc/. Generic Solana JSON-RPC passthrough (cached, failover proxy): pass the RPC method and its params array. Intended for standard Solana read methods (getBalance, getBlock, getTransaction, getSignaturesForAddress, getAccountInfo, ...). One MCP tool call is one RPC call.
| Name | Required | Description | Default |
|---|---|---|---|
| method | Yes | Solana JSON-RPC method name, e.g. getBalance | |
| params | No | Positional params array for the RPC method |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing caching, failover-proxy behavior, the $0.01-per-call toll and its distinct HTTP gateway pricing, the USDC-on-Solana x402 payment mechanism, and that one MCP tool call equals one RPC call. These are exactly the operational facts an agent cannot infer from readOnlyHint/openWorldHint and would otherwise trip over on first invocation.
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 core purpose is front-loaded, but the pricing sentence is a long parenthetical that mixes per-call tolling, gateway request pricing, and asset/payment details, and 'Generic Solana JSON-RPC passthrough (cached, failover proxy)' largely repeats the opening line. Useful content, but not tightly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter passthrough with no output schema, the description covers invocation, billing/auth, and the HTTP equivalent. The main omission is the return shape and error behavior (it never says the response is the raw RPC result object or how RPC errors surface), plus any cache TTL/staleness caveat.
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 both parameters (method, params) are already documented in the schema; the description only restates them as 'pass the RPC method and its params array.' It does add example method names, but no format constraints (e.g., commitment options, encoding, nested param shapes) beyond what the schema supplies.
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?
Opens with a specific verb+resource: 'Call Solana JSON-RPC (cached, failover proxy)' and later clarifies it is a 'Generic Solana JSON-RPC passthrough: pass the RPC method and its params array.' That is unambiguous and distinct from siblings like evm_tx_decode or address_bundle, though no sibling is named explicitly as an alternative.
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?
Scopes use explicitly to 'standard Solana read methods (getBalance, getBlock, getTransaction, getSignaturesForAddress, getAccountInfo, ...)' and explains the x402 payment handshake step by step ('call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]'). It lacks an explicit when-not-to-use statement or a named alternative tool for convenience wrappers, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screener_quoteAInspect
Single-ticker snapshot (delayed quote). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/screener/quote/{ticker}.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false without explaining why a quote read is non-read-only; the description resolves that by disclosing the $0.005 USDC charge and the x402 challenge-then-retry flow, which is exactly the behavioral fact an agent must know before calling. It also flags the data as delayed. It does not cover rate limits or what a failed/underpaid call returns beyond the challenge.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the identity of the tool, then the cost and payment mechanics. The bracketed x402 instruction is dense but every clause carries operational information an agent needs before spending money.
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 paid one-parameter quote call, the description covers what it returns at a high level, what it costs, how to pay, and the HTTP equivalent. With no output schema present, it could say more about the fields in the snapshot, but the gaps are minor relative to what is already disclosed.
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 single required parameter is fully documented by the schema (100% coverage), so the baseline applies. The description adds only the framing that the ticker identifies one instrument, plus the HTTP path template; it gives no notation guidance (e.g., exchange suffix) beyond what the schema already says.
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?
"Single-ticker snapshot (delayed quote)" states a specific resource and scope, and the word "single-ticker" implicitly contrasts with the batch sibling screener_screen. It stops short of naming that sibling explicitly, so the agent must infer the split from the name alone.
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?
Usage is implied by "single-ticker snapshot" — use it for one symbol rather than a screen — but there is no explicit statement of when to prefer it over screener_screen, nor any prerequisite or failure guidance beyond the payment handshake.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screener_screenBInspect
Screen the S&P 500 with Finviz-style filters. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/screener/screen.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | integer | |
| offset | No | integer | |
| pe_max | No | number | |
| pe_min | No | number | |
| sector | No | string | |
| country | No | string | |
| sort_by | No | string | |
| industry | No | string | |
| sort_dir | No | string | |
| price_max | No | number | |
| price_min | No | number | |
| volume_max | No | number | |
| volume_min | No | number | |
| change_pct_max | No | number | |
| change_pct_min | No | number | |
| market_cap_max | No | number | |
| market_cap_min | No | number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantive behavior beyond annotations: it is a paid tool ($0.01/call), payment settles in USDC on Solana via x402, and the MCP flow requires a first unauthenticated call to obtain a PaymentRequired challenge before retrying. Annotations only declare openWorldHint/idempotent/readOnly flags and say nothing about cost or the two-step payment handshake.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences: purpose first, then price, then the invocation mechanics. The payment paragraph is dense but every clause is operationally necessary for a paid endpoint; nothing is padding.
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?
No output schema and no mention of return shape, default/maximum limit, or pagination semantics for limit/offset — gaps an agent must guess at for a 17-param list tool. The payment and endpoint details are complete, but the result-side and filter-value information is thin.
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?
17 parameters whose schema 'descriptions' are bare type names ('integer', 'number', 'string'), so nominal 100% coverage carries almost no semantics. The description's only compensation is 'Finviz-style filters', which hints at familiar field meanings but omits units (market_cap scale), allowed values for sector/industry/country, and valid sort_by/sort_dir tokens (no enums provided).
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?
Specific verb+resource: 'Screen the S&P 500 with Finviz-style filters' clearly states what the tool returns (a filtered list of large-cap US equities). It implicitly distinguishes itself from screener_quote by emphasizing multi-constraint filtering, though it never names that sibling explicitly.
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 gives detailed invocation guidance (payment challenge/retry loop), but no guidance on when to choose this over screener_quote or other finance tools, nor on what filter combinations are sensible. Usage context is implied by the filter vocabulary rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screenshot_renderAInspect
Screenshot of one public web page, self-rendered by our own headless Chromium: body {url, tier?: viewport|full-page, width?, height?} -> PNG inline (base64 in JSON) + render metadata. Viewport tier $0.03, full-page tier $0.02 (tier selected in the body; the 402 challenge carries the selected tier's price). Full SSRF fence, refusals free before payment. Free pre-check at POST /toll/screenshot/preflight (shape + full fence incl. resolve-then-pin, no render). $0.03 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/screenshot.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The bare public URL to render. No credentials in the URL; caller cookies/headers are never accepted. | |
| tier | No | Capture tier: viewport (default, $0.03) or full-page ($0.02, page height capped at 8,000 px). | |
| width | No | Viewport width in CSS pixels, 1..1920, default 1280. | |
| height | No | Viewport height in CSS pixels, 1..1080, default 800. Viewport tier only; rejected with the full-page tier. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (openWorld=true, readOnly=false), the description discloses pricing per tier, that refusals are free and happen before payment, that a full SSRF fence applies, that caller cookies/headers are never accepted, and the exact payment handshake. This is exactly the kind of behavior an agent cannot infer from structured fields.
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?
It front-loads what the tool does and the output format, then stacks pricing, fence, preflight and payment mechanics. Dense and mostly earning its space, though the pricing is stated twice ('$0.03 per call' after the per-tier breakdown) and the run-on parentheticals make it slightly harder to scan.
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?
There is no output schema, yet the description says the return is a base64 PNG inline in JSON plus render metadata, and it covers the payment/authorization path an agent must traverse. Nothing needed to invoke it successfully 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?
Schema coverage is 100% and the schema already documents url, tier, width and height, so the baseline is 3. The description adds meaning by tying tier selection to the price carried in the 402 challenge and by restating the body shape {url, tier?, width?, height?}, which clarifies which fields are optional in practice.
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 first clause names a specific verb and resource ('Screenshot of one public web page') and states the mechanism ('self-rendered by our own headless Chromium'), plus the input body shape and output form. An agent can distinguish this from render_bundle or access_crawl without opening a schema.
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 gives concrete operational guidance: call without payment to receive the PaymentRequired challenge then retry with _meta["x402/payment"], and use the free preflight endpoint to validate shape and the SSRF fence before paying. It does not explicitly contrast with sibling render/bundle tools, which keeps it below 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_alerts_poll_alertsAInspect
Poll the alerts view of a registered watch: the filings matching the watch's own rules that this service first saw since the cursor — new filings, /A amendments grouped to their base form, and deletion flags from weekly index reconciliation only. Paid via x402: $0.01 — RULED (10000 USDC units / 68000 SOL lamports) per delivered view — one poll delivers ALL matching events since the cursor, up to 200 per poll; it is NOT charged per event. Always call the free preflight first (same watch_id + cursor): GET /toll/secalerts/alerts/preflight returns the pending-event count only (no event content) — pending_count 0 is the complete free answer, so you never pay for an empty view. A settled poll that still delivers zero writes exactly one refund intent (net charge zero, cursor unmoved). If you lose a response, re-poll the same cursor within 7 days: the delivery record is re-served verbatim and free (redelivered: true). first_seen_at is ExchangeRebel's own detection timestamp — the moment this service first recorded the filing in its append-only store. The SEC publishes no availability timestamp, so no seller's first-seen time can be anything other than their own observation. For a filer's first-ever touch, the store is seeded from the filer's returned history and first_seen_at is the seed time (records carry seeded:true). Deletion flags are issued only for removals confirmed by the weekly full-index reconciliation: a deletion_flag event is produced only from a record whose provenance marks it weekly-index-reconciliation-sourced. Removals noticed when a single filer's submissions record is re-read are never issued as deletion alerts by this service. Until the weekly reconciliation is wired to the live store, deletion flags do not fire in production. Honest crossover: polls cost $0.01 (ruled price) per delivered alerts view. A caller whose watches deliver about 500 events a month is spending about $5.00 a month here — the price of Datamule's $5/month subscription — and continuous, high-volume watchers are better served by that subscription. This service is built for episodic, task-driven agent queries: register a watch, poll it when the task needs the answer, and pay only for delivered views. Price: $0.01 per call (per delivered alerts view). — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/secalerts/alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | Optional opaque cursor from a prior poll's next_cursor (or the registration initial_cursor); omit for the watch's initial cursor. A cursor bound to a different watch is refused free (bad_cursor). | |
| watch_id | Yes | The bearer credential issued by sec_alerts_register_watch. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Far beyond what the annotations convey: pricing model ($0.01 per delivered view, not per event, up to 200 events), x402 payment flow via _meta["x402/payment"], refund-intent behavior on zero-event settled polls, free verbatim redelivery of a lost response within 7 days, and disclosure that deletion flags do not currently fire in production. readOnlyHint=false is consistent with a tool that settles payments and writes delivery/refund records.
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?
Purpose, price, and preflight are correctly front-loaded, but the prose runs long for a two-parameter tool. Several passages — the aside that "no seller's first-seen time can be anything other than their own observation," the seeded-history detail, and the repeated price restatements — could be trimmed without losing call-critical information.
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 paid, stateful, cursor-driven tool with no output schema, everything an agent needs is present: cost, payment mechanics, preflight requirement, refund path, redelivery path, event-type definitions, and the current limitation on deletion flags. Nothing material is left for the agent to infer.
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, but the description adds real semantics: it explains that the cursor delimits "all matching events since the cursor," that a re-poll of the same cursor within 7 days re-serves the delivery verbatim, and that a zero-event poll leaves the cursor unmoved. Those are behavioral facts about the cursor the schema's terse "opaque cursor" note does not convey.
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?
Opens with a specific verb+resource ("Poll the alerts view of a registered watch") and immediately enumerates what counts as an event: new filings, /A amendments grouped to base form, and deletion flags. It clearly distinguishes the tool from its sibling sec_alerts_register_watch and from a plain filing feed by scoping delivery to a watch's own rules and cursor window.
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?
Explicit routing instructions: "Always call the free preflight first (same watch_id + cursor)" and "pending_count 0 is the complete free answer." It also names the alternative (Datamule's $5/month subscription) and the exact condition that selects it — continuous high-volume watchers — versus this tool's episodic, task-driven use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_alerts_register_watchAInspect
Register a watch for SEC EDGAR filing alerts: a set of CIKs and/or tickers plus an optional form-type set. Paid via x402: $0.005 — RULED (5000 USDC units / 33500 SOL lamports). The $0.005 registration price is RULED (Mauricio, 2026-10-20) — the evaluation ladder figure, ruled as proposed. Always call the free preflight first (same body): POST /toll/secalerts/watch/preflight performs all validation, resolves tickers to CIKs, and returns the exact price ($0.005 — RULED) before any payment; an unresolvable ticker is a free unknown_ticker refusal, never a guess. Registration returns a watch_id (a bearer credential — possession IS read access to that watch's alerts view; there is no separate secret, no rotation, and no recovery for a lost watch_id) and its initial cursor: the watch reports only filings first seen after it was created. first_seen_at is ExchangeRebel's own detection timestamp — the moment this service first recorded the filing in its append-only store. The SEC publishes no availability timestamp, so no seller's first-seen time can be anything other than their own observation. For a filer's first-ever touch, the store is seeded from the filer's returned history and first_seen_at is the seed time (records carry seeded:true). You only pay for delivered answers — a registration that fails after settlement writes exactly one refund intent and creates no watch. Price: $0.005 per call (per watch registration). — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/secalerts/watch.
| Name | Required | Description | Default |
|---|---|---|---|
| ciks | No | CIK strings, 1-10 digits each, at most 25 — provide ciks and/or tickers. | |
| forms | No | Optional form strings, at most 20; omit for all forms. A filter matches the exact form or its base form (8-K matches 8-K and 8-K/A). | |
| tickers | No | Ticker symbols, at most 25, resolved to CIKs at registration. | |
| amendments_only | No | Optional, default false; filters filing events only, never deletion flags. | |
| include_deletions | No | Optional, default false; deletion flags are produced only from records whose provenance marks them weekly-index-reconciliation-sourced. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: discloses the x402 payment flow ($0.005, payment challenge at _meta["x402/payment"], retry semantics), that watch_id is a non-rotatable bearer credential with no recovery, that only filings first seen after creation are reported, the meaning of first_seen_at and seeded:true, and that post-settlement failures write exactly one refund intent and create no watch. Nothing here contradicts readOnlyHint=false / destructiveHint=false — it is a paid, non-destructive write.
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?
Front-loaded and information-dense, but bloated with governance noise: the $0.005 price is stated three times, the RULED attribution and "5000 USDC units / 33500 SOL lamports" parenthetical add no actionable signal, and the SEC-availability digression pads the middle. Trimming the ruling chatter would lose no decision-relevant content.
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 5-param paid mutation with no output schema, the description covers return values (watch_id plus initial cursor), failure/refund behavior, and credential handling. The notable gap is idempotency: idempotentHint=false and per-registration pricing mean a duplicate call would create a second paid watch, yet the description never warns about re-registration.
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 the baseline is 3; the description adds genuine meaning on top by noting that tickers are resolved to CIKs and that an unresolvable ticker yields a free unknown_ticker refusal rather than a guess. It also frames ciks and tickers as alternative/combinable inputs ("and/or"), but adds nothing about the three boolean/forms parameters beyond what the schema already documents.
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?
Opens with a specific verb+resource and scope: "Register a watch for SEC EDGAR filing alerts: a set of CIKs and/or tickers plus an optional form-type set." It is immediately distinguishable from sec_alerts_poll_alerts, though it never names the polling sibling that consumes the watch_id, so routing between the pair relies on inference.
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?
Gives one strong, explicit prerequisite: "Always call the free preflight first (same body)" and explains exactly what the preflight does (validation, ticker resolution, price) and why it is safe to call first. However the preflight is named only by HTTP path, not by an MCP tool name present in the sibling list, and there is no guidance on when to register a new watch versus reuse/abandon an existing one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
secfilings_changesAInspect
SEC filing changes since a timestamp. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/secfilings/changes.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | CIK, 1-10 digits — provide cik OR ticker | |
| form | No | Optional form filter (exact or base form) | |
| since | No | ISO-8601 timestamp; only filings first seen after it | |
| cursor | No | Opaque cursor from a prior /changes call | |
| ticker | No | Ticker symbol — provide cik OR ticker |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare openWorldHint and non-idempotency, so the bar is lower, yet the description still contributes real operational context: a $0.01 USDC-on-Solana cost, the x402 challenge-then-retry flow with the exact _meta key, and the equivalent HTTP URL. It omits result-shape and pagination behavior, and the unusual readOnlyHint=false for a read tool is left unexplained.
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 core purpose is front-loaded in one sentence, followed by pricing and then protocol mechanics in decreasing order of importance. The payment parenthetical is dense but every clause carries actionable information for invocation.
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 parameterless-required, read-oriented listing tool with a fully documented schema and no output schema, the description covers cost, payment protocol, and endpoint. The missing pieces are the shape of returned changes and cursor/expiry behavior, which would matter for a changes-feed tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters including the cik-OR-ticker constraint and cursor semantics are already documented in structured form. The description adds nothing about parameters, so the baseline 3 applies.
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 first sentence names a specific resource and delta semantics ('SEC filing changes since a timestamp'), which is clearly distinct from the static sibling secfilings_status. It stops short of explicitly naming the sibling or contrasting the two, so an agent must infer the boundary.
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?
There is no statement of when to use this tool versus secfilings_status or which combination of cik/ticker/since/cursor to pick for a given intent. The only guidance present is payment mechanics, not usage selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
secfilings_statusAInspect
SEC EDGAR filing status for a filer. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/secfilings/status.
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | CIK, 1-10 digits — provide cik OR ticker | |
| form | No | Optional form filter (exact or base form) | |
| ticker | No | Ticker symbol — provide cik OR ticker |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the price ($0.005 per call), the payment rail (USDC on Solana via x402), the exact retry mechanism (_meta["x402/payment"]), and an HTTP equivalent endpoint — the kind of auth and cost context annotations cannot convey. It does not describe the returned status payload, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense sentences, front-loaded with purpose and followed immediately by cost and mechanics. Every clause carries information an agent needs; nothing is redundant padding.
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?
No output schema exists, yet the description does not say what a 'status' response contains, which is a real gap for a tool whose name ends in 'status'. Otherwise it is complete: cost, payment protocol, retry path, and HTTP alternative are all present for a zero-required-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so cik, ticker, and form are already documented, including the 'provide cik OR ticker' either/or rule. The description adds nothing beyond that, which is the correct baseline of 3 when the schema carries the parameter burden.
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 first sentence states a specific verb and resource ('SEC EDGAR filing status for a filer'), which is enough to separate it from sibling secfilings_changes. It does not, however, name any sibling or state the scope difference explicitly, so the differentiation is inferred rather than stated.
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 gives strong procedural guidance for the paid-call flow (call without payment to get the PaymentRequired challenge, then retry with payment) and the HTTP fallback. But it offers no guidance on when to pick this tool over secfilings_changes or other SEC tools, which is the main selection risk for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_fundamentalsAInspect
Fetch SEC company fundamentals for a ticker. $0.02 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/sec/fundamentals/{ticker}.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | US ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the concrete cost ($0.02/call), the payment rail (USDC on Solana via x402), and the exact two-step invocation pattern (call, receive PaymentRequired challenge, retry with payment at _meta["x402/payment"]). This is exactly the kind of non-obvious behavioral context annotations cannot convey. It omits failure modes (what happens on insufficient funds, whether a failed call is still charged) and rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose then price, with no filler. The payment retry mechanics and the HTTP equivalent URL are dense but each carries operational weight. Slightly dense for a single-line tool but nothing is wasted.
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 no output schema, the description should indicate what a response contains (which fundamentals: revenue, EPS, filings, periods) and its rough shape, but it says nothing about return values. Payment and endpoint details are thorough, so the gap is specifically on the response side for an open-world data 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?
Only one parameter, and the schema already documents it at 100% coverage as "US ticker symbol." The description adds nothing beyond that, though the HTTP path template confirms the ticker is a path segment. Baseline 3 is appropriate when the schema carries the full burden.
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?
States a specific verb and resource: "Fetch SEC company fundamentals for a ticker." An agent immediately knows the domain (SEC filings/fundamentals) and the key input. However, it does not differentiate from nearby siblings such as companies_enrich_financials or secfilings_status, which an agent could plausibly confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the resource name; there is no explicit statement of when to pick this over companies_enrich_financials or secfilings_* siblings, and no note on coverage (US-listed only, which is only inferable from the schema's "US ticker symbol"). The payment flow instructions are procedural guidance for invocation rather than when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
services_completedARead-onlyIdempotentInspect
Services Completed for ExchangeRebel — the machine-readable twin of the public proof-of-work board at https://exchangerebel.com/services-completed : what the fleet's metered services have actually delivered, read live from each service's own published counters (reputation-integrity verdict: paid checks and attestations; observability check: paid reports; prompt-injection verdict: paid scans and verdict totals; agent-readiness audit: paid audits — each with distinct payers and today's free pre-checks), plus the 402 Open Book's record (posts, cards, settled paid posts, outside USDC settled) and the list of services that are serving but not metered. Paid counters include the house's own proof payments — plumbing, never revenue. Counts only: no customer identities, ever. FREE — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/services-completed.json.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, and the description adds real behavioral context beyond them: zero cost with no x402 challenge, counts-only with no customer identities ever, and the caveat that paid counters include the house's own proof payments ('plumbing, never revenue'). That is exactly the kind of interpretation an agent needs to report these numbers correctly.
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?
Purpose is front-loaded in the first clause, followed by the counter inventory and then the privacy/payment caveats. It is a dense run-on paragraph with parenthetical nesting, but nearly every clause carries information an agent could not get from the schema or annotations.
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 no output schema, the description carries the burden of explaining returns, and it does so by enumerating each counter group plus the Open Book record and unmetered-services list. It stops short of describing the actual response shape or field names, which is the only notable gap for a zero-argument data 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?
The tool takes no parameters, so the baseline is 4. The description correctly offers no parameter discussion and instead spends its words on what the returned counters mean.
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 concrete resource (the machine-readable Services Completed proof-of-work board) and a concrete action (reads live metered counters from each service's published data), then enumerates exactly which counters appear. It is unmistakably different from generic fleet tools, though it never names a sibling (fleet_kpis, fleet_activity, spend_check) to sharpen the boundary.
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?
Usage context is implied by the enumerated contents (proof-of-work / delivery counters), and the description does clarify the payment posture: call directly, no x402 challenge, free. But it gives no explicit when-to-use vs alternatives guidance and no exclusions relative to neighboring fleet or spend tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
short_shortAInspect
Fetch FINRA short interest for a ticker. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/short/short/{ticker}.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | US ticker symbol |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the paid, non-free nature of the call, the exact price ($0.01 USDC on Solana), the x402 challenge-then-retry handshake, and the HTTP fallback endpoint. That is exactly the behavioral context an agent needs to invoke a paid tool without a failed or unexpected charge.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with the purpose first and the payment mechanics second; every clause carries information. The long parenthetical is dense but justified given the unusual x402 protocol.
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?
Payment and transport details are thoroughly covered, but with no output schema, the description never indicates what the response contains (fields, short-interest period, freshness), and it says nothing about error/billing behavior on failed calls.
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 single required parameter is already documented as 'US ticker symbol'; the description only restates {ticker} in the URL template. Baseline 3 is appropriate since the schema does all the heavy lifting.
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?
States a specific verb ('Fetch') and resource ('FINRA short interest') with a clear scope ('for a ticker'), and no sibling tool covers short interest, so the agent can disambiguate immediately.
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?
Explains the payment flow (call without payment, receive the challenge, retry with payment at _meta["x402/payment"]), which is invocation guidance. However, it provides no when-to-use vs when-not guidance relative to alternatives such as screener_quote or sec_fundamentals, so usage context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spend_checkAInspect
Check a proposed agent spend against the agent's budget policy. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/spend/check.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | string | |
| category | No | string (optional) | |
| recipient | No | string (optional) | |
| amount_usd_cents | No | integer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond annotations: a hard price ($0.01/call), the USDC-on-Solana/x402 payment rail, the 402-challenge-then-retry handshake, and the _meta["x402/payment"] slot — all consistent with readOnlyHint=false and idempotentHint=false. It does not warn that retrying an already-paid call may incur a second charge, which matters given non-idempotency.
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?
Purpose is front-loaded in the first sentence and the second sentence is dense but every clause is operationally load-bearing (price, chain, asset, MCP handshake, payment key, HTTP endpoint). Slightly overpacked for a single sentence, but no filler.
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 no output schema, the description never says what a successful check returns (approved/denied? remaining budget? denial reason?) or what happens on rejection, which is the agent's actual decision input. Payment mechanics are covered thoroughly; the result contract and the zero-required-parameter anomaly are not.
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 nominally 100%, but the field descriptions are placeholders ('string', 'integer', 'string (optional)') that carry no meaning, and the description never mentions agent_id, category, recipient, or amount_usd_cents. Baseline 3 applies by the coverage rule, but the description does nothing to compensate for the hollow schema text or to clarify why the schema reports zero required parameters for what look like required inputs.
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?
States a specific verb and resource ('Check a proposed agent spend') plus the exact decision context ('against the agent's budget policy'), so an agent knows this is a pre-spend authorization check with no ambiguity. No sibling tool in the list covers budget adjudication, and the description makes that scope explicit.
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 framing 'proposed ... spend' implies the when (before committing a payment) and the second sentence gives concrete invocation sequencing: call without payment to receive the PaymentRequired challenge, then retry with payment. It stops short of explicit exclusions or naming an alternative tool, but the operational context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
split_profile_checkAInspect
$0.02 USDC on Solana per catalogue — the payment buys one signed split-profile report for one submitted MCP tool catalogue: for the catalogue as a whole and for each tool, by tool name, the shares of its definition-token count carried by its name, its description, and its parameter schema, counted exactly under the pinned cl100k_base tokenizer and stated as shares only (the report contains no token count for any tool or for the catalogue, and no character count); and the groups of two or more tools whose parameter-schema serialisations are byte-identical under the published serialisation. The report states proportions and duplication of schemas only; it grades nothing. Submitted catalogues are processed in memory only and never stored; the paid retry re-sends the catalogue.
| Name | Required | Description | Default |
|---|---|---|---|
| catalogue | Yes | The one tool catalogue to profile: a JSON array of tool entries, or an object carrying a tools array of the same form. Each entry must be a JSON object; name and description, when present, must be strings; inputSchema, when present, may be any JSON value. At most 200 tools and 262,144 request-body bytes. Processed in memory only and never stored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses the $0.02 USDC-on-Solana price per catalogue, that the report is signed, that input is processed in memory only and never stored, that a retry costs again and re-sends the catalogue, and — unusually — what the output explicitly does NOT contain (no token counts, no character counts) and that nothing is graded.
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?
One long multi-clause sentence with deeply nested parentheticals; the price is front-loaded ahead of the actual action, so an agent must read past the commercial framing to learn what the tool does. The content mostly earns its place, but the structure hurts skimmability.
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 single-parameter, no-output-schema tool this covers price, limits, privacy, tokenizer pinning, and the exact contents and non-contents of the report. The remaining gap is operational: it never says how payment is presented or settled (address, header, or returned challenge), so an agent cannot fully plan the call.
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 schema field already documents the array-vs-tools-object shape, type constraints, the 200-tool and 262,144-byte caps, and the in-memory handling. The description adds only the 'one catalogue' framing and the exact tokenizer used for the resulting numbers, so it is useful but largely redundant with 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 states a specific operation on a specific resource: a paid per-catalogue report giving the token-share breakdown (name / description / parameter schema) for the catalogue and each tool, plus groups of tools with byte-identical parameter-schema serialisations. This is far more specific than the name alone and clearly distinct from sibling 'split_profile_criteria' / 'split_profile_precheck'. It stops short of naming those siblings as alternatives, which keeps it off a 5.
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?
Usage is implied: submit one catalogue, get one report; an unsuccessful-paid retry re-sends the catalogue. There is no explicit when-to-use / when-not-to-use statement and no routing to split_profile_precheck or split_profile_criteria, which are the obvious neighbours an agent would need to disambiguate against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
split_profile_criteriaAInspect
The published criteria for the Split-Profile check (token-efficiency/v1, op split-profile, revision 1.2.0): the input contract, the published serialisation, the share grid and derivability self-check, the pinned tokenizer (cl100k_base, gpt-tokenizer 4.1.0), and the pinned public test corpus identity (split-profile-corpus/v1, pin 406a8aa9409716b50a4ad73dbf634cf0e6e0ff39b99a06db577bac0287acafc5). Read these before paying for a check — every report is reproducible from them. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/split-profile/criteria.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that the call is free with no x402 challenge, that reports are reproducible from these criteria, and that tokenizer and corpus versions are pinned. It also gives the HTTP equivalent endpoint. It stops short of describing the response shape or size, which for a zero-parameter document fetch would have closed the loop.
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 resource and version pins are front-loaded, which is good, but the first sentence is a dense run-on packing six distinct artifacts, and the payment fact is stated three times in one clause ('no payment required', 'without payment', 'no x402 challenge; this tool is free'). Trimming that redundancy would sharpen it without losing information.
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 parameterless, annotation-free document-fetch tool with no output schema, the description supplies what an agent needs: what the criteria cover, why to read them first, that they cost nothing, and a direct HTTP fallback. Only the return format (single document vs. structured sections) is left unstated.
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 takes zero parameters and the schema is an empty object, so there is nothing to disambiguate. Baseline of 4 applies; the description correctly implies no inputs are needed by framing the call as a direct read.
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 identifies a specific resource — the published criteria for the Split-Profile check (token-efficiency/v1, op split-profile, revision 1.2.0) — and enumerates its contents (input contract, serialisation, share grid, derivability self-check, pinned tokenizer, pinned corpus pin). It is clearly a spec/criteria retrieval tool, distinguishable from split_profile_check. It never uses an explicit verb like 'returns' or 'fetches', relying on 'Read these' to imply retrieval, which keeps it just short of a 5.
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?
'Read these before paying for a check — every report is reproducible from them' gives a clear call-ordering rule relative to the check tools. The payment note ('call directly without payment') further clarifies invocation context. It does not explicitly mention split_profile_precheck as the alternative entry point, so the sibling routing is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
split_profile_precheckAInspect
FREE split-profile pre-check of one submitted catalogue (100/day per wallet; pass caller). Returns assessability only — whether each part of the report is assessable — with no shares, no group existence, and no counts. The full signed report is the paid split_profile_check call.
| Name | Required | Description | Default |
|---|---|---|---|
| caller | Yes | Solana base58 wallet of the operator; keys the free allowance (100/day per wallet). Required on the free pre-check only. | |
| catalogue | Yes | The one tool catalogue to profile: a JSON array of tool entries, or an object carrying a tools array of the same form. Each entry must be a JSON object; name and description, when present, must be strings; inputSchema, when present, may be any JSON value. At most 200 tools and 262,144 request-body bytes. Processed in memory only and never stored. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does well: it discloses the free allowance and its per-wallet keying, the quota of 100/day, and precisely what is and is not returned (no shares, no group existence, no counts). It stops short of describing the actual response shape or error/quota-exhaustion behavior, which matters since there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero padding, and the free/rate-limited framing is front-loaded before the return-value caveats and the pointer to the paid sibling. Every clause carries information the agent needs to choose and call the tool.
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 two-parameter tool with no annotations and no output schema, the description covers cost, quota, inputs, exclusions, and the paid alternative. The remaining gap is the concrete shape of the assessability result, but the high-level contract ('whether each part of the report is assessable') is sufficient to decide whether to call it.
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 both parameters are already fully documented in the schema, including the 200-tool and 262,144-byte limits and the in-memory-only guarantee. The description adds only that 'caller' keys the free allowance and is required on the pre-check only, which is largely a restatement. Baseline 3 is appropriate.
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?
States a specific verb and resource ('split-profile pre-check of one submitted catalogue') and immediately scopes it against the sibling: this is the free assessability-only version, while 'the full signed report is the paid split_profile_check call'. An agent can distinguish it from split_profile_check and split_profile_criteria without opening any schema.
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?
Gives the explicit when: free, rate-limited to 100/day per wallet, requiring the caller argument. It also names the alternative (split_profile_check) and the condition that selects it (when you need the full signed report rather than assessability). Both the use case and the escalation path are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stats_indicatorBInspect
Normalised indicator series for 30 countries. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/stats/indicator.
| Name | Required | Description | Default |
|---|---|---|---|
| country | Yes | ISO alpha-2 country code | |
| periods | No | Number of periods, 1-36 | |
| indicator | Yes | Indicator id: cpi_index | cpi_yoy_pct | unemployment_rate | average_earnings | gdp_growth |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial context annotations do not: the exact price ($0.01 per call), the settlement rail (USDC on Solana via x402), and the concrete MCP handshake (call without payment → PaymentRequired challenge → retry with payment at _meta["x402/payment"]). That is genuinely operationally useful. It does not clarify what the series looks like (default period count, ordering, units), which is the remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool returns, then the payment protocol. Efficient, though the parenthetical payment retry instructions are dense and the HTTP line is somewhat redundant given the MCP path is already spelled out.
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 paid data-fetch tool with no output schema, the definition covers access mechanics well but leaves the return payload unexplained – no description of series length, ordering, units, or what a 'normalised' value means, and no default stated for the optional 'periods' parameter. Adequate but incomplete.
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%, so 'country', 'indicator' (with its enumerated ids), and 'periods' are already fully documented in the schema. The description only adds the 30-country scope, which is marginal beyond the schema. Baseline 3 applies.
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?
States the resource specifically: 'Normalised indicator series for 30 countries', which tells an agent what data comes back and the geographic scope. It does not differentiate itself from nearby siblings like stats_trade, macro_cpi, or macro_unemployment, so an agent must still infer which is the right source for a given indicator.
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?
There is no guidance on when to use this tool versus macro_cpi/macro_unemployment/macro_cpi or stats_trade, nor prerequisites beyond payment mechanics. The only 'how' present is the x402 payment retry procedure, which is protocol mechanics rather than task routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stats_tradeAInspect
Aggregate HS trade flows (Comext EU; StatCan CA-US). $0.02 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/stats/trade.
| Name | Required | Description | Default |
|---|---|---|---|
| flow | Yes | IMPORT | EXPORT | |
| period | No | YYYY or YYYY-MM | |
| partner | No | WORLD | INT_EU27_2020 | EXT_EU27_2020 | ISO alpha-2 | |
| periods | No | StatCan only: number of periods, 1-24 | |
| product | No | TOTAL or HS2/HS4/HS6 code (EU reporters) | |
| reporter | Yes | Reporter: EU-27 ISO alpha-2 or CA | |
| hs_section | No | StatCan CA-US only: HS section I-XXI or TOTAL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, but the description adds genuinely new behavior: a $0.02 per-call cost, the USDC-on-Solana x402 payment protocol, and the exact retry sequence with _meta["x402/payment"]. That is the critical non-obvious behavior for this tool; it stops short of covering failure modes, timeouts, or what happens on payment rejection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what the tool returns before the payment mechanics. The payment parenthetical is dense but every clause is actionable and none is filler.
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?
Payment and data-source context are complete, but with no output schema and no mention of the return shape, an agent cannot tell what an aggregated HS flow response looks like or whether results are paginated. For a 7-parameter data tool with no output schema, that is a real gap.
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%, with each of the 7 parameters documented inline, so the schema carries the burden. The description only echoes that flows are HS-based and reporter-scoped (EU-27 or CA) and adds no format or validation detail 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?
States a specific verb and resource ('Aggregate HS trade flows') and names the underlying data sources (Comext EU, StatCan CA-US), which is far more informative than the name alone. It does not distinguish itself from the sibling stats_indicator, so an agent must still infer which stats tool fits a macro-economic vs trade question.
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?
There is strong procedural guidance on how to pay via x402 and an HTTP fallback, but no statement of when to use this tool rather than stats_indicator or how to pick EU vs StatCan reporters. Usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
telegram_provisionAInspect
Allocate a Telegram bot for one month. $0.50 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/telegram/provision. STATE-CHANGING: one settled call allocates one Telegram bot for one month. Payment is settle-once (replay-protected): do NOT retry blindly after a timeout — the call result returns the allocation, which is your receipt.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag readOnlyHint=false and idempotentHint=false; the description goes far beyond, disclosing cost ($0.50 USDC on Solana), the x402 payment handshake, settle-once replay protection, and that the returned allocation is the receipt. That is the exact behavioral context an agent needs before spending money.
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?
Front-loaded with purpose and price, then mechanism, then the critical state-changing warning. Dense but every sentence carries operational weight; the HTTP-equivalent URL is the only element of marginal use to an MCP caller.
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 no output schema, the description still explains what comes back (the allocation, serving as the receipt) and covers cost, payment protocol, idempotency, and retry hazard. Nothing needed to call it safely 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?
There are no declared parameters, so the schema carries nothing. The description compensates by explaining the undeclared _meta["x402/payment"] injection path, which an agent would otherwise miss entirely.
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 opens with a precise verb, resource, and scope: allocate a Telegram bot for one month. It is unambiguous and no sibling tool in the list competes with this function.
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 states exactly how to invoke it (call without payment to receive the PaymentRequired challenge, then retry with payment in _meta), and warns against blind retries after a timeout. It stops short of naming alternatives or explicit exclusions, though none of the siblings are substitutes here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_efficiency_budgetAInspect
$0.02 USDC on Solana per call — the payment buys one signed payload-budget report for one submitted payload and your stated token budget: (1) a fit verdict stating the payload's token count under the pinned cl100k_base tokenizer, your effective budget, and whether it fits or the exact excess; (2) where it does not fit, a shaped payload produced only by the four published mechanical operations (S-1 duplicate removal, S-2 empty-field removal, S-3 per-field truncation, S-4 tail truncation, in that order); and (3) a drop receipt listing every operation applied, by field, with token counts before and after that reconcile exactly. No operation selects content by meaning; nothing is summarised or rewritten by a model. Submitted payloads are processed in memory only and never stored; the paid retry re-sends the payload.
| Name | Required | Description | Default |
|---|---|---|---|
| payload | Yes | The one payload to check, as text or as JSON text. Processed in memory only and never stored. | |
| keep_fields | No | Optional field paths protected from shaping operations. | |
| budget_tokens | Yes | The token budget the payload must fit, counted under the published pinned tokenizer (cl100k_base). No default: a call without a valid budget_tokens is a free validation refusal. | |
| reserve_tokens | No | Optional reserve subtracted from budget_tokens to form the effective budget. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations supplied, the description carries the full burden and does so: it discloses cost and payment rail, determinism guarantees ('produced only by the four published mechanical operations ... in that order', 'No operation selects content by meaning; nothing is summarised or rewritten by a model'), data handling ('processed in memory only and never stored'), and reconcile-exactly accounting in the receipt. It also explains retry behavior ('the paid retry re-sends the payload'). The only unaddressed behavior is whether a failed/refused call is charged, which is minor against this level of disclosure.
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 pricing and the core deliverable are front-loaded, and the (1)/(2)/(3) enumeration makes the three-part output scannable. It is essentially one very long run-on sentence with nested parentheticals, which makes it dense to parse, but nearly every clause (operation ordering, no-model guarantee, in-memory processing, exact reconciliation) carries decision-relevant information.
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 no output schema and no annotations, the description must describe the return value — and it does so thoroughly, down to what the receipt reconciles. It also covers the payment model and privacy posture. The remaining gaps are how the 'signed' report is verified and what happens to the payment when a call is refused or fails, which leaves the agent slightly short on failure-mode expectations for a paid 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 coverage is 100%, so the baseline is 3, but the description adds real meaning: it fixes the counting method (pinned cl100k_base tokenizer) and introduces the 'effective budget' concept that links budget_tokens to reserve_tokens. keep_fields is only glossed indirectly via 'by field' and 'protected from shaping operations' lives in the schema, so the prose does not fully map every parameter — hence 4 rather than 5.
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 concrete verb and deliverable — 'the payment buys one signed payload-budget report for one submitted payload and your stated token budget' — and itemizes the three artifacts returned (fit verdict, shaped payload, drop receipt). That is far more specific than the name alone. It never names its obvious siblings token_efficiency_precheck or token_efficiency_criteria, so an agent still has to infer that a free/dry-run check exists elsewhere.
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?
Useful decision inputs are present (price of $0.02 USDC on Solana, one payload per call, 'the paid retry re-sends the payload'), which tells the agent this is a metered, single-shot call. However, there is no explicit when-to-use versus when-not guidance, no pointer to token_efficiency_precheck as a cheaper validation path, and no statement of prerequisites such as wallet/payment setup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_efficiency_criteriaAInspect
The published criteria for the Payload Budget Check service (token-efficiency/v1): the input contract, the four shaping operations S-1..S-4, the receipt and reconciliation rules, the pinned tokenizer (cl100k_base, gpt-tokenizer 4.1.0), and the pinned public test corpus identity. Read these before paying for a budget check — every report is reproducible from them. — no payment required: call directly without payment (no x402 challenge; this tool is free). HTTP equivalent: GET https://exchangerebel.com/toll/token-efficiency/criteria.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose the operationally important facts: no payment/x402 challenge, deterministic and reproducible reports, a pinned tokenizer and version (cl100k_base, gpt-tokenizer 4.1.0), a pinned corpus identity, and an HTTP equivalent endpoint. It stops short of describing the response shape or size, though the enumerated contents largely stand in for that.
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 content list is front-loaded and earned, but the closing clause restates the same point four times — 'no payment required: call directly without payment (no x402 challenge; this tool is free)' — which is avoidable bloat. The HTTP-equivalent URL is useful; the redundant free-call phrasing is not.
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 zero-parameter document fetch with no output schema, enumerating the document's sections (input contract, S-1..S-4, receipt/reconciliation rules, tokenizer pin, corpus identity) is exactly the right substitute for a return-value description. An agent knows what it will get and why it matters before calling.
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 takes zero parameters, so there is no parameter meaning to add and the baseline of 4 applies. Nothing in the description conflicts with the empty input 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?
States a specific resource with concrete contents: 'the published criteria for the Payload Budget Check service (token-efficiency/v1): the input contract, the four shaping operations S-1..S-4, the receipt and reconciliation rules, the pinned tokenizer'. It implicitly separates itself from token_efficiency_budget by framing itself as reading material required before a paid budget check, but it never names token_efficiency_precheck, so sibling differentiation within the family is only partial.
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?
'Read these before paying for a budget check' gives a clear triggering condition and ordering relative to the paid tool, and the free-call note removes any hesitation about invoking it. It lacks any explicit when-not guidance or a pointer to token_efficiency_precheck for the non-paid validation path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_efficiency_precheckAInspect
FREE headline payload-budget pre-check of one submitted payload (100/day per wallet; pass caller). Returns the verdict line, the payload's token count under the pinned cl100k_base tokenizer, and the excess figure only — no shaped payload. The full signed report with the shaped payload and drop receipt is the paid token_efficiency_budget call.
| Name | Required | Description | Default |
|---|---|---|---|
| caller | Yes | Solana base58 wallet of the operator; keys the free allowance (100/day per wallet). | |
| payload | Yes | The one payload to check, as text or as JSON text. Processed in memory only and never stored. | |
| keep_fields | No | Optional field paths protected from shaping operations. | |
| budget_tokens | Yes | The token budget the payload must fit, counted under the published pinned tokenizer (cl100k_base). No default: a call without a valid budget_tokens is a free validation refusal. | |
| reserve_tokens | No | Optional reserve subtracted from budget_tokens to form the effective budget. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden and does well: it discloses the rate limit, the exact return contents (verdict line, token count, excess figure) and the critical negative fact that no shaped payload is returned. It does not state what a refusal looks like or whether the counter decrements on invalid input, leaving some mutation/limit semantics unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the key constraint, the return contents, and the paid alternative in that order. Some phrasing is jargon-heavy ('headline payload-budget pre-check', 'pass caller') and costs a moment of parsing, but nothing is wasted.
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 no output schema and no annotations, the description supplies both the return shape and the rate-limit safety context, which is what an agent needs to call this correctly. Only edge behavior (refusals, allowance accounting on failures) is left implicit.
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 meaning by tying 'caller' to the free-allowance key and framing budget_tokens against the pinned cl100k_base tokenizer used for counting. It still says nothing about how keep_fields or reserve_tokens interact with a pre-check that returns no shaped payload.
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?
States a specific verb (pre-check) and resource (payload token budget) with explicit scope: one submitted payload, headline verdict only. It explicitly contrasts itself with token_efficiency_budget (the paid full report), so an agent can distinguish the two without opening either schema.
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?
Clear routing: use this for a free check, use token_efficiency_budget for the signed report with shaped payload and drop receipt, and the free allowance is bounded at 100/day per wallet. It does not address when to pick other adjacent siblings such as token_efficiency_criteria or tokens_score, so the exclusion set is incomplete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tokens_scoreAInspect
0-100 token safety score with explainable factors. $0.02 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/tokens/score/{mint}.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Solana mint address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: an explicit $0.02 per-call cost, the USDC-on-Solana x402 payment handshake, and an equivalent HTTP endpoint. It does not explain why readOnlyHint=false for what reads as a lookup (presumably metering/settlement), leaving a small ambiguity, but nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool returns and then the payment mechanics. Every clause (price, protocol, fallback path) is operationally necessary for a paid endpoint.
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 no output schema, the description still sketches the return value (0-100 score with explainable factors) and fully specifies the billing/invocation path, so an agent can call it correctly. A short note on what the explainable factors contain would close the last gap.
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?
Only one parameter, fully documented by the schema as a 'Solana mint address'; the description's HTTP path template ({mint}) restates rather than extends that. With 100% schema coverage, the schema carries the parameter burden, so baseline 3 applies.
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?
States a specific resource and output form: a 0-100 token safety score with explainable factors, for a given Solana mint. The score framing distinguishes it from the sibling lookup tool tokens_token, though it never explicitly draws that contrast.
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 gives clear procedural guidance for how to pay and invoke (challenge, then retry with _meta["x402/payment"]), but gives no guidance on when to choose this over tokens_token, batch_score, or other scoring siblings, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tokens_tokenAInspect
Token mint info: name, symbol, decimals, supply, authorities. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/tokens/token/{mint}.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Solana mint address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description carries information annotations cannot: an exact price ($0.005 per call), the payment rail (USDC on Solana via x402), and the precise two-step MCP flow (call unpaid to receive the PaymentRequired challenge, then retry with _meta["x402/payment"]). This also explains why readOnlyHint=false and idempotentHint=false are set for what looks like a pure read — each call spends money — so the agent can reason about retry cost.
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?
Front-loaded with the payload description before the payment mechanics, and every sentence is functional. The x402 parenthetical is dense but necessary; only minor tightening (e.g. the redundant 'HTTP equivalent' URL given the path already implies it) is possible.
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?
No output schema exists, and the description compensates by naming the returned fields. The payment prerequisite — the single biggest failure mode for an agent calling this — is fully spelled out. Only the exact response envelope and error behavior beyond the 402 challenge are unstated.
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 single parameter is already documented as 'Solana mint address'. The description only restates the parameter in the HTTP path template ({mint}), adding no format, validation, or example detail beyond the schema, so baseline 3 applies.
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?
Opens with a specific resource and enumerates exactly what is returned (name, symbol, decimals, supply, authorities), so the agent knows this is a mint-metadata lookup rather than a score or balance query. It never names the nearby sibling tokens_score, so differentiation from the closest alternative is left to inference.
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?
Usage context is implied by the field list and by the mention of the HTTP GET path template, which makes the mint-address input obvious. However, there is no explicit statement of when to prefer this over tokens_score, address_bundle, or evm-style siblings, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toxicity_analyzeAInspect
Score a comment for toxicity (Perspective-compatible). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/toxicity/analyze.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | Yes | object (required) - {text: string} comment to score, Perspective comments:analyze body | |
| languages | No | array of strings - optional; en = full attributes, fr/es/it/pt/tr/ru = TOXICITY-only | |
| doNotStore | No | boolean - optional; comment text is never stored regardless | |
| clientToken | No | string - optional, echoed back in the response | |
| requestedAttributes | Yes | object (required) - attribute configs for TOXICITY, SEVERE_TOXICITY, IDENTITY_ATTACK, INSULT, THREAT, PROFANITY (FLIRTATION unsupported) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are present but sparse, and the description adds substantial behavioral context beyond them: exact cost ($0.005 per call), payment token/chain (USDC on Solana via x402), the MCP retry mechanics, and an HTTP fallback endpoint. It does not describe the response shape, which is a meaningful gap for a scoring tool with no output schema, but the payment and protocol transparency is strong.
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 dense but well-structured: purpose first, then cost and payment flow, then HTTP equivalent. Every sentence carries invocation-relevant information, though the payment parenthetical is lengthy.
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?
There is no output schema, so the description could benefit from stating the return shape (e.g., attribute scores). Otherwise, for a tool with fully documented inputs and clear payment mechanics, the description covers the invocation-critical details, including cost, protocol, and fallback endpoint.
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%, so all five parameters are already documented in the schema. The description adds no additional parameter semantics beyond what the schema provides, which is the baseline 3 when the schema does the heavy lifting.
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 specific verb and resource: 'Score a comment for toxicity (Perspective-compatible).' It clearly distinguishes single-comment scoring from batch sibling toxicity_analyze_batch only implicitly by the word 'comment,' so it stops short of explicit sibling differentiation.
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 payment procedure is explained in detail (call without payment, receive challenge, retry with payment at _meta["x402/payment"]), which is useful invocation guidance. However, there is no explicit guidance on when to use this versus toxicity_analyze_batch or when not to use it, leaving that choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toxicity_analyze_batchAInspect
Score up to 100 comments for toxicity in one call. $0.25 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/toxicity/analyze/batch.
| Name | Required | Description | Default |
|---|---|---|---|
| comments | Yes | array (required) - up to 100 comments:analyze requests, each {comment:{text}, requestedAttributes, languages?} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: exact cost ($0.25/call), the USDC-on-Solana x402 payment model, and the concrete retry pattern via _meta["x402/payment"] after a PaymentRequired challenge. That is exactly the kind of billing/auth behavior annotations cannot express. It stops short of stating rate limits, whether scoring is deterministic, or what happens to a partial batch failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core capability front-loaded and no filler. The HTTP-equivalent line is marginal for an MCP agent but compact and arguably useful for parity/debugging.
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?
No output schema exists, and the description never says what comes back — per-comment scores, attribute breakdown, or error shape for oversized batches. The on-wire item shape ambiguity from the schema also goes unaddressed, so an agent can invoke it but cannot predict results.
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. However the description says 'comments' (implying plain strings) while the schema's items description describes each element as an analyze request object with {comment:{text}, requestedAttributes, languages?} — the description does nothing to resolve that mismatch or explain requestedAttributes/languages.
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?
States a specific verb and resource ('Score ... comments for toxicity') plus a hard scope limit ('up to 100 comments in one call'), which implicitly separates it from the singular toxicity_analyze sibling. It doesn't name the sibling explicitly, so the batch-vs-single distinction must be inferred from the 'batch' name and the 100-comment cap.
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 100-comment cap and 'in one call' phrase imply this is the bulk path, but there is no explicit 'use this instead of toxicity_analyze when you have many comments' routing statement or any when-not guidance. The payment retry flow is described, which is operational guidance rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trademarks_caseAInspect
Fetch full case detail for a trademark serial. $0.10 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/trademarks/case/{serialNumber}.
| Name | Required | Description | Default |
|---|---|---|---|
| serialNumber | Yes | 8-digit USPTO serial number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the crucial non-obvious behavior: a $0.10 per-call charge, the USDC-on-Solana x402 payment protocol, and the exact challenge-then-retry mechanics including the _meta["x402/payment"] key. This explains why idempotentHint and readOnlyHint are false despite the operation being a read — the payment step is the state change — and is far beyond what the annotations convey alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the purpose before the payment mechanics. The payment detail is essential rather than padding, though the HTTP-equivalent tail is somewhat secondary for an MCP caller.
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 single-parameter lookup with no output schema, the definition covers the inputs, cost, and payment flow thoroughly. The only gap is that it does not characterize what 'full case detail' returns (fields, prosecution history, status), which an agent might want before paying $0.10.
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 single parameter is documented as an '8-digit USPTO serial number'. The description adds only that it appears as {serialNumber} in the HTTP path, so the baseline 3 applies — the schema does the semantic work.
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?
States a specific verb and resource — 'Fetch full case detail for a trademark serial' — which is clearly distinct from trademarks_search (list/find) and trademarks_watch (subscription). It stops short of naming the sibling tools explicitly, so the differentiation is inferable from the name rather than stated.
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?
Usage is only implied: an agent must infer that trademarks_search finds the serial and this tool then returns detail. There is no explicit when-to-use/when-not guidance and no mention of the watch siblings that might be the better choice for ongoing tracking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trademarks_searchBInspect
Search US trademark records by wordmark text. $0.25 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/trademarks/search. (The HTTP endpoint also accepts a POST form; this tool is the canonical search.)
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Wordmark text (required unless owner given) | |
| class | No | International class 1-45 | |
| limit | No | 1-25, default 10 | |
| owner | No | Owner name match | |
| status | No | live | dead | 3-digit USPTO status code |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: the $0.25 USDC-on-Solana price, the x402 challenge-then-retry flow, the exact _meta key for the payment, and the HTTP equivalent endpoint. Annotations only declare the generic openWorld/non-idempotent/non-destructive profile; the cost and payment handshake are the real behavioral risk an agent needs, and those are disclosed. It still says nothing about rate limits, error modes beyond the payment challenge, or result shape.
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?
Purpose is front-loaded in the first clause, followed by cost and payment instructions. The payment boilerplate is longer than ideal but each sentence carries operational information an agent needs before calling a paid endpoint.
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?
There is no output schema, so the description should characterize what comes back, but it never describes the result set (fields, per-record structure, pagination or total counts). Payment and endpoint context are complete, but an agent knows how to pay without knowing what it will receive.
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 the five parameters (q, class, limit, owner, status) are already fully documented in the schema, including the q-unless-owner rule and the status enum values. The description adds no parameter meaning beyond restating "by wordmark text," so the baseline 3 is correct.
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?
States a specific verb and resource ("Search US trademark records by wordmark text") that an agent can act on immediately. It does not explicitly differentiate itself from siblings like trademarks_case or trademarks_watch, so an agent must infer which one to pick from names alone.
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 payment mechanics but gives no guidance on when to use this tool versus trademarks_case, trademarks_watch, or trademarks_watch_changes. Beyond "q required unless owner given," there is no when/when-not framing or prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trademarks_watchAInspect
Register a 30-day trademark watch (daily checks). $0.50 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/trademarks/watch. STATE-CHANGING: one settled call registers one 30-day trademark watch; the returned watch id is your receipt. Payment is settle-once (replay-protected): do NOT retry blindly after a timeout — a duplicate call creates a duplicate watch.
| Name | Required | Description | Default |
|---|---|---|---|
| mark_text | No | string - mark text to watch for new filings | |
| serial_numbers | No | array of 8-digit serial numbers to watch for status changes (max 20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: exact price ($0.50 USDC on Solana), the x402 challenge-then-retry flow including the _meta["x402/payment"] key, the HTTP equivalent, settle-once replay protection, and that the returned watch id is the receipt. This is fully consistent with readOnlyHint=false, idempotentHint=false and destructiveHint=false, and it converts those hints into actionable behavior.
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?
Front-loaded with the action, then economics, then the strongest warning (STATE-CHANGING / duplicate watch risk) in caps. Every sentence carries information an agent needs before paying; nothing is padding.
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?
Annotations and schema already cover the safety profile and both parameters, and no output schema means the id-as-receipt note suffices. The one gap is the lifecycle after registration — nothing says how or where to retrieve the daily results (trademarks_watch_changes) or what happens at day 30.
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 mark_text and the max-20 serial list are already documented in the schema. The description adds meaning about the watch's duration and cadence but says nothing further about parameter format or interaction (e.g., whether mark_text and serial_numbers can be combined). Baseline 3 is right.
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?
A specific verb+resource+cadence: "Register a 30-day trademark watch (daily checks)." An agent knows immediately what is created and how long it lasts. It does not explicitly name the sibling (trademarks_watch_changes) that reads results, so differentiation from siblings is implied rather than stated.
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?
Clear context for when to call: to start monitoring a mark or up to 20 serial numbers for new filings/status changes. It also gives operational guidance for the payment handshake and warns against blind retry after a timeout. What's missing is an explicit pointer to trademarks_watch_changes for polling results, which would complete the routing story.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trademarks_watch_changesBInspect
Fetch changes detected for a trademark watch. $0.05 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/trademarks/watch/{id}/changes.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Watch id returned by POST /watch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial non-schema behavior: the $0.05 per-call price, USDC-on-Solana x402 payment, and the concrete unauthenticated-then-retry flow with the PaymentRequired challenge and _meta["x402/payment"]. This also explains why readOnlyHint=false despite a read-style fetch. It does not say what happens on payment failure or whether repeated calls re-bill.
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?
Purpose is front-loaded in the first clause, then payment mechanics in one compact parenthetical with the HTTP equivalent. No filler, though the x402 retry detail is dense enough to slow a first read.
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?
Payment and invocation are fully covered, but with no output schema the description never indicates what the returned "changes" look like (fields, granularity, or whether an empty result is possible) — an agent must call blind to learn the shape.
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 single id parameter is documented there with its origin (POST /watch). The description adds no semantics beyond the schema, so the baseline 3 applies.
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?
"Fetch changes detected for a trademark watch" gives a specific verb (fetch) and resource (changes for a watch), distinct from siblings like trademarks_watch, trademarks_case and trademarks_search. It stops short of explicitly naming those siblings or stating what a "change" event is.
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?
No when-to-use / when-not-to-use guidance and no mention of alternatives such as trademarks_watch (presumably for creating or reading a watch). The only implied prerequisite (a watch id from POST /watch) is carried by the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transcribe_audioAInspect
Transcribe audio with Groq Whisper (whisper-large-v3). $0.005 per minute of audio, per-second prorated — NOT a flat per-call price: billed seconds = ceil(parsed duration to whole seconds); charge = ceil(seconds x 5000 / 60) USDC units (SOL rail: ceil(seconds x 34000 / 60) lamports), quoted exactly by the free preflight (POST /toll/transcribe/preflight) before payment. Accepts WAV/PCM, MP3, Ogg Opus/Vorbis, FLAC, MP4/M4A audio-only (max 25 MB, max 600 s); WebM refused at v1. The MCP adapter converts the tool arguments into the multipart HTTP shape (file part + optional language/model fields). You only pay for delivered answers — any failure after settlement queues an automatic refund. — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/transcribe.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say it is a non-readonly, open-world, non-idempotent, non-destructive call; the description goes far beyond that with per-second billing math, exact USDC/lamport unit formulas, the 25 MB / 600 s caps, refused formats (WebM), and an automatic refund on post-settlement failure. That is exactly the kind of cost, limit, and failure semantics an agent cannot infer from 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?
Purpose is front-loaded, but the second sentence is a single dense run-on packing the pricing formula, proration rule, and both rail conversions, much of which the description itself says the preflight will quote exactly. The payment/x402 paragraph could be trimmed without losing invocation-critical information.
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 paid tool with no output schema and no declared parameters, the description never states what a successful response contains (plain text, segments, timestamps?) nor how the audio payload is actually passed. Pricing, format limits, and refund behavior are covered thoroughly, but the two most invocation-critical facts are 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?
With zero declared parameters the baseline would be 4, but the description asserts that "the MCP adapter converts the tool arguments into the multipart HTTP shape (file part + optional language/model fields)" while the input schema declares no properties at all. The agent is told arguments exist but not how to supply the audio file, which undercuts the schema-free baseline.
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 first sentence states a specific verb and resource plus the underlying engine ("Transcribe audio with Groq Whisper (whisper-large-v3)"), which is immediately actionable. No sibling tool in the list does transcription, so no differentiation is strictly needed, though the description never says so explicitly.
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 gives a concrete invocation procedure for the paid flow: call without payment to receive the PaymentRequired challenge, then retry with payment at _meta["x402/payment"], and it points at a free preflight endpoint for an exact quote. It lacks explicit when-not-to-use guidance and names an HTTP endpoint rather than any MCP sibling for the preflight.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tron_estimateAInspect
Estimate TRON energy/bandwidth needed for a USDT transfer. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/tron/estimate.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | string - TRON address | |
| from | No | string - TRON address | |
| amount_usdt | No | number | |
| contract_call | No | boolean (optional) | |
| trx_balance_sun | No | number (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose the safety profile, and the description adds non-obvious behavior: the $0.005 per-call cost, the x402 PaymentRequired challenge/retry flow, and the HTTP equivalent endpoint. It does not explain the readOnlyHint=false implication or the response shape, but it adds substantial operational context 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 front-loaded with the purpose, then covers cost/payment mechanics and the HTTP equivalent in compact sentences. Every sentence adds useful information for invoking a paid estimator correctly.
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?
Purpose and payment flow are covered, but there is no output schema and the description says nothing about the estimate response. It also leaves ambiguous which of the five parameters are actually required, since the schema lists none as required.
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%, so the baseline is 3 even without parameter details in the description. The description adds only general context about USDT transfers and does not clarify units, requiredness, or the optional contract_call and trx_balance_sun parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: estimate TRON energy/bandwidth needed for a USDT transfer. That is clear enough for an agent to understand the tool's function, though it does not explicitly distinguish it from nearby fee/estimate siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use case (USDT transfer on TRON) and payment invocation flow, but does not say when to use this versus alternatives such as fees_estimate or fee_oracle_recipe. Usage is implied rather than explicitly scoped.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
txcheck_checkAInspect
Pre-sign verdict for an unsigned Solana transaction. $0.01 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: POST https://exchangerebel.com/toll/txcheck/check.
| Name | Required | Description | Default |
|---|---|---|---|
| tx | Yes | string - base64 unsigned transaction (required) | |
| policy | No | object (optional): {max_sol_out_lamports, max_token_out_bps_by_mint {mint: bps}, allowed_programs, blocked_programs, blocked_addresses, fail_on_unknown_program} |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag openWorld=false? no — openWorldHint=true and readOnlyHint=false; the description adds the two things annotations cannot convey: a $0.01 per-call cost and the exact x402 payment handshake. It does not describe what a verdict contains or failure modes, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose front-loaded before payment mechanics, and no filler. The parenthetical payment walkthrough is long but operationally necessary for a paid tool.
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?
Payment and transport (MCP vs HTTP POST equivalent) are fully covered, but with no output schema the description never says what the 'verdict' returns — pass/fail shape, risk reasons, or how policy violations are reported. An agent knows how to pay but not what it will receive.
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 both tx and the nested policy object are documented in the schema itself. The description only contributes the 'unsigned' constraint on tx and says nothing about policy semantics, so baseline 3 applies.
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?
States a specific verb+resource+scope: a pre-sign verdict for an unsigned Solana transaction. The 'Solana' and 'unsigned' qualifiers implicitly separate it from EVM-oriented siblings like evm_tx_decode and from broadcast/submit tools, but no sibling is named explicitly.
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?
Clear context for when to call it (before signing a transaction) and a concrete invocation procedure for the paid path: call without payment to receive the PaymentRequired challenge, then retry with payment at _meta["x402/payment"]. No explicit when-not-to-use guidance or named alternatives, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_alertsAInspect
Active weather alerts (US points; NOAA). $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/weather/alerts.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude | |
| lon | Yes | Longitude |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations by disclosing the $0.005 per-call cost, the x402/USDC-on-Solana payment model, the exact two-step MCP flow (call unpaid → receive PaymentRequired → retry with _meta["x402/payment"]), and the HTTP equivalent endpoint. Missing only failure/pagination details, which for a single-shot alert lookup is minor. No contradiction: readOnlyHint=false is consistent with a paid call that has a payment side effect, not with a write.
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?
Purpose is front-loaded in the first clause and the payment/logistics details follow in service of actually completing the call. Dense but every sentence is load-bearing; only the raw HTTP URL could arguably be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers invocation fully, including the non-obvious payment handshake, which is the hard part. However, with no output schema, the description says nothing about the shape of an alerts response (alert fields, empty-result behavior) or about non-US coordinate handling, leaving an agent uncertain about what comes back.
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 the schema carries the parameter burden, but its descriptions are bare ('Latitude', 'Longitude'). The tool description adds no format, precision, or sign-convention detail and does not say how coordinates outside the US are handled. Baseline 3 applies.
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?
Names a specific resource and scope: 'Active weather alerts (US points; NOAA)'. It is distinguishable from weather_current and weather_forecast by resource type (alerts vs. conditions/forecast), though it never explicitly contrasts itself with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'US points' qualifier implies a geographic constraint and the tool's purpose implies when to reach for it, but there is no explicit when-to-use/when-not guidance and no routing to weather_current or weather_forecast for the non-alert or non-US case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_currentAInspect
Current conditions (metric + imperial). Source: Open-Meteo. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/weather/current.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude | |
| lon | Yes | Longitude |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond annotations: cost per call, payment protocol, data source, unit coverage, and HTTP endpoint. It explains the payment side effect that aligns with readOnlyHint=false, though it does not discuss rate limits or return structure.
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?
Front-loads the core purpose and packs necessary payment details into a compact single paragraph. The payment instructions are long but earn their place for a paid tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers source, units, payment, and HTTP endpoint well, but with no output schema it does not describe what current-condition fields are returned. Sibling tool differentiation is also left implicit.
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 two parameters have 100% schema description coverage, so the schema already defines lat/lon. The description adds no parameter-level meaning beyond the schema, which is acceptable at baseline 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?
States the resource and scope clearly: current conditions with metric and imperial units, sourced from Open-Meteo. It implicitly distinguishes from weather_forecast and weather_alerts, but does not explicitly name those alternatives.
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 invocation guidance for the paid x402 flow, including challenge/retry mechanics and the HTTP equivalent. However, it does not explicitly say when to use this tool versus weather_forecast or weather_alerts, leaving alternative selection implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weather_forecastAInspect
Daily forecast, 1-16 days. Source: Open-Meteo. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/weather/forecast.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude | |
| lon | Yes | Longitude | |
| days | No | 1-16, default 7 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context the annotations do not carry: a concrete price ($0.005/call), the USDC-on-Solana x402 payment mechanism, and the exact two-step protocol (call unpaid to receive the PaymentRequired challenge, retry with payment at _meta["x402/payment"]). That is genuinely actionable behavioral disclosure beyond readOnlyHint/openWorldHint.
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?
Front-loads what the tool does, then the source, then cost and payment mechanics, then an HTTP equivalent. Dense but every clause is functional; the payment sentence is long but necessary for a paid endpoint.
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 no output schema, the description leaves the return payload entirely unspecified — an agent cannot tell whether it gets per-day temperatures, precipitation, wind, or units. Pricing and access are fully covered, but the shape of the result is not.
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% with lat, lon, and days already documented (including "1-16, default 7"). The description restates the day range but adds no coordinate format, hemisphere/precision expectations, or units beyond the schema, so baseline 3 applies.
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?
"Daily forecast, 1-16 days" is a specific verb+resource with an explicit horizon, and it names the upstream source (Open-Meteo). It implicitly separates itself from weather_current and weather_alerts by saying "daily forecast" and stating a 1-16 day range, though neither sibling is named.
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 1-16 day scope implies when to reach for this rather than a current-conditions tool, but there is no explicit "use this instead of weather_current when..." routing. The only concrete guidance given is operational (the payment flow), not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wiki_answerAInspect
Answer a query from Wikipedia content. $0.005 per call — USDC on Solana via x402 (over MCP: call without payment to get the PaymentRequired challenge, then retry with the payment at _meta["x402/payment"]). HTTP equivalent: GET https://exchangerebel.com/toll/wiki/answer.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Question or topic |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare it is non-read-only, non-idempotent and open-world; the description adds the genuinely non-obvious behavior: a $0.005 per-call charge in USDC on Solana, the x402 challenge-then-retry handshake, the exact _meta["x402/payment"] key, and an HTTP fallback URL. This explains why readOnlyHint=false despite a query-shaped operation, and gives an agent everything it needs to avoid failing on the payment step.
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?
Purpose is front-loaded in the first clause, followed by the payment mechanics and endpoint. The x402 parenthetical is dense but every element (price, token, chain, retry key) is actionable; only the HTTP equivalent is arguably optional for an MCP caller.
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 one-parameter tool with no output schema, the description covers the call contract and the payment flow thoroughly. It stops short of describing the shape of the returned answer (citation/source attribution, length), which would help an agent know what to expect from a 'Wikipedia answer'.
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?
There is a single parameter with 100% schema coverage and the schema already documents it as "Question or topic". The description adds nothing about phrasing, length limits, or whether natural-language questions versus keywords are preferred, so the baseline 3 applies.
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?
"Answer a query from Wikipedia content" gives a specific verb (answer) and resource (Wikipedia content), which is enough to distinguish it from most siblings. It does not, however, distinguish itself from the sibling wiki_related, which an agent could plausibly confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the payment procedure (call without payment to get the challenge, then retry) but never says when to choose this over wiki_related or other answer-oriented siblings like cited_answer_search. Usage is implied by the Wikipedia scope rather than stated as a selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Added
split_profile_check - Added
split_profile_criteria - Added
split_profile_precheck
4 tool updates
- Added
rates_curve - Added
rates_history - Added
rates_schema - Added
rates_spreads
6 tool updates
- Added
apidiff_criteria - Added
apidiff_diff - Added
apidiff_precheck - Added
token_efficiency_budget - Added
token_efficiency_criteria - Added
token_efficiency_precheck
3 tool updates
- Added
manifest_drift - Added
manifest_drift_criteria - Added
manifest_drift_precheck
3 tool updates
- Added
ergonomics_audit - Added
ergonomics_criteria - Added
ergonomics_precheck
10 tool updates
- Added
manifest_audit - Added
manifest_criteria - Added
manifest_precheck - Added
readiness_audit - Added
readiness_criteria - Added
readiness_precheck - Added
refcheck_check - Added
refcheck_criteria - Added
refcheck_precheck - Added
services_completed
7 tool updates
- Added
fleet_activity - Added
injection_precheck - Added
injection_rules - Added
injection_scan - Added
observability_criteria - Added
observability_precheck - Added
observability_report
3 tool updates
- Added
reputation_attest - Added
reputation_check - Added
reputation_formula
4 tool updates
- Added
arena_eligible - Added
arena_quote - Added
arena_result - Added
arena_run
2 tool updates
- Added
pack_get - Added
packs_catalog
3 tool updates
- Added
adc_shortlist - Added
adc_snapshot_descriptor - Added
adc_verification_report
2 tool updates
- Added
cse_declare_index - Added
cse_search
6 tool updates
- Added
fact_bank_catalog - Added
fact_bank_health - Added
fact_bank_status - Added
fact_bank_status_preflight - Added
fact_bank_tendency - Added
fact_bank_tendency_preflight
1 tool update
- Added
cited_answer_search
2 tool updates
- Added
sec_alerts_poll_alerts - Added
sec_alerts_register_watch
Related MCP Connectors
x402 paid API tools for AI agents on Solana: crypto safety, market data, KYB/AML verification.
Pay-per-call tools for AI agents: Solana, DEX, perps, prediction markets, DeFi, web. USDC via x402.
x402 pay-per-call Solana data + crypto market + JWT/unit utils for AI agents.
Pay-per-call data APIs for AI agents. USDC on Base via x402. 33 tools, no signup.
Related MCP Servers
AlicenseNot gradedqualityFmaintenanceEnables AI agents to discover, pay for, and sell APIs using crypto on Solana and Base networks, with support for automated x402 payments.97 npm3MIT
CyberWareX MCP Serversofficial
AlicenseAqualityCmaintenancePay-per-call x402 APIs for AI agents: DeFi token safety (honeypot/tax simulation, A-F grade), EVM chain data, web access (markdown/screenshot/PDF), speech-to-text. USDC on Base, no account, no API key3MIT- AlicenseAqualityDmaintenanceEnables AI agents to access Solana wallet analytics, token data, and DeFi tools via pay-per-request USDC micropayments using the x402 protocol, without API keys or subscriptions.1348 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to call pay-per-request AI and web tools—including web-to-Markdown reading, PDF extraction, translation, compliance lookups, domain/email/Solana data, and prediction-market intelligence—without accounts or API keys, settling each call in USDC via x402 on Base, Solana, or Arc.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.