x402-checks
Server Details
Machine-payable deterministic identifier checks + signed XDR-1 receipts for agents.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- 89rat/m2m-exchange
- GitHub Stars
- 0
TDQS
Scored across 57 tools
Most identifier checks are clearly distinct, but several tools overlap heavily: balance_check vs erc20_balance, rent_deposit_guard vs rental_verdict vs rental_listing_risk, and individual checks vs supplier composite checks vs vendor_onboarding_pack. Descriptions clarify boundaries, but an agent could still misselect among the bundled, composite, and preflight guard tools.
All names use snake_case, which helps readability, but the convention mixes noun_verb patterns like aba_routing_check and balance_check with verb_noun patterns like create_b2b_invoice and check_price, plus standalone nouns and verbs like reconcile and context_distill. The inconsistency is noticeable but not chaotic.
With 57 tools, the surface is far beyond a well-scoped set and includes many narrow one-off identifier validators plus overlapping composite and advisory tools. The count creates selection burden and redundancy rather than a tight, purposeful toolset.
The identifier validation and receipt surface is broad, but the invoice workflow is thin: create_b2b_invoice and get_b2b_invoice exist without list, update, cancel, pay, or refund operations. There are also notable gaps around broader payment lifecycle execution and non-Belgian EU VAT coverage, leaving dead ends for some workflows.
Available Tools
57 toolsaba_routing_checkABA Routing Number Check (US Fedwire/ACH)ARead-onlyIdempotentInspect
Validate a US ABA routing number by its (3,7,1)-weight mod-10 Fedwire/ACH checksum. Catches mistyped or invalid routing numbers before payment; does NOT prevent transfer reversals or establish the recipient. Returns signed XDR-1 receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| routing | No | 9-digit US bank routing number (alias). | |
| aba_routing | No | 9-digit US bank routing number. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real context beyond the annotations: it discloses the deterministic checksum method, states the limits of what a pass/fail means (cannot confirm the recipient or prevent reversals), and notes it returns a signed XDR-1 receipt. Annotations already cover read-only/idempotent/OpenWorld, so this is a solid supplement.
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 tightly packed sentences, front-loaded with the method and followed by the caveat. Zero filler; every clause 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?
An output schema exists, so return values need not be explained, and the description covers method, scope, and limitations. The only real gap is the unaddressed duplicate/alias parameters with zero required fields, which an agent must resolve from the 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 description coverage is 100%, so the schema already documents both parameters. The description adds nothing about the aliasing between 'routing' and 'aba_routing' or which to supply, leaving that entirely to the schema — 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 verb (validate), a specific resource (US ABA routing number), and even the exact algorithm used ((3,7,1)-weight mod-10 Fedwire/ACH checksum). This clearly separates it from siblings like swift_bic_check, iban_check, or uscc_check.
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 usage condition — catch mistyped routing numbers before payment — plus scope exclusions (does not prevent transfer reversals, does not establish the recipient). It stops short of naming which sibling to use instead for identity or reversal concerns, so routing is implied rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
abn_checkABN Check (Australia)ARead-onlyIdempotentInspect
Validate an Australian Business Number by its mod-89 checksum (11 digits). Required before invoice payment to Australian contractors. Returns signed XDR-1 receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| abn | Yes | 11-digit Australian Business Number; spaces allowed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and open-world, so the safety profile is covered. The description adds real value beyond them by naming the validation method (mod-89 checksum) and disclosing that a signed XDR-1 receipt is produced, though it does not say what happens when the checksum fails.
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 purpose, then obligation, then output. Nothing is redundant or buried.
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?
Output schema exists so return values needn't be explained, and annotations cover safety; the description supplies purpose, algorithm and use context. The one remaining gap is failure semantics — whether an invalid ABN yields a false result, an error, or a rejected receipt.
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 `abn` parameter is fully documented in-schema, including spacing rules. The description's "(11 digits)" merely restates the schema rather than adding format or parsing meaning, 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 (Validate), resource (Australian Business Number), and the exact algorithm (mod-89 checksum, 11 digits), which cleanly separates it from siblings like vat_mod97_check or gstin_check that validate other identifier schemes.
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?
"Required before invoice payment to Australian contractors" gives a concrete triggering context for use, but no explicit when-not condition or named alternative for non-Australian vendors (e.g. gulf_supplier_check, china_supplier_check).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
aci_trust_lookupACI-1 Agent Credit & Trust Rating LookupBRead-onlyIdempotentInspect
Deterministic agent trust scoring and non-custodial unsettled exposure advisory evaluation (ACI-1). Quantifies counterparty grade (T0-T3), historical success rate, and maximum suggested settlement exposure without uncollateralized lending or float.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | Agent role: 'payer' or 'seller' (default 'payer') | |
| subject | Yes | Agent wallet address (0x...) or canonical ANS identifier (c402:...) to evaluate | |
| first_seen_days | No | Days since first active on-chain settlement | |
| dispute_loss_rate | No | Historical dispute loss rate 0.0 to 1.0 | |
| settled_calls_90d | No | Number of settled transactions in the past 90 days | |
| sponsor_attestations | No | Array of signed sponsorship edges | |
| settlement_success_rate | No | Historical settlement success rate 0.0 to 1.0 |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| tier | Yes | |
| subject | Yes | |
| evidence | No | |
| score_bp | Yes | |
| standard | Yes | |
| policy_notice | No | |
| receipt_digest | No | |
| unsettled_exposure_hint_minor | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, and the description reinforces this usefully by calling the output 'deterministic' and emphasizing it is advisory and non-custodial ('without uncollateralized lending or float'). However, it does not disclose how the optional history inputs (first_seen_days, settled_calls_90d, sponsor_attestations) are treated when omitted — whether they are fetched on-chain or defaulted — which is exactly what an agent needs to know given the 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?
Two sentences, zero waste, with the core capability stated first and the output shape second. The vocabulary is unusually heavy ('non-custodial unsettled exposure advisory evaluation'), which costs some immediate 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?
An output schema exists and seven parameters are fully documented, so return values and inputs are covered elsewhere. The remaining gap is the one thing only the description could resolve: whether the caller must supply historical metrics or the tool derives them, given the openWorld annotation and the mostly-optional parameter set with only 'subject' 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 every parameter is already documented in the input schema and the baseline of 3 applies. The description adds nothing at the parameter level; its detail is entirely about output semantics (grade scale, exposure cap), not about how to populate subject, role, or the optional history fields.
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 action and resource concretely: it produces a deterministic trust score for a counterparty agent and returns grade (T0-T3), historical success rate, and a suggested maximum settlement exposure. It clearly is not a generic screening tool like sanctions_address_screen or token_contract_risk, though it never explicitly contrasts itself with those siblings. The dense jargon ('unsettled exposure advisory evaluation') slightly obscures an otherwise distinguishable purpose.
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: 'maximum suggested settlement exposure without uncollateralized lending or float' signals the pre-settlement due-diligence context, but there is no explicit when-to-use, when-not, or named alternative among the many screening siblings. An agent must infer that this is the tool to call before extending credit/settlement exposure to an agent address.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
africa_supplier_checkAfrica Supplier Verification PackBRead-onlyIdempotentInspect
One call, one receipt: Kenya KRA PIN + settlement IBAN + SWIFT/BIC. Deterministic structural checks for East African trade corridors.
| Name | Required | Description | Default |
|---|---|---|---|
| iban | No | Settlement IBAN (optional) | |
| swift | No | SWIFT/BIC (optional) | |
| kra_pin | No | KRA PIN (optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| results | No | |
| verdict | No | |
| corridor | No | |
| all_valid | Yes | |
| next_steps | No | |
| checked_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety and repeatability profile is covered. The description adds real value with 'deterministic structural checks', clarifying these are format/checksum validations rather than authoritative registry lookups — an important distinction. However, it never says what happens when all three optional fields are omitted or what a partial check reports.
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 short sentences with the bundled scope front-loaded and zero wasted prose. The 'one call, one receipt' phrasing is slightly slogan-like but it does communicate consolidation efficiently.
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?
Output schema and annotations are present, so the description needn't explain return values. The remaining gap is behavioral: with zero required parameters, an agent has no signal about whether an empty call is valid or how a one-field invocation behaves. For a multi-check pack that gap matters.
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 property already documents itself as optional, so the schema does the heavy lifting. The description lists the same three fields but adds no format hints, no indication of whether at least one is required, and no meaning beyond what the schema provides. 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 resource and scope: a bundled verification covering KRA PIN, IBAN and SWIFT/BIC. An agent can tell this is the consolidated East-Africa pack rather than a single-field check. It stops short of naming the siblings it replaces (kra_pin_check, iban_check, swift_bic_check), so differentiation is implied 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?
'One call, one receipt' hints that this is the consolidated option, and 'East African trade corridors' implies the regional context. But there is no statement of when to prefer this over the individual kra_pin_check / iban_check / swift_bic_check tools, and no guidance on partial inputs. Usage is inferable, not specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
balance_checkBase Account Balance SnapshotARead-onlyIdempotentInspect
Native ETH and one ERC-20 balance (default USDC) for an address on Base, raw and formatted. Result carries a signed receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | EVM address, 0x-prefixed. | |
| token_address | No | ERC-20 token contract address (optional; defaults to USDC on Base). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| token | No | |
| valid | Yes | |
| native | No | |
| reason | No | |
| address | Yes | |
| retryable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint and idempotentHint, so safety is covered. The description adds genuinely non-derivable behavior: values come back both raw and formatted, and the result carries a signed receipt, which tells the agent the response is attestable.
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 no filler. Asset scope and default are front-loaded, and the receipt note is appended only because it matters.
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?
An output schema exists, so return shape need not be explained, and the description covers chain, assets, encoding and the receipt. The one real hole is sibling disambiguation against erc20_balance.
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 (address, token_address) are already documented, including the USDC default. The description restates the default-token behavior but adds no format or constraint detail 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 verb+resource: fetching native ETH and one ERC-20 (default USDC) balance for an address on Base. The scope (chain, asset types, default token) is concrete enough to distinguish it from generic balance readers, though it never names the near-identical sibling erc20_balance.
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, or prerequisite guidance. With erc20_balance in the sibling list, an agent has to guess which tool to pick for a single-token query versus this one; the description offers no routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_validateBatch Identifier Checks (up to 50 items)ARead-onlyIdempotentInspect
Validate up to 50 tax, bank and legal-entity identifiers (IBAN, LEI, VAT, SWIFT/BIC, ABA routing, EIN, IFSC, ABN, GSTIN, ISIN, SEDOL, EAN-13, ISBN, E.164 or Luhn checks) in one batch request. Each result states its scope. Compare the current batch quote with individual quotes; savings depend on batch size.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | List of {tool, value} checks (max 50). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| count | Yes | |
| scope | No | |
| results | Yes | |
| valid_count | No | |
| invalid_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety is covered. The description adds two things beyond structured data: results carry a per-item 'scope' and that batch pricing should be compared against individual quotes - genuine behavioral context, though the latter is vague and never says how to obtain a quote (a check_price sibling exists but is unnamed).
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 capability and its limit, no filler. The long parenthetical type list is partly redundant with the schema enum and costs some density, but it does let an agent decision-check without opening 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?
With an output schema handling return shape and annotations covering read-only/idempotent behavior, the description needs only to explain batching, limits and per-item scope - all present. Missing is any guidance on partial failures or mixed validator batches, and the unexplained 'context-distill' option.
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 field is documented, so the baseline applies. The description's list of supported identifier families roughly mirrors the enum but omits one enum member, 'context-distill', leaving that option explainable only by the schema; the max-50 limit is likewise already in maxItems.
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 identifiers) with a clear scope (up to 50, in one batch request) and enumerates the identifier families covered. The 'in one batch request' framing implicitly separates it from the single-check siblings (iban_check, lei_check, etc.), but it never names them, so an agent must infer the batch-vs-single distinction.
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 'Compare the current batch quote with individual quotes; savings depend on batch size' hints that this tool competes with per-item calls, but it frames the tradeoff purely in cost terms rather than telling the agent when to pick batch_validate over iban_check or lei_check. No explicit when/when-not, no note on whether a single-item batch is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
block_infoBase Block Header InfoBRead-onlyIdempotentInspect
Base chain (8453) block header data: block number, timestamp, transaction count and base fee for any block. Result carries a signed receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| block | No | Block number as hex (0x…) or decimal, or a tag (latest/earliest/pending/finalized/safe); defaults to latest. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| block | No | |
| scope | No | |
| valid | Yes | |
| reason | No | |
| tx_count | No | |
| retryable | No | |
| timestamp | No | |
| block_number | Yes | |
| base_fee_gwei | No | |
| timestamp_iso | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotent semantics, and the description adds the non-obvious fact that the result carries a signed receipt. It stops short of explaining what that receipt attests to, whether pending blocks behave differently, or any failure modes — real value, but thin.
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, no filler, with the chain identity and field list front-loaded before the receipt note. Every clause carries information an agent could not get from the title alone.
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?
Output schema is present, so return-value detail is unnecessary, and the input is a single documented optional parameter. The only remaining gap is the vague 'signed receipt' reference, whose purpose for the caller is never made actionable.
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 'block' parameter has 100% schema coverage including hex/decimal/tag formats and the 'latest' default, so the schema does the heavy lifting. The description adds nothing beyond 'any block', which is the expected baseline when coverage is high.
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 chain (Base, 8453) and enumerates the exact fields returned (number, timestamp, tx count, base fee), which separates it from transaction-level siblings like tx_activity. It does not explicitly contrast itself with any sibling, but the 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 statement of when to reach for this versus erc20_balance, tx_activity, or receipt_verify. 'For any block' only restates the input flexibility rather than giving selection guidance or exclusions such as 'use tx_activity for per-transaction data'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_fx_savingsCalculate cross-border FX savingsBRead-onlyIdempotentInspect
Arithmetic comparison of a USDC settlement against comparator percentages YOU supply (bank_fee_pct, custodial_fee_pct) across 14 global fiat currencies. The comparators are assumptions, not measurements of any bank or provider; no protocol fee is deducted on this rail.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Gross invoice settlement volume in USD/USDC (alias). | |
| currency | No | Target currency for local comparison (e.g. EUR, GBP, BRL, INR, ARS, PHP, NGN, SGD). | |
| amount_usd | No | Gross invoice settlement volume in USD/USDC (alias). | |
| amount_usdc | No | Gross invoice settlement volume in USD/USDC. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| currency | No | |
| amount_usdc | Yes | |
| deel_fee_usd | No | |
| pct_retained | Yes | |
| local_currency | No | |
| legacy_swift_fee_usd | No | |
| retained_savings_usd | Yes | |
| code402_protocol_fee_usd | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds genuinely useful context beyond that: the comparators are assumptions rather than measurements of any bank/provider, and no protocol fee is deducted on this rail — important for interpreting 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?
Two sentences, purpose front-loaded, with the caveat about assumptions following immediately. Tight overall, though the named-but-absent parameters cost some 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?
An output schema exists so return values need not be described, and the assumption/no-protocol-fee caveat is valuable. However, with zero required parameters and no usage guidance against siblings, an agent still lacks routing information to invoke this 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 baseline would be 3, but the description names bank_fee_pct and custodial_fee_pct as caller-supplied parameters while the schema contains only amount/amount_usd/amount_usdc/currency. These phantom parameters are misleading and add no reliable value over 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 operation (arithmetic comparison of a USDC settlement against comparator percentages) and resource (FX savings across fiat currencies), which is enough to distinguish it from siblings like fx_spot_price_oracle or check_price. Not quite a crisp 'verb+resource' formulation, but clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus alternatives such as fx_spot_price_oracle or check_price, and no prerequisites or exclusions. The only usage-adjacent text is that the comparators are supplied by the caller.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_priceZero-cost price index and gasless x402 quote generatorARead-onlyIdempotentInspect
Instant zero-cost pricing hook for code402 tools. Returns the live price, an opaque quote_id, TTL, and the settlement URL. Free forever — feeds the price index into an agent planner's context without creating any financial obligation. If the planner acts on the quote, it hits the settlement_url with an EIP-3009 signed voucher.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | Target tool name (e.g. 'iban-check', 'vendor-onboarding-pack') | |
| amount | No | Optional batch count or volume units (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| price | Yes | |
| scope | No | |
| valid | Yes | |
| ttl_ms | No | |
| currency | No | |
| quote_id | Yes | |
| settlement_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds genuinely useful behavior beyond that: no financial obligation is created, the quote_id is opaque, a TTL applies, and settlement requires an EIP-3009 signed voucher. It does not state what happens when the TTL expires, 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 tight sentences, front-loaded with what it returns, then the zero-cost guarantee, then the settlement flow. No filler and the most decision-relevant facts come first.
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 an output schema present, the description is not obligated to enumerate return fields, yet it still names the key ones. Combined with the settlement flow and zero-cost caveat, an agent has enough to call it correctly; only TTL/expiry 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 'tool' and 'amount' are already documented in the schema (including the example and default). The description adds no further meaning about parameter values or formats, 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 ('returns the live price, an opaque quote_id, TTL, and the settlement URL') and frames the tool's role as the zero-cost pricing hook preceding code402 tool calls. This clearly separates it from the sibling validation tools (iban_check, gstin_check, etc.), none of which produce quotes.
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 usage context well: call it first to feed pricing into a planner's context, then hit settlement_url only if acting on the quote. It gives the when and the conditional follow-up but stops short of naming an explicit alternative tool or a when-not-to-call exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
china_supplier_checkChina Supplier Verification PackARead-onlyIdempotentInspect
One call, one receipt: USCC + settlement IBAN + SWIFT/BIC for a Chinese counterparty. Deterministic structure and checksum validation with explicit scope per identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| iban | No | Settlement IBAN (optional) | |
| uscc | No | Unified Social Credit Code (optional) | |
| swift | No | SWIFT/BIC (optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| results | No | |
| verdict | No | |
| corridor | No | |
| all_valid | Yes | |
| next_steps | No | |
| checked_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, and openWorldHint=true. The description adds useful behavioral context beyond those hints: it states that validation is deterministic, includes checksum validation, and has explicit scope per identifier. It does not detail rate limits or authentication needs, but the annotations reduce the burden.
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 compact and front-loaded: it starts with the 'one call, one receipt' value proposition, lists the covered identifiers, and then states the validation behavior. There is no redundant or wasted wording.
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 tool has an output schema and annotations that cover safety and idempotency, so the description does not need to explain return values or read-only behavior. It adequately conveys the combined verification purpose and validation model, though it could clarify whether any combination of the optional identifiers is acceptable and when the pack should be preferred over single-identifier checks.
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 three optional parameters. The description reinforces the identifiers and specifies 'settlement IBAN' for a Chinese counterparty, but it does not add format details, checksum scope, or combination rules beyond what the schema and example already provide. Baseline 3 is appropriate when the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that this is a combined verification pack for Chinese counterparties covering USCC, settlement IBAN, and SWIFT/BIC, with deterministic structure and checksum validation. It implies differentiation from individual identifier checks through 'one call, one receipt,' though it does not explicitly name siblings like uscc_check or iban_check.
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 'for a Chinese counterparty' and 'one call, one receipt' implies using this tool when multiple Chinese supplier identifiers need to be checked together. However, there is no explicit guidance on when to choose this combined pack versus the individual sibling tools such as uscc_check, iban_check, or swift_bic_check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clean_markdown_scraperClean markdown scraperARead-onlyIdempotentInspect
Fetch a public web page by URL (or take your HTML) and return Markdown plus headings. No JavaScript rendering. Result carries a signed receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Public http(s) page to fetch (ports 80/443 only). Provide exactly one of url or html. | |
| html | No | Raw HTML string to convert instead of fetching a URL (max 1 MiB). Provide exactly one of url or html. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| tool | No | |
| scope | No | |
| valid | No | |
| reason | No | |
| source | No | |
| headings | No | |
| markdown | Yes | |
| retryable | No | |
| wordCount | Yes | |
| fetched_on | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world and idempotent, so the bar is lower. The description still adds real behavioral context beyond them: the no-JS constraint, the fact that output includes headings, and that the result carries a signed receipt (which pairs with the receipt_verify sibling). Rate limits and failure modes are not 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 short sentences, front-loaded with the core action, followed by the key limitation and one notable output trait. Every sentence carries information; nothing is redundant with the title.
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?
An output schema exists, so return values need not be spelled out, and the description still flags the two most relevant payload traits (Markdown + headings, signed receipt). The only gap is that it does not say what happens when both url and html are omitted, given that neither is 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 coverage is 100% and both parameter descriptions already state the 'provide exactly one of url or html' rule plus the 1 MiB / port constraints. The description only restates the url-or-html duality, adding 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?
Specific verb and resource ('Fetch a public web page by URL ... return Markdown plus headings'), with the alternate input mode named explicitly. No sibling tool in the list overlaps with web-to-Markdown conversion, so no differentiation is needed and none is missing.
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 JavaScript rendering' is an effective negative guideline: an agent can immediately tell this tool is unsuitable for JS-rendered pages. It also names the two input modes, but stops short of naming an alternative for the JS case or stating exclusions like auth-required pages.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cnpj_checkBrazil CNPJ Check (Cadastro Nacional da Pessoa Jurídica)ARead-onlyIdempotentInspect
Validate Brazilian corporate tax ID (CNPJ) with official dual mod-11 check digits. Required for Brazilian B2B payments, PIX verification, and vendor due diligence. Returns signed XDR-1 receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| cnpj | Yes | 14-digit Brazilian CNPJ; punctuation allowed (e.g. 00.000.000/0001-91). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, open-world, and idempotent behavior, so the description needn't repeat those. It adds meaningful context by specifying the validation method and that it returns a 'signed XDR-1 receipt,' which is useful behavioral information beyond the annotations. It stops short of describing receipt contents or any rate limits, but that's acceptable given the 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 sentences: first defines the tool, second gives use cases, third states the return. It is front-loaded with the core function and contains no redundant information. Every sentence contributes 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?
For a single-parameter validation tool with annotations covering safety and an output schema defining the return, the description provides everything needed: what it does, why it matters, and what it returns. No critical 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?
The input schema fully documents the single 'cnpj' parameter, including format and punctuation allowance (100% coverage). The description adds no further semantics about the parameter, so the 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 ('Validate') and resource ('Brazilian corporate tax ID (CNPJ)'), and even specifies the algorithm ('official dual mod-11 check digits'). This clearly distinguishes it from sibling validators for other countries or formats.
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 lists concrete use cases ('Brazilian B2B payments, PIX verification, and vendor due diligence') that tell when to use the tool. However, it does not explicitly contrast with alternatives (e.g., 'use this for Brazil, not for other country IDs') or mention when not to use it, leaving a small gap in routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_number_formatUK Company Number Format CheckARead-onlyIdempotentInspect
Check supported UK company-number syntax. No Companies House lookup, entity-existence check or active-registration verification.
| Name | Required | Description | Default |
|---|---|---|---|
| company_number | Yes | 8 digits, or 2 letters + 6 digits. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare openWorldHint=true, but the description explicitly says there is no Companies House lookup, entity-existence check, or active-registration verification. For a pure syntax checker, the open-world annotation conflicts with the stated no-lookup behavior, so the description contradicts the annotation despite readOnlyHint and idempotentHint being consistent.
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 short sentences and is front-loaded with the core behavior. The exclusion sentence earns its place by preventing the agent from assuming lookup or existence verification.
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 simple one-parameter input, full schema coverage, and the presence of an output schema, the description provides enough context for correct invocation. Its main remaining issue is the annotation mismatch rather than missing description content.
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 company_number parameter is already documented as '8 digits, or 2 letters + 6 digits.' The description adds no additional parameter-level format detail beyond the schema, so the baseline 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: 'Check supported UK company-number syntax.' It also immediately distinguishes this from Companies House lookup, entity-existence checks, and active-registration verification, so an agent can tell what class of validation 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?
The description gives clear usage boundaries by saying it is syntax-only and does not perform lookup or existence/registration checks. It does not name an alternative sibling tool for those excluded needs, but the when-not guidance is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
context_distillContext distillARead-onlyIdempotentInspect
Deterministic text digest: word count, top-5 most frequent meaningful words (stop words excluded), first sentence, and a keccak-256 content hash. Pure function — no external calls, no ML.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Arbitrary text to distill (any length; hashing is over the exact input). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| top_words | No | |
| word_count | Yes | |
| content_hash | No | |
| first_sentence | No | |
| meaningful_word_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotency, but the description adds genuinely useful traits: deterministic output, pure function with no external calls or ML, and hashing over the exact input bytes. The only tension is openWorldHint=true versus "no external calls," though this reads as a permissive default rather than a real conflict.
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 with no filler, front-loaded with the digest components and closing with the determinism guarantee. Every clause 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?
The tool is simple, the single parameter is fully documented, and an output schema exists, so return detail is a bonus rather than a requirement. The one gap is the absence of any indication of when an agent should reach for this tool, which for a one-param utility is the only missing piece.
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's description already states the text is arbitrary and hashed exactly as given, so the schema does the heavy lifting. The description clarifies the digest's components but adds nothing new about the parameter itself, matching the baseline 3 for fully covered schemas.
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+resource ("text digest") and enumerates the exact outputs: word count, top-5 frequent words with stop words excluded, first sentence, keccak-256 hash. No sibling tool performs text analysis, so the purpose is unambiguous 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?
No when-to-use or when-not-to-use guidance is given; nothing routes the agent among the finance/validation siblings or explains the intended scenario (e.g. deduping scraped text before downstream processing). "Pure function — no external calls" is a property, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_b2b_invoiceCreate B2B contractor invoiceCRead-onlyIdempotentInspect
Create a merchant-direct Base token invoice. New automated payments require a durable EOA authorization journal and a configured provider. No active protocol fee; no generic bank-wire authority, independent delivery or contract-wallet guarantee.
| Name | Required | Description | Default |
|---|---|---|---|
| memo | No | Engagement scope / milestone description (optional). | |
| merchant | Yes | Beneficiary contractor Base EVM wallet address (0x...). | |
| referrer | No | Optional attribution reference. Referral payouts and protocol fees are not active. | |
| amount_usdc | Yes | Invoice total in USDC (e.g. 50000). | |
| client_name | No | Client enterprise organization name (optional). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| status | No | |
| pay_url | Yes | |
| merchant | No | |
| cart_hash | No | |
| invoice_id | Yes | |
| amount_usdc | No | |
| invoice_url | Yes | |
| protocol_fee_usdc | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true while the description's core verb is "Create" and references "automated payments" — a direct write-vs-read contradiction. The trailing negations ("no generic bank-wire authority, independent delivery or contract-wallet guarantee") add confusion rather than disclosing what actually happens on 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 lead sentence is well front-loaded, but the two following sentences are dense, unparsable negations that consume space without conveying actionable information. Roughly half the text is noise.
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 creation/mutation tool the description never explains what is produced (even though an output schema exists, the effect of creating the invoice is unclear) or what "authorization journal" and "configured provider" mean operationally. Combined with the read/write contradiction, an agent cannot confidently invoke 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 merchant, amount_usdc, memo, referrer and client_name are already fully documented in the schema. The description adds no field-level meaning beyond that, 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?
First sentence gives a specific verb+resource: "Create a merchant-direct Base token invoice," which distinguishes it from the sibling get_b2b_invoice. The remaining sentences drift into opaque protocol jargon rather than reinforcing the purpose.
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, when-not-to-use, or named alternatives. The phrase "require a durable EOA authorization journal and a configured provider" hints at prerequisites but is too cryptic for an agent to act on or to know how to satisfy them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_tickerCrypto tickerARead-onlyIdempotentInspect
Spot USD price for a crypto ticker or CoinGecko id from public price feeds, cached 60 s. Result carries a signed receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Ticker symbol (btc, eth, sol, …) or a CoinGecko asset id (bitcoin, ethereum, …). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| cached | No | |
| reason | No | |
| symbol | Yes | |
| currency | No | |
| price_usd | No | |
| retryable | No | |
| fetched_at | No | |
| coingecko_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, and idempotent, so the safety profile is covered. The description adds genuinely useful behavioral context beyond them: the source is public price feeds, results are cached for 60 s (implying staleness), and the result carries a signed receipt (verifiability). It stops short of stating rate limits or error behavior for unknown symbols.
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 short sentences, front-loaded with what is priced and from where, then the cache and receipt facts. No filler and nothing repeated.
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?
An output schema exists, so return-value explanation is not required, and the signed-receipt mention is a helpful pointer. Caching and source are disclosed, but error handling for unrecognized symbols and any rate limiting are 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% and there is only one parameter, so the schema already documents the ticker-vs-CoinGecko-id duality fully. The description restates the same accepted forms without adding format or validation detail, matching the baseline 3 for a schema-complete 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+resource: spot USD price for a crypto ticker or CoinGecko id. The 'USD' and 'crypto ticker' qualifiers implicitly separate it from fiat siblings like fx_spot_price_oracle, but it never names or explicitly contrasts any sibling, so disambiguation 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?
No when-to-use guidance, no when-not-to-use, and no mention of alternatives such as check_price or fx_spot_price_oracle. The only contextual detail is the data source and cache TTL, which is not routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
csp_commitment_createCSP-1 Confidential Terms Commitment & Stealth AnnounceBRead-onlyIdempotentInspect
Generates cryptographic commitments to commercial terms and formats ERC-5564 dual-key stealth address announcements (CSP-1) for invoice-scale B2B payments on Base L2.
| Name | Required | Description | Default |
|---|---|---|---|
| salt_hex | No | Optional 32-byte salt (0x...). If omitted, cryptographically derived | |
| view_tag | No | Optional 1-byte hex view tag (0xNN) | |
| invoice_object | Yes | Structured invoice or commercial agreement object to commit to | |
| ephemeral_pubkey | No | Optional ephemeral public key for ERC-5564 announcement | |
| stealth_recipient | No | Optional Base L2 stealth recipient address for announcement |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| salt_hex | Yes | |
| standard | Yes | |
| announcement | No | |
| canonical_jcs | No | |
| invoice_commitment | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety and determinism profile is covered. The description does not clarify the one thing an agent would most worry about given the 'on Base L2' phrasing — that no announcement is actually broadcast and nothing is written on-chain, only formatted. That clarification would have added real value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler, and the key nouns (commitment, ERC-5564, stealth announcement, Base L2) appear early. It is dense with protocol jargon but every clause 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?
An output schema exists and annotations cover safety and idempotency, so the description does not need to explain return values. What is missing is workflow context: when in the invoice lifecycle to invoke it and whether the announcement is merely serialized or transmitted, which matters for a tool that touches a public chain's 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 description coverage is 100%, with all five parameters individually documented including optionality and the fallback behavior for salt_hex. The description adds no parameter-level meaning beyond what the schema already states, 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 specific verbs and resources ('generates cryptographic commitments', 'formats ERC-5564 dual-key stealth address announcements') and pins the domain to invoice-scale B2B payments on Base L2, which an agent can match against sibling tools like create_b2b_invoice or receipt_verify. It is clear what the tool produces, though it bundles two outputs (commitment + announcement) without saying whether they are returned together or are independent.
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 call this versus create_b2b_invoice, receipt_verify, or iso20022_to_x402_intent, all of which sit in the same payment-workflow cluster. Nothing states prerequisites, whether the invoice must be finalized first, or what the caller does with the resulting commitment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
e164_checkE.164 International Phone CheckARead-onlyIdempotentInspect
Validate a phone number's E.164 structure (+CC, 8-15 digits, no leading zero) before dispatching SMS alerts or OTPs. Returns signed XDR-1 receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| phone | Yes | International phone number, e.g. +14155552671. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is covered without prose. The description adds one genuinely new behavioral fact — a signed XDR-1 receipt is returned — but says nothing about what happens when validation fails (error vs. result field) or 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?
Two sentences, zero filler, and the core definition is front-loaded before the situational rationale. Nothing would be lost by keeping it exactly as is.
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 required parameter, full schema coverage and an output schema present, the description needn't explain return shape, and it correctly frames the check as structural rather than deliverability. The one gap is failure behavior — whether an invalid number raises an error or returns a negative verdict.
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 with an example, so the baseline is 3. The description goes beyond the schema by defining validity precisely (+CC prefix, 8-15 digits, no leading zero), which is real meaning the schema does not contain.
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 (Validate) and resource (E.164 phone number) and even spells out the structural rule set (+CC, 8-15 digits, no leading zero), so the agent knows precisely what operation is performed. It does not, however, distinguish itself from potential overlap with siblings such as batch_validate, which likely performs the same check in bulk.
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 'before dispatching SMS alerts or OTPs' gives a concrete triggering context, which is stronger than implied usage. It stops short of explicit exclusions or naming alternatives (e.g., batch_validate for multiple numbers, or a deliverability lookup for reachability).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ean13_checkEAN-13 checkARead-onlyIdempotentInspect
Validate an EAN-13 barcode by its mod-10 checksum (odd positions x1, even positions x3).
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 13-digit EAN-13 barcode; spaces/dashes allowed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description earns credit for disclosing the method (mod-10 with odd x1 / even x3 weighting), which tells the agent the tool verifies structural validity only and will not confirm the barcode is registered or in use.
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 sentence, front-loaded with the verb and resource, with the checksum rule appended as the operative caveat. Nothing is wasted and nothing important is deferred.
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 a single fully documented parameter, full annotation coverage and an output schema handling return values, the description supplies nearly everything needed. Only the failure behavior on malformed or non-digit input 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% and the schema itself documents the single 'code' parameter, including that spaces and dashes are tolerated. The description adds no parameter-level detail beyond the algorithm, so it does not go past the baseline for a fully documented 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 ('Validate an EAN-13 barcode') and pins down exactly which check is performed (mod-10 checksum). It clearly separates itself from the many other format validators in the sibling list by naming the identifier standard, though it never explicitly contrasts itself with a sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to reach for this versus alternatives, and no prerequisite or exclusion guidance. The only hint about applicability is buried in the algorithm parenthetical, which an agent must infer means 'checksum only, not registry lookup'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ein_format_checkEIN Format Check (US)ARead-onlyIdempotentInspect
Validate US Employer Identification Number FORMAT (NN-NNNNNNN). Use during US business counterparty KYB verification. Returns signed XDR-1 receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| ein | Yes | US EIN, 9 digits; dashes/spaces allowed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotency, so the lower bar applies, yet the description still adds meaningful behavior: the check is format-only and it returns a signed XDR-1 receipt, which tells the agent a verifiable artifact comes back. It stops short of describing failure behavior (error vs. invalid-result) and does not address why openWorldHint=true for what reads as an offline syntax check.
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 that front-load the primary action and scope before usage context and return payload. No filler or restated title language beyond what is needed.
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 an output schema present, the description needn't explain return fields, and it correctly spends its words on scope, usage context, and the receipt artifact. The remaining gap is what an invalid EIN produces and whether the receipt is returned on failure — the one thing an agent still has to guess.
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 parameter with 100% schema description coverage ('US EIN, 9 digits; dashes/spaces allowed'), so the schema does the heavy lifting and the baseline is 3. The description's 'NN-NNNNNNN' pattern adds a concrete shape, though it slightly undersells the dashes/spaces tolerance stated 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?
States a specific verb and resource ('Validate US Employer Identification Number FORMAT') and pins the exact pattern (NN-NNNNNNN), with the capitalized 'FORMAT' making the syntax-only scope explicit. It is distinguishable from heavier counterparty checks, but it never names or contrasts with the many other format validators in the sibling set (pan_format_check, abn_check, e164_check, uscc_check).
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 during US business counterparty KYB verification' gives a usage context, which is more than implied. However, there is no when-not guidance (e.g., that this does not confirm the EIN is assigned or active) and no routing to alternatives such as uscc_check or vendor_onboarding_pack for the broader onboarding flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
erc20_balanceERC-20 Token Balance SnapshotARead-onlyIdempotentInspect
Raw and formatted ERC-20 balanceOf for an address on Base, with decimals read from the token. Result carries a signed receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Holder EVM address, 0x-prefixed. | |
| decimals | No | Token decimals override (optional). | |
| token_address | Yes | ERC-20 token contract address, 0x-prefixed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | No | |
| address | Yes | |
| balance | No | |
| decimals | No | |
| retryable | No | |
| balance_raw | No | |
| token_address | Yes | |
| decimals_source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds real behavioral context beyond that: decimals are read on-chain from the token, and the result carries a signed receipt — a non-obvious output trait.
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 tight sentence that front-loads the operation, the resource, and the chain, then appends the receipt trait. No filler or 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?
An output schema exists, so return values need no elaboration, and annotations cover safety and idempotency. Chain scoping and the signed-receipt output are disclosed; minor gaps remain around failure behavior for invalid or non-contract token addresses.
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 all three parameters are already documented, making 3 the baseline. The description adds marginal value by explaining that decimals are read from the token, which contextualizes the optional decimals override, but gives no syntax or format 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 (balanceOf for an ERC-20 token), pins the chain to Base, and clarifies that both raw and formatted values are returned. It does not explicitly differentiate itself from the sibling balance_check, 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?
The Base/ERC-20 scoping implies when the tool applies, but there is no explicit when-to-use, when-not, or named alternative (e.g., balance_check for native/other-chain balances). Usage must be inferred from the scope statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx_spot_price_oracleFX spot price oracleARead-onlyIdempotentInspect
Reference fiat and stablecoin conversion rate from a static table, not a live feed. Returns rate and inverse; result carries a signed receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base currency symbol (e.g. USDC, EUR, GBP, JPY). | |
| quote | Yes | Quote currency symbol (e.g. USD, EUR, JPY). |
Output Schema
| Name | Required | Description |
|---|---|---|
| pair | Yes | |
| rate | Yes | |
| source | Yes | |
| inverse | Yes | |
| timestamp | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/open-world safety, and the description adds genuinely non-structured context: the rate comes from a static table (staleness implication), the result includes the inverse, and it carries a signed receipt. It does not explain what the receipt is for or how it should be verified, leaving one 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?
Two sentences, zero filler, and the most decision-relevant fact (static, not live) is front-loaded before the return-shape details.
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 a full output schema and safety annotations, the description covers what it does, how it differs from live feeds, and what it returns. The only omission is the meaning/use of the 'signed receipt' (e.g. whether receipt_verify should be used), which leaves a minor loose end.
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 both required params (base, quote) documented and exemplified, so the schema already carries the parameter meaning. The description only implies base/quote via 'fiat and stablecoin conversion rate' and adds no syntax or constraint 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+resource ('reference fiat and stablecoin conversion rate') and distinguishes itself from live-quote siblings (check_price, crypto_ticker) by explicitly saying 'from a static table, not a live feed'. It does not name a sibling directly, but the static-vs-live framing is enough for an agent 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 'static table, not a live feed' clause functions as an explicit when-to-use/when-not discriminator against the live-price siblings, which is real routing guidance. It stops short of naming alternatives or stating prerequisites (e.g. supported symbol set, staleness expectations), so it isn't a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_b2b_invoiceGet B2B invoice statusARead-onlyIdempotentInspect
Read public recorded invoice status and held-operation next action. Private records and credentials require a separate fresh read-only signature from the durably confirmed original payer; URLs and payment vouchers grant no read authority.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | Unique invoice identifier, e.g. inv_a1b2c3d4e5f6. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| status | Yes | |
| tx_hash | No | |
| merchant | No | |
| invoice_id | Yes | |
| settled_at | No | |
| amount_usdc | No | |
| private_record_url | No | |
| private_record_requires | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is covered. The description then adds real access-control context the annotations lack: results are limited to public records, private data requires a fresh read-only signature from the original payer, and URLs or payment vouchers are not credentials. That is meaningful added 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?
Two sentences, no filler, and the access restriction is front-loaded after the core capability. The phrase 'held-operation next action' is dense internal jargon that costs the reader a moment, 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?
An output schema exists and annotations cover the safety profile, so the description only needs to add access semantics — which it does. The one gap is that 'held-operation next action' is never unpacked, leaving the agent unsure what the second half of the return payload represents.
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 invoice_id already carries a format example (inv_a1b2c3d4e5f6), so the schema does the heavy lifting. The description adds nothing about the identifier's origin or format, making the baseline 3 appropriate for a single fully-documented 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 public recorded invoice status and held-operation next action.' The word 'public' scopes it against private records, and the read/write contrast with the sibling create_b2b_invoice is implicit. It does not name the sibling explicitly, 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 supplies a when-not condition — private records and credentials need a separate signature, and URLs/vouchers carry no read authority — which is genuine routing information. However, it frames this purely as an authorization rule rather than telling the agent when to call this tool versus create_b2b_invoice or receipt_verify, so usage remains implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gstin_checkGSTIN check (India)ARead-onlyIdempotentInspect
Validate an Indian GSTIN by structure (2-digit state code + PAN + entity code + 'Z') and its mod-36 cross-sum checksum.
| Name | Required | Description | Default |
|---|---|---|---|
| gstin | Yes | 15-character Indian Goods and Services Tax Identification Number. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds useful behavioral context by specifying the validation method: structural layout plus a mod-36 cross-sum checksum, which clarifies what 'validate' means 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?
A single sentence that is front-loaded with the purpose and is free of filler. Every clause adds information needed to understand what the tool does.
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 validator with rich annotations and an output schema, the description is sufficiently complete. It covers purpose and validation logic, and the output schema handles return-value details, so no critical information 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 the single gstin parameter is already documented. The description adds value beyond the schema by breaking down the GSTIN structure (state code, PAN, entity code, 'Z') and noting the checksum, giving the agent a clear mental model of the 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 verb ('Validate') and resource ('Indian GSTIN'), and immediately names the exact format it checks (2-digit state code + PAN + entity code + 'Z') and the checksum algorithm. This distinguishes it from sibling validators like iban_check or swift_bic_check by the precise identifier type.
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 offers no when-to-use guidance, no prerequisites, and no explicit alternatives. It does not tell the agent to choose this over batch_validate for single checks or over india_supplier_check for broader supplier validation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gulf_supplier_checkGulf Supplier Verification PackBRead-onlyIdempotentInspect
One call, one receipt: UAE TRN + settlement IBAN + SWIFT/BIC. Deterministic structure validation for Gulf trade corridors, scope stated per identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| trn | No | UAE TRN (15 digits, optional) | |
| iban | No | Settlement IBAN (optional) | |
| swift | No | SWIFT/BIC (optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| results | No | |
| verdict | No | |
| corridor | No | |
| all_valid | Yes | |
| next_steps | No | |
| checked_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and repeatability are covered. The description adds that validation is "deterministic structure validation" and that results come back as a "receipt," but it never says what happens on malformed input, or how an all-optional empty call behaves. The deterministic-structure claim sits slightly awkwardly against openWorldHint=true without clarifying whether any external lookup occurs.
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 short sentences, with the composite scope front-loaded ahead of the validation claim. Little waste, though "scope stated per identifier" is vague filler that does not earn its 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?
An output schema exists, so return values needn't be explained, and all three optional parameters are fully documented. What is missing is the meaning of "verification" here — checksum/check-digit validation versus registry lookup — and behavior when no identifiers are supplied, which is a real gap given 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 coverage is 100% — each of trn, iban and swift has a description plus a worked example, so the schema carries the parameter burden. The description contributes only the informal labels (UAE TRN, settlement IBAN, SWIFT/BIC) and adds no format or validation-rule detail beyond what the schema already states.
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?
"One call, one receipt: UAE TRN + settlement IBAN + SWIFT/BIC" states a concrete composite resource and makes clear this bundles three identifier checks rather than one. That distinguishes it in substance from uae_trn_check, iban_check and swift_bic_check, though those siblings are never named and the closing phrase "scope stated per identifier" is opaque.
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?
"Gulf trade corridors" implies a supplier-onboarding context, but there is no explicit when-to-use statement and no routing versus the three single-identifier sibling tools that do the same work individually. An agent must infer that this is the bundled alternative, and nothing says when a single check is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iban_checkIBAN Structure and Checksum CheckARead-onlyIdempotentInspect
Validate IBAN structure and MOD-97 checksum. Does not establish account ownership, beneficiary identity or absence of fraud.
| Name | Required | Description | Default |
|---|---|---|---|
| iban | Yes | IBAN to validate; spaces allowed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, idempotentHint, openWorldHint), so the bar is lower. The description adds real value beyond them by explicitly bounding what the result does NOT prove — account ownership, beneficiary identity, fraud absence — which is critical for an agent deciding how much to trust a positive result.
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, zero waste, with the positive capability front-loaded and the limitation following. Every clause earns its 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?
An output schema exists, so return values need not be explained here. Combined with the scope disclaimer and a single fully documented parameter, the definition is essentially complete for a stateless validator; only explicit sibling routing 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 schema description coverage is 100% ('IBAN to validate; spaces allowed.'), so the schema fully documents the input. The description adds no syntax, formatting, or length details beyond the schema, making the baseline 3 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 ('Validate IBAN structure and MOD-97 checksum'), which immediately distinguishes it from siblings like swift_bic_check, gstin_check, and vat_mod97_check. The scope is narrow and 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?
Usage is implied by the purpose — call it when you need IBAN format/checksum validation — but there is no explicit when-to-use guidance or routing against siblings such as vat_mod97_check or batch_validate. The second sentence is a scope disclaimer, not invocation guidance, so this is minimum viable rather than strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ifsc_checkIFSC Format CheckARead-onlyIdempotentInspect
Check the 11-character Indian IFSC format, including its fifth-character zero. No bank-branch registry lookup or account verification.
| Name | Required | Description | Default |
|---|---|---|---|
| ifsc | Yes | 11-character Indian Financial System Code. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds real value beyond that by clarifying what the check deliberately does NOT do (no registry lookup, no account verification), which prevents the agent from over-trusting the result.
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 what it does and then the scope boundary. Every clause earns its place 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?
An output schema exists, so return values need not be explained, and annotations carry the safety profile. For a single-parameter format validator the description supplies exactly the missing context: the scope boundary and validation rule.
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 'ifsc' parameter, so the schema already documents it; baseline is 3. The description adds a small amount of semantic detail by noting the fifth-character-zero rule, which is param-relevant, but it does not describe accepted value shapes 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 (Check) and resource (the 11-character Indian IFSC format), and immediately bounds the scope by naming the detail it validates (the fifth-character zero). The negative clause 'No bank-branch registry lookup or account verification' clearly separates it from richer verification tools in the sibling set.
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 explicit when-not guidance ('No bank-branch registry lookup or account verification'), telling the agent this is pure syntactic validation rather than a lookup. It does not name a specific sibling alternative, so it falls short of a full 5, but the exclusions are unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
india_supplier_checkIndia Supplier Verification PackARead-onlyIdempotentInspect
One call, one receipt: GSTIN + PAN + UPI VPA + IFSC for an Indian counterparty. Four deterministic structural checks, each stating its own scope. Built for cross-border procurement where the buyer is an agent that cannot open an INR account.
| Name | Required | Description | Default |
|---|---|---|---|
| pan | No | PAN (10 chars, optional) | |
| vpa | No | UPI VPA handle (optional) | |
| ifsc | No | IFSC bank code (optional) | |
| gstin | No | GSTIN (15 chars, optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| results | No | |
| verdict | No | |
| corridor | No | |
| all_valid | Yes | |
| next_steps | No | |
| checked_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only and idempotency, so the bar is lower; the description adds genuine value by disclosing that these are four deterministic structural checks rather than registry-backed verifications, and that output comes as a single receipt. Mild tension with openWorldHint=true, since pure structural/checksum validation ordinarily needs no external system, but this is inferential rather than a direct 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 short sentences, zero filler, and the payload ('One call, one receipt: GSTIN + PAN + UPI VPA + IFSC') is front-loaded before the supporting scope and audience notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and annotations carry the safety profile, so the description is close to sufficient. The one gap is that it never says how to use it with partial input (all parameters are optional, and it is unclear whether one identifier alone yields a useful 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 description coverage is 100%, so each of the four identifier parameters is already documented with format hints (character lengths, optionality). The description confirms the four checks map to those identifiers but adds no format, syntax, or partial-input semantics beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resources checked (GSTIN, PAN, UPI VPA, IFSC) and frames the tool as a bundled verification call for an Indian counterparty, which implicitly separates it from the single-identifier siblings like gstin_check and ifsc_check. The verb is somewhat implicit ('checks') but the scope 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?
It states a clear usage context: cross-border procurement where the buyer is an agent that cannot open an INR account, which explains why this consolidated pack exists. It does not, however, state when to prefer it over sibling packs (batch_validate, vendor_onboarding_pack) or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
instant_json_schema_verifierInstant JSON schema verifierBRead-onlyIdempotentInspect
Validate JSON data payloads against schema definitions. Preflighted for agent tool call pipelines.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | The JSON data object to validate against the schema. | |
| schema | Yes | The JSON schema object with expected properties and types. |
Output Schema
| Name | Required | Description |
|---|---|---|
| valid | Yes | |
| errors | Yes | |
| execution_ms | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety and determinism are covered structurally. The description adds almost nothing beyond that: "Preflighted for agent tool call pipelines" is a positioning claim, not behavioral detail, and it says nothing about failure behavior, error granularity, or whether validation stops at first error.
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 short sentences with the core action front-loaded. The second sentence is vaguer marketing-flavored padding, but the total length is minimal and nothing is buried.
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?
An output schema exists, so return values need not be explained, and both required parameters are fully described in the schema with an example. What remains missing is usage routing against the similar batch_validate sibling, which a definition this simple could reasonably have included.
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 documented with clear descriptions plus a worked example, so the schema carries the burden. The description adds no syntax, format, or dialect guidance (e.g., which JSON Schema draft) beyond restating that data is checked against schema. 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+resource: "Validate JSON data payloads against schema definitions." That is unambiguous and an agent can immediately tell what it does. It does not differentiate from the sibling batch_validate, which appears to be the closest alternative, 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?
"Preflighted for agent tool call pipelines" gestures at a usage context but never states when to call this versus batch_validate or why a pipeline should preflight with it. There are no exclusions and no named alternative, so the guidance is essentially absent beyond a slogan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
isin_checkISIN checkARead-onlyIdempotentInspect
Validate an ISIN (ISO 6166) by structure and Luhn mod-10 check digit over the A=10…Z=35 converted string.
| Name | Required | Description | Default |
|---|---|---|---|
| isin | Yes | 12-character ISIN: 2-letter country code + 9 alphanumerics + check digit; spaces allowed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description usefully adds the validation algorithm (structure plus Luhn mod-10 over A=10…Z=35), which tells the agent that a plausible-looking ISIN with a bad check digit will fail, but it says nothing about failure semantics (error vs. negative result) or output 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?
A single front-loaded sentence with no filler; the scope, standard, and algorithm come first 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?
With an output schema, full annotation coverage, and a fully documented single parameter, the description carries only the burden of stating the validation rule, which it does. The one remaining gap is not indicating how a failed check is surfaced, but the output schema likely covers that.
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 description coverage is 100%, with the schema already spelling out the 12-character layout and the spaces-allowed rule. The description adds no parameter detail beyond the A=10…Z=35 conversion, 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 ('Validate') and resource ('an ISIN (ISO 6166)'), plus the exact method used, which cleanly separates it from siblings like sedol_check, lei_check, and ean13_check. An agent can identify the tool's function 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 says what is checked but never when to reach for this tool versus alternatives such as batch_validate (bulk validation) or the other identifier checks. No exclusions, prerequisites, or routing guidance are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iso20022_to_x402_intentBAP-1 ISO 20022 to x402 Intent MapperARead-onlyIdempotentInspect
Translates validated ISO 20022 payment instructions (pain.001 / pacs.008) into deterministic EIP-712 payment-intent templates for autonomous x402 Base L2 USDC settlement (BAP-1). Zero custody, no fiat leg.
| Name | Required | Description | Default |
|---|---|---|---|
| chain_id | No | Target chain ID (default 8453 for Base) | |
| instruction | Yes | Validated BAP-1 payment instruction object | |
| seller_pay_to_address | No | Fallback recipient Base L2 address | |
| counterparty_wallet_directory | No | Enterprise IBAN -> 0x Base L2 wallet address map |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| notice | No | |
| status | Yes | |
| standard | Yes | |
| intent_template | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and open-world behavior. The description adds meaningful context beyond them, especially 'zero custody, no fiat leg' and deterministic template generation, though it does not discuss auth, rate limits, or error 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 definition is a single dense sentence that front-loads the core transformation and settlement context with no filler. Every phrase, including custody and fiat caveats, 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 a full output schema, complete parameter descriptions, nested input objects, and annotations covering safety/idempotency, the description provides sufficient context to select and call the tool correctly. Return-value details are appropriately left to the 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%, so the schema already documents all four parameters, including chain_id default and fallback recipient. The description adds accepted ISO 20022 message types but does not explain parameter roles or interactions 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 specific verb and resource: translating validated ISO 20022 pain.001/pacs.008 instructions into EIP-712 payment-intent templates for x402 settlement. It clearly distinguishes this mapping step from validation by specifying the input is already validated.
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 context for when to use it: after ISO 20022 validation, when producing x402 Base L2 USDC settlement intents. It does not explicitly name alternatives or exclusions, so it falls short of a full when/when-not routing statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iso20022_validateBAP-1 ISO 20022 Banking Message ValidatorARead-onlyIdempotentInspect
Deterministic validation for institutional ISO 20022 XML/JSON payment messages (pain.001 credit transfer, pacs.008 customer credit, camt.053 bank statement) with XML DOCTYPE security guards, BigInt CtrlSum decimal sums, and ISO 13616 / 9362 / 17442 checksums (BAP-1).
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | 'xml' or 'json' (default auto-detected) | |
| namespace | No | Expected ISO 20022 schema namespace (e.g. 'pain.001.001.09') | |
| raw_payload | Yes | Raw ISO 20022 XML or JSON message text | |
| transactions | No | Structured transactions array for JSON validation |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | Yes | |
| valid | Yes | |
| findings | No | |
| standard | Yes | |
| tx_count | No | |
| namespace | No | |
| message_id | No | |
| ctrl_sum_minor | No | |
| receipt_digest | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so safety is covered; the description goes further by naming concrete mechanics: XML DOCTYPE security guards (XXE/entity hardening), BigInt CtrlSum decimal summation, and ISO 13616/9362/17442 checksum enforcement. That tells the agent the validator is strict and deterministic, though it doesn't state the failure mode (e.g., whether it throws or returns a structured error list).
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 that leads with the core capability before the parenthetical spec lists. Dense but zero filler; the packed parentheticals (message types, then three standards) cost some readability but each item carries information an agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 documented params, full schema coverage, and an output schema, the description only needs to frame scope and strictness - which it does by naming supported message types and the security/checksum regime. The remaining gap is operational: no statement about what a failed validation returns or how message type is inferred when namespace is omitted.
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%, covering raw_payload, format, namespace, and transactions, so the schema already carries parameter meaning. The description adds only indirect hints - that both XML and JSON are accepted and that namespace-scoped message types exist - without clarifying when to supply 'transactions' versus 'raw_payload' or how the namespace value interacts with auto-detection.
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 ('deterministic validation') and resource ('institutional ISO 20022 XML/JSON payment messages'), and enumerates the exact message types covered (pain.001, pacs.008, camt.053). This clearly separates it from adjacent siblings like iban_check, swift_bic_check, or iso20022_to_x402_intent, which do single-field or conversion work rather than full-message validation.
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 scope statement - you call it on an ISO 20022 payment message to validate it - but there is no explicit when/when-not guidance. It never says to prefer iban_check or swift_bic_check for standalone field lookups, nor what to do with non-ISO 20022 payloads, leaving the agent to infer boundaries from the message-type list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
iso4217_currency_checkISO 4217 Currency Standard Check & Settlement MappingARead-onlyIdempotentInspect
Validate 3-letter alpha or 3-digit numeric currency codes against ISO 4217 standard. Returns minor unit decimals, symbol, official name, countries, and onchain Base L2 settlement token mapping (USDC/EURC).
| Name | Required | Description | Default |
|---|---|---|---|
| currency | Yes | 3-letter ISO 4217 code (e.g. USD, EUR, JPY, CNY, BRL, KES, MXN) or 3-digit numeric code (e.g. 840, 978, 392). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds real value beyond that by disclosing the lookup output set, including the non-obvious onchain Base L2 settlement mapping (USDC/EURC), which an agent could not predict from annotations alone. It does not say what happens for an unrecognized code, 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, no filler, with the validation scope front-loaded before the return-value list. Every clause 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?
For a single-parameter read-only lookup with an output schema, the description is sufficient; return values are additionally summarized. The only gap is error/not-found behavior for unknown codes, which would be useful in a validator.
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_description_coverage is 100%, so the schema already documents the accepted formats with examples. The description restates the alpha/numeric duality without adding syntax or edge-case 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 states a specific verb (validate) and resource (ISO 4217 currency codes), covering both alpha and numeric forms, and lists the returned fields. Among the sibling check tools (iban_check, swift_bic_check, ean13_check), the currency-domain scope makes it unambiguous 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?
Usage is implied by 'validate ... against ISO 4217 standard', but there is no explicit guidance on when to prefer this over siblings like fx_spot_price_oracle or calculate_fx_savings, nor any statement about invalid-input behavior. An agent can infer the context but is given no routing rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
japan_corp_checkJapan Corporate Number Check (法人番号 - Houjin Bangou)ARead-onlyIdempotentInspect
Validate 13-digit Japanese Corporate Number assigned by the National Tax Agency using Mod-9 check digit algorithm. Required for Japanese B2B SaaS and enterprise billing. Returns signed XDR-1 receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | 13-digit Japanese Corporate Number (e.g. 1180301018771). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds the validation method (Mod-9) and notes a "signed XDR-1 receipt" is returned, which is useful behavioral color, but it never says what happens on an invalid number (error vs. false result) — the key behavioral question for a validator.
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 the core verb and resource. The middle sentence is mildly promotional but does convey real usage context, so nothing is wasted beyond a little framing.
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 an output schema present, the description needn't explain the receipt structure, and the annotations cover safety and idempotency. The remaining gap is that it doesn't clarify granularity versus japan_supplier_check — whether this is checksum-only or registry-backed — which materially affects tool selection in this crowded sibling set.
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 required parameter already documented as a 13-digit number with an example. The description restates the same "13-digit" constraint and adds no syntax, normalization, or edge-case guidance (e.g. handling of hyphens or the leading check digit), so it earns the baseline, not more.
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 (validate), a precise resource (13-digit Japanese Corporate Number issued by the National Tax Agency) and even the algorithm (Mod-9 check digit), which is far more than a restatement of the name. It does not, however, distinguish itself from near-siblings like japan_supplier_check or company_number_format, leaving the agent to infer whether this is a format check, a registry lookup, or a full supplier screen.
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?
"Required for Japanese B2B SaaS and enterprise billing" implies the usage context (onboarding/billing validation) but gives no explicit when-not guidance and names no alternative. An agent facing japan_supplier_check and company_number_format gets only a hint, not a routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
japan_supplier_checkJapan Supplier Verification PackCRead-onlyIdempotentInspect
One call, one receipt: 13-digit Corporate Number + settlement IBAN for a Japanese counterparty. Deterministic check digits, explicit scope.
| Name | Required | Description | Default |
|---|---|---|---|
| iban | No | Settlement IBAN (optional) | |
| corporate_number | No | 13-digit Corporate Number (optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| results | No | |
| verdict | No | |
| corridor | No | |
| all_valid | Yes | |
| next_steps | No | |
| checked_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds the useful claims that checks are deterministic and that this is a single-call/'one receipt' operation, but 'explicit scope' is never explained and no cost, coverage limits, or failure behavior are 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?
It is short and front-loaded, which is good, but the opening 'One call, one receipt' is slogan rather than information, and the space saved is spent on unexplained phrases like 'explicit scope' instead of usage context.
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?
An output schema exists, so return values need not be described, and annotations cover the safety profile. For a two-optional-parameter read-only check, the remaining gap is mainly the missing sibling differentiation and the unexplained 'scope' claim, which are modest given the surrounding 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 description coverage is 100% and both properties are documented as optional, so the schema already carries the parameter burden. The description only repeats the input names and adds the '13-digit' format hint, which is marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the required inputs (13-digit Corporate Number and a settlement IBAN) for a Japanese counterparty, so the resource is identifiable, but the actual action is never stated – it is implied by the tool name rather than a verb like 'verifies' or 'validates'. It also fails to distinguish itself from the sibling japan_corp_check or iban_check, which appear to cover overlapping ground.
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 instead of japan_corp_check, iban_check, vendor_onboarding_pack, or the other *_supplier_check variants. A reader must infer that this is the combined Japan-specific pack, but the description never says so or gives any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kra_pin_checkKenya KRA PIN Check (Kenya Revenue Authority)ARead-onlyIdempotentInspect
Validate Kenyan Revenue Authority Tax PIN structure (A/P followed by 9 digits and checksum character). Required for M-Pesa B2B disbursement and Kenyan remote agency invoicing. Returns signed XDR-1 receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| pin | Yes | 11-character KRA PIN (e.g. P051112223Z). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safe-read profile is covered structurally. The description adds that a 'signed XDR-1 receipt' is produced, which is useful beyond the annotations, but it does not say how an invalid PIN is reported (error vs. boolean result) or what signing entails.
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 with no filler, leading with the validation action and format before the business context. Slightly dense but every clause 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?
For a one-parameter validator with an output schema, the description covers format, business purpose and return artifact. The remaining gap is failure-mode behavior, which the output schema may partially address.
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 in both schema and description. The description nonetheless adds semantic detail beyond the schema's '11-character KRA PIN' by decomposing the structure into A/P prefix, 9 digits and checksum character.
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 Kenyan Revenue Authority Tax PIN structure') and spells out the exact format (A/P + 9 digits + checksum). This clearly separates it from sibling format validators like ein_format_check or company_number_format.
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 names the triggering contexts: 'Required for M-Pesa B2B disbursement and Kenyan remote agency invoicing.' That is real when-to-use guidance, though it gives no when-not conditions or pointers to alternatives such as batch_validate for bulk PIN checks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
latam_supplier_checkLatAm Supplier Verification PackARead-onlyIdempotentInspect
One call, one receipt: Brazilian CNPJ + Mexican RFC + settlement IBAN. Deterministic checks for the two largest LatAm corridors in one paid call.
| Name | Required | Description | Default |
|---|---|---|---|
| rfc | No | Mexican RFC (optional) | |
| cnpj | No | Brazilian CNPJ (optional) | |
| iban | No | Settlement IBAN (optional) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| results | No | |
| verdict | No | |
| corridor | No | |
| all_valid | Yes | |
| next_steps | No | |
| checked_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, so the bar is lower, and the description still adds genuinely new behavioral facts: the call is paid, results are deterministic, and you get a single combined receipt rather than three responses. It does not say what happens if only one or none of the (all-optional) parameters is supplied.
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 value proposition front-loaded. 'One call, one receipt' is slightly promotional but serves to convey the bundling benefit quickly, so almost 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?
An output schema and annotations carry most of the load, but with zero required parameters the description should clarify whether a single identifier is a valid call or whether all three must be present to justify the paid invocation. Cost magnitude and partial-input behavior are 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 description coverage is 100%, so the schema already documents all three parameters and their optionality. The description restates the same three identifiers without adding format, validation, or interaction rules, 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?
Names the specific resource (a bundled supplier check over CNPJ + RFC + IBAN) and the verb (verify/check in one call). It is distinguishable from single-field siblings like cnpj_check and rfc_check because it explicitly frames itself as a combined pack, but it never names those siblings 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?
'In one paid call' implies the use case is consolidating multiple single-country checks, but the description never states when to prefer this over cnpj_check + rfc_check + iban_check, nor when a sibling like vendor_onboarding_pack or africa_supplier_check is the better fit. Usage is implied rather than specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lei_checkLEI Structure and Checksum CheckARead-onlyIdempotentInspect
Validate a 20-character LEI and MOD-97 check digits. No registry lookup, active-registration check or legal-entity identity verification.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | Yes | 20-character Legal Entity Identifier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint. The description adds meaningful behavioral context beyond that: despite openWorldHint=true, this is a pure offline format/checksum check with no external registry call, no registration-status lookup and no identity verification — a real clarification of the tool's actual 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?
Two sentences, zero waste, with the core action front-loaded and the scope exclusions immediately after. Nothing needs to 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 single-parameter validator with an output schema and full annotations, the description covers what is checked and what is explicitly out of scope. Only minor gaps remain (nothing on error/return signaling), which the output schema largely absorbs.
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 'lei' parameter is fully documented in the schema. The description reinforces the 20-character length and MOD-97 algorithm but adds no format or normalization 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 precise verb+resource: validating a 20-character LEI with MOD-97 check digits. The second sentence draws explicit boundaries ('No registry lookup, active-registration check or legal-entity identity verification'), which separates it from registry/identity siblings like sanctions_address_screen or vendor_onboarding_pack.
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 negative scoping ('No registry lookup, active-registration check or legal-entity identity verification') tells the agent exactly when this tool is insufficient, which is genuine routing guidance. It stops short of naming the alternative tool for those excluded cases, so it is not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pan_format_checkIndia Permanent Account Number (PAN) Format ValidatorARead-onlyIdempotentInspect
Deterministic validation of Indian Permanent Account Number (PAN) issued by CBDT / Income Tax Department with 4th-character entity type classification (Individual, Company, Firm, Trust, HUF).
| Name | Required | Description | Default |
|---|---|---|---|
| pan | Yes | 10-character PAN string (e.g. 'AAACP1234M') |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| scope | No | |
| valid | Yes | |
| reason | No | |
| country | No | |
| normalized | No | |
| entity_code | No | |
| entity_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds that validation is deterministic and that the 4th character encodes entity type, which is useful behavioral context. It does not explicitly state that this checks format only and does not confirm the PAN is active or registered with CBDT, which is an important distinction an agent would need.
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 front-loaded sentence that states the resource, issuer, validation nature, and the entity-type classification. There is no filler or 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?
An output schema exists, so return values need not be explained, and annotations cover the behavioral safety profile. The description is complete enough for an agent to call the tool correctly. The main residual gap is not clarifying that this is a pure format check rather than an existence or registration verification.
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 already documents the 10-character PAN string and provides an example. The description's mention of the 4th-character entity classification is relevant to interpreting the input but does not add parameter-level detail (e.g. format constraints, checksum expectations) beyond the schema. 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 names a specific verb (validation) and resource (Indian PAN issued by CBDT / Income Tax Department), and adds the 4th-character entity type classification, which distinguishes it from generic checks. It does not explicitly contrast with sibling validators (e.g. gstin_check, india_supplier_check), 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?
Usage is implied by the name and description: this is a deterministic format validation of a PAN string. There is no explicit guidance on when to use it versus alternatives or when not to use it (e.g. for verifying PAN existence or linking to a supplier).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pre_disbursement_guardCounterparty Risk IndicatorsARead-onlyIdempotentInspect
Check supplier tax and bank identifiers (IBAN, LEI, EU VAT, UK company number), domain-age evidence and country mismatch signals before vendor payment. Requires a preceding receipt hash. An advisory result is not verified identity, fraud clearance or authorization to release funds.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | ISO 17442 Legal Entity Identifier (optional). | |
| vat_number | No | EU VAT number (optional). | |
| vendor_domain | No | Vendor website domain or invoicing email address (optional). | |
| company_number | No | Official corporate registration number, e.g. UK Companies House 8 digits/chars (optional). | |
| recipient_iban | No | Recipient bank IBAN (optional). | |
| declared_country | No | 2-letter ISO country code where vendor claims to be registered (optional, e.g. 'GB', 'US', 'DE'). | |
| physical_address | No | Vendor physical office address (optional). | |
| prev_receipt_hash | No | Preceding verification receipt hash (may also be passed via X-PREV-RECEIPT-HASH header). | |
| invoice_amount_usd | No | Disbursement transaction amount in USD (optional). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| checks | No | |
| summary | No | |
| decision | Yes | |
| risk_level | Yes | |
| risk_score | Yes | |
| flags_triggered | No | |
| recommendations | No | |
| clear_to_disburse | Yes | |
| inspected_counterparty | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent hints, it discloses two things annotations cannot: the receipt-hash prerequisite and that the result is advisory — not verified identity, fraud clearance or release authorization. That is genuine expectation-setting about output trust level.
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 scope, the prerequisite and the disclaimer, and the resource checked is front-loaded. No filler, though the identifier list could be compressed.
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?
Output schema and annotations are rich, and the advisory disclaimer is helpful. But the description says a receipt hash is required while the schema declares zero required parameters, leaving the agent unsure what minimum input actually produces a useful 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 description coverage is 100%, so all nine parameters are already documented; the description only restates the identifier families at a high level. It adds no format, precedence or minimum-input 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+resource: it checks a named set of counterparty identifiers (IBAN, LEI, EU VAT, UK company number), domain-age evidence and country mismatch in a pre-payment context. That composite scope is distinguishable from single-identifier siblings like iban_check or lei_check, 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?
'before vendor payment' plus 'Requires a preceding receipt hash' gives a clear trigger and prerequisite. It does not say when to prefer the individual validators (iban_check, lei_check, vat_mod97_check) over this composite guard, so exclusion guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
receipt_verifyVerify any XDR-1 receipt — free, stateless, any issuerARead-onlyIdempotentInspect
Verifies a signed XDR-1 receipt from ANY x402 service: recomputes the canonical digest and recovers the signer, then compares it to the declared signer. Free forever — no account, no quota, no storage (stateless). A valid receipt proves the signer signed that tool call at that timestamp; it does NOT prove funds moved or any business claim.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt | Yes | The full XDR-1 receipt object: v, tool, tool_version, input_hash, output_hash, payer, recipient, amount, nonce, ts, tier, signer, signature (optional successor/stream_state). |
Output Schema
| Name | Required | Description |
|---|---|---|
| scope | No | |
| valid | No | |
| digest | No | |
| canonical | No | |
| declared_signer | No | |
| signer_recovered | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds genuinely useful non-annotation context: statelessness, no quota/account, and the crucial trust caveat that a valid receipt does NOT prove funds moved or any business claim. That semantic boundary is valuable behavioral disclosure beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: what it does, the operational guarantees, then the trust-boundary caveat. All front-loaded and every sentence earns its 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?
With an output schema present, return values need no explanation. The description covers scope (any issuer), cost (free), state (stateless), and the meaning/limits of a valid result — everything an agent needs 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 description coverage is 100% and the schema itself enumerates every receipt field with an example, so the description carries no extra parameter burden. 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 ('verifies a signed XDR-1 receipt from ANY x402 service') and describes the exact mechanism (recomputes canonical digest, recovers signer, compares to declared signer). This is clearly distinguishable from the sibling checking tools (iban_check, gstin_check, etc.).
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 'from ANY x402 service' and 'free forever', but the description never states when to use this versus batch_validate or the other validation siblings, nor any prerequisites or exclusions. Adequate but with a clear routing gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reconcileSettlement Reconciliation (ISO 20022 + NACHA)ARead-onlyIdempotentInspect
Deterministic reconciliation verdicts: pain.001/pacs.008 instructions vs camt.053 statements or NACHA ACH files, matched by end-to-end id and BigInt-exact amounts. Verdicts: SETTLED, UNPAID, AMOUNT_MISMATCH, DUPLICATE_PAYMENT, plus unmatched statement entries. Facts computed from the documents only — never inferred, never guessed. Returns signed XDR-1 receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| nacha_ach | No | NACHA ACH text (94-char records) instead of camt053_xml | |
| camt053_xml | No | camt.053 statement (or use nacha_ach) | |
| pacs008_xml | No | pacs.008/PIX instructions (or use pain001_xml) | |
| pain001_xml | No | pain.001 instructions (or use pacs008_xml) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only, open-world, idempotent annotations, the description adds strong behavioral context: matching is deterministic, based on end-to-end IDs and BigInt-exact amounts, facts are computed only from documents, and the tool returns a signed XDR-1 receipt. This tells the agent exactly how the tool behaves and why its verdicts can be trusted.
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 dense sentences with no wasted wording. It front-loads the core reconciliation purpose, then lists verdicts and receipt behavior, so an agent can grasp the tool's scope immediately.
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 complex reconciliation tool with four optional inputs, full schema coverage, annotations, and an output schema, the description is complete enough. It explains accepted document types, matching logic, verdict categories, and receipt generation without redundantly detailing return structure already covered by the 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 parameter already documents its role and alternatives (for example, nacha_ach instead of camt053_xml). The description adds useful matching semantics but does not provide additional parameter-level details beyond the schema, so the baseline 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 reconciliation purpose: comparing pain.001/pacs.008 instructions against camt.053 statements or NACHA ACH files. It names the exact document types, matching keys, and verdict categories, which clearly distinguishes it from sibling validation tools such as iso20022_validate.
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 by specifying the input combinations (pain.001/pacs.008 versus camt.053/NACHA), but it does not explicitly say when to choose this tool over alternatives or when not to use it. No exclusions or alternative tool names are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rental_listing_riskRental Listing Risk & Fraud EngineARead-onlyIdempotentInspect
Explainable tenancy fraud risk score evaluated across irreversible payment demands, off-platform pressure, stolen photos, and advance wire signals. Deterministic rule engine.
| Name | Required | Description | Default |
|---|---|---|---|
| urgency_pressure | No | Pressure to secure today. | |
| no_in_person_viewing | No | No viewing before payment. | |
| payment_irreversible | No | Paid via crypto/gift-card/wire-only. | |
| price_below_market_pct | No | How far below local market the rent is asked, in percent. | |
| photos_reverse_image_hit | No | Listing photos found elsewhere (stolen). | |
| contact_moves_offplatform | No | Pushed off the listing platform. | |
| landlord_abroad_cannot_meet | No | Landlord 'abroad', can't meet in person. | |
| identity_docs_requested_upfront | No | Full ID/bank docs demanded upfront. |
Output Schema
| Name | Required | Description |
|---|---|---|
| band | Yes | |
| tool | No | |
| flags | No | |
| scope | No | |
| risk_score | Yes | |
| flags_fired | No | |
| recommendation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, and openWorld behavior. The description adds useful behavioral context by calling the engine 'explainable' and 'deterministic,' which tells the agent the score is rule-based rather than probabilistic. It does not contradict any 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?
The description is two compact sentences with the core purpose and differentiating mechanism front-loaded. 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?
An output schema exists, so the description need not explain return values, and all parameters are fully documented in the schema. The description gives enough context about the risk-signal scope and deterministic rule-engine behavior, though it could mention usage boundaries more explicitly.
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 explains all eight parameters in detail. The description groups several signals conceptually, such as irreversible payment, off-platform pressure, stolen photos, and advance wire signals, but does not add syntax or mapping 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 names a specific output, 'tenancy fraud risk score,' and specifies the evaluated fraud signals, so the tool's purpose is clear. It does not explicitly distinguish itself from related sibling tools such as rental_verdict or rent_deposit_guard, 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?
The description explains what the tool does but gives no explicit when-to-use guidance, no prerequisites, and no comparison to sibling tools. An agent can infer that it is used for rental listing fraud assessment, but there is no stated usage policy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rental_verdictRental Risk SummaryARead-onlyIdempotentInspect
Combine deposit identifier checks with supplied country, viewing and listing indicators. Does not verify landlord identity, property ownership or safety of payment.
| Name | Required | Description | Default |
|---|---|---|---|
| deposit_iban | Yes | Deposit IBAN. | |
| landlord_lei | No | Landlord LEI (optional). | |
| property_country | No | Property country, ISO alpha-2. | |
| urgency_pressure | No | Pressure to secure the property today. | |
| landlord_company_no | No | Landlord UK company number (optional). | |
| no_in_person_viewing | No | No in-person or video viewing before payment. | |
| payment_irreversible | No | Payment demanded via crypto/gift-card/wire-only. | |
| deposit_before_viewing | No | True if a deposit is demanded before any viewing. | |
| price_below_market_pct | No | How far below local market the rent is asked, in percent. | |
| contact_moves_offplatform | No | Contact pushed off the listing platform. |
Output Schema
| Name | Required | Description |
|---|---|---|
| band | No | |
| tool | No | |
| flags | No | |
| scope | No | |
| summary | No | |
| verdict | Yes | |
| components | No | |
| risk_score | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are standard operational hints (readOnlyHint, idempotentHint). The description adds specific, high-level functional behavioral limits by clarifying that it focuses on risk indicators rather than comprehensive legal or safety verification of parties or assets.
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 uses two highly dense, perfectly phrased sentences. Every word contributes to defining the scope and limits of the tool, leaving no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters) and the wealth of sibling tools, this description successfully defines the tool's niche in the risk verification flow, clearly stating its input requirements and boundaries.
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%, establishing a baseline of 3. The description adds conceptual grouping by lumping IBAN checks, country data, viewing indicators, and listing factors into one cohesive workflow, which is a helpful semantic organization for the 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?
The description clearly states the tool's function is to 'Combine deposit identifier checks with supplied country, viewing and listing indicators' to provide a risk summary. It distinguishes itself from pure validator tools (like iban_check) by focusing on the holistic assessment.
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 provides explicit exclusion criteria, stating what the tool does not verify ('Does not verify landlord identity, property ownership or safety of payment'). This is crucial for preventing the agent from relying on this tool as a final vetting step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rent_deposit_guardRental Deposit Risk IndicatorsARead-onlyIdempotentInspect
Check deposit IBAN checksum and supplied country/viewing indicators. Rule-based risk signals only; no ownership verification, escrow protection or guarantee against theft.
| Name | Required | Description | Default |
|---|---|---|---|
| deposit_iban | Yes | IBAN the deposit would be paid to. | |
| property_country | No | ISO 3166-1 alpha-2 country of the property, e.g. DE. | |
| deposit_before_viewing | No | True if a deposit is demanded before any viewing. |
Output Schema
| Name | Required | Description |
|---|---|---|
| band | Yes | |
| tool | No | |
| flags | No | |
| scope | No | |
| risk_score | Yes | |
| flags_fired | No | |
| recommendation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/openWorldHint, and the description adds real context beyond them: the output is rule-based signals, not a verification of ownership and not escrow or theft protection. That explicitly caps what the agent can claim from a positive result, which is the key behavioral risk here. It does not discuss determinism of the checksum check or coverage gaps in the risk signals, keeping 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?
Two short sentences: the operation first, the limitation second. Nothing is repeated from the schema or annotations, and every clause earns its 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?
A read-only, three-parameter check with a full-coverage schema and an output schema, so return values need no explanation. The description covers scope and its limitations adequately. Only the absence of routing guidance to the related IBAN and rental tools leaves a small 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% with all three parameters explained, including the ISO 3166-1 alpha-2 example, so the schema carries the semantics. The description only adds the word 'checksum' for the IBAN and the notion of 'supplied' indicators, which is marginal value over 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 a specific verb ('Check') plus the exact inputs being evaluated: the deposit IBAN checksum and the supplied country/viewing indicators. An agent can distinguish it from generic siblings like iban_check because the resource is a rental deposit risk bundle. It stops short of naming a sibling it is not, so it does not reach 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 second sentence sets a clear boundary on what the result means ('Rule-based risk signals only; no ownership verification, escrow protection or guarantee'), which implies when not to rely on it. However, it never says when to choose this over iban_check, rental_listing_risk, or rental_verdict, so routing among near-neighbours 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.
rfc_checkMexico RFC Check (Registro Federal de Contribuyentes)ARead-onlyIdempotentInspect
Validate Mexican SAT RFC corporate (12-char) or individual (13-char) tax code and homoclave. Required for Mexican contractor invoicing and SPEI cross-border settlements. Returns signed XDR-1 receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| rfc | Yes | 12 or 13 character Mexican RFC (e.g. BBA830831LJ2). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and openWorld, so the safety profile is covered. The description adds genuine value beyond them by disclosing the business requirement driving the call and that a signed XDR-1 receipt is produced; it stops short of saying what an invalid RFC yields or whether a receipt is returned on failure, but the output schema covers return 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?
Three tight sentences: what is validated, why it matters, what comes back. Scope and format variants are front-loaded with no filler or repetition of the title.
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, annotation-rich tool with an output schema, the description supplies purpose, format variants, and business context. The only minor gap is error behavior on a malformed or invalid RFC, which the output schema likely handles.
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% (baseline 3), and the description goes further by mapping the two accepted lengths to corporate (12-char) versus individual (13-char) RFC forms and calling out the homoclave component, which the schema does not explain. That is meaningful semantic enrichment of the single 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?
Uses a specific verb (Validate) against a precisely scoped resource: Mexican SAT RFC, 12-char corporate vs 13-char individual, including homoclave. That specificity alone separates it from the many other country-identifier siblings (abn_check, cnpj_check, gstin_check) without needing to name 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?
States the concrete trigger context: required for Mexican contractor invoicing and SPEI cross-border settlements, which tells the agent when this check is mandated. It does not name alternatives or exclusions (e.g., when another country check is the right sibling), but the country scoping makes the choice largely self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sanctions_address_screenAddress Snapshot & Operator Policy ComparisonARead-onlyIdempotentInspect
Screen an EVM wallet address or ISO country code by exact comparison against the identified sanctions address snapshot and existing operator block policy. Current legal status is unknown; is_sanctioned is null. valid=false preserves a local block; valid=null never authorizes a transaction. Names are not screened. Missing, stale or incomplete evidence is explicit; no UN/EU coverage or sanctions clearance is provided.
| Name | Required | Description | Default |
|---|---|---|---|
| subject | Yes | EVM address (0x...) or ISO 3166-1 country code / jurisdiction name |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| scope | No | |
| valid | Yes | |
| reason | No | |
| subject | No | |
| match_type | No | |
| is_sanctioned | Yes | |
| blocklist_match | Yes | |
| snapshot_sha256 | No | |
| snapshot_status | No | |
| sanction_program | No | |
| screening_status | Yes | |
| current_legal_status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a read-only, idempotent, open-world lookup, but the description adds context annotations cannot: matching is exact (not fuzzy), the snapshot may be stale, missing evidence is surfaced explicitly, and the null semantics never authorize a transaction. Some of this (is_sanctioned, valid) may duplicate the output schema, which slightly dilutes the added value.
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 dense sentences, front-loaded with the screening action, and every sentence carries operational meaning (null semantics, exclusions, staleness). The telegraphic phrasing ('Current legal status is unknown; is_sanctioned is null') is compact at some cost to readability but wastes nothing.
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 annotations covering safety and an output schema covering return fields, the remaining burden is scope and trust caveats, and the description addresses them thoroughly (exact match, snapshot staleness, no UN/EU coverage, no clearance). The only unaddressed item is how authoritative or dated the snapshot is.
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 the single subject parameter, so the baseline is 3. The description contributes the important constraint that the comparison is exact and that names are not accepted, which sharpens how an agent should format the input, but it adds no format details beyond the schema's own '0x...' / ISO 3166-1 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 (screen) and resource (EVM address or ISO country code) and pins the method precisely: exact comparison against a named sanctions snapshot plus operator block policy. This clearly separates it from the many format-validator siblings (iban_check, lei_check, e164_check) that share a similar input shape, though it never names those siblings 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?
Explicit scope exclusions do the routing work: 'Names are not screened' and 'no UN/EU coverage or sanctions clearance is provided' tell an agent when this tool is insufficient. It lacks an explicit 'use X instead' pointer to a sibling for name-based screening, so a small inference gap remains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sedol_checkSEDOL Check (UK/Ireland Securities)ARead-onlyIdempotentInspect
Validate a UK/Ireland security identifier by its (1,3,1,7,3,9)-weight mod-10 checksum. Returns signed XDR-1 receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| sedol | Yes | 7-character SEDOL code. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, openWorldHint=true), and the description adds the checksum method plus a mention of a signed XDR-1 receipt. However, it does not describe failure behavior, error handling, or other behavioral traits beyond what annotations and the output schema provide, so it adds only moderate value.
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 compact sentence that front-loads the action and the identifier type, with no filler. Every phrase earns its place by specifying the resource and checksum method.
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 one-parameter validation tool with full schema coverage, annotations, and an output schema, the description is largely complete: it states what is validated, the method, and that a signed receipt is returned. The main gap is the absence of guidance on alternatives and invalid-input behavior, but those are minor given the tool's simplicity.
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 already has a clear schema description ('7-character SEDOL code'). The tool description adds no syntax, format, or validation detail beyond what the schema already states, 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 states a specific verb (Validate) and resource (UK/Ireland security identifier, i.e. SEDOL) and even names the exact checksum algorithm, making the operation unambiguous. It is clearly distinguishable from sibling validators such as isin_check and lei_check by the SEDOL-specific checksum and title context.
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 not say when to use this tool versus alternatives such as isin_check or other identifier validators, nor does it state any exclusions or prerequisites. Usage is only implicitly inferable from the purpose, so there is effectively no explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
simulate_spend_sentinelSimulate Spend Sentinel policy defense and delivery predicatesARead-onlyIdempotentInspect
Run synthetic prompt-injection halts, malformed-delivery rejection, and bounded-spend eligibility examples under AP2 envelopes. No live escrow, refund, facilitator or chain action occurs.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario | No | Simulation scenario: 'injection' (prompt attack), 'garbage' (bad subagent output), or 'provable' (verified settlement). Default 'injection'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | No | |
| tool | No | |
| scope | No | |
| valid | Yes | |
| status | No | |
| verdict | Yes | |
| scenario | Yes | |
| simulated | No | |
| telemetry | No | |
| action_taken | No | |
| is_synthetic | No | |
| settlement_recipient | No | |
| requested_amount_usdc | No | |
| actual_wallet_loss_usdc | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish read-only, idempotent, and open-world behavior. The description adds useful specific context by stating that no live escrow, refund, facilitator, or chain action occurs, which clarifies the simulation boundary beyond the annotation 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?
The description is two focused sentences: the first states what the tool does, and the second immediately bounds its effects. It is front-loaded and contains no redundant or filler language.
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 a rich output schema, complete parameter description, and safety annotations, the description provides enough context for correct invocation. It could say slightly more about when the simulation is appropriate, but the essential operational and safety context is present.
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 optional scenario parameter is fully documented in the schema, including its allowed values and default. The description mentions the scenario themes but does not add mapping or formatting details beyond what the schema already provides, so the high schema coverage supports a 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?
The description gives a specific verb and resource: it runs synthetic prompt-injection halts, malformed-delivery rejection, and bounded-spend eligibility examples. It clearly distinguishes this simulation tool from live escrow, refund, facilitator, or chain actions, so an agent can understand its role 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 simulation scenarios and the statement that no live actions occur, but the description does not explicitly say when to choose this tool, when not to, or which alternatives exist. With no close sibling tool, the implied context is adequate but not directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swift_bic_checkSWIFT/BIC Structure CheckARead-onlyIdempotentInspect
Check SWIFT/BIC structure and country code. Does not establish bank existence, active routing or beneficiary identity.
| Name | Required | Description | Default |
|---|---|---|---|
| bic | Yes | SWIFT/BIC code, 8 or 11 characters; spaces/dashes allowed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds genuinely useful scope disclosure: it is a structural/country-code check only and does not assert bank existence, live routing, or beneficiary identity. That is exactly the kind of limitation an agent needs before treating a pass as meaningful, though it says nothing about error behavior or partial matches.
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 short sentences, front-loaded with the affirmative scope and immediately followed by the exclusion. Every clause earns its place 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?
An output schema exists, so return-value detail is unnecessary in the description, and the single parameter is fully documented in the schema. The description covers purpose and limits adequately; the only minor gap is the absence of any pointer to complementary tools for the capabilities it disclaims.
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 required parameter, and the schema itself documents the 8-or-11-character format and tolerance for spaces/dashes. 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 (check) and resource (SWIFT/BIC structure and country code), which is enough to separate it from sibling validators like iban_check, ifsc_check, and lei_check. It does not explicitly name those siblings or contrast scope with them, 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 defines the tool's boundary via negation ('does not establish bank existence, active routing or beneficiary identity'), which implies the appropriate use case for pre-validation. However, it gives no positive when-to-use framing and names no alternative tool for the cases it disclaims, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
token_contract_riskToken contract facts (Base)ARead-onlyIdempotentInspect
Deterministic Base contract facts: ERC-20 metadata, proxy slots, owner(), privileged-function selectors and flags. Not a safety verdict. Result carries a signed receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Optional. Only 'base' (Base mainnet) is supported. | |
| address | Yes | Contract address on Base, 0x + 40 hex. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| block | No | |
| chain | No | |
| erc20 | No | |
| flags | Yes | |
| owner | No | |
| proxy | No | |
| scope | Yes | |
| valid | Yes | |
| reason | No | |
| address | Yes | |
| opcodes | No | |
| retryable | No | |
| flag_counts | No | |
| is_contract | Yes | |
| privileged_selectors | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds genuinely new context: 'Deterministic' (identical input yields identical output) and 'Result carries a signed receipt', which tells the agent the output is externally verifiable (relevant to receipt_verify). It stops short of explaining what the flags mean 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?
One compact sentence plus two short clauses, front-loaded with the deterministic-facts claim and immediately followed by the critical disambiguation and receipt note. No filler; every clause 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?
An output schema exists, so return values need no elaboration, and annotations cover the safety profile. The description adequately frames what the tool does and what it is not. A minor gap remains around how to read the selectors/flags, but overall it is complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single enum parameter is documented ('Only base is supported'), so the schema carries the semantics. The description adds no address format or chain detail beyond the schema, 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+resource (Base contract facts) and enumerates exactly what is returned: ERC-20 metadata, proxy slots, owner(), privileged-function selectors and flags. It also disambiguates from the misleading name by stating 'Not a safety verdict', which separates it from siblings like sanctions_address_screen or erc20_balance.
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 'Not a safety verdict' implies a usage boundary (don't use this for safety screening) but does not name an alternative sibling or state the positive condition that selects this tool over checking a balance or price. Usage 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.
tx_activityTx Activity & Contract DetectionARead-onlyIdempotentInspect
Outbound transaction count (nonce) and contract-or-EOA check for an address on Base. Result carries a signed receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | EVM address, 0x-prefixed. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| address | Yes | |
| tx_count | Yes | |
| is_contract | No | |
| first_funded_heuristic | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only/idempotent/open-world, and the description adds two traits beyond them: the chain scope (Base, which narrows the openWorldHint) and that the result carries a signed receipt, implying verifiability. It stops short of describing rate limits or failure modes, so it is good 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?
Two front-loaded sentences with no filler: the first carries the purpose and scope, the second the output trait. Efficient, though the receipt phrase is slightly terse and could be clearer.
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 an output schema present the description need not explain return values, and annotations carry the safety profile. Chain scope and the receipt trait round it out; only the absence of sibling routing guidance keeps it from being fully 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% and the single address parameter is fully documented ('EVM address, 0x-prefixed'). The description adds no format or constraint detail 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 verb+resource pair: outbound transaction count (nonce) and a contract-vs-EOA check for an address, scoped to Base. It is clear what the tool returns, though it does not explicitly differentiate itself from siblings like balance_check or token_contract_risk.
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 guidance, no prerequisites, and no mention of alternatives. The agent must infer that this is for checking activity level or whether an address is a contract versus balance/token tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uae_trn_checkUAE Tax Registration Number (TRN) Format ValidatorARead-onlyIdempotentInspect
Deterministic validation of UAE 15-digit Tax Registration Number (TRN) issued by the Federal Tax Authority (FTA) for VAT purposes.
| Name | Required | Description | Default |
|---|---|---|---|
| trn | Yes | 15-digit UAE TRN string (starts with 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| scope | No | |
| valid | Yes | |
| reason | No | |
| country | No | |
| trn_type | No | |
| authority | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so safety and repeatability are covered. The description adds that validation is 'deterministic' and ties the identifier to the FTA, but does not state error behavior or clarify whether this is format-only versus registry verification.
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, front-loaded sentence with zero filler. Every element (deterministic, 15-digit, FTA, VAT) earns its 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?
For a one-parameter format checker with an output schema and full annotation coverage, the description is largely complete. The minor gap is that it does not explicitly say 'format only, not registry/existence verification', which the title implies but the description leaves slightly 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%: the only parameter already documents '15-digit UAE TRN string (starts with 100)'. The description adds no syntax or format details 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 ('validation') and a precisely scoped resource: UAE 15-digit Tax Registration Number issued by the FTA for VAT. The country- and identifier-specific wording inherently distinguishes it from generic siblings like gulf_supplier_check or vat_mod97_check.
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 'for VAT purposes' implies the context in which to use the tool, but there is no explicit when-to-use/when-not guidance or named alternative (e.g., gulf_supplier_check for broader Gulf checks). Usage must be inferred from the identifier type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upi_vpa_checkIndia UPI Virtual Payment Address (VPA) ValidatorARead-onlyIdempotentInspect
Deterministic structural validation of an Indian UPI Virtual Payment Address (VPA / handle): local-part syntax, handle against a LOCAL list of accredited PSP handles (okhdfcbank, okaxis, paytm, ybl and others), and length rules. It is NOT a live registry lookup: no request leaves this worker, and an unlisted handle is reported as unrecognised rather than nonexistent. This does not establish that the VPA is registered, reachable or owned by anyone.
| Name | Required | Description | Default |
|---|---|---|---|
| vpa | Yes | UPI Virtual Payment Address (e.g. 'merchant@okhdfcbank', '9876543210@paytm') |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | |
| scope | No | |
| valid | Yes | |
| handle | No | |
| reason | No | |
| country | No | |
| username | No | |
| normalized | No | |
| accredited_psp | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'no request leaves this worker', indicating a local/offline validator, while annotations declare openWorldHint=true (open-world interaction). That is a direct contradiction, so the score is 1 and the contradiction is flagged. The otherwise useful detail about local list checking and unrecognised-vs-nonexistent semantics cannot overcome that conflict.
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 function and then the critical limitation. No filler, and the limitation is stated clearly.
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 deterministic validator with an output schema, the description covers purpose, limits, and semantics completely. The only issue is annotation consistency, not missing description content.
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 vpa parameter is already documented in the schema. The description adds meaning by explaining the validation dimensions (local-part syntax, PSP handle list, length rules) beyond the schema's example.
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: 'Deterministic structural validation of an Indian UPI Virtual Payment Address'. It states exactly what is checked (local-part syntax, handle against a local PSP list, length rules), so it is distinguishable from generic format validators among the siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when not to rely on it: not a live registry lookup, no request leaves the worker, unlisted handle means unrecognised rather than nonexistent, and it does not establish registration, reachability or ownership. It does not point to an alternative tool for live lookup, 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.
uscc_checkChina USCC Check (Unified Social Credit Code / 统一社会信用代码)ARead-onlyIdempotentInspect
Validate 18-character Chinese business registration and tax code using GB 32100-2015 ISO 7064 Mod-31-3 checksum. Required for B2B supply chain trade with Chinese manufacturers. Returns signed XDR-1 receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| uscc | Yes | 18-character Chinese Unified Social Credit Code (e.g. 91330100799655058B). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld, so the safety profile is covered. The description adds real value beyond that by disclosing the exact checksum algorithm used and that a signed XDR-1 receipt is produced, which hints at output provenance; it stops short of explaining failure behavior or what the signature guarantees.
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, each carrying distinct information: what is validated, the standard applied, the use case, and the return artifact. No filler and the identity of the tool is 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 an output schema present and annotations covering safety semantics, the description supplies the domain context an agent needs to select it. The only omission is what an invalid code yields, which the output schema presumably 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?
With one parameter at 100% schema coverage, the schema already documents the field name, length, and an example. The description reinforces the 18-character constraint and the checksum standard but adds no new parameter-level syntax or edge-case handling, 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 ('Validate') and a precisely scoped resource ('18-character Chinese business registration and tax code'), plus the governing standard (GB 32100-2015 ISO 7064 Mod-31-3). It is unmistakable against format-check siblings such as abn_check, cnpj_check, or gstin_check.
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 concrete usage context: required for B2B supply chain trade with Chinese manufacturers. It does not name an alternative or exclusion (e.g., how it differs from china_supplier_check), so the routing guidance 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.
vat_mod97_checkBelgian VAT MOD-97 CheckARead-onlyIdempotentInspect
Check the supported Belgian VAT format and MOD-97 checksum. BE only; not VIES, other EU VAT formats, registration status or tax compliance.
| Name | Required | Description | Default |
|---|---|---|---|
| vat_number | Yes | Belgian VAT id in the supported BE mod-97 format (BE prefix optional); not a VIES lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| valid | Yes | |
| reason | Yes | |
| country | No | |
| normalized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety/idempotency profile is covered. The description adds that this is an offline format/checksum validation rather than a VIES registration lookup, which is useful context, but the bulk of its content is negative scoping that overlaps usage guidelines.
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 tightly packed sentences with the positive purpose front-loaded and the exclusions following. Appropriately sized for a single-parameter validator, though the second sentence reads as a list of negatives rather than tightly structured prose.
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?
An output schema exists, so return values need no explanation, and the single parameter is fully documented in the schema. The description covers scope and exclusions completely; only the meaning of a failed check (versus a malformed input) is left to the 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?
With a single parameter and 100% schema description coverage, the schema already documents the vat_number field, its format and the optional BE prefix. The description's 'BE only' and VIES exclusion concern the tool's scope rather than adding 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 (Check) and resource (Belgian VAT format and MOD-97 checksum) and bounds the scope with 'BE only'. It distinguishes itself conceptually from other validators via 'not VIES, other EU VAT formats', though it does not name a specific sibling 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?
Gives clear negative guidance: 'not VIES, other EU VAT formats, registration status or tax compliance', which tells the agent when this tool is the wrong choice. It lacks an explicit positive statement of when to prefer it over a live registry lookup, but the exclusions are unusually complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vendor_onboarding_packVendor Identifier Check PackARead-onlyIdempotentInspect
Check supplied IBAN, LEI, Belgian VAT and UK company-number fields in one result. Structural checks only; no ownership, registry or fraud clearance.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | Vendor LEI (optional). | |
| iban | No | Vendor IBAN (optional). | |
| vat_number | No | Vendor VAT number, BE mod-97 (optional). | |
| company_number | No | Vendor UK company number (optional). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | No | |
| scope | No | |
| results | No | |
| verdict | No | |
| all_valid | Yes | |
| checked_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds genuinely useful scope context beyond them: it performs format/structure validation only and explicitly does not perform ownership, registry or fraud clearance, which is exactly the boundary an onboarding agent needs.
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, zero filler. The capability statement is front-loaded and the scope caveat follows immediately, earning each 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?
An output schema exists, so return-value detail is correctly omitted, and the scope limitation is stated. The one gap is that all four parameters are optional and the description never says whether any subset (or none) may be supplied or how partial input is handled.
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 four parameters are already documented individually (including 'BE mod-97' and 'UK company number'). The description restates the same field list without adding format, accepted-value, or partial-submission guidance, 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 ('Check supplied IBAN, LEI, Belgian VAT and UK company-number fields') and the phrase 'in one result' distinguishes it from the single-identifier siblings like iban_check, lei_check and vat_mod97_check. An agent can tell this is a bundled multi-field validator 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?
'Structural checks only; no ownership, registry or fraud clearance' is an explicit when-not boundary that tells the agent this tool cannot satisfy due-diligence screening. However, it never names an alternative for identifier-by-identifier checks, so the 'when to use this vs the individual siblings' decision 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
33 tool updates
- Added
aba_routing_check - Added
abn_check - Added
aci_trust_lookup - Added
africa_supplier_check - Added
china_supplier_check - Added
cnpj_check - Added
company_number_format - Added
create_b2b_invoice - Added
csp_commitment_create - Added
e164_check - Added
ean13_check - Added
ein_format_check - Added
get_b2b_invoice - Added
gulf_supplier_check - Added
isin_check - Added
iso20022_to_x402_intent - Added
iso20022_validate - Added
iso4217_currency_check - Added
japan_corp_check - Added
japan_supplier_check - Added
kra_pin_check - Added
latam_supplier_check - Added
pan_format_check - Added
reconcile - Added
rent_deposit_guard - Added
rental_listing_risk - Added
rental_verdict - Added
rfc_check - Added
sedol_check - Added
simulate_spend_sentinel - Added
uae_trn_check - Added
upi_vpa_check - Added
uscc_check
28 tool updates
- Added
balance_check - Added
batch_validate - Added
block_info - Added
calculate_fx_savings - Added
check_price - Added
clean_markdown_scraper - Added
context_distill - Added
crypto_ticker - Added
erc20_balance - Added
fx_spot_price_oracle - Added
gstin_check - Added
iban_check - Added
ifsc_check - Added
india_supplier_check - Added
instant_json_schema_verifier - Added
lei_check - Added
pre_disbursement_guard - Added
receipt_verify - Removed
reconcile - Added
sanctions_address_screen - Removed
screen_entity - Removed
solvency_check - Added
swift_bic_check - Added
token_contract_risk - Added
tx_activity - Added
vat_mod97_check - Added
vendor_onboarding_pack - Removed
verify_id
28 tool updates
- Removed
balance_check - Removed
batch_validate - Removed
block_info - Removed
calculate_fx_savings - Removed
check_price - Removed
clean_markdown_scraper - Removed
context_distill - Removed
crypto_ticker - Removed
erc20_balance - Removed
fx_spot_price_oracle - Removed
gstin_check - Removed
iban_check - Removed
ifsc_check - Removed
india_supplier_check - Removed
instant_json_schema_verifier - Removed
lei_check - Removed
pre_disbursement_guard - Removed
receipt_verify - Added
reconcile - Removed
sanctions_address_screen - Added
screen_entity - Added
solvency_check - Removed
swift_bic_check - Removed
token_contract_risk - Removed
tx_activity - Removed
vat_mod97_check - Removed
vendor_onboarding_pack - Added
verify_id
1 tool update
- Changed
pre_disbursement_guard2 fields changed- changed
Input schema / examplesPrevious value: -[ - { - "company_number": "01234567", - "declared_country": "GB", - "invoice_amount_usd": 4500, - "recipient_iban": "GB82WEST12345698765432", - "vendor_domain": "billing@acme-consulting.co.uk" - } -]New value: +[ + { + "company_number": "01234567", + "declared_country": "GB", + "invoice_amount_usd": 4500, + "prev_receipt_hash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "recipient_iban": "GB82WEST12345698765432", + "vendor_domain": "billing@acme-consulting.co.uk" + } +] - added
Input schema / properties / prev_receipt_hashAdded value: +{ + "description": "Preceding verification receipt hash (may also be passed via X-PREV-RECEIPT-HASH header).", + "type": "string" +}
1 tool update
- Changed
sanctions_address_screen9 fields changed- added
Output schema / properties / blocklist_matchAdded value: +{ + "type": [ + "boolean", + "null" + ] +} - added
Output schema / properties / current_legal_statusAdded value: +{ + "type": "string" +} - changed
Output schema / properties / is_sanctioned / typePrevious value: -"boolean"New value: +"null" - changed
Output schema / properties / sanction_program / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / screening_statusAdded value: +{ + "type": "string" +} - added
Output schema / properties / snapshot_sha256Added value: +{ + "type": "string" +} - added
Output schema / properties / snapshot_statusAdded value: +{ + "type": "string" +} - changed
Output schema / properties / valid / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / requiredPrevious value: -[ - "tool", - "valid", - "is_sanctioned" -]New value: +[ + "tool", + "valid", + "is_sanctioned", + "blocklist_match", + "current_legal_status", + "screening_status" +]
2 tool updates
- Changed
clean_markdown_scraper12 fields changed- changed
Input schema / examplesPrevious value: -[ - { - "html": "<h1>Protocol Overview</h1><p>Agentic non-custodial settlement gateway.</p><ul><li>Zero custody</li><li>Sub-cent fees</li></ul>" - } -]New value: +[ + { + "url": "https://example.com/" + } +] - changed
Input schema / properties / html / descriptionPrevious value: -"Raw HTML string to scrape and clean into pristine Markdown."New value: +"Raw HTML string to convert instead of fetching a URL (max 1 MiB). Provide exactly one of url or html." - added
Input schema / properties / urlAdded value: +{ + "description": "Public http(s) page to fetch (ports 80/443 only). Provide exactly one of url or html.", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "html" -]New value: +[] - added
Output schema / properties / codeAdded value: +{ + "type": "string" +} - added
Output schema / properties / fetched_onAdded value: +{ + "type": "string" +} - added
Output schema / properties / reasonAdded value: +{ + "type": "string" +} - added
Output schema / properties / retryableAdded value: +{ + "type": "boolean" +} - added
Output schema / properties / scopeAdded value: +{ + "type": "string" +} - added
Output schema / properties / sourceAdded value: +{ + "type": "object" +} - added
Output schema / properties / toolAdded value: +{ + "type": "string" +} - added
Output schema / properties / validAdded value: +{ + "type": "boolean" +}
- Added
token_contract_risk
23 tool updates
- First observed
balance_check - First observed
batch_validate - First observed
block_info - First observed
calculate_fx_savings - First observed
check_price - First observed
clean_markdown_scraper - First observed
context_distill - First observed
crypto_ticker - First observed
erc20_balance - First observed
fx_spot_price_oracle - First observed
gstin_check - First observed
iban_check - First observed
ifsc_check - First observed
india_supplier_check - First observed
instant_json_schema_verifier - First observed
lei_check - First observed
pre_disbursement_guard - First observed
receipt_verify - First observed
sanctions_address_screen - First observed
swift_bic_check - First observed
tx_activity - First observed
vat_mod97_check - First observed
vendor_onboarding_pack
Related MCP Connectors
Authorize and prove autonomous x402/AP2 agent payments with cryptographic receipts.
Paid agent work and paid verification, settled in USDC. Verified outcomes get signed receipts.
Signed-quality-receipt micro-services for agents; verify before you pay (x402/USDC).
Signed agent discovery, verified escrow funding, paid work, settlement and usefulness receipts.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI agents to create cryptographically verifiable receipts of their delegated work, with capabilities for multi-party approval and offline verification.1196 npmApache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to obtain independent, Ed25519-signed receipts confirming real-world facts: whether a page is online, a domain is legitimate, an email address is deliverable, a heartbeat was declared, or a scheduled task actually ran. Each response includes a verifiable cryptographic receipt, so agents can prove to their users that an asserted outcome was observed by a neutral third party rather than self-attested.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to obtain an independent review of their drafts, returning a pass/fail verdict with specific issues and suggested fixes, plus a signed receipt. Payments are made per check over x402, with no account or API key needed.MIT
- AlicenseAqualityDmaintenanceCryptographic accountability for AI agents. Ed25519-signed receipts for every MCP tool call. Constraints, chains, AI judgment, invoicing, and local dashboard included.245 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.