Skip to main content
Glama

DPX — Institutional Cross-Border Settlement

Ownership verified

Server Details

AI-native stablecoin settlement rail replacing SWIFT for institutional cross-border payments. 14 tools covering settlement quotes, execution, ESG scoring, oracle status, fee verification, competitor comparison, rail health, investment context, and MPP-gated macro intelligence. Settles via Base mainnet USDC at ~1.385% all-in.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 61 of 71 tools scored.

Server CoherenceA
Disambiguation4/5

Most tools have clearly distinct purposes, especially within their domains (e.g., analytics, compliance, ESG, forecasting). However, a few tools like route and stability.stablecoin_route or settlement.quote and fx.cost_certainty may cause confusion despite distinct descriptions, and the large number of intelligence tools (cascade, aftershock, contagion, etc.) could lead to misselection without careful reading.

Naming Consistency3/5

Naming follows a domain prefix pattern (e.g., agent.kya_register, settlement.quote, esg.score), which provides some structure. However, inconsistencies exist: some tools use underscores (batch_settle, flow_check), others are single words (route), and the mix of verb_noun and noun_verb styles (e.g., compliance.pep_screen vs market.fx) reduces predictability.

Tool Count3/5

At 71 tools, the server is very broad in scope, covering compliance, ESG, forecasting, intelligence, treasury management, and more. While each tool seems justified for the complex institutional domain, the sheer number may overwhelm agents and makes the set feel bloated. A more focused scope or tighter tool grouping would improve appropriateness.

Completeness4/5

The tool surface is remarkably comprehensive for cross-border settlement, covering end-to-end workflow from quoting, FX analysis, compliance screening, ESG scoring, forecasting, and multiple payment rails (Mercury, Ramp, SWIFT). Minor gaps exist (e.g., no tool to update a settlement after execution), but core operations are well-covered, and the addition of integration and audit trails enhances completeness.

Available Tools

83 tools
agent.kya_registerAInspect

KYA — Know Your Agent. Three-tier registration model — compliance burden scales with settlement risk, no documents ever required. ANONYMOUS: agent name only, $1K/day cap, instant. REGISTERED: add ownerEntity + ownerEmail (self-attested, no verification), $25K/day cap, instant. VERIFIED: add ownerLei (active GLEIF LEI) — DPX calls the public GLEIF API, confirms ACTIVE status, and grants VERIFIED instantly. No documents, no manual review; LEI issuers (LOUs) have already done identity verification and DPX inherits it. VERIFIED agents get institutional caps (governed by mandate), FATF R.16 attestation on every settlement, and full AP2 mandate support. Legal basis: FATF R.16 originator = owner entity (not the agent); MiCA Art. 45/72 accepts LEI; GENIUS Act satisfied by entity attestation.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable name for this agent.
mandateNoOptional AP2-compatible spend mandate (REGISTERED/VERIFIED only). Caps are clamped to tier limits for REGISTERED agents.
ownerLeiNo20-char GLEIF LEI. Providing a valid active LEI instantly grants VERIFIED tier — no documents. Get your LEI at gleif.org.
frameworkNoAgent framework: "claude", "gpt-4o", "gemini", "custom", etc.
protocolsNoSupported protocols: ["x402", "ap2", "mcp", "a2a"].
publicKeyNoOptional public key for credential signature verification.
ownerEmailNoContact email. Required for REGISTERED tier ($25K/day cap). Self-attested, not verified.
ownerEntityNoOrganization or person that owns/operates this agent. Required for REGISTERED tier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
agentIdNoUnique agent identifier (agt_...). Store this.
kyaLevelNo
kyaScoreNoTrust score 0–100.
tierCapsNomaxNotionalUsd and dailyCapUsd effective for this agent.
tierNoteNoExplanation of tier and how to upgrade.
leiVerifiedNotrue if LEI was confirmed via GLEIF API.
leiEntityNameNoLegal name from GLEIF record (VERIFIED only).
Behavior4/5

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

Annotations already indicate it is not readOnly (write operation), not idempotent, and not destructive. The description adds significant behavioral context: no documents required, instant tier grants for ANONYMOUS/REGISTERED, VERIFIED tier via GLEIF API call, caps clamped to tier limits, and no manual review. No contradictions with annotations.

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

Conciseness5/5

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

The description is a single, well-organized paragraph that wastes no words. It front-loads the model name ('KYA — Know Your Agent') and then systematically covers each tier, requirements, caps, and legal basis. Every sentence adds essential information, making it both concise and informative.

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

Completeness4/5

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

Given the tool's complexity (8 parameters, nested mandate object, tier logic, external LEI verification), the description is comprehensive. It explains all key behaviors: tier requirements, caps, legal references, and the verification mechanism. The existence of an output schema (not shown) likely covers return value details, but the description does not mention error cases, which is a minor gap.

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

Parameters4/5

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

Schema description coverage is 100%, with detailed field descriptions. The tool description adds semantic value by explaining how parameters map to tiers (e.g., ownerEntity/ownerEmail required for REGISTERED, ownerLei for VERIFIED) and how the mandate behaves (caps clamped). This ties the parameters to the tier model beyond the individual schema descriptions.

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

Purpose5/5

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

The description explicitly states 'KYA — Know Your Agent. Three-tier registration model' and details the specific tiers (ANONYMOUS, REGISTERED, VERIFIED). This clearly identifies the tool as an agent registration function, distinct from sibling tools like agent.kya_verify and agent.mandate_create, which handle verification and mandate creation respectively.

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

Usage Guidelines4/5

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

The description provides clear context for when to use each registration tier by outlining requirements and caps (e.g., 'ANONYMOUS: agent name only, $1K/day cap, instant'). It implicitly tells users when to choose a higher tier (higher caps require more info). However, it does not explicitly exclude alternatives or contrast with sibling tools (e.g., when to use kya_verify instead of re-registering).

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

agent.kya_verifyA
Read-only
Inspect

Verify a registered DPX agent and receive a signed 1-hour credential. Returns KYA level, effective spend caps (tier or mandate), owner verification status, mandate active status, and FATF R.16 compliance attestation. Attach credential.signature as X-Agent-Credential header and agentId as X-Agent-Id header on DPX /settle requests — enables mandate enforcement, per-agent audit trail, and FATF attestation. Credential expires in 1 hour; call again to refresh before expiry.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentIdYesAgent ID from agent.kya_register (agt_...).

Output Schema

ParametersJSON Schema
NameRequiredDescription
mandateNoActive mandate if present, null if expired.
kyaLevelNo
kyaScoreNo
verifiedNo
credentialNoagentId, issuedAt, expiresAt, mandateId, attestation (kyaLevel, ownerVerified, mandateActive, fatfCompliant, dailyCapUsd, maxNotionalUsd), signature
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by disclosing the credential expiration (1 hour), the requirement to attach headers, and the specific return fields. There is no contradiction with annotations. The description provides behavioral context beyond the annotations, such as the need to refresh and the effect on /settle requests.

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

Conciseness5/5

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

The description is three sentences: first sentence states purpose, second lists return values, third gives usage instructions and expiry. It is front-loaded, efficient, and every sentence provides essential information without redundancy. No wasted words.

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

Completeness4/5

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

Given the tool's simplicity (1 parameter, output schema present, annotations), the description covers purpose, return values, header attachment, and refresh requirement. It does not mention error cases or prerequisites (e.g., agent must be registered), but the output schema likely handles errors. Overall, it is sufficiently complete for its complexity.

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

Parameters3/5

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

Schema coverage is 100% with one parameter (agentId) described in the schema as 'Agent ID from agent.kya_register (agt_...).' The description repeats this same information and adds no new meaning beyond the schema. With high coverage, the baseline is 3, and the description does not elevate it.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Verify a registered DPX agent and receive a signed 1-hour credential.' It uses a specific verb ('Verify') and resource ('registered DPX agent'), and the return values are enumerated. The sibling list includes agent.kya_register (registration) and agent.mandate_create (mandate creation), which are distinct; the description implies this is for agents already registered, so it distinguishes itself.

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

Usage Guidelines4/5

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

The description explains when to use the tool: it produces a credential that must be attached to DPX /settle requests, and it states 'call again to refresh before expiry.' This provides clear usage context. However, it does not explicitly contrast with other tools like agent.kya_register or provide scenarios where it should not be used, so it misses some exclusion guidance.

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

agent.mandate_createAInspect

Create or update an AP2-compatible spend mandate for a REGISTERED or VERIFIED DPX agent. Sets per-agent settlement constraints: max notional per settlement, daily cap, optional counterparty whitelist (LEIs or wallets), allowed currency pairs, ESG floor, and expiry. ANONYMOUS agents cannot hold mandates — register with ownerEntity + ownerEmail first. REGISTERED agents have mandate caps clamped to their tier limit ($25K). VERIFIED agents (GLEIF LEI confirmed) set their own caps with no platform ceiling. Mandate is AP2-formatted for interoperability with Google Agent Payments Protocol.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentIdYesAgent ID from agent.kya_register.
esgFloorNoMin counterparty ESG score (0 = no floor).
issuedByNoOrganization issuing this mandate.
expiresAtNoUnix timestamp for mandate expiry.
dailyCapUsdYesMax USD per calendar day (UTC).
currencyPairsNoAllowed pairs e.g. ["USD|EUR"]. Empty = any pair.
maxNotionalUsdYesMax USD per single settlement.
counterpartyWhitelistNoLEIs or wallet addresses. Empty = any counterparty.

Output Schema

ParametersJSON Schema
NameRequiredDescription
agentIdNo
mandateNoFull mandate object.
mandateIdNoUnique mandate ID (mnd_...).
ap2CompatibleNo
effectiveCapsNoActual caps after tier clamping.
Behavior4/5

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

Annotations indicate readOnlyHint=false, which is consistent with a write operation. The description goes beyond annotations by explaining tier-based cap clamping (REGISTERED $25K, VERIFIED no ceiling), expiry, and AP2 formatting. This adds significant behavioral context not available in annotations alone.

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

Conciseness5/5

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

The description is a single dense paragraph, front-loading the core purpose. Every sentence adds value, no fluff. It efficiently communicates constraints, prerequisites, and interoperability.

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

Completeness5/5

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

Given 8 parameters, 3 required, and existing output schema, the description covers agent eligibility, tier caps, counterparty list, currency pairs, ESG floor, and expiry. It is complete for a complex financial tool, leaving no major gaps in context.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds meaning by explaining how parameters relate to agent tiers (e.g., maxNotionalUsd clamped for REGISTERED, no ceiling for VERIFIED), which enriches the schema descriptions.

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

Purpose5/5

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

The description clearly states the tool creates or updates an AP2-compatible spend mandate for registered or verified DPX agents. It uses specific verbs ('Create or update') and resource ('spend mandate'), and differentiates from siblings like reg, verify, settle by focusing on mandate setup constraints.

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

Usage Guidelines4/5

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

The description provides clear context on when to use (for registered or verified agents) and when not (anonymous agents), and includes prerequisites (register with ownerEntity+ownerEmail). However, it does not explicitly name sibling tools as alternatives, which is a minor gap.

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

analytics.overviewA
Read-only
Inspect

Get live DPX performance analytics. Returns current stability score, ESG composite scores, live fee breakdown, oracle health across all data sources, and a settlement readiness assessment. Use for dashboards, reporting, and AI-driven monitoring of protocol health.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
feesNo
esgScoreNoProtocol ESG composite score 0–100
timestampNoISO 8601 analytics timestamp
oracleHealthNoHealth status per oracle data source
stabilityScoreNoCurrent oracle stability score 0–100
settlementReadyNoTrue if conditions are suitable for settlement
Behavior4/5

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

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds value by specifying the exact data fields returned (stability score, ESG composite, fee breakdown, oracle health, settlement readiness) and emphasizing the 'live' nature. This is sufficient beyond the annotations, though it could mention caching or refresh behavior.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the primary purpose, and wastes no words. Every sentence adds value: the first explains what the tool returns, the second states when to use it.

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

Completeness5/5

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

Given the tool has no parameters and an output schema exists (not shown but referenced), the description covers the main return components comprehensively. It is fully adequate for an agent to understand the tool's purpose and output without needing further elaboration.

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

Parameters4/5

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

The tool has zero parameters, and schema description coverage is 100%. The description is not required to explain parameters, but it still provides context for what the output will contain. A score of 4 reflects the baseline for no-parameter tools where the description adds value beyond the schema.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('live DPX performance analytics'), and lists concrete components (stability score, ESG composites, fee breakdown, oracle health, settlement readiness). This clearly distinguishes it from sibling tools that target narrower metrics (e.g., dpx.metrics, esg.score, oracle.stability).

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

Usage Guidelines4/5

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

The description explicitly states its intended use cases: 'Use for dashboards, reporting, and AI-driven monitoring of protocol health.' This gives clear context for when to invoke it. However, it does not mention when not to use it or directly name alternative tools for more granular queries, which would strengthen the guidance.

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

batch_settleAInspect

Submit multiple settlements in a single call. Runs all settlements concurrently — one failure does not block others. Returns a summary (total/succeeded/failed) and per-item results mirroring what POST /settle would return. Maximum 50 per batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
settlementsYesArray of settlement request objects (same schema as the settle tool)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsNo
summaryNo
Behavior5/5

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

The description adds critical behavioral context beyond the annotations: concurrency, non-blocking failure, and the structure of the response (summary + per-item results). Annotations are minimal (readOnlyHint=false, etc.), so the description fully shoulders the transparency burden.

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

Conciseness5/5

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

Three sentences, zero wasted words. The first sentence states the purpose, the second explains behavior, the third describes the output and constraints. Every sentence earns its place.

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

Completeness5/5

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

Given the tool's complexity (batch operation with nested objects), the description covers purpose, concurrency, failure handling, response summary, and max size. The presence of an output schema further reduces the need for return value details. The description is complete and actionable.

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

Parameters5/5

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

Although the input schema has 100% coverage (parameter 'settlements' described), the description adds significant meaning: concurrency semantics, failure handling, response shape, and batch limit. This goes well beyond the schema definition.

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

Purpose5/5

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

The description starts with a clear verb+resource: 'Submit multiple settlements'. It immediately distinguishes this tool from single-settlement tools by its batch nature. The purpose is specific and unambiguous.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool (multiple settlements), how it behaves (concurrent, failure isolation), and includes a hard limit ('Maximum 50 per batch'). While it does not name sibling tools, the purpose alone makes the use case clear.

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

card.positionsA
Read-onlyIdempotent
Inspect

Plan treasury settlement for a crypto card program. Accepts net positions per corridor (e.g. USD-BRL: $2.3M, USD-EUR: €450K) and returns an optimal settlement plan — which corridors to settle now vs. hold, which stablecoin to use per corridor, and estimated all-in fee. No settlement is executed. Call this before card.settle to review the plan. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
positionsYesArray of net positions. Each: { corridor: "USD-BRL", netAmountUsd: 2300000, recipientAddress?: "0x..." }
settlementDateNoSettlement date ISO string (defaults to today UTC). E.g. "2026-08-09".
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable context by explicitly stating 'No settlement is executed' and describing the output format (optimal plan). No contradiction with annotations.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the primary purpose. Each sentence earns its place: purpose, input/output specifics, and usage guidance plus cost indication. No fluff or redundancy.

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

Completeness5/5

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

There is no output schema, but the description explicitly lists what the tool returns: 'which corridors to settle now vs. hold, which stablecoin to use per corridor, and estimated all-in fee.' It also gives input examples and clarifies no execution occurs. This is complete for a read-only planning tool with strong annotations.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters are already well-documented. The description's example ('USD-BRL: $2.3M, USD-EUR: €450K') illustrates the positions format but does not add semantics beyond the schema, which includes the field names and example object.

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

Purpose5/5

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

The verb 'Plan' and resource 'treasury settlement for a crypto card program' are specific and actionable. It explicitly distinguishes itself from card.settle by stating 'Call this before card.settle to review the plan', and it lists the concrete output (corridors, stablecoins, fee).

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

Usage Guidelines4/5

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

The description clearly states when to use this tool: 'Call this before card.settle to review the plan.' It also clarifies the non-execution behavior ('No settlement is executed'), preventing misuse. It does not enumerate alternatives like batch_settle or settlement.quote, but the primary sibling is addressed.

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

card.settleAInspect

Execute treasury settlement for a crypto card program. Takes the same positions array as card.positions but executes all settlements via DPX batch — compliance-gated, oracle-priced, stablecoin-routed. Each position requires a recipientAddress. Use sandbox:true for testing. Returns per-corridor settlement results and a summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNotrue = test mode, no on-chain execution. Default true — set false only for live execution.
positionsYesArray of net positions. Each: { corridor: "USD-BRL", netAmountUsd: 2300000, recipientAddress: "0x..." }. recipientAddress is required for every position.
Behavior4/5

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

The description adds valuable behavioral context beyond the annotations: compliance-gated, oracle-priced, stablecoin-routed execution, and sandbox default behavior. Annotations declare destructiveHint=false but the description clarifies that live execution only occurs with sandbox:false, aligning with the annotation. No contradictions found.

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

Conciseness4/5

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

The description is a single paragraph of moderate length covering essential points. It is efficient with no wasted words, though a slightly more structured layout (e.g., bullet points) could improve scanability.

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

Completeness4/5

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

Given no output schema, the description appropriately mentions return value type (per-corridor results and summary). It covers purpose, parameters, execution path, and sandbox mode. Minor gaps: missing error conditions, prerequisites (e.g., card.positions availability) and relationship to compliance checks.

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

Parameters4/5

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

Schema description coverage is 100%, and the schema already provides structured parameter descriptions. The description adds extra context: the positions array format aligns with card.positions, and recipientAddress is required per position. This adds value beyond the schema without redundancy.

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

Purpose4/5

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

The description clearly states the verb 'execute treasury settlement' and the resource 'crypto card program'. It references the sibling tool card.positions to define input structure, distinguishing itself by noting the execution path via DPX batch. However, it does not explicitly differentiate from similar settlement tools like batch_settle or settlement.execute, which slightly reduces clarity.

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

Usage Guidelines3/5

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

The description implies usage context by stating it takes the same positions as card.positions and mentions sandbox mode for testing. However, it provides no explicit guidance on when to use this tool versus alternatives (e.g., batch_settle, settlement.execute), and lacks 'when not to use' or prerequisite conditions.

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

compliance.pep_screenA
Read-onlyIdempotent
Inspect

Screen an individual by name against the OpenSanctions PEP (Politically Exposed Person) dataset. PEPs include heads of state, senior government officials, senior executives of state-owned enterprises, senior politicians, senior military officers, judicial officials, and their close associates and family members. Returns match confidence, position/role, nationality, related entities, and an overall risk level (HIGH / MEDIUM / LOW / NONE). HIGH or MEDIUM matches require Enhanced Due Diligence (EDD) per FATF Recommendations 12 and 13 before settlement. Optionally filter by country.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesFull name to screen (e.g. "Mario Draghi").
countryNoISO-2 country code to narrow the search (e.g. "IT"). Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
matchedNo
matchesNoPer match: caption, datasets, position, nationality, birthDate, relatedEntities, riskLevel, matchScore
overallRiskNo
totalMatchesNo
fatfComplianceNoEDD required flag, FATF R.12/13 attestation, note
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive. The description adds meaningful context: the data source (OpenSanctions), the risk level categories, and the compliance implication (EDD requirement). This goes beyond the annotation basics without contradicting them.

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

Conciseness4/5

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

The description is moderately concise, covering key aspects in three sentences. It front-loads the main action and purpose, then provides details on output and compliance implications. It could be slightly tighter by removing redundant phrases, but overall it's efficient.

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

Completeness5/5

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

Given the tool's moderate complexity, the description covers all essential aspects: purpose, data source, output details, risk levels, and regulatory implications. The output schema exists, so return values are already specified. This description is complete and sufficient for an agent to decide and invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds the example 'Mario Draghi' and the ISO-2 country code format, but these are minor enrichments. The baseline 3 is appropriate since the schema already covers the semantics.

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

Purpose5/5

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

The description clearly states it screens an individual by name against the OpenSanctions PEP dataset, lists the types of PEPs included, and specifies the output (confidence, role, nationality, related entities, risk level). This distinguishes it from compliance.ubo_chain and regulatory_calendar by focusing on PEP screening specifically.

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

Usage Guidelines4/5

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

It provides clear context on when to use the tool (for PEP screening) and specifies that HIGH or MEDIUM matches require EDD per FATF recommendations, implying a compliance workflow. However, it does not explicitly state when not to use it or mention alternatives like ubo_chain for beneficial ownership checks.

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

compliance.regulatory_calendarA
Read-onlyIdempotent
Inspect

Returns a structured calendar of upcoming and in-effect compliance obligations across MiCA (EU crypto-asset markets regulation), SFDR (Sustainable Finance Disclosure Regulation), CSRD (Corporate Sustainability Reporting Directive), the US GENIUS Act (payment stablecoin framework), and FATF Recommendations 15/16. For each event: framework, jurisdiction, requirement summary, effective date, impact level, and article reference. Also returns a DPX alignment section mapping each framework to the specific DPX endpoints that satisfy it. Use this before settlement workflow design, compliance gap analysis, or regulatory reporting.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
inEffectNoCurrently active requirements, most recent first
upcomingNoEvents not yet in effect, sorted by effective date ascending
dpxAlignmentNoPer-framework mapping to DPX endpoints that satisfy each obligation
Behavior4/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds value by detailing the output structure (events with fields and a DPX alignment section), which goes beyond the annotations. No contradictions.

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

Conciseness5/5

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

The description is concise and well-structured, with a clear first sentence stating the purpose, followed by details on output fields and a DPX alignment section. Every sentence adds value, and there is no redundancy.

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

Completeness5/5

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

Given the tool has no parameters, is read-only, and has an output schema, the description is complete. It explains the content of the output and provides use cases. The output schema handles return value details, so no further explanation is needed.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4 per the rubric. The description adds no parameter information (none needed) but compensates by explaining the output structure, which is semantically useful.

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

Purpose5/5

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

The description clearly states the tool returns a structured calendar of compliance obligations, listing specific regulations (MiCA, SFDR, CSRD, GENIUS Act, FATF) and the fields per event. It differentiates itself from sibling tools like compliance.pep_screen by focusing on a calendar of obligations for regulatory planning.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this before settlement workflow design, compliance gap analysis, or regulatory reporting,' providing clear guidance on when to use the tool. It does not mention when not to use it or directly name alternatives, but the context is sufficient.

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

compliance.ubo_chainA
Read-onlyIdempotent
Inspect

Trace the beneficial ownership chain for any legal entity up to 3 levels deep using GLEIF relationship records, then screen every node in the chain against the OpenSanctions consolidated sanctions list (OFAC SDN, EU, UN, UK OFSI). Returns chain structure (SUBJECT → DIRECT_PARENT → ULTIMATE_PARENT), per-node sanctions status, LEI lapse flags, overall CLEAR / REVIEW_REQUIRED / BLOCKED verdict, and FATF R.16 beneficial ownership compliance attestation. Required for correspondent banking due diligence, FATF R.12/13 UBO identification, and MiCA Article 72 counterparty risk management.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiYes20-character GLEIF LEI of the entity to trace (e.g. "2594007XIACKNMUAW223").
deepNoSet true to attempt 3-level traversal including intermediate nodes. Default false (direct + ultimate parent only).

Output Schema

ParametersJSON Schema
NameRequiredDescription
chainNoPer-node: level, role, lei, entityName, country, leiStatus, sanctions (matched, score, datasets), riskFlag
fatfR16NoFATF R.16 beneficial ownership compliance attestation
riskFlagsNoNodes with sanctions hits or lapsed LEIs
chainDepthNo
overallStatusNo
ultimateBeneficialOwnerNolei, entityName, country, leiStatus of the UBO
Behavior5/5

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

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds significant behavioral details: traversal depth, specific sanctions lists (OFAC SDN, EU, UN, UK OFSI), return structure (chain, sanctions status, LEI lapse, verdict, FATF attestation). No contradictions.

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

Conciseness5/5

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

The description is a single paragraph of four sentences, front-loaded with the primary action. Every sentence provides essential information without redundancy. It is appropriately sized for the complexity.

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

Completeness5/5

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

Given the tool's complexity, the description covers the purpose, methodology, output structure, and compliance use cases. It mentions all key return fields (chain, status, flags, verdict, attestation). The output schema exists, so the description does not need to repeat every field.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for both parameters (lei, deep). The description adds context by explaining the 'deep' parameter's effect (3-level vs. direct+ultimate) and implying the lei format. This adds value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool traces the beneficial ownership chain up to 3 levels deep and screens nodes against sanctions lists. It specifies the verb 'trace' and the resource 'beneficial ownership chain', and distinguishes itself from siblings like compliance.pep_screen by focusing on UBO chain and sanctions.

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

Usage Guidelines4/5

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

The description explicitly lists required use cases: correspondent banking due diligence, FATF R.12/13 UBO identification, and MiCA Article 72 risk management. It does not mention when not to use or alternatives, but the context is strong enough for an agent to decide.

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

compute.costA
Read-onlyIdempotent
Inspect

Get a model recommendation for a task type without running inference. Returns the best free model for the task, its strengths and speed tier, and a list of alternatives. Use this when an agent needs to select a model before committing to inference, or to surface model selection logic to a human. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesDescription of the task — e.g. "summarize a financial document", "write Python code", "translate from French", "reason through a math problem".
speedNotrue = prefer fastest model over most capable. Default false.
Behavior4/5

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

Annotations already declare read-only and non-destructive behavior. The description adds valuable behavioral context: it returns the 'best free model,' its 'strengths and speed tier,' and 'a list of alternatives,' and notes it is 'Free.' This clarifies the tool's output and cost implications beyond the annotations.

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

Conciseness5/5

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

The description is three concise sentences. Each sentence adds distinct value: what the tool does, what it returns, and when to use it. No redundant or filler content.

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

Completeness5/5

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

Given the tool's simplicity (2 params, no output schema), the description is complete. It explains the returned data (strengths, speed tier, alternatives), the use case, and the 'free' aspect. No critical information appears missing.

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

Parameters3/5

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

Schema coverage is 100% for both parameters ('task' and 'speed'), so the schema already documents them. The description mentions 'task type' and output 'speed tier' but does not add new parameter-specific meaning beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get a model recommendation for a task type without running inference.' It specifies the resource (model recommendation) and the action (get), and differentiates from inference-related siblings like compute.route by emphasizing 'without running inference.'

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

Usage Guidelines4/5

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

Explicit use cases are provided: 'Use this when an agent needs to select a model before committing to inference, or to surface model selection logic to a human.' This implies the tool is not for actually running inference, but it does not explicitly name sibling alternatives or state 'when not to use' beyond the purpose phrasing.

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

compute.modelsA
Read-onlyIdempotent
Inspect

List all AI models available through DPX Compute. All models are free-tier (no token cost) — routed via OpenRouter. Returns model IDs, provider, capability strengths, context window, and speed tier. Use this before compute.route to understand what models are available and pick the right one for a task. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context beyond annotations: 'All models are free-tier (no token cost) — routed via OpenRouter.' and 'Returns model IDs, provider, capability strengths, context window, and speed tier.' This informs the agent of cost and routing behavior not captured in annotations.

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

Conciseness5/5

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

Three concise sentences. The lead sentence states the purpose, the second provides key behavioral facts (free, OpenRouter, return fields), and the third gives usage guidance. No filler or redundancy; every sentence earns its place.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, no output schema), the description is complete: it covers what the tool does, what it returns, cost implications, and how to use it in the broader compute workflow. No essential information is missing.

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

Parameters4/5

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

The tool has zero parameters, and the schema is empty with 100% coverage (trivially). The baseline for zero parameters is 4. The description does not need to explain parameters, and it adds no misleading parameter information.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'List all AI models available through DPX Compute.' It also enumerates the return fields (model IDs, provider, capability strengths, context window, speed tier) and explicitly differentiates from compute.route by saying 'Use this before compute.route.'

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

Usage Guidelines5/5

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

The description gives explicit guidance: 'Use this before compute.route to understand what models are available and pick the right one for a task.' This clearly states when to use the tool relative to a sibling, fulfilling the when-to-use requirement and indicating its purpose in the workflow.

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

compute.routeAInspect

Route a task to the best available free AI model and run inference. DPX selects the model based on the task type (reasoning → DeepSeek R1, code → Llama 3.3 70B, multilingual → Qwen 2.5 72B, fast → Llama 3.1 8B), calls OpenRouter, and returns the completion. All models are free-tier — no token cost. Pay per call in USDC via x402. Use this when an agent needs to delegate a subtask to a language model without managing model selection or API keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesPlain-language description of what the model should do. Used for model selection.
messagesNoOptional. Full message array in OpenAI format [{role, content}]. If omitted, task is sent as a user message.
preferSpeedNotrue = use the fastest available free model regardless of task type. Default false.
Behavior5/5

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

The description discloses key behavioral traits beyond the annotations: model selection logic (reasoning → DeepSeek R1, code → Llama 3.3 70B, etc.), free-tier pricing with no token cost, payment via x402 in USDC, and integration with OpenRouter. These details give the agent a clear model of side effects and costs, which the annotations (only openWorldHint=true) do not provide.

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

Conciseness5/5

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

The description is concise: four sentences, each adding distinctive value. It starts with the primary action, then details the routing logic, cost model, and a clear use-case sentence. There is no filler or repetition of schema content.

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

Completeness5/5

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

Given the moderate complexity and lack of an output schema, the description covers the essential operational context: what the tool does, how models are chosen, cost (free-tier plus x402 payment), and what it returns ('returns the completion'). It is sufficiently complete for an agent to select and invoke the tool.

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

Parameters3/5

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

The input schema has 100% coverage for the 3 parameters, each with a description. The tool description adds examples of model selection but does not add new meaning to the parameters beyond the schema. Per the rubric, baseline 3 is appropriate when schema coverage is high.

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

Purpose5/5

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

The description opens with a specific verb-resource pair: 'Route a task to the best available free AI model and run inference.' This clearly identifies the tool's function and scope. It also distinguishes itself from sibling tools like compute.cost and compute.models by focusing on executing inference rather than just listing models or costs.

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

Usage Guidelines4/5

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

The description includes an explicit recommendation: 'Use this when an agent needs to delegate a subtask to a language model without managing model selection or API keys.' This clearly states when to use the tool. However, it does not mention when not to use it or offer alternative tools, so it falls short of a 5.

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

computer_use.payA
Destructive
Inspect

Complete a payment that Claude's computer use session has identified on screen — a checkout form, wire transfer UI, invoice approval, or vendor portal payment step. Call this instead of typing credentials into a UI. Describe what you see on screen, provide the amount and recipient, and DPX runs the full oracle gate → compliance screen → settlement flow. Returns a receipt. Use whenever computer use encounters a payment that would otherwise require human re-entry or approval.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesPayment amount in USD as shown on screen
purposeYesPayment purpose — e.g. vendor-invoice, contractor-payment, subscription, procurement
sandboxNoSet false for live execution. Default: true
screen_contextYesDescribe what is visible on screen — the payment form, vendor name, invoice number, or UI context. Used for audit trail.
counterparty_nameNoVendor or payee name as shown on screen
recipient_addressYesRecipient wallet address (0x...). If only bank/email visible, use settlement.nl instead.

Output Schema

ParametersJSON Schema
NameRequiredDescription
feeUsdNo
netUsdNo
reasonNo
statusNo
txHashNo
decisionNo
aiDecisionNo
aiConfidenceNo
settlementIdNo
Behavior4/5

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

Annotations already provide destructiveHint=true and readOnlyHint=false, so the description doesn't need to re-state mutation. It adds value by outlining the internal flow ('oracle gate → compliance screen → settlement flow') and stating it returns a receipt. This goes beyond what annotations capture, giving the agent a sense of the process. No contradictions with annotations.

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

Conciseness5/5

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

Four sentences, front-loaded with the core purpose. Every sentence earns its place: what it does, when to use, what happens in the backend, and an alternative for a specific case. No redundancy or fluff.

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

Completeness5/5

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

Given the tool's complexity (payment with compliance, multiple siblings, output schema exists), the description covers purpose, usage context, internal flow, return value, and an alternative tool. It is self-contained and provides enough information for an agent to invoke it correctly without needing additional context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add new meaning for individual parameters beyond what the schema already provides. It mentions 'describe what you see, provide amount and recipient' but that is already covered by the parameter descriptions. The note about settlement.nl for bank/email is a usage guideline, not parameter semantics.

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

Purpose5/5

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

The description clearly states the tool completes a payment identified by Claude's computer use session, with specific examples like checkout forms and wire transfer UIs. It distinguishes from siblings by explicitly naming settlement.nl as an alternative for bank/email cases and positioning this tool as the replacement for typing credentials.

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

Usage Guidelines5/5

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

Explicit guidance: 'Call this instead of typing credentials into a UI' and 'Use whenever computer use encounters a payment that would otherwise require human re-entry or approval.' It also provides a clear exclusion: if only bank/email is visible, use settlement.nl instead. This helps the agent decide when to invoke this tool versus alternatives.

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

dpx.metricsA
Read-onlyIdempotent
Inspect

Live performance metrics for the DPX settlement infrastructure — pulled directly from production telemetry. Returns request volumes, error rates, growth trends, per-service breakdown, and spike analysis across all active DPX workers. Free — designed for investor due diligence, analyst queries, and Standard Metrics / portfolio management integrations. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault
windowNoTime window for metrics. "7d" = last 7 days, "30d" = last 30 days. Default: 30d.

Output Schema

ParametersJSON Schema
NameRequiredDescription
windowNo
peakDayNo
summaryNo
servicesNo
errorRateNo
weeklyTrendNo
dailyAverageNo
totalRequestsNo
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that data comes 'directly from production telemetry' and notes it's 'free' and requires 'no auth,' providing valuable context beyond the annotations without contradiction.

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

Conciseness4/5

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

The description is three sentences, each serving a purpose: defining the tool, listing outputs, and stating usage context. It is front-loaded and efficient, though the second sentence could be slightly tighter.

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

Completeness5/5

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

Given the tool has only one simple parameter, output schema present, and annotations covering safety, the description is fully complete. It explains the data source, content, and usage context, leaving no obvious gaps for agent invocation.

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

Parameters4/5

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

Schema coverage is 100% with a well-described parameter (window). The description doesn't rehash the parameter but adds context about the metric types returned, which complements the schema. The single parameter is clearly documented in the schema.

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

Purpose4/5

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

The description clearly states the tool returns live performance metrics for DPX settlement infrastructure, listing specific data types (request volumes, error rates, etc.). It distinguishes by targeting investor due diligence and portfolio management use cases, though it doesn't explicitly differentiate from any 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.

Usage Guidelines3/5

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

The description mentions it's free and requires no auth, but provides no guidance on when to use this tool versus alternatives like settlement.status or analytics.overview. Use context is implied (investor queries, due diligence), but no exclusions or comparisons to siblings are given.

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

esg.batchA
Read-only
Inspect

Screen up to 50 entities in a single call. Accepts LEIs or company names (GLEIF-resolved). Returns results ranked by composite ESG score descending — highest scoring counterparties first. Useful for portfolio-level compliance screening, supplier due diligence, and TMS pre-payment checks. Name resolution is slower than direct LEI input.

ParametersJSON Schema
NameRequiredDescriptionDefault
leisNoArray of LEIs to screen (fastest path — no GLEIF resolution needed).
namesNoArray of company names to screen (resolved via GLEIF — slower, allows ≤3s per name).

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNo
failedNo
resultsNoEntities sorted by composite score descending. Each item includes lei, entityName, score object, or an error note.
succeededNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, making safety profile clear. Description adds valuable behavioral details: batch size ceiling of 50, GLEIF resolution for names, ranking by composite ESG score, and a latency nuance for name-based queries. No contradictions with annotations.

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

Conciseness5/5

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

Four sentences, each earning its place: capacity & input types, output behavior, use cases, performance caveat. Front-loaded with the core action. No redundancy or fluff.

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

Completeness5/5

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

Given that input schema and output schema exist (schema coverage 100%, output schema present), the description fully completes the picture by covering capacity, input options, ranking behavior, use cases, and performance nuance. No gaps remaining.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds value by clarifying that LEIs are the 'fastest path' and that names go through slower GLEIF resolution ('≤3s per name'), enhancing parameter understanding beyond schema alone.

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

Purpose5/5

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

Clearly states a specific verb ('Screen') and resource ('entities'), specifies batch size limit (50), input types (LEIs or company names), and output behavior (ranked by ESG score descending). Distinguishes from siblings like esg.lookup by focusing on batch screening vs single entity.

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

Usage Guidelines4/5

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

Explicitly lists use cases: 'portfolio-level compliance screening, supplier due diligence, and TMS pre-payment checks'. Notes performance trade-off ('Name resolution is slower than direct LEI input'). Lacks explicit when-not-to-use or alternative tool names, though some are implicitly evident from sibling context.

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

esg.lookupA
Read-onlyIdempotent
Inspect

Resolve a company name, domain, or ticker to a LEI via GLEIF and return the full ESG score. Removes the need for callers to have a LEI. Returns Environmental (40%), Social (35%), and Governance (25%) pillar scores, composite 0–100, fee surcharge tier, and per-source breakdown (SEC EDGAR, OSHA, BLS SOII, EU E-PRTR, ESMA, World Bank WGI, GLEIF). Use when you have a company name but not a LEI.

ParametersJSON Schema
NameRequiredDescriptionDefault
qYesCompany name, domain, or ticker to look up (e.g. "Apple Inc", "siemens.com", "MSFT")
countryNoISO-2 country code to narrow results (e.g. "US", "DE"). Optional but improves match accuracy.
narrateNoSet true to include a 2–3 sentence plain-English compliance narrative generated by the AI synthesis layer.

Output Schema

ParametersJSON Schema
NameRequiredDescription
foundNo
scoreNoFull ESG score object with composite, environmental, social, governance, feeTier, feeSurcharge, sources, coverage
resolvedNo
narrationNoPlain-language compliance narrative (only when narrate=true)
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds significant context: it uses GLEIF for resolution, returns specific pillar scores, a composite, fee surcharge tier, and a per-source breakdown. It also mentions the AI synthesis layer for the narrate parameter. No contradictions with annotations.

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

Conciseness4/5

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

The description is a single paragraph of four sentences, front-loading the main action. It is concise with no fluff, though it could be more structured (e.g., bullet points) for readability. Every sentence serves a purpose.

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

Completeness4/5

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

Given the tool has 3 parameters (all described), an output schema, and annotations covering safety, the description adequately explains the output structure and usage context. It covers the main purpose, input types, and output components. Minor gaps: the fee surcharge tier and sources are mentioned but not detailed, likely covered by output schema.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds some context (e.g., resolution via GLEIF, removal of LEI requirement) but does not elaborate on parameter syntax or format beyond what the schema provides. It meets the baseline but does not exceed it significantly.

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

Purpose5/5

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

The description clearly states the tool resolves a company name/domain/ticker to a LEI and returns full ESG scores. It distinguishes from siblings like esg.score by explicitly stating it removes the need for a LEI, and provides a specific use case ('Use when you have a company name but not a LEI').

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

Usage Guidelines4/5

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

The description gives explicit when-to-use guidance ('Use when you have a company name but not a LEI'). It implies when not to use (if you have a LEI, use another tool) but does not explicitly name alternatives. The return structure is described, aiding tool selection.

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

esg.portfolioA
Read-only
Inspect

Score an entire counterparty portfolio in one call (up to 200 entities by LEI or name). Returns portfolio-level composite E/S/G scores, tier distribution, aggregate fee surcharge impact in basis points, worst offenders (bottom 10% by composite), top performers, MiCA Article 72 ongoing monitoring status, and SFDR PAI flags. The canonical pre-settlement compliance check for treasury systems and TMS integrations.

ParametersJSON Schema
NameRequiredDescriptionDefault
leisNoLEIs to score (fastest — no name resolution).
labelNoOptional label for this portfolio (e.g. "Q3 2026 Counterparties").
namesNoCompany names to score (GLEIF-resolved).

Output Schema

ParametersJSON Schema
NameRequiredDescription
labelNo
entitiesNo
portfolioNocomposite, environmental, social, governance, tier, avgFeeSurcharge, totalFeeImpactBps
complianceNomicaArticle72, highRiskCount, sfdr flags
distributionNobyTier counts, min, max, median
topPerformersNo
worstOffendersNoBottom 10% entities with weakest pillar identified
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description correctly implies a read operation. The description adds valuable behavioral context: a 200-entity limit, LEI vs. name resolution, and the portfolio-level composite nature. No contradiction with annotations. The description goes beyond the annotations by explaining the scope and limits of the operation.

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

Conciseness5/5

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

The description is three sentences, each serving a clear purpose: first sentence states the action and limit, second lists outputs, third gives canonical usage. No wasted words, front-loaded with the key verb and scope. Excellent conciseness.

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

Completeness5/5

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

Given the tool has 3 optional parameters, a read-only annotation, and an output schema (not shown but exists), the description covers purpose, constraints (200 entities), and usage context (pre-settlement compliance). The list of return values is sufficient for an agent to understand what to expect. No gaps remain for the intended use case.

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

Parameters4/5

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

Schema description coverage is 100% with helpful descriptions for each parameter (e.g., 'LEIs to score (fastest — no name resolution)'). The tool description adds the constraint of 'up to 200 entities' and the portfolio-level context, which is not in the schema. This adds meaning beyond the schema, raising the score from baseline 3 to 4.

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

Purpose5/5

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

The description clearly states the tool scores an entire counterparty portfolio up to 200 entities by LEI or name. It lists specific return values (composite scores, tier distribution, fee surcharge impact, etc.). The sibling tools include esg.lookup, esg.score, esg.batch, esg.trend, and esg.watch, and this description distinguishes itself by being a portfolio-level aggregate call, not a single-entity or trending tool.

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

Usage Guidelines4/5

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

The description explicitly says 'The canonical pre-settlement compliance check for treasury systems and TMS integrations,' which provides clear context for when to use this tool. It also implies a portfolio need (vs. single entity). However, it does not explicitly state when not to use it or name alternative sibling tools for single-entity or trend analysis, so some guidance is missing.

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

esg.scoreA
Read-onlyIdempotent
Inspect

Get the live counterparty risk score (ESG-denominated) for a wallet address or the protocol default. Returns Environmental, Social, and Governance risk scores (0–100 each), composite weighted average, and the compliance-adjusted settlement fee percentage this score produces. Updated hourly from 6 institutional data sources: WorldBank, IMF, OECD, UN SDG API, ClimateMonitor, and SEC EDGAR. Required by EU SFDR Principal Adverse Impact reporting and CSRD financed emissions disclosure for institutional clients.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressNoWallet address (0x...) to score. Omit for protocol default.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierNoESG tier label
feePctNoESG fee percentage applied at settlement
socialNoSocial score 0–100
addressNoScored wallet address or "default"
sourcesNoData sources used
esgScoreNoComposite ESG score 0–100
updatedAtNoISO 8601 last update timestamp
governanceNoGovernance score 0–100
environmentalNoEnvironmental score 0–100
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context: data is live and updated hourly from six institutional sources. This goes beyond what annotations provide, though it does not mention 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.

Conciseness5/5

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

The description is a single compact paragraph of five sentences. It front-loads the core purpose, then efficiently lists return fields, data sources, and regulatory context. No wasted words.

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

Completeness5/5

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

Given the tool's simplicity (one optional param, output schema exists, rich annotations), the description covers all essential aspects: purpose, output composition, update frequency, data sources, and regulatory use cases. It is fully adequate for an agent to understand and invoke the tool correctly.

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

Parameters3/5

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

Schema coverage is 100% with a clear description of the 'address' parameter. The description slightly reinforces the protocol default behavior but does not add new semantics 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.

Purpose5/5

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

The description clearly states the tool returns a live ESG counterparty risk score for a wallet address or protocol default, listing specific output fields (E, S, G scores, composite, settlement fee). It distinguishes from siblings by focusing on single-entity live scoring, contrasting with batch or portfolio tools.

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

Usage Guidelines3/5

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

The description indicates when to use (for a single address or default, and for EU SFDR/CSRD reporting) but does not explicitly contrast with related sibling tools like esg.batch or esg.lookup. It lacks guidance on when not to use this tool.

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

esg.trendA
Read-onlyIdempotent
Inspect

Get the historical ESG composite trend for a specific entity by LEI. Returns score history, trend direction (IMPROVING / STABLE / DETERIORATING), and delta over the requested window. Data accumulates each time the entity is scored via esg.lookup, esg.batch, or esg.portfolio. Useful for due diligence, MiCA Article 72 ongoing monitoring reports, and detecting counterparties whose ESG posture is degrading.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiYes20-character GLEIF LEI.
daysNoLookback window in days (7–365). Default 90.

Output Schema

ParametersJSON Schema
NameRequiredDescription
leiNo
daysNo
deltaNoScore change over the window (positive = improving)
trendNo
currentNo
historyNo
baselineNo
dataPointsNo
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds beyond this by explaining that data accumulates each time the entity is scored via other ESG tools (esg.lookup, esg.batch, esg.portfolio) – a behavioral detail not captured in annotations. It also clarifies the output includes trend direction and delta. No contradictions with annotations.

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

Conciseness5/5

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

The description is two sentences with no wasted words. The first sentence states purpose and what is returned. The second sentence adds usage context and a behavioral note. Information is 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.

Completeness5/5

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

Given the tool's low complexity (2 parameters, no enums, no nested objects) and the presence of an output schema (so return values are documented externally), the description covers all essential aspects: what the tool does, how data is generated, use cases, and constraints (lookback window). An agent has sufficient context to select and invoke this tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters already well-documented ('20-character GLEIF LEI.' and 'Lookback window in days (7–365). Default 90.'). The description mentions 'by LEI' and 'over the requested window' but does not add meaningful new details beyond the schema. Baseline 3 is appropriate given high schema coverage.

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

Purpose5/5

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

The description opens with a clear verb+resource: 'Get the historical ESG composite trend for a specific entity by LEI.' It then details the returned data (score history, trend direction, delta) and explicitly distinguishes itself from sibling tools (esg.lookup, esg.batch, esg.portfolio) by explaining how data accumulates from those scoring actions. This differentiates the tool effectively.

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

Usage Guidelines4/5

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

The description provides specific use cases: 'due diligence, MiCA Article 72 ongoing monitoring reports, and detecting counterparties whose ESG posture is degrading.' This gives clear context for when to use the tool. It lacks explicit when-not-to-use guidance or mention of alternatives, but the implicit differentiation from point-in-time tools (esg.score) and the focus on historical trend is sufficient for an agent to make a reasonable choice.

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

esg.watchAInspect

Register an entity for ongoing ESG monitoring. DPX checks the score daily and fires a webhook when the composite score shifts by ≥ thresholdPoints. Satisfies MiCA Article 72 ongoing monitoring requirements. Returns a watchId for status checks and cancellation. Webhook payload includes previous/current score, delta, and tier change.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiYes20-character GLEIF LEI of the entity to monitor.
webhookUrlYesHTTPS URL to POST score change alerts to. Must be HTTPS.
thresholdPointsNoFire webhook if composite score changes by ≥ N points. Default 5. Minimum 1.

Output Schema

ParametersJSON Schema
NameRequiredDescription
leiNo
watchIdNoUUID — use to check status (GET /esg/watch/:id) or cancel (DELETE /esg/watch/:id)
createdAtNo
entityNameNo
baselineTierNo
baselineScoreNoComposite score at registration (used as first comparison point)
Behavior4/5

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

Annotations provide readOnlyHint=false and destructiveHint=false, already indicating a mutation with no destruction. The description adds significant behavioral context: daily frequency, threshold-based webhook triggering, webhook payload contents (previous/current score, delta, tier change), and the return of a watchId. This goes well beyond the annotations without contradicting them.

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

Conciseness4/5

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

The description is composed of five sentences, each serving a distinct purpose: purpose, mechanism, regulatory context, return value, and payload details. While slightly verbose, every sentence adds value, and there is no filler. Front-loading is adequate.

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

Completeness4/5

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

Given the tool complexity (3 params, output schema exists per context signals, annotations present), the description covers core aspects: purpose, trigger conditions, frequency, return value, and payload structure. It omits webhook retry behavior, cancellation method, and concurrency limits, but these are secondary given the output schema likely handles response details.

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

Parameters3/5

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

Schema description coverage is 100%; all three parameters (lei, webhookUrl, thresholdPoints) are documented in the schema. The description does not add new meaning to these parameters beyond referencing thresholdPoints in the webhook condition. It meets the baseline but provides no extra value for parameter understanding.

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

Purpose5/5

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

The description uses a specific verb-resource pair: 'Register an entity for ongoing ESG monitoring.' It clearly distinguishes this from sibling tools like esg.score (one-time score), esg.trend (historical trend), and esg.batch (batch operations) by emphasizing 'ongoing' and webhook-based alerts.

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

Usage Guidelines4/5

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

The description implies usage for continuous monitoring needs (daily checks, webhook on threshold) but does not explicitly state when to use this tool versus alternatives like esg.score or esg.portfolio. No exclusions or prerequisite conditions are given, so it's clear but not comprehensive.

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

fees.compareA
Read-only
Inspect

Compare DPX settlement cost against Stripe cross-border (5.4% + $0.30), Wise (0.40–1.50%), Ripple ODL (0.20–0.50%), Lightspark, SWIFT (2.00–5.00%), PayPal, and bank wire. Returns dollar savings vs each at the current DPX all-in rate (~2.035% typical). Also returns GENIUS Act and MiCA compliance status for each competitor.

ParametersJSON Schema
NameRequiredDescriptionDefault
hasFxNoCross-currency? Adds 0.40% FX fee.
esgScoreNoESG score 0–100
amountUsdYesSettlement amount in USD

Output Schema

ParametersJSON Schema
NameRequiredDescription
dpxNo
noteNoContext note on comparison methodology
amountUsdNoSettlement amount compared
comparisonNoPer-competitor comparison keyed by competitor ID
Behavior4/5

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

Annotations declare readOnlyHint=true, destructiveHint=false, and idempotentHint=false, which the description does not contradict. The description adds behavioral context: it returns dollar savings and compliance statuses. No detail on data freshness or rate assumptions, but the core of what it does and does not modify is clear.

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

Conciseness5/5

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

Two sentences, information-dense: enumerates competitors, states what is returned (savings, compliance). No wasted words. Front-loaded effectively.

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

Completeness5/5

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

Given the presence of an output schema, the description does not need to describe return values in detail. It covers the key input parameter's usage, lists competitors, and mentions compliance outputs. Fully adequate for a well-structured tool with rich schema and annotations.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining that 'hasFx' incurs an 'adds 0.40% FX fee,' which is not in the parameter description. This provides useful context for how the parameter affects the comparison logic.

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

Purpose5/5

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

Describes a specific verb (compare) on a specific resource (DPX settlement cost) against an enumerated set of competitors. Clearly distinguishes from siblings like 'fees.schedule' (likely a schedule, not a comparison) or 'fees.verify' (verification, not comparison).

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

Usage Guidelines4/5

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

Provides clear context that the tool compares costs and returns savings and compliance status. However, does not explicitly state when NOT to use it or mention alternatives among siblings—though the sibling set is large, and no direct alternatives for fee comparison are obvious.

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

fees.scheduleA
Read-onlyIdempotent
Inspect

Get the complete DPX fee schedule: all components (core/FX/ESG/license), volume discount tiers (Standard / Growth / Institutional / Sovereign), ESG fee table by score, scenario examples, and competitive benchmarks vs Stripe, Wise, SWIFT, and bank wire.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
feesNoFee component definitions
tiersNoVolume discount tiers
examplesNoFee calculation examples
benchmarksNoCompetitor fee benchmarks
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds significant behavioral context by detailing the scope of the return value—components, tiers, ESG table, examples, and benchmarks—which goes beyond what the annotations convey. This helps an agent understand the richness and purpose of 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.

Conciseness4/5

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

The description is a single, front-loaded sentence that efficiently lists all key elements of the schedule. While it packs a lot of information, it remains readable and free of fluff. The structure could be improved by using bullet points or breaking into shorter sentences, but it is still concise and informative.

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

Completeness5/5

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

Given that the tool has zero parameters and an output schema exists (reducing the need to explain return values), the description thoroughly covers what the tool returns: components, tiers, ESG table, scenario examples, and competitive benchmarks. This is complete for a read-only schedule retrieval tool.

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

Parameters4/5

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

The input schema has zero parameters, and schema coverage is 100% (all params covered). The rubric sets a baseline of 4 for tools with no parameters. The description does not need to discuss parameters, but it adds value by describing the content of the output, which indirectly clarifies what the tool returns without input.

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

Purpose5/5

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

The description uses the specific verb 'Get' and names a specific resource 'complete DPX fee schedule'. It enumerates the components (core/FX/ESG/license), volume discount tiers, ESG fee table, scenario examples, and competitive benchmarks. This level of detail distinguishes it from sibling tools like fees.compare (which would compare schedules) and fees.verify (which would verify specific fees).

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

Usage Guidelines3/5

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

The description clearly states the tool's purpose—retrieving the full fee schedule—but does not provide explicit guidance on when to use this tool versus alternatives. It does not mention sibling tools (e.g., fees.compare, fees.verify) or conditions under which the tool should or should not be used. Contextual cues from the tool's name and content imply uses, but no direct or comparative guidance is given.

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

fees.verifyA
Read-onlyIdempotent
Inspect

Verify that the off-chain fee quote matches what the on-chain DPXSettlementRouter contract will charge. Returns feesMatch (true/false). Call after get_quote and before settle to confirm fee integrity.

ParametersJSON Schema
NameRequiredDescriptionDefault
hasFxNoCross-currency settlement?
esgScoreNoESG score 0–100
amountUsdYesSettlement amount in USD

Output Schema

ParametersJSON Schema
NameRequiredDescription
deltaNoAbsolute difference in basis points
feesMatchNoTrue if off-chain quote matches on-chain contract
onChainFeeNo
offChainFeeNo
recommendationNoPROCEED | INVESTIGATE
Behavior4/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by explaining the return value (feesMatch boolean) and the verification context, which aligns with the non-destructive read operation. No contradictions; the description complements the annotations well.

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

Conciseness5/5

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

Two sentences: first sentence states the purpose, second sentence states the return value and workflow order. Every sentence earns its place; no fluff. Front-loaded with the core action. Excellent conciseness.

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

Completeness4/5

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

The description covers the purpose, return value, and workflow placement. An output schema exists, so return value details are complete. The explanation of how parameters affect verification is left to the schema, which is acceptable. Slight gap: it doesn't mention that the tool is safe to call multiple times, but the idempotentHint annotation covers that. Overall, sufficient for an agent to use correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add additional meaning beyond the schema's parameter descriptions (hasFx, esgScore, amountUsd). It implies these are inputs for fee verification, but no extra semantic detail is provided. The schema already explains each parameter adequately.

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

Purpose5/5

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

Clearly states the tool's purpose: verify that an off-chain fee quote matches the on-chain DPXSettlementRouter charge. It specifies the verb 'verify', the resource (fee quote vs on-chain), and the return value (feesMatch boolean). The workflow context 'after get_quote and before settle' distinguishes it from sibling fee tools like fees.compare and fees.schedule, which serve different purposes.

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

Usage Guidelines4/5

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

The description explicitly recommends calling this tool after get_quote and before settle, providing clear positioning in a workflow. It does not directly contrast with alternatives (e.g., fees.compare or fees.schedule), but the workflow guidance is sufficient for an agent to decide when to use it.

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

flow_checkA
Read-only
Inspect

Single pre-flight call before settling. Runs oracle check, compliance screen, and stablecoin routing in parallel and returns a unified go/no-go decision. Replaces the 3-step oracle → screen → route loop. Returns: decision (PROCEED/HOLD/BLOCKED), recommended token, estimated net received, oracle score, compliance verdict, and a ready-to-use settleBody.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoDestination currency code (default: USD)
leiNoCounterparty LEI for enhanced compliance check (optional)
fromNoSource currency code (default: USD)
amountYesSettlement amount in source currency
addressNoCounterparty wallet address for compliance screen (optional but recommended)

Output Schema

ParametersJSON Schema
NameRequiredDescription
readyNoTrue when decision is PROCEED
tokenNoRecommended stablecoin (USDC, EURC, or USDT)
oracleNo
decisionNoPROCEED | HOLD | BLOCKED
complianceNo
settleBodyNoReady to POST to /settle (null if BLOCKED or HOLD)
ttlSecondsNo
estimatedNetUsdNoEstimated net received after all fees
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description carries a lower burden. It adds value by revealing the parallel execution nature, the unified output structure, and the return of a 'ready-to-use settleBody', which goes beyond the annotations. No contradictions.

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

Conciseness5/5

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

The description is concise at 3-4 sentences, front-loaded with the core purpose ('Single pre-flight call before settling'), and efficiently covers the alternatives replaced and the key return fields. Every sentence serves a clear function with no redundancy.

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

Completeness4/5

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

The tool is fairly complex (5 parameters, combined checks, output fields), and the description covers the main purpose, replacement logic, and return structure. It lacks details on defaults (though schema hints at USD), error handling, or idempotency behavior (annotations say not idempotent). However, with output schema present, the listed return fields suffice for basic understanding.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all 5 parameters, so the baseline is 3. The description adds no parameter-specific information beyond what the schema already provides, treating the parameters holistically. It does not improve or extend the schema's explanations.

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

Purpose5/5

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

The description clearly states the tool's purpose as a single pre-flight call that combines oracle check, compliance screen, and stablecoin routing into a unified go/no-go decision. It explicitly contrasts with the alternative 3-step loop, distinguishing it from sibling tools like compliance.pep_screen and oracle.stability.

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

Usage Guidelines4/5

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

The description provides explicit context for when to use this tool: before settling, as a replacement for the multi-step oracle → screen → route loop. However, it does not specify scenarios where using the individual steps might be preferred (e.g., for granular control or debugging), missing exclusion criteria.

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

forecast.calendarA
Read-onlyIdempotent
Inspect

Seasonal climate event calendar with commodity impact. Returns 12 critical annual windows (hurricane season, corn pollination, Brazil frost risk, Black Sea harvest, ENSO influence periods, etc.) sorted by urgency — active windows first, then by months until next occurrence. Each entry includes affected commodities, severity, and the agronomic basis.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
calendarNoSeasonal events sorted by urgency — active events first
currentMonthNoCurrent UTC month (1–12) for reference
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the non-mutating, safe nature is clear. The description adds significant context: returns 12 sorted events with commodity impact details, severity, and agronomic basis, which enriches the behavioral understanding beyond just 'read-only.' No contradiction with annotations.

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

Conciseness5/5

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

The description is two sentences with zero waste. The first sentence immediately establishes the core purpose (seasonal climate calendar with commodity impact). The second efficiently details the 12-window scope, sorting logic, and output fields. Every sentence is necessary and front-loaded.

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

Completeness5/5

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

Given zero parameters, an output schema existing, and clear annotations, the description needs only to clarify what the tool returns and how it's organized. It fully covers the purpose, sorting logic, content (affected commodities, severity, agronomic basis), and scope (12 annual windows). No gaps remain for a read-only, no-param tool.

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

Parameters4/5

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

The input schema has zero parameters and 100% coverage, so there is nothing to describe beyond what the schema provides. The description adds value by clarifying what the output contains (12 windows, sorted, with commodities/severity/agronomic basis) but does not need to explain parameters.

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

Purpose4/5

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

The description clearly states it returns a 'seasonal climate event calendar with commodity impact,' specifying the resource (calendar) and the verb (returns). It distinguishes itself from siblings like forecast.commodity_outlook by focusing on a pre-defined set of 12 annual windows, not broad commodity predictions.

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

Usage Guidelines3/5

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

The description implies use for understanding seasonal climate risks and their commodity impact, but lacks explicit guidance on when to use this versus other forecast tools (e.g., forecast.scenario for custom scenarios, forecast.commodity_outlook for commodity-specific trends). No 'when-not-to-use' or alternative strategies are mentioned.

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

forecast.commodity_outlookA
Read-only
Inspect

Climate-driven price pressure outlook for a commodity. Returns BULLISH/BEARISH/NEUTRAL signal with 30/60/90-day horizons, confidence score, per-region stressor breakdown, and current FRED price reference. Covers 11 commodities: WHEAT, CORN, SOYB, COFFEE, COCOA, COTTON, SUGAR, WTI, NG, COPPER, LUMBER. Designed for institutional research teams evaluating commodity positions. Signals reflect supply constraint risk from climate — not a financial recommendation. Cache: 4h.

ParametersJSON Schema
NameRequiredDescriptionDefault
freshNotrue = bypass 4h cache and recompute live signals
symbolYesCommodity symbol

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
signalNo
symbolNo
regionsNoPer production-region climate scores and drought/temperature readings
horizonsNo30d / 60d / 90d — each has signal, confidence, basis
reasoningNoPlain-language synthesis of climate signals and price implications
stressorsNoActive climate stressors with severity, region, price impact estimate, probability
confidenceNoSignal confidence 0–1
climateScoreNoSupply constraint pressure 0–100; >65 = elevated bullish pressure
currentPriceNoLatest FRED price reference (value, unit, date)
forecastedAtNo
recommendationNo
inGrowingSeasonNotrue = stressors in peak transmission window — act faster
Behavior4/5

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

Annotations already mark this as read-only (readOnlyHint=true) and non-destructive. The description adds valuable behavioral context: the 4-hour cache, the ability to bypass it with the 'fresh' parameter, the specific return structure (signal, horizons, confidence, region breakdown, FRED price), and a disclaimer. This enriches the agent's understanding beyond what annotations provide. Score 4.

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

Conciseness5/5

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

The description is tightly written, with each sentence adding information. The first sentence states the core purpose ('Climate-driven price pressure outlook for a commodity'). The structure is clear and easy to parse. There is no wasted text or repetition. Score 5.

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

Completeness4/5

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

The tool has a moderately complex output (multiple horizons, confidence, region breakdown, price reference), but an output schema exists. The description provides a high-level summary of the return structure, lists all supported commodities, mentions cache, and includes a disclaimer. It is adequate for an agent to understand what the tool returns and when to use it. Minor omissions: no mention of error handling or rate limits, but these are not critical for a read-only tool. Score 4.

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

Parameters3/5

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

Schema description coverage is 100%, so the base is 3. The description does not add additional meaning to the parameters beyond what the schema already provides. The 'fresh' parameter's cache-bypass behavior is explained in the schema, and the description's mention of 'Cache: 4h' is redundant. The symbol enum is fully listed. Thus no extra value is added. Score 3.

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

Purpose4/5

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

The description clearly states the tool's function: 'Climate-driven price pressure outlook for a commodity.' It specifies the exact output format (BULLISH/BEARISH/NEUTRAL signals with horizons, confidence, region breakdown, FRED price) and lists the 11 supported commodities. However, it does not explicitly differentiate from sibling forecast tools (e.g., forecast.calendar, forecast.scenario), so a score of 4 is appropriate.

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

Usage Guidelines3/5

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

The description mentions the target audience ('institutional research teams evaluating commodity positions') and clarifies that signals reflect supply constraint risk, not a financial recommendation. But it does not provide explicit guidance on when to use this tool versus other forecast tools, nor does it state when not to use it (e.g., if a user needs financial advice or non-climate factors). This leaves room for ambiguity. Score 3.

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

forecast.portfolio_stressA
Read-only
Inspect

Climate stress test for a multi-commodity portfolio. Pass up to 20 positions with weights (percentages or fractions — normalized internally). Returns aggregate portfolio climate score, which positions are most stressed, which could act as climate hedges, and a plain-language summary. Useful for commodity fund managers evaluating aggregate climate exposure before rebalancing.

ParametersJSON Schema
NameRequiredDescriptionDefault
positionsYesPortfolio positions with symbol and weight

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryNo
positionsNoPer-position signal and climate score
dominantRiskNoMost climate-stressed position
hedgeCandidatesNoSymbols with climateScore ≤ 35 — potential climate hedges
stressedPositionsNoSymbols with climateScore ≥ 65
portfolioClimateScoreNoWeighted aggregate climate stress 0–100
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating safe operation. The description adds behavioral details: weights are normalized internally (revealing stateless transformation), returns aggregate score, stressed positions, hedges, and plain-language summary. With annotations providing safety info, description compensates well with richer behavioral context.

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

Conciseness5/5

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

The description is three concise sentences with no waste. First sentence states core function, second explains parameters and returns, third gives concrete use case — front-loaded with essential information.

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

Completeness5/5

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

Given the tool has one parameter with 100% schema coverage, an output schema (not shown to me but present per context signals), and no nested objects, the description sufficiently covers input requirements, return value categories, and target audience. No gaps remain for an agent to misuse it.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by clarifying that weights can be percentages or fractions (flexible formats), that they are normalized internally, and that up to 20 positions are allowed — supplementing the schema's 'maxItems' constraint and abstract weight description.

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

Purpose5/5

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

The description clearly states the tool performs a 'climate stress test' for a 'multi-commodity portfolio', using a specific verb ('stress test') and resource ('portfolio'), with explicit constraints (up to 20 positions, normalized weights). It distinguishes from sibling tools like 'forecast.commodity_outlook' or 'forecast.scenario' by focusing on portfolio-level stress testing with climate scoring and hedging insights.

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

Usage Guidelines4/5

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

The description calls out a specific use case ('useful for commodity fund managers evaluating aggregate climate exposure before rebalancing'), which helps decide when to use it. However, it does not explicitly say when not to use this tool or name alternative tools for different scenarios (e.g., single-commodity stress testing could use forecast.scenario).

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

forecast.production_regionsA
Read-onlyIdempotent
Inspect

All ~40 global commodity production regions ranked by current climate risk score. Each region shows which commodities it affects and its current climate risk level (HIGH/MODERATE/LOW). Use to identify which geographic zones are under active climate stress and which commodities are most exposed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
regionsNoRegions sorted by climate risk score, with affected commodities and risk level
updatedAtNo
Behavior3/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so the description doesn't need to repeat these. The description does not contradict any annotations. The description adds valuable context about the output (ranked list, risk levels, commodity links), but since it takes no parameters (0 params), there's little to disclose about behavioral traits beyond what annotations cover.

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

Conciseness4/5

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

The description is a focused two-sentence block. The first sentence succinctly describes the data (40 regions, ranked by risk), and the second sentence provides use-case guidance. Every sentence serves a purpose. It's not overly verbose, but could be slightly more front-loaded by placing the use-case first.

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

Completeness5/5

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

Given the tool has zero parameters, annotations that fully cover its behavioral traits (read-only, idempotent), and an output schema (assumed present if not detailed), the description is complete. It tells the agent what the tool returns (ranked list with risk levels and commodities), and why to use it (identify climate stress and commodity exposure). There's no missing context for correct tool selection and invocation.

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

Parameters4/5

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

With 0 parameters and 100% schema coverage, the description adds no parameter-specific details for completeness. However, the description compensates by clearly explaining what the output contains (regions ranked by risk, with commodities and risk levels, which implicitly tells the agent what to expect. For a parameterless tool, the score defaults to 4--the description effectively communicates output semantics beyond just the schema's void object.

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

Purpose5/5

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

The description clearly states the tool provides a ranked list of ~40 global commodity production regions with climate risk scores and commodity exposure. It uses specific verbs ('ranked by,' 'shows,' 'identify') and the resource is well-defined as production regions with their risk levels and affected commodities. It also distinguishes from siblings like forecast.commodity_outlook (which focuses on commodities rather than regions) and forecast.portfolio_stress (portfolio-level stress).

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

Usage Guidelines4/5

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

The description explicitly states the tool's purpose: to identify geographic zones under climate stress and which commodities are most exposed. This implies it should be used for climate risk analysis on production regions, not for commodity-specific or portfolio-specific forecasts. However, it doesn't explicitly mention when NOT to use it or name alternative sibling tools for related purposes, which would improve clarity further.

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

forecast.scenarioA
Read-only
Inspect

What-if climate scenario analysis. Apply a named scenario or custom stressor multipliers to any subset of commodities and see how signals shift. Built-in scenarios: la_nina_moderate, la_nina_severe, el_nino_moderate, gulf_hurricane_major, us_plains_drought_severe, black_sea_disruption, brazil_frost, chile_drought_copper, pacific_northwest_wildfire. Use to stress-test a commodity thesis before committing to a position.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolsNoSymbols to analyze — omit for all 11
scenarioNoBuilt-in scenario ID — or omit and provide stressorOverrides
stressorOverridesNoCustom multipliers if not using a named scenario (1.0 = no change)

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsNoPer-commodity signal, climateScore, recommendation, topStressor, reasoning
scenarioNo
descriptionNo
portfolioImpactNomostImpacted, leastImpacted, averageClimateScore
Behavior4/5

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

Annotations already declare readOnlyHint=true (no mutation) and destructiveHint=false, so the description's job is lighter. The description adds valuable context: that built-in scenarios exist, how to combine symbols, and that omitted symbols analyze all 11 commodities. It doesn't describe the output format, but output schema exists to handle that. Minor gap: doesn't state that scenarios and stressorOverrides are mutually exclusive, though implied.

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

Conciseness5/5

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

Three sentences with zero waste: first states core function, second enumerates scenarios, third gives usage context. Front-loaded with the most important info. Every sentence earns its place.

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

Completeness5/5

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

Given low complexity (3 params, none required), complete schema coverage, and presence of output schema, the description fully covers what an agent needs: purpose, inputs, available scenarios, and usage advice. No gaps remain.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds meaning by explaining the purpose of the tool (stress-testing), which helps interpret the symbols and scenario parameters in context. It also lists built-in scenarios, which overlaps with schema enums but reinforces usability. The stressorOverrides concept of multipliers (1.0 = no change) is clarified.

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

Purpose5/5

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

The description clearly states the verb ('Apply') and resource ('named scenario or custom stressor multipliers to any subset of commodities'), and explicitly distinguishes from siblings like forecast.commodity_outlook and forecast.portfolio_stress by focusing on what-if scenario stress-testing for specific commodities.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance ('Use to stress-test a commodity thesis before committing to a position') and distinguishes between built-in scenarios and custom stressorOverrides. It also implies when-not-to-use by focusing on commodities, separating it from portfolio-level tools.

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

fx.corridorsA
Read-onlyIdempotent
Inspect

All 60+ currency corridors with current stability tier, daily volatility estimate, and regulatory flags. Sort is best-first (OPTIMAL → ADVERSE). Use to compare corridors before choosing a payment route — e.g. "which LATAM corridor is most stable for a $2M payment this week?" Filter by source currency with the from parameter. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoOptional: filter to corridors starting from this currency (e.g. USD)

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryNoCount by tier: OPTIMAL / FAVORABLE / CAUTION / ELEVATED_RISK / ADVERSE
corridorsNoCorridors sorted best-first with score, tier, vol, regulatory flags
corridorCountNo
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the agent knows it's safe. The description adds context about the data returned (stability tier, volatility, regulatory flags) and sort order, but does not reveal additional behavioral traits beyond what annotations provide.

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

Conciseness5/5

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

Three sentences, each earning its place: first states what the tool returns, second explains sort order, third gives usage guidance and filter instruction. No wasted words, well front-loaded.

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

Completeness5/5

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

Given the simple interface (one optional param, output schema exists), the description covers all necessary information: what data is returned, sort order, filtering, and a concrete use case. It is fully sufficient for an agent to decide when to call this tool.

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

Parameters3/5

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

Schema already describes the single optional parameter 'from' with a clear example. Description reiterates this ('Filter by source currency with the from parameter') but adds no new semantic information. With 100% schema coverage, baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states it lists all 60+ currency corridors with stability tier, volatility, and regulatory flags. It distinguishes from siblings like stability.corridor or fx.rate by positioning itself as a broad comparison tool for choosing payment routes, with an example query.

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

Usage Guidelines4/5

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

Explicitly says 'Use to compare corridors before choosing a payment route' and provides a concrete example. It explains filtering by source currency. However, it does not explicitly mention when not to use this tool or name alternatives, leaving some room for ambiguity.

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

fx.cost_certaintyA
Read-only
Inspect

All-in settlement cost quote for cross-border payments. CFO-grade output: exact amount received in target currency after rail fees, 48h FX cost variance expressed in dollars, corridor stability overlay, and optimal execution window. Answers "if I send $X today, what does my counterparty receive net of everything, and how certain is that number?" Requires x402 micropayment.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget currency ISO 4217 (e.g. BRL)
leiNoOptional counterparty LEI for ESG-adjusted fee tier
fromYesSource currency ISO 4217 (e.g. USD)
amountYesAmount to send
amountCurrencyNoCurrency of the amount (defaults to from)

Output Schema

ParametersJSON Schema
NameRequiredDescription
railFeesNoAll-in fee breakdown in USD
settlementNoSent and received amounts with live FX rate
costCertaintyNo48h volatility, uncertainty in USD, received range in target currency
corridorIntelligenceNoCorridor stability score, regulatory flags, cascade level
executionRecommendationNoSETTLE_NOW / DELAY_24H / DELAY_48H with best execution window UTC
Behavior4/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, so the tool is a safe, read-only query. The description reinforces this as a quote lookup but adds behavioral traits: the output is CFO-grade with specific components (exact amount, 48h variance in dollars, corridor stability, optimal window). Also discloses the x402 micropayment, which annotations do not cover.

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

Conciseness5/5

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

Three sentences pack essential market position, usage scenario, and cost requirement with zero fluff. Front-loaded with the main action ('All-in settlement cost quote for cross-border payments') immediately.

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

Completeness4/5

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

With 5 parameters, 100% schema coverage, annotations, and an output schema, the baseline is high. The description completes the picture by stating the output components (exact amount, variance, corridor, window) and the payment requirement. However, it does not mention whether the quote expires or how to use the output schema for further actions.

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

Parameters4/5

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

Schema description coverage is 100% (all 5 parameters documented). The description adds value beyond schema by explaining the purpose of the output parameters (variance in dollars, corridor stability overlay), but it does not add new meaning to individual input parameters like 'lei' for ESG-adjusted fee tier beyond the schema.

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

Purpose5/5

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

The description uses specific verbs ('cost quote for cross-border payments') and clearly names the resource ('all-in settlement cost' for FX). It differentiates from siblings like 'fx.rate' (simple rate lookup) and 'stability.settlement_window' (timing vs cost) by emphasizing 'cost certainty' and net settlement amount.

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

Usage Guidelines4/5

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

The description hints at when to use this tool by answering 'if I send $X today, what does my counterparty receive net of everything?' and includes key context: requires a micropayment (x402). However, it does not explicitly state when NOT to use it (e.g., for simple rate checks use fx.rate).

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

fx.rateA
Read-onlyIdempotent
Inspect

Live mid-market FX rate for any currency pair. Returns mid rate, bid/ask spread, daily volatility %, regulatory flags for the corridor, and data freshness. Sourced from central bank rates (open.er-api.com, updated hourly, no API key required). Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesTarget currency ISO 4217 code (e.g. BRL)
fromYesSource currency ISO 4217 code (e.g. USD)

Output Schema

ParametersJSON Schema
NameRequiredDescription
askNo
bidNo
midNoMid-market rate (from → to)
pairNo
spreadPctNoImplied interbank spread %
updatedAtNo
corridorFlagsNoRegulatory flags for this corridor
dailyVolatilityPctNoEstimated daily FX volatility %
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds valuable context: source (central bank rates via open.er-api.com), update frequency (hourly), no API key required, and 'free'. This goes beyond what annotations provide.

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

Conciseness5/5

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

Two sentences with no wasted text. The main purpose is front-loaded, and every sentence adds value. Excellent conciseness.

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

Completeness5/5

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

For a simple read-only tool with an output schema, the description covers purpose, return fields, data source, update frequency, and access requirements. It is complete and leaves no major gaps.

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

Parameters3/5

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

Schema coverage is 100% with both from and to described as ISO 4217 codes. The description does not add additional meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool provides a 'live mid-market FX rate for any currency pair' and lists specific return fields. This distinguishes it from sibling tools like fx.corridors and market.fx by specifying exactly what it does.

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

Usage Guidelines3/5

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

The description implies usage for fetching a live FX rate but does not explicitly guide when to use this tool versus alternatives like fx.corridors or market.fx. No 'when not to use' or comparative guidance is provided.

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

integration.statusA
Read-onlyIdempotent
Inspect

Check the status of a DPX integration verification session. Polls Base mainnet for receipt of the $0.01 USDC handshake payment. Returns "pending" until payment is detected on-chain, then "verified" with the txHash and a Basescan explorer link. Poll every 10–15 seconds after sending the payment.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesverificationId returned by integration.verify.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
statusNoCurrent verification state.
txHashNoTransaction hash of the $0.01 payment. Present when verified.
messageNo
explorerNoBasescan URL for the verification transaction.
verifiedAtNoISO timestamp of on-chain confirmation. Present when status is "verified".
walletAddressNo
Behavior5/5

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

Discloses full behavioral details beyond annotations: polls Base mainnet, returns 'pending' until payment detected, then 'verified' with txHash and Basescan link. Also specifies the polling interval. No contradictions with annotations (readOnlyHint, idempotentHint, destructiveHint).

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

Conciseness5/5

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

Two sentences, no wasted words. Front-loaded with purpose. Every sentence adds value. Perfectly concise for the information conveyed.

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

Completeness5/5

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

With a single parameter, an output schema present, and complete description of return values and polling behavior, the description leaves no gaps for an agent to misuse the tool. Fully sufficient given the tool's complexity.

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

Parameters3/5

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

Schema description coverage is 100%, and the parameter 'id' is described as 'verificationId returned by integration.verify.' The description does not add extra meaning 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.

Purpose4/5

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

Clearly states the tool checks the status of a DPX integration verification session. Uses a specific verb ('Check') and resource. Does not explicitly differentiate from the sibling integration.verify, but the context implies it is the follow-up status check.

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

Usage Guidelines4/5

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

Provides explicit polling guidance ('Poll every 10–15 seconds after sending the payment'), which tells the agent when to use this tool. Does not list when not to use it or alternatives, but the guidance is clear and actionable.

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

integration.verifyAInspect

Initiate a $0.01 USDC onboarding handshake for a new DPX integration. Returns the DPX treasury address and payment instructions. The client sends $0.01 USDC on Base mainnet to confirm their wallet is funded and settlement rails are clear. Call integration.status to poll for confirmation. Required for all new integrations before production settlements are enabled.

ParametersJSON Schema
NameRequiredDescriptionDefault
apiKeyNoOptional: the DPX API key being registered for this integration. Stored as a hash — never logged in plaintext.
walletAddressYesThe client wallet address (0x...) that will send the $0.01 verification payment.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNoAlways "pending" on creation.
paymentNo
pollingNo
expiresAtNoISO timestamp — verification window closes after 24 hours.
verificationIdNoSession ID — use with integration.status to poll for payment confirmation.
Behavior3/5

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

The description reveals that the tool initiates a USDC payment handshake and returns treasury address and payment instructions, which is useful beyond annotations. However, it does not clarify idempotency or behavior on repeated calls, leaving some behavioral gaps.

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

Conciseness5/5

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

The description is concise at 4 sentences, front-loaded with purpose, and every sentence adds value without redundancy. Excellent structure.

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

Completeness5/5

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

Given the simple tool with 2 parameters and an output schema, the description fully covers the purpose, flow, return value, and next steps. No additional information is needed.

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

Parameters3/5

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

Schema coverage is 100% with both parameters already described. The description adds a small detail about apiKey being hashed but doesn't significantly enhance understanding 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.

Purpose5/5

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

The description clearly states the verb 'Initiate' and the resource 'onboarding handshake for a new DPX integration.' It distinguishes from the sibling tool integration.status by mentioning polling for confirmation.

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

Usage Guidelines4/5

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

The description explicitly states 'Required for all new integrations before production settlements are enabled' and advises to call integration.status to poll for confirmation. It provides clear context for when to use the tool, though it doesn't explicitly exclude other scenarios.

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

intelligence.aftershockA
Read-onlyIdempotent
Inspect

Aftershock Intelligence — models the secondary waves that follow a primary cascade event. Takes a primary shock (origin node, event type, magnitude, elapsed hours) and returns three aftershock waves: Wave 1 (0–72h immediate secondary effects), Wave 2 (1–4 weeks policy response distortions), Wave 3 (1–6 months structural changes now permanently locked in). Identifies which nodes are rebounding, which face amplified pressure, and which are structurally altered. Companion to market.cascade — run cascade first, then aftershock to see the full picture. POST with origin, eventType, magnitude, elapsedHours.

ParametersJSON Schema
NameRequiredDescriptionDefault
originYesOrigin node ID from the primary cascade (e.g. "geo.conflict", "climate.drought").
eventTypeNoDescription of the primary event.
magnitudeYesPrimary shock magnitude 1–100.
elapsedHoursNoHours elapsed since the primary event. Default 24.
horizonHoursNoForward horizon to model in hours. Default 4320 (6 months).

Output Schema

ParametersJSON Schema
NameRequiredDescription
wave1NoImmediate (0–72h): rebound, amplified, structural nodes.
wave2NoPolicy response phase (1–4 weeks).
wave3NoStructural lock-in (1–6 months).
synthesisNo
Behavior5/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, but description goes far beyond: details three specific waves with time windows, identifies what analysis is returned (rebounding nodes, amplified pressure, structural changes), and explains it is a POST operation. No annotation contradiction. Full behavioral disclosure for a modeling tool.

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

Conciseness4/5

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

The description is a single dense paragraph of ~100 words covering purpose, output, usage, and parameters. It is front-loaded with the tool's purpose. Slightly verbose with the wave details but every sentence earns its place. Could be split into two sentences for clarity without losing content.

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

Completeness5/5

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

Given the complexity (5 parameters, output schema present, rich annotations), the description is complete. Output schema handles return value documentation, so the description need not explain output format. It covers prerequisite, input context, behavioral traits, and parameter semantics thoroughly.

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

Parameters5/5

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

Schema coverage is 100%, but description adds significant value by explaining how parameters map to the cascade model context. 'origin' is contextualized as 'from the primary cascade', 'magnitude' is placed in scale 1–100, and default values are given for elapsedHours and horizonHours. Description also reveals horizonHours exists (not shown in param list but implied by '4320 (6 months)').

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

Purpose5/5

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

The description clearly states it models aftershock waves from a primary cascade event, with specific verb 'models' and resource 'secondary waves'. It distinguishes itself from sibling 'intelligence.*' tools like intelligence.contagion, intelligence.tectonic, and market.cascade, explicitly noting it runs after market.cascade.

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

Usage Guidelines5/5

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

Explicitly states when to use: 'run cascade first, then aftershock to see the full picture.' Names companion tool market.cascade as prerequisite, providing clear workflow guidance. Implies not for first-order event modeling.

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

intelligence.contagionA
Read-onlyIdempotent
Inspect

Contagion Intelligence — simulates how a macro or financial shock spreads through 30 nodes across 6 domains (financial systems, real economies, commodity networks, policy anchors, social systems, physical infrastructure) using an epidemiological R-value model. Returns system R trajectory, per-epoch spread map, superspreader nodes, containment forecast, and AI briefing. R < 1.0 = self-limiting; R ≥ 1.0 = expanding. Call /contagion/nodes first to discover valid origin IDs. POST with origin and magnitude.

ParametersJSON Schema
NameRequiredDescriptionDefault
originNoOrigin node ID. Call intelligence.contagion with listNodes:true to discover valid IDs.
listNodesNoIf true, returns all valid origin node IDs instead of running a simulation.
magnitudeNoInitial shock magnitude 1–100.

Output Schema

ParametersJSON Schema
NameRequiredDescription
systemRNoSystem-level R value. ≥1.0 means spreading.
spreadMapNoPer-epoch infection state across all nodes.
synthesisNo
containmentNoForecast of when/if containment is achieved.
superspreadersNoNodes with highest R contribution.
Behavior4/5

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

The annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already convey it's a safe, read-only, idempotent operation. The description adds value beyond annotations by explaining the R-value model, the 6 domains, and the specific output components (system R trajectory, spread map, superspreader nodes, containment forecast, AI briefing). No contradiction with annotations.

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

Conciseness4/5

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

The description is approximately 80 words across 4 sentences, front-loading the purpose and model. Every sentence adds value except the last two ('Call /contagion/nodes...' and 'POST with origin...') which are critical usage guidance but could potentially be more concise if merged. Still well-structured and efficient.

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

Completeness4/5

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

Given the tool has an output schema (alleviating need to describe return format), 3 parameters with 100% schema coverage, and strong annotations, the description is nearly complete. It explains the core model, usage flow, and parameter behavior. Minor gap: it doesn't explain what the 'AI briefing' output contains, but with an output schema this is acceptable.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds value by explicitly mentioning 'origin' parameter context (call /contagion/nodes first), explaining that listNodes bypasses simulation, and giving magnitude range 1–100. This goes beyond the schema's basic descriptions, justifying a 4.

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

Purpose5/5

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

The description clearly states the tool simulates how a macro or financial shock spreads using an epidemiological R-value model, specifying the 30 nodes across 6 domains. It distinguishes itself from siblings like intelligence.tectonic (which likely models different phenomena) by detailing the unique R-value modeling approach and the specific output components (system R trajectory, spread map, etc.).

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

Usage Guidelines4/5

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

The description provides explicit guidance to call /contagion/nodes first to discover valid origin IDs, and explains how to use listNodes:true for discovery. It interprets the R-value threshold (R < 1.0 = self-limiting; R ≥ 1.0 = expanding). However, it does not explicitly state when not to use this tool versus siblings like intelligence.resonance or intelligence.aftershock, or what distinguishes contagion from those.

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

intelligence.gender_riskA
Read-onlyIdempotent
Inspect

Gender Risk & Opportunity Intelligence — maps the structural relationship between GBV prevalence, legal discrimination, female labour force participation, and economic outcomes across 18 countries. Returns two independent scores: gbvRiskScore (0–100 suppression risk — high GBV → female LFPR suppression → GDP drag → fiscal stress → sovereign risk premium) and opportunityScore (0–100 reform upside — improving GBV indicators, closing LFPR gender gaps, and strengthening legal rights precede FDI inflows and consumer credit expansion). Five transmission mechanisms. Live FRED economic stress feedback. AI synthesis. Data: WHO GHO, World Bank WDI, FRED. 12h cache. No input required — GET.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countriesNoPer-country: gbvRiskScore, opportunityScore, LFPR gap, WBL index, GDP per capita, transmission mechanisms.
synthesisNo
regionalSummaryNo
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds value by detailing the computation logic (GBV → female LFPR suppression → GDP drag → fiscal stress → sovereign risk premium), data sources (WHO GHO, World Bank WDI, FRED), 12h cache, and live FRED feedback. This goes beyond simple safety metadata.

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

Conciseness4/5

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

The description is information-dense but well-structured, leading with purpose, then explaining the two scores, then providing operational details like data sources and cache. Each clause adds value, although it is longer than typical. The front-loading of purpose is effective.

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

Completeness5/5

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

For a no-input GET tool with an output schema, the description covers the key context: what the scores mean, the underlying transmission mechanisms, data sources, caching behavior, and the fact that no input is required. It is sufficient for an agent to understand the tool's functionality and behavior.

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

Parameters5/5

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

The schema has zero parameters, and the description explicitly states 'No input required — GET,' making it clear that no inputs are necessary. This adds an operational detail beyond the empty schema and meets the baseline for zero-parameter tools.

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

Purpose5/5

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

The description clearly states the tool's purpose: it maps the structural relationship between GBV prevalence, legal discrimination, female labour force participation, and economic outcomes across 18 countries, and returns two scores. The verb 'maps' and the specific resource 'Gender Risk & Opportunity Intelligence' clearly distinguish it from sibling intelligence tools like aftershock, contagion, etc.

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

Usage Guidelines3/5

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

The description implies usage context for gender risk and opportunity analysis, but it does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or alternative tools. The phrase 'No input required — GET' is an operational detail, not a usage guideline.

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

intelligence.resonanceA
Read-onlyIdempotent
Inspect

Resonance Intelligence — detects when multiple independent macro forces are oscillating in phase across 28 signals in 5 domains, amplifying each other rather than cancelling. A single shock is manageable; resonance turns a bad quarter into a systemic crisis. Returns per-signal phase angles, resonance clusters (groups of 3+ aligned signals), amplitude amplification factor, system resonance score (0–100), and historical danger-zone comparison to crisis precedents (2008, 2011, 2020, 1997 EM). No input required — GET.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
synthesisNo
dangerZoneMatchNoSimilarity to historical crisis resonance patterns.
resonanceClustersNoGroups of 3+ signals in mutual resonance.
amplificationFactorNoConstructive interference gain across dominant cluster.
systemResonanceScoreNo0–100. Higher = more dangerous in-phase alignment.
Behavior5/5

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

Annotations already provide readOnlyHint, idempotentHint, etc. The description adds value by explaining the concept of resonance, the return data, and that no input is required. It is consistent with annotations and adds behavioral context beyond them.

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

Conciseness4/5

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

The description is four sentences, all relevant. It front-loads the definition and then provides implications and return details. Could be slightly more concise, but no waste.

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

Completeness5/5

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

Given no parameters, rich annotations, and an output schema, the description is complete. It explains the tool's purpose, what it returns (including specific outputs like phase angles and resonance clusters), and its read-only nature.

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

Parameters4/5

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

There are no parameters, so the schema coverage is 100%. The description explicitly states 'No input required — GET', which is sufficient. Baseline for 0 params is 4, and the description adds no further parameter meaning but confirms the absence.

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

Purpose5/5

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

The description clearly states the tool detects resonance among macro forces, with specific verb 'detects' and resource 'Resonance Intelligence'. It distinguishes from siblings like intelligence.aftershock and intelligence.contagion by focusing on phase oscillation across 28 signals in 5 domains.

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

Usage Guidelines3/5

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

The description implies it's a read-only diagnostic tool but does not explicitly state when to use it versus alternatives or provide exclusions. The sibling tools are not compared, so guidance is implied rather than explicit.

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

intelligence.subscribeAInspect

Register a webhook to receive alerts when a DPX intelligence signal crosses a threshold. Supported signals: stability (overall 0–100 score), cascade (shock propagation risk), macro_stress, climate, fx, or any. The cron checks hourly and fires the webhook on crossing — edge-triggered, not repeated every hour. Returns a subscriptionId for status checks and cancellation. Use for treasury alert systems, TMS integrations, or autonomous agent monitoring loops.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoOptional label for your own tracking.
signalNoSignal to monitor. Default: stability.
directionNoFire when signal goes above or below threshold. Default: above.
thresholdYesScore value (0–100) that triggers the webhook.
webhookUrlYesHTTPS URL to POST alerts to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
signalNo
deleteUrlNo
directionNo
statusUrlNo
thresholdNo
currentScoreNoSignal score at registration time
subscriptionIdNo
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, but the description adds valuable behavioral details: the cron checks hourly, it's edge-triggered (not repeated), and returns a subscriptionId. This disclosure of polling frequency and triggering semantics goes beyond what annotations provide, though it could mention that the webhook URL receives POST requests and any error handling or retry behavior.

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

Conciseness5/5

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

The description is concise at three sentences, each serving a distinct purpose: first explains the action and supported signals, second details trigger behavior, third lists use cases. No redundant information; every sentence is necessary and front-loads the core purpose.

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

Completeness4/5

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

Given the tool's complexity (5 parameters, 2 enums, output schema exists), the description covers the main purpose, supported signals, trigger behavior, and use cases. It does not explain the output schema's contents (likely includes subscriptionId), but since an output schema exists, that burden is reduced. It could improve by mentioning that the webhook must be HTTPS and that the tool creates a persistent subscription.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the supported signals in detail (overall 0–100 score, shock propagation risk) and the meaning of 'above'/'below' direction with a default. However, the description does not explicitly clarify that threshold is 0–100, which is already in the schema. The 'any' signal option is explained, adding context beyond schema enums.

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

Purpose5/5

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

The description clearly states the tool registers a webhook for threshold-based alerts on DPX intelligence signals. It lists the supported signals explicitly and distinguishes itself by specifying the type of intelligence subscription (threshold-based webhook) versus other sibling tools like intelligence.subscription.get or intelligence.subscription.delete.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: for treasury alert systems, TMS integrations, or autonomous agent monitoring loops. It clearly distinguishes from siblings by implying the return of a subscriptionId for status checks and cancellation, which relates to intelligence.subscription.get and intelligence.subscription.delete. It does not explicitly state when not to use it, but the context of alerts and the sibling names make alternatives clear.

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

intelligence.subscription.deleteA
DestructiveIdempotent
Inspect

Cancel an intelligence subscription by ID. Stops future webhook alerts for that subscription. The alert log is retained for audit purposes.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYesUUID returned by intelligence.subscribe.

Output Schema

ParametersJSON Schema
NameRequiredDescription
deletedNo
subscriptionIdNo
Behavior5/5

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

The description explicitly states 'Stops future webhook alerts', 'The alert log is retained for audit purposes', which provides critical behavioral context beyond the annotations. The annotations already declare destructiveHint=true and idempotentHint=true, but the description explains exactly what is destroyed (future alerts) and what is preserved (log), adding transparency and managing expectations.

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

Conciseness5/5

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

Three concise, front-loaded sentences. Each sentence delivers distinct and essential information: what it does, what it stops, and what it retains. No wasted words.

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

Completeness4/5

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

Given the low complexity (1 param, clear schema, good annotations), the description is adequately complete. An output schema exists, so return values need no explanation. A slightly higher score would require mentioning prerequisites (e.g., valid subscription ID) or error conditions.

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

Parameters4/5

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

Schema coverage is 100% with only one parameter 'subscriptionId' described as 'UUID returned by intelligence.subscribe.' The description doesn't repeat the schema, but it implies the parameter is a unique identifier. A higher score would require adding context like 'Use the subscriptionId from the subscribe response' directly in the description, but the schema already provides a clear description.

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

Purpose5/5

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

The description uses a specific verb ('Cancel') and resource ('intelligence subscription by ID'), immediately and precisely conveying what the tool does. It also distinguishes clearly from the sibling 'intelligence.subscription.get' (which retrieves) and 'intelligence.subscribe' (which creates), making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description states 'Stops future webhook alerts for that subscription', clarifying the effect of use. It does not explicitly specify when NOT to use it (e.g., if alerts are still needed) or name an alternative tool for modifying subscriptions, but given the one-purpose tool design and sibling list, the implication is clear.

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

intelligence.subscription.getA
Read-onlyIdempotent
Inspect

Check the status of an intelligence subscription by ID. Returns current signal score, last fired timestamp, total alerts fired, and subscription configuration. Use after intelligence.subscribe to verify a subscription is active.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYesUUID returned by intelligence.subscribe.

Output Schema

ParametersJSON Schema
NameRequiredDescription
signalNo
directionNo
lastScoreNo
thresholdNo
lastFiredAtNo
lastCheckedAtNo
subscriptionIdNo
totalAlertsFiredNo
Behavior3/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, and idempotentHint=true, which cover safety and idempotency. The description adds modest behavioral context by listing return fields ('signal score, last fired timestamp, total alerts fired, and subscription configuration'), but these are also documented in the output schema. No contradictions with annotations.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It front-loads the purpose and then lists return fields and usage guidance. Every sentence adds value.

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

Completeness4/5

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

Given the simple input schema, presence of output schema, and comprehensive annotations, the description covers the essential use case. It mentions usage after subscribe and key return fields. Minor gaps: it does not explicitly mention that the subscription must exist or error behavior, but the agent can infer from the operation type. Overall, sufficient for correct selection and invocation.

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

Parameters3/5

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

Schema coverage is 100% and the parameter 'subscriptionId' already has a clear description in the schema ('UUID returned by intelligence.subscribe'). The tool description does not add additional semantic meaning beyond what the schema provides, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Check the status') and resource ('intelligence subscription by ID'), explicitly lists the returned fields (signal score, last fired timestamp, etc.), and distinguishes itself from sibling tools by mentioning its relationship to 'intelligence.subscribe' and implicitly differentiating from 'intelligence.subscription.delete'.

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

Usage Guidelines4/5

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

The description explicitly states when to use this tool: 'Use after intelligence.subscribe to verify a subscription is active.' This provides clear usage context. However, it does not explicitly state when not to use it or mention alternative tools for other scenarios (e.g., listing all subscriptions), though the sibling set makes the purpose clear enough.

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

intelligence.tectonicA
Read-onlyIdempotent
Inspect

Tectonic Intelligence — maps slow-moving structural stress across 22 fault lines in 5 domains (demographic, fiscal, environmental, infrastructure, geopolitical). Each node carries current stress (0–100), accumulation rate (%/yr), tipping threshold, and estimated years to rupture. Where market.cascade traces an acute shock, tectonic surfaces latent pressure before it ruptures. Returns per-node stress state, rupture sequence, horizon timeline, and AI synthesis briefing. No input required — GET.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
synthesisNoAI briefing on the most dangerous structural accumulations.
faultLinesNoPer-node: domain, label, stress, accumulationRate, yearsToRupture, tippingThreshold.
systemStressNoComposite tectonic stress 0–100.
ruptureSequenceNoOrdered fault lines by proximity to rupture.
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds value by detailing the return structure (per-node stress state, rupture sequence, horizon timeline, AI synthesis briefing) and confirming it is a GET request with no input. No contradiction with annotations.

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

Conciseness5/5

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

The description is five sentences, each contributing distinct value: domain & scope, node attributes, sibling contrast, output summary, and input requirement. It is well-structured, front-loaded, and contains no fluff.

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

Completeness5/5

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

Given the tool has no parameters, has an output schema, and rich annotations, the description is complete. It explains the tool's purpose, data composition, outputs, and usage context. The sibling contrast and domain listing provide sufficient context for an agent to decide when to invoke it.

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

Parameters4/5

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

The tool has zero parameters, and the schema coverage is 100% (empty). The description explicitly states 'No input required', which is sufficient. The baseline for 0 parameters is 4, and the description meets it.

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

Purpose5/5

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

The description clearly states the tool maps slow-moving structural stress across 22 fault lines in 5 domains, provides specific metrics per node, and explicitly contrasts with the sibling tool market.cascade. The verb+resource is specific and unambiguous.

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

Usage Guidelines4/5

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

The description gives a direct comparison with market.cascade (acute shock vs. latent pressure), helping the agent choose between them. It also states 'No input required', simplifying usage. However, it does not explicitly exclude other intelligence tools (e.g., aftershock, contagion) or provide broader usage criteria.

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

invoice.createAInspect

Create an agent-to-agent invoice. Agent A calls this to request payment from Agent B. Returns an invoiceId and payUrl — Agent B calls invoice.pay with the invoiceId to settle. Invoice expires after ttlSeconds (default 24h).

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesInvoice amount in source currency
currencyNoSource currency code (default: USD)
ttlSecondsNoInvoice TTL in seconds (default: 86400 = 24h)
callbackUrlNoURL to notify when invoice is paid
descriptionNoHuman-readable payment description
recipientAddressNoPayee wallet address (can also be provided at pay time)
destinationCurrencyNoDestination currency (default: same as currency)

Output Schema

ParametersJSON Schema
NameRequiredDescription
payUrlNoDirect URL to pay this invoice
statusNoOPEN | PAID | EXPIRED
expiresAtNo
invoiceIdNoUUID — pass to invoice.get or invoice.pay
Behavior3/5

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

The description reveals that the tool creates an invoice (write behavior) and returns an invoiceId and payUrl, and that invoices expire. With annotations providing no safety hints, the description adds moderate transparency but does not discuss idempotency, error cases, authentication requirements, or side effects beyond creation. No contradiction with annotations.

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

Conciseness5/5

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

Three sentences deliver the core purpose, workflow, return values, and expiration. No filler words. Information is front-loaded, and each sentence adds value without redundancy.

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

Completeness4/5

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

The description covers the main flow, expiration, and references the complementary invoice.pay tool. Given the output schema exists (not shown), it is acceptable that return values are not fully detailed. However, it does not mention what happens if the invoice is never paid, duplicate creation attempts, or how the callbackUrl fits in. Slightly incomplete for a tool with 7 parameters and no error notes.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add extra semantic details for individual parameters beyond the schema descriptions. It does provide flow context (Agent A requests payment from Agent B) which indirectly helps interpret parameters like recipientAddress, but this is not explicit parameter-level enrichment.

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

Purpose5/5

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

The description clearly states the tool creates an agent-to-agent invoice, specifies which agent initiates (Agent A) and which pays (Agent B), and mentions the returned invoiceId and payUrl. This distinguishes it from sibling tools like invoice.pay.

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

Usage Guidelines4/5

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

The description provides a clear workflow: Agent A creates the invoice, Agent B pays via invoice.pay. It mentions expiration and default TTL. However, it could explicitly state when not to use this tool (e.g., do not use to pay an invoice) and mention alternatives beyond invoice.pay.

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

invoice.getA
Read-onlyIdempotent
Inspect

Retrieve an agent-to-agent invoice by ID. Returns status (OPEN/PAID/EXPIRED), amount, currency pair, and payUrl. Use before calling invoice.pay to confirm the invoice is still OPEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYesInvoice UUID returned by invoice.create

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
amountNo
payUrlNo
statusNo
currencyNo
expiresAtNo
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. Description adds value by specifying the status enum (OPEN/PAID/EXPIRED) and the workflow recommendation. No contradictions.

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

Conciseness5/5

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

Two succinct sentences: first defines purpose and return fields, second provides a usage guideline. No extraneous information, front-loaded.

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

Completeness5/5

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

For a simple retrieval tool with a single parameter, existing annotations, and an output schema, the description covers all necessary context: purpose, returned fields, and workflow integration.

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

Parameters3/5

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

Schema description coverage is 100% with invoiceId described as 'Invoice UUID returned by invoice.create'. The tool description echoes 'by ID' and 'Invoice UUID' without adding significant new meaning beyond the schema.

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

Purpose5/5

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

Description states 'Retrieve an agent-to-agent invoice by ID' – a specific verb+resource. It lists returned fields (status, amount, currency pair, payUrl) and distinguishes from siblings like invoice.create and invoice.pay.

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

Usage Guidelines5/5

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

Explicitly says 'Use before calling invoice.pay to confirm the invoice is still OPEN.' This provides clear when-to-use advice and a precondition check.

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

invoice.payAInspect

Pay an agent-to-agent invoice by ID. Retrieves the invoice, runs settlement via POST /settle, and marks the invoice PAID on success. In sandbox mode returns a simulated receipt; in live mode returns execution parameters for on-chain completion.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoTrue for sandbox simulation. Default: true — set false only for live execution.
invoiceIdYesInvoice UUID to pay
recipientAddressNoPayee wallet address (required if not set in invoice)

Output Schema

ParametersJSON Schema
NameRequiredDescription
invoiceIdNo
settlementNoFull settlement result from POST /settle
Behavior4/5

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

Annotations already indicate readOnlyHint=false (mutating) and destructiveHint=false (not destructive). The description adds behavioral details: it retrieves the invoice, runs settlement via POST /settle, and marks it PAID. It also explains sandbox vs. live mode outputs. This goes beyond annotations by clarifying the multi-step process and simulation behavior. However, it does not mention possible failure modes or side effects like fees.

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

Conciseness5/5

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

The description is three sentences long, with no wasted words. It front-loades the purpose, then explains the process, and finally distinguishes output by mode. Every sentence serves a clear function, making it efficient and easy to parse.

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

Completeness4/5

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

The tool has an output schema (external), so the description needn't detail return values. It covers the core workflow, sandbox vs. live behavior, and references the settlement endpoint. However, it could be more complete by mentioning prerequisites (e.g., invoice status) or potential failures. Given the moderate complexity (payment + settlement + on-chain), the description is sufficiently complete but not exhaustive.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters (invoiceId, sandbox, recipientAddress). The description adds only minimal context: it notes that sandbox mode returns a simulated receipt. It does not explain recipientAddress's conditional requirement beyond the schema's existing note. Thus, the description adds little value beyond the schema, earning the baseline of 3.

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

Purpose5/5

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

The description clearly states the tool pays an agent-to-agent invoice by ID, with a specific verb ('Pay') and resource ('agent-to-agent invoice'). It outlines the steps (retrieve, settle, mark PAID) and distinguishes from sibling tools like invoice.create (create) and settlement.execute (separate settlement). This makes the purpose unambiguous and well-differentiated.

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

Usage Guidelines3/5

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

The description implies the tool is for paying invoices by ID, but it does not explicitly state when to use it versus alternatives (e.g., settlement.execute or other payment flows). No prerequisites or post-conditions are mentioned, such as the invoice needing to exist or be in a specific state. The usage guidance is adequate but lacks explicit exclusions or comparisons.

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

ledger.sessionA
Read-onlyIdempotent
Inspect

Get the aggregated payment graph for a multi-agent session. Returns total USD moved, transaction count, and a chronological list of all payments made during the session. Use for cost accounting, audit, or to show a human what an agent run spent.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession or task ID — the same ID used in receipt.create calls
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description confirms it returns data but adds no additional behavioral context (e.g., pagination, rate limits, error handling). It meets the baseline but does not exceed it.

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

Conciseness5/5

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

Three sentences, front-loaded with the primary action and return values, followed by usage guidance. Every sentence is necessary and no words are wasted.

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

Completeness5/5

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

For a simple read tool with one parameter and no output schema, the description fully covers what the tool does, what it returns, and when to use it. No critical gaps remain.

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

Parameters4/5

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

The sole parameter session_id is already described in the schema. The description adds value by clarifying that the ID is the same one used in receipt.create calls, providing helpful cross-reference context beyond the schema.

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

Purpose5/5

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

The description clearly states the tool retrieves aggregated payment data for a multi-agent session, specifying the exact return fields (total USD moved, transaction count, chronological list). It distinguishes itself from siblings like receipt.create by focusing on session-level aggregation.

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

Usage Guidelines4/5

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

Explicitly lists three use cases: cost accounting, audit, and showing human what an agent run spent. While it does not mention when not to use it or alternatives, the guidance is clear and actionable.

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

market.cascadeA
Read-onlyIdempotent
Inspect

Butterfly Effect Cascade Intelligence — models how a shock in one macro domain propagates through the interconnected web of climate, geopolitical, economic, and commodity systems. Given an origin event (e.g. armed conflict escalation, agricultural drought, central bank rate decision, rare earth export restriction) and a magnitude score, returns a time-ordered cascade chain showing which downstream systems are hit, in what sequence, with what attenuated signal strength, and an AI synthesis briefing on the highest-impact transmission paths. Covers 24 nodes across 4 domains: climate (drought, flood, carbon price, wildfire, sea-level stress, heatwave), geopolitical (sanctions, conflict, trade tariffs, regime change, election shock, port blockade), economic (rate decisions, inflation, sovereign debt, banking stress, currency crisis, recession), and commodity (oil, gas, grain, rare earth/lithium, copper, water, fertilizer). Purely macro intelligence — no settlement or stablecoin mechanics.

ParametersJSON Schema
NameRequiredDescriptionDefault
originNoOrigin node ID. Call market.cascade with listNodes:true to discover valid IDs (e.g. "geo.conflict", "climate.drought", "commodity.oil", "macro.rate_decision").
eventTypeNoFree-text description of the specific event (e.g. "Russia-Ukraine escalation", "Sahel drought season", "Fed emergency 75bps hike").
listNodesNoIf true, returns all valid origin node IDs and descriptions instead of running a cascade. Use this first to discover valid origin values.
magnitudeNoShock magnitude 1–100. 100 = maximum plausible shock for this event type. 40–60 = significant but not extreme.
horizonHoursNoForward time horizon in hours (1–720). Default: 168 (1 week). Use 24 for immediate cascade, 720 for full 30-day view.

Output Schema

ParametersJSON Schema
NameRequiredDescription
originNoOrigin node metadata.
cascadeNoTime-ordered propagation chain — each entry has node, magnitude, arrivalHours, via path, and mechanism.
eventTypeNoEvent description provided.
synthesisNoAI intelligence briefing on transmission paths, concentrated risk, feedback loops, and forward signals.
computedAtNoISO timestamp of computation.
horizonHoursNoTime horizon modeled.
inputMagnitudeNoClamped input magnitude.
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable context: the output is a time-ordered cascade chain with attenuated signal strength and an AI synthesis briefing. It also clarifies that the tool is purely macro intelligence with no settlement or stablecoin mechanics. This goes beyond the annotations and provides behavioral transparency about the type of output and scope.

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

Conciseness5/5

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

The description is well-structured and efficient. The first sentence establishes the core purpose, the second sentence lists the inputs and outputs, the third sentence enumerates the 24 nodes across 4 domains, and the final sentence clarifies scope. Every sentence is necessary and contributes to understanding. It is front-loaded with the most important information.

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

Completeness4/5

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

Given the tool's complexity (5 parameters, output schema exists), the description is quite complete. It explains how to use listNodes, what the output includes, and what domains are covered. It also explicitly states what it does not cover (settlement/stablecoin). The only minor gap is that it does not describe the output format in detail, but since an output schema is provided, that is acceptable.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents each parameter. The description adds extra value: it explains the purpose of listNodes (discover valid IDs), gives concrete examples for eventType, defines magnitude scale with examples (100 = maximum plausible shock), and suggests horizonHours values (24 for immediate, 720 for 30-day). This enriches the parameter semantics beyond the schema.

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

Purpose5/5

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

The description clearly states the verb ('models how a shock propagates') and resource ('macro domains across climate, geopolitical, economic, and commodity systems'). It lists specific node examples and explicitly distinguishes itself from settlement/stablecoin tools, which is a strong differentiator from siblings like intelligence.contagion or forecast.scenario.

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

Usage Guidelines3/5

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

The description explains how to use the tool: call with listNodes first, then provide origin, eventType, magnitude, horizonHours. It also gives example values for magnitude and horizonHours. However, it does not mention when to use this tool versus alternatives (e.g., intelligence.aftershock or intelligence.tectonic), nor does it state when not to use it. The usage guidance is adequate but not explicit about exclusions.

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

market.fxA
Read-onlyIdempotent
Inspect

FX Settlement Corridor Intelligence — per-pair execution risk assessment for 10 major currency corridors against USD: EUR, GBP, JPY, CAD, AUD, CHF, MXN, BRL, CNY, INR. Maps live FRED spot rates to settlement advice for each pair: SETTLE_NOW / SETTLE_WITH_HEDGE / DELAY_SHORT / DELAY_REVIEW / AVOID. Returns DXY dollar regime (STRONG_DOLLAR / NORMAL / WEAK_DOLLAR), regional block risk rollup (G4, Americas, Asia-Pacific), best corridors to settle through now, worst corridors to avoid or hedge, and recommended actions. Distinct from oracle.stability (which covers peg deviation and macro settlement gates) — this tool answers "which currency pairs are risky to settle through right now?" Data: FRED spot rates (DEXUSEU, DEXUSUK, DEXJPUS, etc.), DXY (DTWEXBGS). 1h cache.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dxyNoDXY value, trend, regime, and settlement impact summary.
corridorsNoPer-pair risk, spot rate, advice, and settlement cost.
overallRiskNoFAVORABLE / NORMAL / MODERATE / HIGH / CRITICAL
bestCorridorsNoPairs with NORMAL or FAVORABLE risk — settle now.
worstCorridorsNoPairs with HIGH or CRITICAL risk — delay or hedge.
executiveSummaryNoPlain-language summary of FX settlement conditions.
recommendedActionsNoActionable guidance for treasury teams.
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds value by detailing the data source (FRED spot rates, DXY), the return structure (advice per pair, DXY regime, regional rollup, best/worst corridors), and the 1h cache. This goes beyond the annotations without contradiction.

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

Conciseness4/5

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

The description is a single paragraph that efficiently conveys purpose, scope, outputs, and differentiation. Every sentence adds value, but it could be slightly more structured (e.g., bullet points) for quick scanning. Still, it is not verbose.

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

Completeness5/5

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

Given the tool has no parameters and a rich output schema (not shown but known), the description fully covers what the agent needs: the currency pairs, output categories, DXY regime, regional rollup, best/worst corridors, data sources, and cache policy. It is complete for effective invocation.

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

Parameters4/5

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

The input schema has zero parameters, so schema description coverage is 100%. The description does not need to add parameter meaning, and the baseline of 4 is appropriate. The description implicitly explains that no parameters are needed—the tool provides a fixed set of intelligence.

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

Purpose5/5

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

The description clearly states the tool's purpose: per-pair execution risk assessment for 10 major currency corridors against USD. It specifies the exact output categories (SETTLE_NOW, etc.) and distinguishes from oracle.stability, making it unambiguous and distinct from siblings.

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

Usage Guidelines4/5

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

The description explicitly tells when to use this tool: to answer 'which currency pairs are risky to settle through right now?' and contrasts it with oracle.stability. However, it does not differentiate from other closely related siblings like fx.corridors or fx.rate, which limits full guidance.

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

market.shippingA
Read-onlyIdempotent
Inspect

Shipping & Logistics Stress Intelligence — composite view of global freight market conditions across ocean, air, truck, and rail. Tracks energy-driven shipping costs (Brent crude, diesel), 8 key global trade routes with disruption status, and trade flow signals. Returns a settlementRelevance section mapping logistics conditions to cross-border payment corridor risk: invoice delay risk, trade finance stress, and affected corridors. Useful for treasury teams with supply chain financing exposure, trade finance desks, and agents pricing cross-border payments on goods-backed corridors. Data: FRED (Brent crude), EIA (US diesel). 4h cache.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
regimeNoSTABLE / MODERATE / ELEVATED / SEVERE_DISRUPTION
keyRoutesNoPer-route disruption status and stress score.
synthesisNoNarrative briefing on freight conditions and implications.
energyCostNoBrent crude, diesel price, marine fuel proxy.
freightModesNoPer-mode (ocean/air/truck/rail) cost index and stress signal.
compositeScoreNoComposite stress score 0–100 (higher = more stress).
settlementRelevanceNoInvoice delay risk, trade finance stress, affected corridors.
Behavior5/5

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

Beyond annotations (readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false), the description adds critical behavioral details: data sources (FRED, EIA), a 4-hour cache, the output structure including a 'settlementRelevance' section with specific risk indicators (invoice delay risk, trade finance stress, affected corridors). This fully discloses expected behavior.

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

Conciseness5/5

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

The description is a single, well-structured paragraph that front-loads the core purpose, then details what is tracked, output structure, use cases, data sources, and cache policy. Every sentence earns its place with no redundancy or fluff.

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

Completeness5/5

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

Given the tool has no parameters and a complex output (with an output schema available), the description provides all necessary context: data origin, refresh cadence, output sections, and relevant business applications. It is complete enough for an agent to decide when and why to invoke this tool.

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

Parameters4/5

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

The input schema is empty (0 parameters), so the description's role is to explain the tool's behavior. It does this effectively, stating the tool provides a composite view without needing user input. Baseline 4 applies per the rule for zero parameters, and the description adds meaning by explaining the fixed output.

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

Purpose5/5

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

The description explicitly states the tool provides a 'composite view of global freight market conditions across ocean, air, truck, and rail' and details what it tracks (energy costs, trade routes, disruption status, trade flow signals). This clearly distinguishes it from sibling tools like market.cascade or market.fx, and from other intelligence tools.

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

Usage Guidelines4/5

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

The description identifies specific target users (treasury teams, trade finance desks, agents pricing cross-border payments) and business contexts (supply chain financing, goods-backed corridors). While it doesn't explicitly list when not to use or compare to alternatives, the use cases are clearly scoped.

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

mercury.accountsA
Read-onlyIdempotent
Inspect

List all Mercury bank accounts and balances connected to the DPX Settlement Agent. Returns account IDs, names, available balance, current balance, and currency for each account. Use account IDs with mercury.transactions to fetch payment history, or mercury.send to initiate a payment. Works with both Mercury sandbox and production environments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoNumber of accounts returned
totalNoTotal balance across all accounts in USD
accountsNo
environmentNosandbox or production
Behavior4/5

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

Annotations already declare readOnlyHint true and destructiveHint false, so the description correctly aligns. The description adds behavioral context by detailing the specific output fields (available balance, current balance, etc.) and environment compatibility, which is valuable beyond annotations.

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

Conciseness5/5

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

The description is three sentences with no wasted words. It front-loads the core purpose, lists outputs, and provides usage guidance—all concise and structured effectively.

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

Completeness5/5

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

Given the tool has no parameters, an output schema is present (inferred), and the description covers all needed aspects: purpose, output details, and integration hints. The description is fully sufficient for an agent to correctly invoke and interpret results.

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

Parameters4/5

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

There are zero parameters, so the input schema is fully covered. According to guidelines, baseline for 0 params is 4. The description does not need to add parameter-level details.

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

Purpose5/5

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

The description specifies a clear verb ('List') and resource ('all Mercury bank accounts and balances'), and explicitly states what is returned (account IDs, names, balances, currency). It also distinguishes itself from related sibling tools by explaining how to use the account IDs with mercury.transactions and mercury.send.

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

Usage Guidelines4/5

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

The description clearly states when to use this tool (to list accounts and balances) and works in both sandbox and production. It provides follow-up actions (use account IDs with other tools), but does not explicitly state when not to use or list alternative tools, which is acceptable given the tool's simplicity.

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

mercury.ach_authorizeA
Destructive
Inspect

Screen an ACH payment through the DPX compliance oracle before execution. Runs FATF R16, GENIUS Act, MiCA, and AML checks against the recipient. Returns APPROVED / FLAGGED / BLOCKED with full compliance reasoning.

Use this tool BEFORE every ACH payment via mercury.send. ACH is hard to reverse — compliance pre-screening prevents blocked transactions and BSA/AML exposure.

Workflow:

  1. mercury.ach_authorize (screen only, autoExecute:false) → review decision

  2. If APPROVED → set autoExecute:true to send, or call mercury.send directly

  3. If FLAGGED → manual review required before proceeding

  4. If BLOCKED → do not proceed

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoPayment memo / note (optional).
amountYesPayment amount in USD.
purposeNoPayment purpose category (optional — required by Mercury for domesticWire, recommended for ACH). E.g. "Vendor", "Contractor", "Expenses".
accountIdYesSource Mercury account ID (from mercury.accounts).
autoExecuteNoIf true and compliance returns APPROVED, immediately sends the ACH payment. Default false — screen first, execute separately.
recipientIdYesMercury saved recipient ID (from mercury.send / POST /mercury/recipients).
externalMemoNoExternal memo / reference visible to recipient (optional).
recipientNameYesLegal name of the recipient entity or individual — used for compliance screening.
idempotencyKeyNoIdempotency key for safe retries. Auto-generated if omitted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierNoCompliance tier — FAST_PATH, STANDARD, ENHANCED, or HOLD.
_nextNoGuidance on next action.
reasonNoHuman-readable decision summary.
decisionNoCompliance decision.
executedNoTrue if autoExecute:true and ACH was sent.
mercuryIdNoMercury transaction ID (present when executed).
authorizedNoTrue if compliance approved the payment.
complianceNoFull compliance oracle response including framework attestations.
requiresReviewNoTrue when decision is FLAGGED — manual review required.
Behavior5/5

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

The description discloses key behavioral traits beyond the annotations: the tool is a compliance pre-screen, returns one of three statuses, and can optionally auto-execute the payment if approved. It also warns that ACH is hard to reverse, implying irreversible consequences. The annotations (destructiveHint:true, readOnlyHint:false) align, and the description adds context about regulatory exposure (BSA/AML). No contradiction.

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

Conciseness5/5

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

The description is compact yet complete: two paragraphs and a bulleted workflow. Every sentence serves a purpose—purpose, usage context, regulatory details, return values, and step-by-step workflow. No fluff or redundancy. The structure front-loads the key action and then provides structured guidance.

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

Completeness5/5

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

Given the tool's complexity (9 parameters, multiple sibling tools like mercury.send and compliance.pep_screen), the description is fully self-contained. It explains the compliance checks, the three possible outcomes, the workflow, and how it integrates with mercury.send. The guaranteed output schema covers return value structure, so the description appropriately focuses on behavior and decision logic.

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

Parameters4/5

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

The input schema has 100% description coverage, so baseline is 3. The description adds value by explaining the workflow intent behind autoExecute (default false, screen first), clarifying that recipientName is used for compliance screening, and noting that accountId comes from mercury.accounts. This enhances agent understanding of how parameters drive the tool's behavior beyond raw schema definitions.

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

Purpose5/5

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

The description clearly states the tool screens an ACH payment through the DPX compliance oracle. It specifies the action ('Screen'), the resource ('ACH payment'), and the compliance checks performed (FATF R16, GENIUS Act, MiCA, AML). The purpose is distinct from sibling tools like mercury.send (which actually sends the payment) and compliance.pep_screen (which screens individuals, not payments).

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

Usage Guidelines5/5

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

The description explicitly states when to use the tool: 'before every ACH payment via mercury.send.' It provides a full workflow: screen with autoExecute:false, review the decision, then proceed based on status (APPROVED → send, FLAGGED → manual review, BLOCKED → do not proceed). This clearly differentiates it from mercury.send and gives actionable guidance.

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

mercury.sendA
Destructive
Inspect

Initiate a Mercury bank payment from a connected account. Supports all Mercury payment rails: ACH (0–1 days), Wire (0–1 days), Real-Time Payment / RTP (instant), International Wire (1–3 days), and Check (7–10 days).

For International Wire — the primary DPX cross-border use case — provide SWIFT/BIC code and beneficiary bank details. DPX oracle conditions and FX corridor risk should be checked via oracle.stability and market.fx before executing.

Can optionally tag the payment for automatic DPX on-chain routing — when dpxRoute:true is set, the payment memo includes the DPX executor wallet address and the Mercury webhook picks it up for USDC settlement on Base mainnet.

Use sandbox:true (default) for dry-run testing. Set sandbox:false only when ready to move real funds.

Typical cross-border flow:

  1. market.fx → check FX corridor risk for the destination currency

  2. mercury.accounts → get source accountId

  3. mercury.send (sandbox:true) → confirm payment parameters

  4. settlement.quote → get DPX fee quote for the USDC leg

  5. mercury.send (sandbox:false) → execute (requires explicit user confirmation)

  6. mercury.transactions → verify payment posted

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoPayment memo / description.
amountYesPayment amount in USD (or destination currency if specified).
sandboxNoDry run — returns what would be sent without executing. Default: true. Set false to execute.
bankCityNoBeneficiary bank city.
bankNameNoBeneficiary bank name (e.g. "Barclays Bank UK PLC").
currencyNoDestination currency for internationalWire (e.g. "GBP", "EUR"). Default USD.
dpxRouteNoIf true, appends dpx:<wallet> to the memo — triggers DPX on-chain USDC settlement via the Mercury webhook. Use this to settle the stablecoin leg of a cross-border payment.
accountIdYesSource Mercury account ID (from mercury.accounts).
swiftCodeNoBIC/SWIFT code of beneficiary bank (required for internationalWire without recipientId). E.g. "BARCGB22" for Barclays UK.
bankAddressNoBeneficiary bank street address.
bankCountryNoBeneficiary bank country — ISO 3166-1 alpha-2 (e.g. "GB", "DE", "SG").
recipientIdNoMercury saved recipient ID for internationalWire. Use this if the recipient is already saved in Mercury — skips inline bank detail fields.
accountNumberNoRecipient account number (required for ach/wire/check). Also used for IBAN on internationalWire.
paymentMethodNoPayment rail. rtp = Real-Time Payment (instant, US domestic). internationalWire = cross-border (1–3 days). Default: ach.
recipientCityNoBeneficiary city.
recipientNameNoRecipient legal name (required for ach/wire/rtp/check).
routingNumberNoRecipient routing number (required for ach/wire/check).
recipientEmailNoRecipient email (optional — for payment notification).
recipientAddressNoBeneficiary street address.
recipientCountryNoBeneficiary country — ISO 3166-1 alpha-2.
recipientPostalCodeNoBeneficiary postal code.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoMercury transaction ID (present when sandbox:false and executed)
noteNoPayment memo as sent
amountNoAmount in USD
statusNoTransaction status from Mercury
sandboxNoTrue if this was a dry run
dpxTaggedNoWhether the DPX routing tag was appended
simulationNoDry-run summary (present when sandbox:true)
Behavior4/5

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

Annotations already set destructiveHint:true (write operation). The description adds critical behavioral details: sandbox mode prevents actual fund movement, dpxRoute triggers a webhook for DPX on-chain settlement, and payment rails have different settlement timeframes. This goes beyond annotations, though it does not disclose potential limits or reversibility.

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

Conciseness4/5

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

The description is structured into logical sections (rails, international wire, dpxRoute, sandbox, flow) with front-loaded purpose. While it is long (7 paragraphs), every sentence serves a purpose, and the step-by-step flow is highly informative. Minor redundancy could be trimmed, but the structure aids agent comprehension.

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

Completeness5/5

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

Given the tool's complexity (21 parameters, multiple rails, DPX integration, sandbox mode), the description covers all necessary context: when to use, prerequisites, integration with sibling tools, parameter semantics, and behavioral traits. Output schema exists, so return values are handled. No gaps remain for an agent to execute correctly.

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

Parameters5/5

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

With 100% schema coverage, the description still adds significant value: it explains the dpxRoute boolean in detail with its downstream effect, gives SWIFT code examples (BARCGB22), differentiates between recipientId and inline fields, and contextualizes paymentMethod with typical delivery times. This far exceeds the baseline of 3.

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

Purpose5/5

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

The description opens with 'Initiate a Mercury bank payment from a connected account,' providing a specific verb, resource, and scope. It enumerates all payment rails with timelines and distinguishes itself from siblings like mercury.transactions (verify) and settlement.quote (fee quote). This clearly differentiates what the tool does from the many sibling tools.

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

Usage Guidelines5/5

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

The description provides explicit guidance: sandbox:true for dry-run, sandbox:false for real funds; for International Wire, it recommends checking oracle.stability and market.fx first. It includes a six-step typical cross-border flow referencing sibling tools, making it unambiguous when and how to use this tool versus alternatives.

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

mercury.sweepA
Read-onlyIdempotent
Inspect

Treasury float yield routing analysis for idle Mercury bank balances. Computes how much can be swept above a reserve threshold, then evaluates whether deploying into sUSDS (Sky Protocol Savings Rate) on Base is viable before a settlement deadline.

THIS TOOL DOES NOT MOVE FUNDS. It returns a structured recommendation with expected net yield, deployment amount, exit timing, and step-by-step execution instructions. All fund movement decisions remain with the client.

Safety rules enforced: • Always keeps thresholdUsd in Mercury — never swept • Maximum 90% of sweepable amount deployed to sUSDS • Minimum 2-hour window required (shorter windows don't cover gas) • Minimum $50,000 sweepable (below this, gas costs exceed yield) • Exit triggered 30 minutes before settlement deadline

Current instrument: sUSDS (Sky Protocol) — instant on-chain entry/exit, ~6.25% APY, Base chain, no US person restrictions, no de-peg events on record.

Workflow:

  1. mercury.accounts → get accountId and available balance

  2. mercury.sweep → get yield recommendation and execution steps

  3. If PROCEED → follow execution.steps to wire funds and deploy

  4. mercury.accounts again at exit time → confirm balance restored

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoIf true, marks analysis as sandbox mode — Mercury balance may not reflect live state.
accountIdYesMercury account ID to analyze (from mercury.accounts).
thresholdUsdNoMinimum USD balance to always keep in Mercury as a reserve. Sweepable = available balance minus this amount. Default: $50,000.
riskToleranceNoRisk tolerance for yield deployment. Conservative requires APY > 5%. Default: moderate.
settlementDeadlineUtcNoISO 8601 UTC timestamp of when funds must be back in Mercury (e.g. "2026-06-28T18:00:00Z"). Defaults to 7 days from now. Drives the yield window calculation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
accountNoMercury account summary with available balance, reserve threshold, and sweepable amount.
executionNoStep-by-step execution instructions (present when recommendation is PROCEED).
yieldAnalysisNoYield routing analysis: instrument, APY, expected net yield, window, and recommendation (PROCEED | HOLD).
risk_disclosureNoMandatory risk disclosure — client must acknowledge before acting.
Behavior5/5

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

Even though annotations already declare readOnlyHint, idempotentHint, and destructiveHint, the description adds critical behavioral context: it returns a recommendation with execution steps, does not move funds, enforces safety rules (e.g., never sweeps thresholdUsd, max 90% deployment, 2-hour window), and lists the current instrument with yield. This goes well beyond what annotations convey.

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

Conciseness5/5

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

The description is well-structured with a purpose statement, explicit safety rules, and a step-by-step workflow. Every sentence adds value—no filler. It uses bullet points for the safety rules and a numbered list for the workflow, making it easy for an agent to parse.

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

Completeness5/5

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

Given the tool has an output schema (not shown but mentioned) and 5 parameters with 100% schema coverage, the description is comprehensive: it explains the algorithmic logic, when to call, safety limits, the specific instrument (sUSDS), and the overall workflow. Nothing essential is missing for an agent to decide to invoke this tool.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for each of the 5 parameters. The description adds meaning beyond schema by explaining the overall calculation logic (sweepable = available minus thresholdUsd) and linking parameters like settlementDeadlineUtc to the yield window. However, it doesn't detail all parameter constraints (e.g., exactly how conservative maps to APY > 5%) so a 4 is warranted.

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

Purpose5/5

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

The description clearly states the tool performs 'Treasury float yield routing analysis for idle Mercury bank balances' with specific computations (sweepable amount, viability of sUSDS deployment). It is well-differentiated from sibling tools like mercury.accounts (list accounts) and treasury.yield_route (general yield route) by focusing only on sUSDS via Base, with explicit safety rules.

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

Usage Guidelines5/5

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

The description provides explicit workflow steps listing which tools to call before (mercury.accounts) and after this tool, and when to execute fund movements. It also states this tool 'does not move funds' and that 'fund movement decisions remain with the client'—acting as a clear when-to-use guide.

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

mercury.transactionsA
Read-only
Inspect

List recent transactions for a Mercury bank account. Returns transaction ID, amount (USD), status, note/memo, counterparty name, created date, and whether the transaction was DPX-tagged (memo contains "dpx:"). Filter by account ID obtained from mercury.accounts. Use this to reconcile DPX settlements against Mercury bank activity.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of transactions to return (default 20, max 500).
offsetNoPagination offset (default 0).
accountIdYesMercury account ID (from mercury.accounts).

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNoTotal number of transactions on this account
accountIdNo
transactionsNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's safe. The description adds value by specifying the DPX-tagging behavior (memo contains 'dpx:') and the data fields returned, which aids in understanding the tool's output beyond the schema.

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

Conciseness5/5

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

The description is concise (three sentences) and front-loaded with the essential purpose. Every sentence adds value: first sentence states action and output, second sentence provides filtering context, third sentence gives a concrete use case.

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

Completeness5/5

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

Given the output schema exists, the description doesn't need to explain return values further. The tool is simple (3 params, 1 required) and the description covers its purpose, usage prerequisites, and a specific reconciliation use case, making it complete for this context.

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

Parameters3/5

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

Schema coverage is 100% and the schema already describes all parameters clearly (limit, offset, accountId). The description adds a small amount of context (account ID from mercury.accounts, default/max for limit) but doesn't significantly extend the schema's meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool lists recent transactions for a Mercury bank account and specifies the exact data returned (transaction ID, amount, status, etc.). It distinguishes itself from sibling tools like mercury.accounts and mercury.send by focusing on transaction listing.

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

Usage Guidelines5/5

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

The description explicitly tells when to use this tool (to reconcile DPX settlements against Mercury bank activity), provides a prerequisite (account ID from mercury.accounts), and implies it's for read-only verification rather than sending/sweeping money, differentiating it from siblings like mercury.send and mercury.sweep.

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

oracle.governanceA
Read-onlyIdempotent
Inspect

Get the live governance score (0–100) for any legal entity identified by LEI or company name. Pulls from GLEIF (LEI registration status, renewal compliance) and World Bank Worldwide Governance Indicators (Government Effectiveness, Control of Corruption, Rule of Law). Returns composite governance score, tier (STRONG / ADEQUATE / MODERATE / WEAK / POOR), MiCA compliance flag, and per-source component breakdown. Complements esg.score by isolating the G pillar as a standalone institutional-grade signal.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoCompany name to resolve via GLEIF if LEI is unknown (e.g. "Siemens AG").
leiNo20-character GLEIF LEI. Provide this for fastest response.
countryNoISO-2 country code for World Bank WGI lookup (e.g. "DE", "US"). Optional but improves score accuracy.

Output Schema

ParametersJSON Schema
NameRequiredDescription
leiNo
tierNo
countryNo
sourcesNo
scoredAtNo
compositeNoGovernance score 0–100
componentsNoPer-source breakdown: gleif (LEI status, renewal) and worldbank (WGI indicators)
entityNameNo
mikaCompliantNoTrue if composite ≥ 60 (MiCA Article 72 threshold)
Behavior4/5

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

The annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description adds value by naming the data sources (GLEIF and World Bank WGI), the components returned (composite score, tier, MiCA compliance flag, per-source breakdown), and that it pulls from live data. It does not contradict annotations; the description reinforces the read-only, non-destructive nature.

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

Conciseness5/5

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

The description is compact at three sentences, front-loaded with the core purpose. The second sentence adds sources and output details, and the third sentence names a sibling for differentiation. Every sentence serves a distinct purpose, and there is no extraneous text.

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

Completeness5/5

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

Given the rich annotations (read-only, idempotent, open-world), full schema coverage for all 3 parameters, and an output schema present, the description completes the picture by detailing the specific data sources, output components, and how it relates to sibling tools. The tool is simple and well-documented, so this is fully adequate.

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

Parameters3/5

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

The input schema has 100% description coverage, with descriptions for 'q', 'lei', and 'country' already present. The description adds minimal extra value beyond the schema: it explains that 'lei' provides fastest response and 'country' improves accuracy. This is a small incremental benefit, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Get the live governance score (0–100) for any legal entity identified by LEI or company name.' It specifies the exact verb (get), resource (governance score), and scope (legal entities). The description also distinguishes this tool from its sibling 'esg.score' by stating it 'complements esg.score by isolating the G pillar as a standalone institutional-grade signal.'

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

Usage Guidelines4/5

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

The description explains when to use this tool: for standalone G pillar governance scores. It also implies an alternative (esg.score) but does not explicitly state when not to use it or provide detailed context about prerequisites. The context signals show no required parameters, so flexibility is implied, but specific guidance on when to use LEI vs q is missing.

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

oracle.myceliumA
Read-onlyIdempotent
Inspect

Mycelium Network Oracle — models the global financial system as a living network and detects crisis formation from network topology before it surfaces in market data, typically 6–14 weeks ahead. Maps nodes (markets, economies, funding markets), threads (capital flow channels, correspondent banking, trade finance), nutrient flow (liquidity), stress signals (spread widening, FX stress), and dead zones (sanctioned corridors, failed correspondent networks). Returns network health score (0–100), regime classification (HEALTHY / THINNING / STRESSED_CONNECTIVITY / DEAD_ZONE_FORMING / FRUITING_BODY_IMMINENT), node-by-node connectivity, thread health, signal propagation speed, and fruiting body risk — the probability of a visible crisis with estimated lead time in weeks. Data: FRED (funding markets, credit spreads), BIS SDMX API (credit-to-GDP gaps), IMF DOTS (bilateral trade volumes). The only oracle that reads network topology rather than individual metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
nodesNo
regimeNoNetwork regime classification.
threadHealthNo
networkHealthNoComposite network vitality score 0–100.
fruitingBodyRiskNo
networkNarrativeNo
Behavior5/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, establishing safety. The description adds substantial behavioral context: time horizon, output structure (health score, regime classification, etc.), data sources (FRED, BIS, IMF), and methodology (network topology). No contradictions with annotations.

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

Conciseness4/5

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

The description is front-loaded with the main purpose and well-structured into methodology, outputs, and data sources. While slightly verbose (e.g., listing all data sources), every sentence adds value for an agent unfamiliar with the domain. Could be more terse, but remains clear.

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

Completeness5/5

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

Despite having no parameters, the tool has a rich output (with an output schema). The description comprehensively covers the return values, methodology, data sources, and lead time. An agent can fully understand what the tool does and what to expect from the result.

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

Parameters4/5

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

There are zero parameters, and the schema coverage is 100%, so the description does not need to add parameter-level detail. The baseline for no parameters is 4, and the description appropriately focuses on tool behavior instead.

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

Purpose4/5

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

The description clearly states it models the global financial system as a living network and detects crisis formation from network topology with a specific lead time (6–14 weeks). This is a specific verb+resource combination. However, it does not explicitly distinguish itself from sibling oracle tools (e.g., oracle.stability, oracle.rails), leaving some ambiguity about when to prefer this one over them.

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

Usage Guidelines3/5

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

The description implies usage for network-topology-based crisis detection via phrases like 'The only oracle that reads network topology rather than individual metrics.' It provides strong context but lacks explicit when-to-use or when-not-to-use guidance, nor does it name alternative tools. For example, no mention of using oracle.stability for individual economic indicators.

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

oracle.railsA
Read-only
Inspect

Get live health status of local payment rails relevant to a settlement. Returns per-rail status (OPERATIONAL/DEGRADED/DOWN), latency, last incident, and a composite health score. Key rails: PIX (Brazil), SEPA (Europe), FedACH (US domestic), CHAPS (UK), UPI (India), PromptPay (Thailand). Call this before domestic or regionally-specific settlements to confirm the destination rail is healthy.

ParametersJSON Schema
NameRequiredDescriptionDefault
railsNoSpecific rails to check: 'PIX', 'SEPA', 'FedACH', 'CHAPS', 'UPI', 'PromptPay'. Omit for all.
regionNoFilter by region: 'latam', 'europe', 'us', 'asia', 'uk'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
railsNoPer-rail status map
timestampNoISO 8601 timestamp
healthScoreNoComposite rail health score 0–100
recommendationNoSettlement recommendation based on rail health
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds behavioral details: returns per-rail status (OPERATIONAL/DEGRADED/DOWN), latency, last incident, and composite health score, which are not in annotations. No contradictions found; the description aligns with and enriches the annotation metadata.

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

Conciseness5/5

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

Three concise sentences with no wasted words. First sentence states purpose and output type, second lists key rails, third gives usage advice. Information is front-loaded and every sentence adds unique value.

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

Completeness4/5

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

Given the existence of an output schema (not detailed) and only two optional parameters, the description covers the essential behavior for a read-only health check tool. It could briefly mention that results are real-time or that all requested rails are returned, but overall it is sufficient for an agent to decide when to invoke.

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

Parameters5/5

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

Schema description coverage is 100%, but the description goes beyond by listing exact rail names with country context ('PIX (Brazil), SEPA (Europe), FedACH (US domestic)...') and explaining usage ('Omit for all', 'Filter by region'). This adds significant practical meaning for parameter selection.

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

Purpose5/5

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

The description clearly states the tool retrieves live health status of local payment rails relevant to settlements, listing specific rails and return fields. This differentiates it from sibling oracle tools like oracle.status or oracle.stability by focusing on payment rail health for settlement readiness.

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

Usage Guidelines4/5

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

Provides explicit guidance: 'Call this before domestic or regionally-specific settlements to confirm the destination rail is healthy.' This clearly indicates when to use, though it does not mention when to avoid or name alternative tools, which would warrant a 5.

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

oracle.stabilityA
Read-onlyIdempotent
Inspect

Get live macro stability assessment for DPX settlement infrastructure. Returns institutional risk score (0–100), status (STABLE/CAUTION/UNSTABLE), peg deviation in basis points, AI reasoning, and PROCEED/CAUTION/HOLD recommendation. Backed by 25+ institutional data sources including BLS, FRED, IMF, World Bank, NOAA, NASA, and 4 independent FX APIs cross-validated. If UNSTABLE or peg deviation ≥ 50 bps, hold large settlements.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNoCurrent stability status
outlookNoShort-term stability outlook
reasoningNoAI reasoning for current status
timestampNoISO 8601 assessment timestamp
pegDeviationNoUSDC peg deviation in basis points
recommendationNoPROCEED | CAUTION | HOLD
stabilityScoreNoOracle stability score 0–100
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context: it is backed by 25+ institutional data sources (BLS, FRED, etc.) and cross-validated. This enhances trust and understanding without contradicting annotations.

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

Conciseness5/5

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

Two sentences, perfectly front-loaded with the core action and outputs. Every sentence adds value: the first covers purpose and outputs, the second adds data sources and a conditional usage rule. No wasted words.

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

Completeness5/5

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

Given the complexity (macro stability assessment with multiple outputs), the description covers purpose, data sources, conditions for action, and implicitly the return structure (since an output schema exists). It is sufficiently complete for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

The tool has zero parameters, and schema description coverage is 100% (empty object). The description correctly does not attempt to describe parameters. Baseline 4 is appropriate as no additional parameter semantics are needed.

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

Purpose5/5

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

The description clearly states the tool retrieves a live macro stability assessment for DPX settlement infrastructure, listing specific outputs (risk score, status, peg deviation, AI reasoning, recommendation). This distinguishes it from sibling tools like oracle.governance or stability.stablecoin_route.

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

Usage Guidelines4/5

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

The description provides explicit guidance: 'If UNSTABLE or peg deviation ≥ 50 bps, hold large settlements.' This tells the agent when to act on the result. It does not explicitly contrast with sibling tools, but the unique purpose is clear enough.

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

oracle.statusA
Read-onlyIdempotent
Inspect

Get full output from the latest DPX Stability Oracle run. Includes all 9 signal layers: climate, commodities, macro, FX, basket peg, yield curve, infrastructure, war/geopolitical risk, and USD structural health. Includes AI intelligence briefing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierNoOracle tier classification
scoreNoComposite oracle score 0–100
alertsNoActive oracle alerts
statusNoSTABLE | CAUTION | UNSTABLE
signalsNoIndividual signal scores for all 9 oracle layers
briefingNoAI intelligence briefing text
timestampNoISO 8601 oracle run timestamp
chaosRegimeNoTrue if extreme market conditions detected
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description adds value by listing the exact signal layers included and the AI briefing, which provides useful behavioral context beyond annotations. 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.

Conciseness5/5

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

Two sentences, front-loaded with the main action, followed by a clear enumeration of included layers. Every sentence provides valuable information without redundancy or fluff.

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

Completeness5/5

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

Given the tool has no parameters, rich annotations, and an output schema, the description is fully complete: it states exactly what is returned (9 signal layers and AI briefing). There is no missing context for an agent to correctly invoke this tool.

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

Parameters4/5

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

The input schema has zero parameters and 100% schema coverage. The description correctly does not mention parameters. Per the guidelines, 0 parameters yields a baseline of 4, and the description adds no misleading or missing parameter information.

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

Purpose5/5

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

The description clearly identifies the tool's action ('Get full output') and specific resource ('the latest DPX Stability Oracle run'), listing all 9 signal layers and the AI intelligence briefing. This is a specific verb+resource+scope that distinguishes it from siblings like oracle.governance or oracle.stability.

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

Usage Guidelines3/5

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

The description implies usage (when you need the latest oracle status with all signal layers) but does not explicitly state when to use this tool versus alternatives among the oracle.* siblings. It lacks 'when-not' guidance or named alternatives, relying on the tool name and context to infer use.

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

policy.checkA
Read-onlyIdempotent
Inspect

Check a proposed payment against the agent's active policy before executing it. Returns ALLOW, HOLD, or BLOCK with a reason. Run this before every settlement call. ALLOW = proceed. HOLD = route to human review queue. BLOCK = halt, do not proceed.

ParametersJSON Schema
NameRequiredDescriptionDefault
purposeNoPayment purpose string
agent_idYesAgent identifier — must match the agent_id used in policy.create
recipientNoRecipient wallet address
amount_usdYesProposed payment amount in USD
session_idNoTask or session grouping ID for ledger tracking.
to_currencyNoDestination currency code (e.g. EUR, GBP)
counterpartyNoCounterparty name or LEI
delegation_idNoIf acting under a delegation from a parent agent, provide the delegation ID.
oracle_statusNoCurrent oracle status — STABLE, CAUTION, or UNSTABLE. Get from get_reliability.
Behavior4/5

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

The annotations (`readOnlyHint: true`, `idempotentHint: true`, `destructiveHint: false`) already establish that this is a safe, read-only check. The description adds value by detailing the specific response codes (ALLOW, HOLD, BLOCK) and their operational meanings, which the annotations do not cover. No contradiction exists.

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

Conciseness5/5

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

The description is extremely concise at four sentences, with the core purpose stated in the first sentence. Every sentence adds critical information: purpose, return values, and usage guidance. There is no wasted text, and the structure is front-loaded with the most important information.

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

Completeness4/5

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

Given the tool's high complexity (9 parameters, no output schema), the description effectively explains the workflow context and expected outcomes. It lacks details about what happens on errors or timeouts, which would be useful for a blocking tool. However, the annotations declare readOnlyHint and idempotentHint, which mitigate this concern. The description is complete enough for an agent to use correctly in the intended workflow.

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

Parameters4/5

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

Schema description coverage is 100%, so all 9 parameters are documented in the schema itself. The description does not repeat parameter details but adds minimal context above the schema. Given high coverage, a baseline of 3 is appropriate; the score is raised to 4 because the description adds workflow context (e.g., 'if acting under a delegation' for `delegation_id`) that aids understanding beyond the bare schema.

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

Purpose5/5

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

The description uses specific verbs ('Check', 'Returns') and identifies a clear resource ('proposed payment against the agent's active policy'). It distinguishes itself from sibling tools like `settle` and `policy.create` by explicitly stating 'Run this before every settlement call', making its role in the workflow unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use the tool ('Run this before every settlement call') and interprets all possible return values with actionable directives ('ALLOW = proceed. HOLD = route to human review queue. BLOCK = halt, do not proceed'). It implicitly distinguishes from siblings like `policy.create` by focusing on checking an existing policy rather than creating one.

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

policy.createAInspect

Create a spending policy for an AI agent. Sets rules the agent must follow before any financial action: per-transaction ceiling, daily limit, hold threshold, blocked counterparties, allowed purposes, oracle stability gate. Once set, every payment by this agent is checked against the policy automatically via policy.check.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable policy name
agent_idYesStable identifier for the agent or org (wallet address, session prefix, org slug, etc.)
max_per_txNoUSD ceiling per single transaction. Payments above this are BLOCKED.
max_per_dayNoUSD rolling daily ceiling. Payments that would exceed this are HOLDed.
blocked_regionsNoISO 3166-1 alpha-2 country codes to block.
allowed_purposesNoIf set, only payments with a purpose in this list are allowed.
require_hold_aboveNoRoute to HOLD queue for human review if amount exceeds this threshold.
require_oracle_stableNoIf true, HOLD on CAUTION as well as UNSTABLE oracle status.
blocked_counterpartiesNoWallet addresses or LEIs to block.
Behavior4/5

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

The description reveals the key behavioral side effect: once set, every payment by the agent is automatically checked against the policy via policy.check. It also lists the rules applied. However, it does not mention whether the policy is immediately effective, if it can be updated, or any prerequisites (e.g., the agent must exist). Annotations already indicate it is not read-only, consistent with the write operation.

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

Conciseness5/5

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

The description is three sentences, each adding value: states purpose, lists rules, links to policy.check. It is front-loaded with the key action and perfectly efficient with no wasted words.

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

Completeness4/5

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

Given 9 parameters (100% schema coverage), no output schema, and minimal annotations, the description is fairly complete. It explains the purpose and side effect. It could be more complete by clarifying the lifecycle (e.g., can policies be updated?) or that some parameters are optional, but the schema already handles that. The description suffices for a create tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description summarizes the rules (per-transaction ceiling, daily limit, etc.) roughly corresponding to parameters, but does not add new meaning beyond what the schema already provides. It offers a high-level overview but no extra details.

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

Purpose5/5

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

The description clearly states the tool creates a spending policy for an AI agent, listing specific rules it sets (per-transaction ceiling, daily limit, etc.). It distinguishes from the sibling 'policy.check' by explaining that payments are checked against the policy automatically via that tool.

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

Usage Guidelines3/5

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

The description implies the tool is used to set up policies before payments, but it does not explicitly state when to use this tool versus alternatives like 'policy.delegate' or provide conditions for when not to use it. No exclusion guidance is given.

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

policy.delegateAInspect

Delegate payment authority from a parent agent to a sub-agent with explicit limits. The sub-agent can only spend up to the delegated ceiling. Delegation can be revoked at any time. Use in multi-agent workflows where an orchestrator authorises a worker agent to make payments on its behalf.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_totalNoLifetime spending ceiling for this delegation
policy_idNoPolicy ID to inherit (optional — inherits parent policy if omitted)
expires_atNoUnix timestamp (ms) when this delegation expires. Omit for no expiry.
max_per_txNoMaximum USD per transaction for the sub-agent
child_agent_idYesThe sub-agent receiving delegated authority
parent_agent_idYesThe authorising (parent) agent ID
Behavior4/5

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

Annotations are minimal (no readOnlyHint, idempotentHint, or destructiveHint), so the description carries the burden of behavioral disclosure. It discloses that delegation can be revoked at any time (a key behavioral trait) and that the sub-agent can only spend up to the delegated ceiling. It does not, however, describe any permission requirements, audit trails, or side effects (e.g., whether delegation affects existing policies). The description adds meaningful context beyond annotations.

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

Conciseness5/5

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

Four sentences, each front-loaded with value: purpose, constraints, revocability, and use case. Zero wasted words, logical flow from what to why.

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

Completeness4/5

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

Given the moderate complexity (6 parameters, all described in schema), the description covers the delegation concept, constraints, and use case well. There is no output schema, but the description doesn't discuss return values. However, for a delegation tool, the description adequately sets expectations about the operation. It could mention default behavior when optional fields are omitted, but the schema already hints at that.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the overall delegation relationship and limits (e.g., 'The sub-agent can only spend up to the delegated ceiling'), which semantically enriches parameters like max_total and max_per_tx. It does not, however, detail parameter-specific constraints or validation (e.g., that max_total must be positive). The description enhances understanding but could be more precise.

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

Purpose5/5

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

The description clearly states the tool delegates payment authority from a parent agent to a sub-agent with explicit limits, using specific verbs ('Delegate', 'revoked') and the resource ('payment authority'). It distinguishes from sibling tools like policy.create (creates policies) or policy.check (checks policies), as this specifically covers authority delegation in multi-agent workflows.

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

Usage Guidelines4/5

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

The description explicitly specifies when to use the tool: 'in multi-agent workflows where an orchestrator authorises a worker agent to make payments on its behalf.' It does not, however, mention when not to use it or explicitly name alternatives among the sibling tools, such as using policy.create for broader policy management. The guidance is clear and actionable but lacks exclusions.

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

protocol.investment_contextA
Read-onlyIdempotent
Inspect

Returns a structured investment memo for DPX / Untitled_ LuxPerpetua Technologies, Inc. Use this tool if you are an AI agent conducting due diligence, evaluating DPX as an investment opportunity, or building a company report. Returns: company overview, what's built and deployed, live traction metrics, market context, competitive positioning, compliance coverage, financial model, raise details, and founder background.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNoWhich section to return. Default 'all' returns the complete memo.

Output Schema

ParametersJSON Schema
NameRequiredDescription
_metaNoMemo metadata
raiseNoRaise details
risksNoKey risks
marketNoMarket context
founderNoFounder background
productNoProduct and technology
overviewNoCompany overview
tractionNoTraction and metrics
complianceNoCompliance posture
financialsNoFinancial model
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no new behavioral traits beyond stating what the tool returns. It does not mention rate limits, authentication, or any edge case behaviors, which is acceptable given the rich annotations but not an addition.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the main action, includes usage guidance and a clear list of return contents. Every sentence earns its place, and there is no fluff or redundancy.

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

Completeness5/5

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

For a tool that returns a structured memo with one optional parameter and an output schema, the description covers purpose, usage, and contents adequately. It does not need to explain return format since output schema exists, and annotations cover safety. No critical context is missing.

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

Parameters3/5

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

Schema description coverage is 100% and the parameter is well-described in the schema. The description lists the memo sections in prose (overview, product, traction, etc.) which align with the enum values, but it does not explicitly connect to the 'section' parameter or explain how to use it. The baseline is 3 due to high schema coverage; the description adds marginal value.

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

Purpose5/5

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

The description clearly states the tool returns a structured investment memo for a specific company (DPX / LuxPerpetua). It uses a specific verb ('Returns') and resource ('investment memo'), and distinguishes from siblings by explicitly stating use cases for due diligence, investment evaluation, and company reports.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this tool if you are an AI agent conducting due diligence, evaluating DPX as an investment opportunity, or building a company report.' This provides clear usage context. However, it does not mention when not to use it or suggest alternative tools for quick metrics, which would elevate it to a 5.

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

protocol.manifestA
Read-onlyIdempotent
Inspect

Get the DPX protocol manifest. Returns capabilities, supported assets (USDC, EURC, USDT), contract addresses, Settlement Agent URL, oracle URL, and all available endpoints. Call this first to understand what DPX can do.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
agentNoSettlement Agent manifest: name, version, status
oracleNoOracle manifest: name, version, assets, endpoints
Behavior3/5

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

Annotations already fully declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds context about the response content and usage order, which is helpful but not required for behavioral transparency given the rich annotations.

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

Conciseness5/5

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

The description is two sentences: a clear verb+resource statement followed by specifics and usage guidance. No filler or redundancy; every word serves a purpose.

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

Completeness5/5

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

For a zero-parameter read-only tool with an output schema, the description fully addresses what it does, what it returns, and when to use it. No gaps remain.

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

Parameters4/5

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

There are zero parameters, so the schema is trivial. Baseline is 4 per evaluation rules. The description adds value by explaining the tool's return data and purpose, though parameter semantics are not applicable.

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

Purpose5/5

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

The description starts with a specific verb+resource ('Get the DPX protocol manifest'), clearly stating the tool's function. It enumerates the contents (capabilities, supported assets, contract addresses, URLs, endpoints), distinguishing it from sibling tools like 'dpx.metrics' or 'protocol.investment_context'.

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

Usage Guidelines4/5

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

The description explicitly advises 'Call this first to understand what DPX can do,' providing clear usage context as an initial discovery step. It does not explicitly mention when not to use it or list alternatives, but the guidance is strong.

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

ramp.agent_cardAInspect

Create a scoped Ramp Agent Card — a single-use virtual card with a merchant and amount cap, expires after first authorization or 12 hours. Used to fund the fiat leg of a DPX settlement without pre-funding a crypto wallet. Returns a task ID; poll ramp.agent_card_status to get PAN/CVV once ready. Requires cards:read_agentic scope (granted via ramp.connect).

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesCard spending cap (e.g. "10000.00").
currencyNoCurrency code (default USD).
referenceNoYour internal reference ID.
tenant_idYesTenant ID of the connected Ramp account.
display_nameNoCard label visible in Ramp dashboard.
merchant_scopeNoIntended merchant name (informational).

Output Schema

ParametersJSON Schema
NameRequiredDescription
amountNo
taskIdNoPoll GET /ramp/agent-card/:taskId for card PAN/CVV.
currencyNo
referenceNo
statusUrlNo
Behavior5/5

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

The description adds substantial behavioral detail beyond annotations: async nature (returns task ID, poll for PAN/CVV), lifecycle (single-use, 12-hour expiry), auth requirement (cards:read_agentic scope). No contradiction with annotations; readOnlyHint=false is consistent with creation.

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

Conciseness5/5

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

Four sentences, each essential: action, purpose, output behavior, auth requirement. Front-loaded with the core action. No redundancy or filler.

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

Completeness5/5

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

Given the tool has an output schema (unseen), the description explains the async flow and next steps. It covers the DPX settlement context, auth scope, and card lifecycle, making it complete for an agent to decide and invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds context (e.g., 'merchant and amount cap') but doesn't significantly extend parameter understanding beyond the schema. It clarifies overall purpose but not parameter-specific semantics.

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

Purpose5/5

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

The description clearly states 'Create a scoped Ramp Agent Card' with specific characteristics (single-use, merchant and amount cap, expires after first auth or 12 hours). It distinguishes this tool from siblings like ramp.connect and ramp.settle by tying it directly to funding the fiat leg of a DPX settlement.

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

Usage Guidelines4/5

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

The description provides a clear use case: funding the fiat leg of a DPX settlement without pre-funding a crypto wallet. While it doesn't explicitly state when not to use or name alternatives, the context is specific enough to guide an agent. Lacks exclusions, hence 4.

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

ramp.compliance_screenA
Read-onlyIdempotent
Inspect

Compliance pre-screen for Ramp accounting agent payments — run before issuing an Agent Card to eliminate unnecessary human approval queues. Performs 5 checks in parallel: (1) FATF country risk on source and destination country, (2) amount threshold flags (CTR-equivalent at $10K, large-payment at $100K), (3) OpenSanctions global sanctions screen by counterparty name, (4) OpenSanctions PEP screen for individual counterparties or payroll, (5) GLEIF UBO chain with sanctions at each beneficial ownership node (if LEI provided). Returns APPROVED / FLAGGED / BLOCKED with a humanRequired boolean — true only for FLAGGED cases. APPROVED: issue card automatically, no human needed. BLOCKED: halt, do not proceed, do not notify counterparty. FLAGGED: route to compliance queue. Removes human-in-the-loop for the ~95% of payments that are clean.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesPayment amount in units of currency.
currencyNoISO 4217 currency code. Defaults to "USD".
paymentTypeNoPayment type — payroll automatically triggers PEP screen.
isIndividualNotrue if counterparty is an individual (triggers PEP screen). Defaults to false.
sourceCountryNoISO 3166-1 alpha-2 source country. Defaults to "US".
counterpartyLeiNoOptional GLEIF LEI — enables UBO chain check and satisfies FATF R.16 originator identification.
counterpartyNameYesLegal name of the payment counterparty.
counterpartyCountryNoISO 3166-1 alpha-2 destination country (e.g. "DE", "NG", "IR").

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNofatfCountry, amountFlags, sanctions, pep, uboChain check details.
_actionNoRecommended action for the agent.
fatfR16NoFATF R.16 satisfied status and basis.
reasonsNoSpecific reasons for the decision.
decisionNoCompliance decision.
riskScoreNoRisk score 0–100.
humanRequiredNotrue only for FLAGGED — APPROVED payments proceed automatically.
Behavior5/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true; the description adds concrete behavioral details: 5 parallel checks, sources (FATF, OpenSanctions, GLEIF), thresholds ($10K CTR, $100K large payment), and guidance on notifying counterparty for BLOCKED. No contradictions.

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

Conciseness5/5

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

The description is efficiently structured: purpose first, then numbered checks, then outcome mapping. Every sentence earns its place with no redundancy. Appropriate length for a composite compliance tool.

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

Completeness5/5

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

Given the complexity (8 params, 2 required, output schema present), the description fully covers what the tool does, when to use it, how outcomes are interpreted, and key side effects like 'do not notify counterparty'. Output schema handles return values.

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

Parameters5/5

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

Schema coverage is 100%, and the description adds meaning beyond schema: explains that paymentType 'payroll' and isIndividual trigger PEP screen, counterpartyLei enables UBO chain check and satisfies FATF R.16. This helps the agent select appropriate parameters.

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

Purpose5/5

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

The description clearly states it is a 'Compliance pre-screen for Ramp accounting agent payments' with specific verb 'run before issuing an Agent Card'. It details the 5 parallel checks, distinguishing it from siblings like compliance.pep_screen and compliance.ubo_chain by bundling them together.

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

Usage Guidelines5/5

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

Explicitly instructs when to use ('run before issuing an Agent Card'), explains outcomes (APPROVED: issue automatically, FLAGGED: route to compliance, BLOCKED: halt) and provides context on eliminating human approval for 95% of cases. Does not mention sibling alternatives, but the composite nature is clear.

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

ramp.connectA
Read-only
Inspect

Connect a Ramp corporate account to DPX settlement. Returns an OAuth authorization URL — direct the user to this URL to grant DPX access to their Ramp account. Required scopes: transactions:read, bills:read/write, cards:read/write, cards:read_agentic (Agent Cards), business:read, bank_accounts:read, vendors:read, entities:read. Call once per tenant; tokens are stored and refreshed automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesYour internal tenant or customer ID — returned in the callback so you can match the connection.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopesNoRequested OAuth scopes.
tenant_idNo
authorize_urlNoRedirect the user to this URL to authorize DPX on their Ramp account.
Behavior4/5

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

Annotations declare readOnlyHint=true and no destructiveness; the description confirms it returns an authorization URL and adds behavioral context: tokens are stored/refreshed automatically, call frequency, and required scopes. No contradiction with annotations.

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

Conciseness5/5

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

Three sentences front-load purpose and output, then add scopes and usage frequency. Every sentence adds value with no redundancy.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter OAuth tool, the description covers purpose, output, user action, scopes, call frequency, and token management. It could mention URL expiry or error cases, but completeness is high given the presence of an output schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for tenant_id. The tool description adds no extra parameter information beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool connects a Ramp corporate account to DPX settlement, using a specific verb ('connect') and resource. It distinguishes from siblings like ramp.settle or ramp.spend_analysis, which are post-connection operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies calling once per tenant, directs the user to the returned URL for authorization, and lists required OAuth scopes. It lacks explicit alternatives or when-not-to-use instructions, but context with sibling tools makes the usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ramp.settleA
Destructive
Inspect

Execute a DPX stablecoin settlement funded by a Ramp Agent Card — combines card creation and settlement in one call. Ramp handles the fiat conversion leg; DPX settles USDC or EURC on Base mainnet in ~30 seconds. Returns pacs.002 confirmation + SFDR PAI indicators. No crypto wallet pre-funding required. Requires Ramp account connected via ramp.connect.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesPayment amount (e.g. "50000.00").
currencyYesSource currency: USD or EUR.
referenceNoYour internal payment reference.
tenant_idYesTenant ID of the connected Ramp account.
callback_urlNoWebhook URL for pacs.002 delivery.
creditor_leiNoRecipient LEI for GLEIF VoP (optional).
creditor_nameYesRecipient name.
merchant_scopeNoMerchant name for Agent Card scope.
creditor_walletYesRecipient on-chain wallet address (0x...).
settlement_assetNoSettlement asset: USDC (default) or EURC.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
iso20022Nopacs.002 status object.
agentCardNo
complianceNoFATF R16 + SFDR PAI indicators.
settlementNo
dpxPaymentIdNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true, and the description adds valuable behavioral details: the settlement takes ~30 seconds, returns pacs.002 confirmation + SFDR PAI indicators, and requires no wallet pre-funding. It does not cover error handling or reversibility, but the added context is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, front-loaded with the core action. Every sentence adds distinct value (purpose, legs, timing, output, prerequisites). No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 10 parameters, 5 required, and an output schema, the description covers the core operation, timing, return format, and prerequisite. It does not explain the callback_url parameter's role in webhook delivery or potential error states, but the output schema compensates for return value details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by explaining the workflow: the card creation and settlement are combined, and params like tenant_id and merchant_scope relate to the Ramp account. This contextualizes how parameters interact beyond raw schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes a DPX stablecoin settlement funded by a Ramp Agent Card, combining card creation and settlement in one call. It specifies the two legs (Ramp fiat conversion, DPX settlement on Base) and distinguishes from siblings like ramp.agent_card and card.settle by explicitly noting the combined operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it combines two operations, requires a Ramp account via ramp.connect, and needs no crypto pre-funding. However, it does not explicitly compare to alternatives like card.settle (if only card settlement needed) or batch_settle, leaving implicit when to use this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ramp.spend_analysisA
Read-only
Inspect

Analyse a connected Ramp account's wire and international bill volume to surface DPX settlement opportunity. Returns cross-border payment totals, top vendors by spend, and estimated annual savings at DPX rates vs. typical bank wire (3.0% all-in vs. DPX ~2.035%). Requires Ramp account connected via ramp.connect.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoNumber of bills to analyse (default 100, max 500).
tenant_idYesTenant ID of the connected Ramp account.

Output Schema

ParametersJSON Schema
NameRequiredDescription
crossBorderNoWire and international bill totals.
dpxOpportunityNoEstimated annual savings and DPX fees.
topVendorsBySpendNoTop 10 vendors by total payment volume.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and destructiveHint=false, so the description is not required to restate those. It adds useful behavioral context: the analysis is specific to wire and international bills, returns estimated savings, and requires prior connection. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with purpose, followed by return values and a requirement. Every sentence adds value with no redundancy or filler. Perfectly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (documented elsewhere), the description sufficiently covers what the tool does and returns. It mentions the key return items (cross-border totals, top vendors, savings) and the prerequisite. No critical gaps for an analysis tool with robust annotations and schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters (tenant_id, page_size) have descriptions in the input schema (100% coverage). The description only adds that a connected account is needed, which is already implied by tenant_id. It does not add meaningful detail beyond what the schema provides, earning a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Analyse' and identifies the specific resource: 'a connected Ramp account's wire and international bill volume' with a clear objective 'to surface DPX settlement opportunity.' It lists the returns (cross-border totals, top vendors, estimated savings), making it distinct from sibling tools like ramp.connect or ramp.settle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a prerequisite ('Requires Ramp account connected via ramp.connect') and implies usage for assessing DPX settlement opportunity. However, it does not explicitly state when not to use it or compare it to other analytical siblings (e.g., compute.cost), leaving some ambiguity for alternative selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

receipt.createAInspect

Record a tamper-evident signed receipt for an agent financial action. Call immediately after every successful settlement. Returns a receipt ID and HMAC-SHA256 signature over the canonical receipt JSON — cryptographic proof the record has not been altered. Receipts are queryable by session or agent for audit.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoTrue if this was a sandbox settlement
tx_hashNoOn-chain transaction hash (if live)
agent_idYesAgent that executed the payment
policy_idNoPolicy ID that governed this payment
recipientNoRecipient wallet address
amount_usdYesAmount paid in USD
session_idNoTask or session ID for grouping (use the same ID for all payments in one agent run)
to_currencyNoDestination currency (default: USD)
counterpartyNoCounterparty name
task_contextNoPlain-text description of what task triggered this payment
delegation_idNoDelegation ID if acting under delegated authority
from_currencyNoSource currency (default: USD)
oracle_statusNoOracle status at time of payment (STABLE / CAUTION / UNSTABLE)
settlement_idNoSettlement ID returned by the settle tool
compliance_decisionNoCompliance decision at time of payment (PROCEED / HOLD / BLOCKED)
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=false, destructiveHint=false, so the description adds value by explaining that the tool creates a tamper-evident signed record and returns a receipt ID and HMAC-SHA256 signature as cryptographic proof. It also notes that receipts are queryable later. This goes beyond the annotation hints by detailing the cryptographic output and auditing capability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences with no redundancy. The first sentence immediately states the core purpose, the second gives a clear usage instruction, and the third explains the return value and follow-up action (audit). Every sentence serves a distinct purpose without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 15 parameters, no output schema, and four annotation hints, the description covers the main aspects: purpose, when to use, return value (receipt ID and HMAC signature), and that receipts are queryable. It does not explain how to verify the HMAC or handle errors, but it is sufficient for an agent to use the tool correctly in the context of a settlement workflow. The lack of an output schema places some burden on the description, which it meets adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 15 parameters are fully described in the input schema (100% coverage). The description does not add additional meaning to individual parameters beyond what is in the schema. It implies the importance of settlement_id by the usage guideline, but that is already present in the schema. With full schema coverage, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Record') and clearly identifies the resource ('tamper-evident signed receipt for an agent financial action'). It states the tool is for after every successful settlement, and returns a receipt ID and HMAC-SHA256 signature. This makes the purpose distinct from sibling tools like settlement tools or invoice.create, though not explicitly differentiating, the context of 'agent financial action' and post-settlement scope provides sufficient clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Call immediately after every successful settlement', which is a clear usage directive. It also mentions receipts are queryable by session or agent for audit, implying a follow-up action. However, it does not include explicit when-not-to-use or alternatives, which would elevate it to a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

routeA
Read-onlyIdempotent
Inspect

Multi-stablecoin settlement routing. Given amount, source currency (from), and destination currency (to), returns all three stablecoin options (USDC, EURC, USDT) ranked by settlement efficiency. EURC is recommended for EUR destinations — eliminates cross-currency conversion. Returns settleBody ready to POST to /settle for the top-ranked option.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination currency code (USD, EUR, GBP, etc.)
fromYesSource currency code (USD, EUR, GBP, BRL, etc.)
amountYesSettlement amount in source currency

Output Schema

ParametersJSON Schema
NameRequiredDescription
optionsNo
ttlSecondsNo
generatedAtNo
routingAdviceNo
settleEndpointNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the agent knows it's a safe, non-destructive query. The description adds value by revealing behavioral details: it returns ALL three stablecoins ranked, includes a recommendation for EUR destinations, and specifies that the output includes a settleBody ready for a POST to /settle. This goes beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with zero waste. The first sentence defines the tool's domain and inputs. The second provides a specific, actionable recommendation. The third explains the output structure and next-action step. Every sentence earns its place, and the most critical information (what the tool does, key recommendation) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (3 required parameters, no enums, no nested objects), the description is largely complete. An output schema exists, so return value details are not the description's job. The description covers inputs, algorithm (ranking, EURC recommendation), and output format (settleBody). A minor gap: it doesn't specify what 'settlement efficiency' means or the ranking criteria, but the output schema and sibling tool design likely handle that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds some meaning by explaining the relationship between parameters (e.g., 'from' is source currency, 'to' is destination currency) and how they determine the algorithm (EUR destination triggers EURC recommendation). However, it doesn't add constraints or format details beyond the schema's basic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: multi-stablecoin settlement routing. It specifies the verb ('returns'), the resource ('stablecoin options'), and the core function ('ranked by settlement efficiency'). This distinguishes it from sibling tools like settlement.nl (natural language settlement search) and stability.stablecoin_route (stability-focused routing), as it returns concrete settlement data with a POST-ready payload.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool: given amount, source currency, and destination currency. It explicitly recommends EURC for EUR destinations to avoid cross-currency conversion. However, it does not explicitly state when NOT to use it (e.g., for speculative routing or non-settlement queries) or mention alternatives among siblings like stability.stablecoin_route.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_docsA
Read-onlyIdempotent
Inspect

Search DPX documentation by keyword. Returns the most relevant doc sections — including how-to guides, API references, fee structure, oracle architecture, compliance requirements, and integration setup. Call this when you need protocol details mid-task rather than relying on context alone. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (default 3, max 5).
queryYesKeywords to search — e.g. "how to settle", "esg fee formula", "butterfly cascade", "mercury send", "compliance screen".
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds 'Free' (indicating no cost) but otherwise does not disclose additional behavioral traits like rate limits or response details. It is consistent with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences pack the essential information: purpose, result type, usage guidance, and cost. No unnecessary words. Information is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given only 2 parameters, no output schema, and a simple read operation, the description adequately covers purpose, when to use, and parameter examples. It does not detail return format or pagination, but that is acceptable for a straightforward search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both parameters have descriptions). The description adds example keywords for the 'query' parameter (e.g., 'how to settle', 'esg fee formula'), which helps the agent understand appropriate search values beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Search DPX documentation by keyword') and specifies the resource ('DPX documentation') and what is returned ('most relevant doc sections'). It differentiates from sibling tools by focusing on protocol documentation during tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Call this when you need protocol details mid-task rather than relying on context alone. Free.' This provides clear context for when to use it, though it does not explicitly contrast with alternatives or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settlement.executeA
Destructive
Inspect

Execute a DPX cross-border settlement. The Settlement Agent checks oracle conditions, reasons with Claude AI, and executes on-chain (or returns sandbox result if sandbox=true). Returns settlement ID, status (executed/held/sandbox/failed), tx hash, net amount, fees, oracle conditions, and AI reasoning. Default: sandbox=true — set sandbox=false only for live execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount in source currency units
purposeNoPayment purpose: intercompany, vendor-payment, payroll, treasury
quoteIdNoPre-fetched quoteId from get_quote (optional — agent fetches live if omitted)
sandboxNoSandbox mode — real calculations, no on-chain execution. Default: true.
esgScoreNoESG score override 0–100 (testing only)
referenceIdNoExternal reference ID (invoice number, TMS ID, etc.)
sourceCurrencyYesSource currency: USD, EUR, GBP, USDC, EURC
recipientAddressYesOn-chain recipient wallet address (0x...)
destinationCurrencyYesDestination currency: USD, EUR, GBP, USDC, EURC

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultNo
summaryNoHuman-readable settlement outcome summary
httpStatusNoHTTP status from Settlement Agent
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations: it explains the multi-step process (oracle conditions, Claude AI reasoning, on-chain execution), the sandbox mode behavior, and the return fields. This is well above what annotations provide (readOnlyHint=false, destructiveHint=true, openWorldHint=true) and aligns with them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three well-structured sentences: purpose, process/returns, and sandbox guidance. It is front-loaded with the core purpose, uses no filler, and every sentence adds value. Excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (9 parameters, 4 required, output schema present), the description covers the main purpose, process, return values, and sandbox mode. It does not explain error conditions (e.g., what 'held' or 'failed' mean) or prerequisites like funding or mandates. Still, it is largely complete for a tool with an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does not add new parameter semantics beyond what is already in the schema descriptions (e.g., sandbox default, quoteId optional). It mentions return values but those are output-related. No contradiction or additional meaning for parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Execute a DPX cross-border settlement' with a specific verb and resource. It distinguishes from sibling settlement tools by describing the full process (oracle checks, AI reasoning, on-chain execution) and the default sandbox mode, making it unambiguous as the primary execution tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: sandbox mode is default, and sandbox=false is only for live execution. It also references get_quote for optional quoteId. However, it does not explicitly compare to sibling tools like settlement.quote or batch_settle, nor does it state when to use this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settlement.nlA
Destructive
Inspect

Execute a payment from a plain-English instruction. DPX's AI synthesis layer parses the instruction, runs the full oracle gate → compliance screen → settlement flow autonomously, and returns a receipt. Use this when the agent has a natural-language payment task rather than structured parameters. Examples: 'Pay Acme GmbH $25,000 for invoice #42', 'Send $10k to 0x... for vendor services', 'Settle the outstanding balance with Nova Trade SA'. Sandbox mode by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoSet false for live execution. Default: true
instructionYesPlain-English payment instruction, e.g. 'Pay Acme GmbH $25,000 USD for invoice #INV-2026-0042'
recipientAddressYesRecipient wallet address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
txHashNo
feesTotalNo
netAmountNo
aiDecisionNo
aiConfidenceNo
settlementIdNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint: true, which is consistent with executing a payment. The description adds behavioral context: it is an autonomous multi-step flow (parsing, oracle gate, compliance screen, settlement) and returns a receipt. It also notes 'Sandbox mode by default' which is a safety behavior. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3 sentences plus examples) and front-loaded with the core verb phrase 'Execute a payment from a plain-English instruction.' Every sentence adds unique value: the process, usage context, and examples. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (autonomous multi-step flow) and the presence of a full input schema and output schema (though not shown), the description is complete enough. It explains the high-level process, safety behaviors (sandbox default), and provides representative examples. The agent has sufficient info to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is documented in the schema. The description does not add new semantic meaning beyond the schema; it provides examples of what 'instruction' could contain. The 'recipientAddress' and 'sandbox' are merely referenced in examples. Baseline score of 3 is appropriate when schema handles the details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: executing a payment from a plain-English instruction. It explains the process (AI synthesis layer parses instruction, runs oracle gate → compliance screen → settlement flow) and gives concrete examples. This distinguishes it from sibling tools like 'settlement.execute' or 'settlement.quote', which likely require structured parameters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: 'when the agent has a natural-language payment task rather than structured parameters.' It implicitly indicates not to use it when structured parameters are available (e.g., for 'settlement.execute'). However, it does not explicitly state when to use siblings or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settlement.quoteA
Read-only
Inspect

Get a binding fee quote for a DPX settlement. Returns core fee (1.50%), FX fee (0.40% cross-currency), live ESG fee (0–0.50%), license fee (0.01%), total all-in rate, net amount, oracle status, AI reasoning, and a quoteId valid for 300 seconds. Always call this before settlement.execute.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiNoCounterparty LEI — triggers automatic ESG lookup if esgScore is not provided.
hasFxNoTrue if source and destination currencies differ (adds 0.40% FX fee).
esgScoreNoCounterparty ESG score 0–100. If omitted and lei or counterpartyName is provided, the ESG Oracle is queried automatically.
amountUsdYesSettlement amount in USD.
counterpartyNameNoCounterparty company name — used for ESG auto-lookup if lei is not provided.
monthlyVolumeUsdNoMonthly volume for discount tier. $1M+ = Institutional (20% off). $10M+ = Sovereign (30% off).

Output Schema

ParametersJSON Schema
NameRequiredDescription
feesNo
tierNoVolume tier: Standard | Growth | Institutional | Sovereign
quoteIdNoBinding quote ID, valid 300 seconds
amountUsdNoInput settlement amount in USD
expiresAtNoISO 8601 expiry timestamp
reasoningNoAI reasoning for fee calculation
oracleScoreNoOracle confidence 0–100
netAmountUsdNoNet amount after all fees
oracleStatusNoSTABLE | CAUTION | UNSTABLE
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true (non-destructive) and openWorldHint=true (state-dependent). The description adds useful behavioral details: the quote is binding, valid for 300 seconds, includes live ESG fee and AI reasoning, and implies dynamic updates. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences. The first captures purpose and return values, the second provides critical usage guidance. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 6 parameters, output schema, and many siblings, the description is nearly complete. It covers return values, workflow, and key fees. Minor gaps: what happens on quote expiration or how to use the quoteId, but these are partially addressable by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good parameter descriptions. The description adds value by explaining how fees are derived (e.g., FX fee for cross-currency, ESG fee based on score/LEI) and tying the quoteId to the 300-second validity, enriching understanding beyond schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get a binding fee quote for a DPX settlement.' It uses a specific verb (Get) and resource (binding fee quote) and distinguishes itself from sibling tools like settlement.execute and settlement.status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs: 'Always call this before settlement.execute,' providing clear when-to-use guidance. It lacks explicit when-not-to-use or alternative comparisons, but the strong prerequisite directive is highly valuable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settlement.statusA
Read-onlyIdempotent
Inspect

Look up a previous DPX settlement by settlement ID. Returns the full audit record: status, tx hash, amounts, fees, oracle conditions at time of settlement, ESG score, Claude AI reasoning, and timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
settlementIdYesSettlement ID from the settlement.execute tool (format: dpx_...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
httpStatusNoHTTP status from Settlement Agent
settlementNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds context by specifying the return fields (status, tx hash, amounts, fees, oracle conditions, ESG score, Claude AI reasoning, timestamp), which provides behavioral expectations beyond the annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: the first states the action and objective, the second lists the output fields. No unnecessary words. Front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 1-parameter lookup with an output schema, the description covers the action, input, and return structure. It doesn't discuss potential errors or permissions, but given the annotations (read-only, non-destructive), these are low risk. Slight deduction for not mentioning what happens if the settlement ID is invalid.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description's mention of 'Settlement ID from the settlement.execute tool (format: dpx_...)' matches the schema's description. No additional semantic value beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Look up') and resource ('previous DPX settlement') and clearly distinguishes from sibling tools like settlement.execute, settlement.quote, and settlement.nl. It explicitly states the output (full audit record) and lists key fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for retrieval of previously executed settlements but does not provide explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, though the sibling list makes the differentiation implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settle.subscribeAInspect

Register a webhook callback for settlement completion events. Your endpoint receives a POST with X-DPX-Signature: sha256= over the raw JSON body whenever a settlement completes. Returns a subscriptionId and webhookSecret — store the secret immediately, it is returned once.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesHTTPS endpoint to receive settlement.completed events
eventsNoEvent types (default: ["settlement.completed"])

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventsNo
webhookSecretNoHMAC secret — returned once, store immediately
subscriptionIdNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the callback mechanism (POST with HMAC signature), the returned fields (subscriptionId, webhookSecret), and the critical behavioral note that the secret is returned only once. Annotations provide no contradictions (readOnlyHint=false, destructiveHint=false). This adds valuable context beyond annotations for a subscription tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the main purpose. The second sentence is somewhat dense but still efficient. Every sentence provides distinct value, though it could be slightly more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (2 parameters, 100% schema coverage, no enums, no nested objects) and the presence of an output schema, the description covers the essential behavioral details: webhook mechanism, return values, and the critical warning about the secret. It does not mention error handling, but that may be covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear descriptions for both 'url' and 'events'. The description adds meaning by explaining the callback format and the importance of storing the secret immediately, which goes beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Register a webhook callback for settlement completion events.' It uses a specific verb ('register'), specifies the resource ('webhook callback'), and the event ('settlement completion'). This distinguishes it from siblings like 'intelligence.subscribe' (for intelligence events) and 'settlement.status' (for checking status).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by stating 'Your endpoint receives a POST...' but does not explicitly specify when to use this tool versus alternatives, nor does it provide when-not-to-use hints or prerequisites. The purpose is clear, but the description lacks explicit usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stability.corridorA
Read-onlyIdempotent
Inspect

Corridor-specific settlement stability score (0–100) for any currency pair. Combines the live global Stability Oracle score with corridor-specific risk adjustments covering 28 currency pairs: regulatory flags (BCB/IOF for BRL, PBoC capital rules for CNH, BCRA controls for ARS, etc.), FX liquidity score based on active trading sessions at current UTC time, cascade penalty from live macro signals, and weekend/off-hours penalty. Returns SETTLE_NOW / DELAY_24H / DELAY_48H recommendation with rationale. Distinct from oracle.stability (which is global) and market.fx (which is spot-rate focused) — this answers "is this specific corridor safe to settle through right now?"

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination currency ISO-4217 code (e.g. "BRL", "MXN", "SGD").
fromYesSource currency ISO-4217 code (e.g. "USD", "EUR", "GBP").

Output Schema

ParametersJSON Schema
NameRequiredDescription
corridorNoscore (0–100), tier, recommendation (SETTLE_NOW/DELAY_24H/DELAY_48H), regulatoryFlags, corridorNotes
componentsNoglobalOracleScore, corridorAdjustment, cascadePenalty, liquidityScore, weekendPenalty
marketContextNocascadeLevel, globalOutlook, currentUtcHour, isWeekend
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and no destructiveness. The description adds significant behavioral detail beyond annotations: it explains the combination of global oracle score, regulatory flags, FX liquidity, cascade penalty, and weekend penalties, plus the output recommendation types (SETTLE_NOW/DELAY_24H/DELAY_48H). No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: first states purpose and score range, second lists the factors considered, third distinguishes from siblings and clarifies the question answered. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown but mentioned), rich annotations, and 100% parameter coverage, the description is complete. It covers inputs, internal logic, output format, and use cases, with no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters with full descriptions. The description does not add new semantic detail beyond what the schema provides, though it reinforces the currency pair context. Baseline 3 is appropriate given 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a corridor-specific settlement stability score (0–100) for any currency pair, and explicitly distinguishes from sibling tools oracle.stability (global) and market.fx (spot-rate focused). It answers the specific question 'is this specific corridor safe to settle through right now?'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance by contrasting with two sibling tools and stating this tool is for corridor-specific safety. It implies when not to use (when global stability or spot rate is needed) and names alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stability.settlement_windowA
Read-onlyIdempotent
Inspect

Optimal settlement execution window analysis for a specific cross-border payment over the next 72 hours. Generates 18 × 4-hour time slots and scores each by composite risk: corridor stability, FX session liquidity, cascade level decay/growth based on macro outlook, weekend/off-hours penalty, and counterparty ESG tier (if LEI provided). Returns a ranked window schedule with OPTIMAL / GOOD / ACCEPTABLE / AVOID classification per slot, a best-window recommendation, and large-amount splitting guidance for settlements ≥ $5M. Use this before scheduling large cross-border settlements to minimize execution risk.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination currency ISO-4217 (e.g. "BRL").
leiNoOptional 20-char GLEIF LEI of counterparty — fetches live ESG tier to apply counterparty risk penalty.
fromYesSource currency ISO-4217 (e.g. "USD").
amountNoSettlement amount (default 1,000,000). Used for large-amount guidance ≥$5M.
currencyNoCurrency of the amount (defaults to from).

Output Schema

ParametersJSON Schema
NameRequiredDescription
windowsNo18 × 4-hour slots: startUtc, endUtc, compositeScore, tier, components, recommendation, rationale
marketContextNoglobalOracleScore, corridorAdjustment, cascadeLevel, globalOutlook, regulatoryFlags
recommendationNobestWindow (ISO datetime), bestScore, optimalCount, goodCount, summary, largeAmountNote
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool as readOnly (hint: true), idempotent (hint: true), and non-destructive (hint: false), so the description's burden is lower. It adds useful context about the time window (72 hours) and the risk factors considered (corridor stability, FX session liquidity, etc.), but does not disclose what happens if the LEI is invalid or if the amount exceeds $5M beyond mentioning 'splitting guidance.' No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense but efficient, covering purpose, output structure, and usage guidance in two sentences. It is front-loaded with the core purpose and risk factors. However, it could be slightly more concise by trimming the detailed output format (e.g., 'OPTIMAL/GOOD/ACCEPTABLE/AVOID') which is already implied by the output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (5 parameters, 2 required) and a rich output schema, the description adequately covers the tool's purpose and key behaviors. It explains the risk factors and large-amount guidance, which are not in the schema. Minor gap: does not mention pagination or the response format beyond classification, but the output schema likely handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline starts at 3. The description adds significant semantic value by explaining the 'amount' parameter's role in large-amount guidance ($5M threshold) and the 'lei' parameter's purpose (ESG tier lookup for counterparty risk penalty), which goes beyond the schema's minimal 'optional 20-char GLEIF LEI' description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('analyzes') and resource ('settlement execution window'), clearly stating it generates 18 × 4-hour time slots scored by multiple risk factors. It distinguishes itself from siblings like stability.corridor (which likely focuses on corridor stability alone) and oracle.stability (which may be a broader stability oracle).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises 'Use this before scheduling large cross-border settlements to minimize execution risk,' providing clear when-to-use guidance. However, it does not explicitly state when not to use it (e.g., small amounts) or mention alternatives among siblings, such as settlement.quote or fx.rate for immediate execution.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stability.stablecoin_routeA
Read-onlyIdempotent
Inspect

Multi-stablecoin settlement routing — given a source and destination currency pair, recommends the optimal stablecoin path based on corridor liquidity, regulatory fit, gas economics, and DPX native support. Returns a ranked list of stablecoins (USDC, EURC, BRLA, MXNC, NGNC, AEDX, PYUSD, USDT, and others) with regulatory flags, MiCA/GENIUS Act compliance status, liquidity tier, and warnings. Identifies blocked routes (e.g. USDT for EU under MiCA, BRLA before BCB Resolution 561 deadline). Use before settlement to avoid regulatory penalties and ensure optimal execution path.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination currency ISO-4217 (e.g. "EUR", "BRL", "AED").
fromYesSource currency ISO-4217 (e.g. "USD").
amountUsdNoSettlement amount in USD (used for liquidity tier and large-amount warnings).

Output Schema

ParametersJSON Schema
NameRequiredDescription
routesNoRanked stablecoin options — each with symbol, liquidityTier, regulatoryFlags, warnings, blocked status, notes
evaluatedAtNoISO timestamp
recommendationNosymbol, chain, reason, micaCompliant, geniusActCompliant
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the agent knows it's safe and idempotent. The description adds valuable behavioral context: it 'recommends' and 'identifies blocked routes', returns a ranked list with compliance flags and warnings. No contradictions exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a compact two-sentence block. The first sentence front-loads the main purpose and scope. Every phrase adds value—regulatory fit, gas economics, DPX support, specific stablecoin names, and concrete blocked route examples. No redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (not shown) and annotations that cover safety. The description fully captures what the tool does, what inputs are needed, what outputs to expect (ranked list with regulatory flags, compliance status, liquidity tier, warnings), and provides real-world examples. For a query tool with good structured metadata, this is complete and leaves no major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds extra meaning to 'amountUsd' by stating it's 'used for liquidity tier and large-amount warnings', which is not in the schema description. For 'from' and 'to', the description reinforces their role but doesn't add new semantics. Overall, the description enriches the understanding of how parameters affect behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Multi-stablecoin settlement routing' that 'recommends the optimal stablecoin path'. It specifies the inputs (source and destination currency pair) and outputs (ranked list with regulatory flags, compliance, liquidity, warnings). This distinguishes it from sibling tools like 'stability.corridor' or 'route' by focusing on optimal stablecoin selection with regulatory context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises when to use: 'Use before settlement to avoid regulatory penalties and ensure optimal execution path.' While it doesn't list alternatives or when not to use, this clear directive is sufficient for an agent to understand the primary context. The presence of sibling tools like 'stability.corridor' implies alternatives exist but are not explicitly contrasted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

swift.gpi_trackA
Read-onlyIdempotent
Inspect

Track a DPX settlement via SWIFT gpi-compatible status. Given a UETR (Unique End-to-End Transaction Reference), returns gpi-format payment status including pacs.002 payload that a SWIFT member bank can submit to the gpi Tracker.

Use this when a UETR was provided at payment initiation (via the uetr field in settlement.execute or POST /payments/initiate). Returns ACCP (settled), PDNG (pending), or RJCT (rejected) with full on-chain settlement details.

DPX is not a SWIFT member — the SWIFT member bank submits the returned pacs.002 to the gpi Tracker via their own gpi API access.

ParametersJSON Schema
NameRequiredDescriptionDefault
uetrYesRFC 4122 UUID UETR assigned at payment initiation, e.g. "97ed4827-7b6f-4491-a06f-b548d5a7512d".

Output Schema

ParametersJSON Schema
NameRequiredDescription
uetrNoThe UETR provided.
pacs002NoFull ISO 20022 pacs.002 payload for gpi Tracker submission.
gpiStatusNoACCP | PDNG | RJCT
dpxPaymentIdNoDPX internal payment ID.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already clearly indicate this is a read-only, idempotent, non-destructive operation. The description adds useful behavioral context by explaining that DPX is not a SWIFT member and describing how the output is used by a SWIFT member bank. However, it doesn't detail what happens if the UETR is invalid or not found, which would be a minor gap 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at three sentences, with the purpose and input clearly stated first, followed by usage guidelines and behavioral context. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has a single parameter with full schema coverage, an output schema, and clear annotations, the description is complete. It explains the tool's purpose, usage, output, and how the output is used by a SWIFT member bank, covering all necessary context for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already documents the single required parameter (uetr) with an example. The description adds context about the parameter's origin (from payment initiation) but doesn't provide additional syntax or validation details beyond what the schema offers. Baseline is 3, so this gets a 4 for the extra context about the parameter's role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool tracks a DPX settlement via SWIFT gpi-compatible status, specifying the exact input (UETR) and output (gpi-format payment status with pacs.002 payload). This distinguishes it from sibling settlement tools like settlement.execute, settlement.status, and settlement.nl by focusing specifically on SWIFT gpi tracking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: when a UETR was provided at payment initiation via the uetr field in settlement.execute or POST /payments/initiate. It also provides context about who should use the output (SWIFT member bank) and what the returned pacs.002 is used for, effectively distinguishing this from other payment status tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury.yield_routeA
Read-only
Inspect

Treasury Float Yield Routing Analysis — OPTIONAL, CLIENT-DIRECTED ONLY.

Analyzes whether idle settlement float can be productively deployed into a yield-bearing instrument between the current time and a scheduled settlement deadline. Returns a structured recommendation with expected yield, exit timing, liquidity assessment, slippage estimate, and a mandatory risk disclosure.

THIS TOOL DOES NOT MOVE FUNDS. It provides analysis only. All execution decisions are made by the client or agent acting on explicit instruction. DPX charges a flat fee for this analysis and does not receive any portion of yield earned.

Current supported instrument: sUSDS (Sky Protocol Savings Rate). Selected because: • Instant on-chain entry and exit (no T+1 delays) • No US person restrictions • Real asset backing (tokenized RWAs + Spark borrow rates) • Available on Base chain via bridge • No de-peg events recorded (unlike synthetic alternatives)

Safety parameters enforced: • Maximum 90% of settlement amount — 10% always stays in USDC • Early exit triggered 30 minutes before settlement deadline (not 15) • Slippage guard: if DEX USDC/USDS quote shows >0.1% slippage, recommendation = HOLD • Minimum viable window: 2 hours (shorter windows do not justify entry/exit gas costs)

Not recommended if: • Settlement window is < 2 hours • Amount is < $50,000 (gas costs erode yield) • Client has not acknowledged the risk_disclosure object in this response • Settlement is time-critical with zero tolerance for delay

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNoIf true, returns analysis without any on-chain queries. Useful for planning. Default: false.
amountUsdcYesSettlement amount in USDC. Minimum $50,000 for yield routing to be viable after gas costs.
riskToleranceNoconservative = sUSDS only (T-bill / RWA backed, instant exit). moderate = sUSDS with higher slippage tolerance (up to 0.15%). Default: conservative.
settlementDeadlineUtcYesISO 8601 UTC timestamp of when USDC must be ready for settlement (e.g. "2026-06-15T20:00:00Z"). The tool will recommend exiting 30 minutes before this.

Output Schema

ParametersJSON Schema
NameRequiredDescription
exitByNoRecommended exit timestamp (30 min before deadline).
notViableNoTrue if net yield is negative (gas exceeds expected yield).
instrumentNoRecommended instrument (currently always sUSDS).
windowHoursNoAvailable window in hours (deadline minus now minus 30-min buffer).
netYieldUsdcNoExpected yield minus gas costs.
currentApyPctNoCurrent Sky Savings Rate APY (live, from Sky Protocol).
amountReservedNoAmount kept in USDC regardless (10% floor).
amountRoutableNoAmount to deploy (90% of input, USDC). 10% stays in USDC.
recommendationNoROUTE (deploy float), HOLD (stay in USDC), or INSUFFICIENT_WINDOW.
gasEstimateUsdcNoEstimated Base L2 gas cost for entry + exit in USDC.
risk_disclosureNoMUST be surfaced to the client before any action is taken.
estimatedSlippageNoEstimated DEX slippage for USDC→USDS→USDC round trip (%).
expectedYieldUsdcNoExpected yield for this window at current APY.
instrument_detailNoBackground on the recommended instrument.
slippageGuardTrippedNoTrue if slippage > 0.1% — recommendation will be HOLD.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond annotations (readOnlyHint:true) by detailing safety parameters (max 90% deployment, 30-min early exit, slippage guard, 2-hour window), instrument selection rationale, fee structure, and risk disclosures. It explicitly clarifies that the tool only analyzes and does not move funds, adding critical behavioral transparency. There is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a bold header and summary, then organized into clear sections. While it is somewhat long (roughly 25 sentences), each paragraph earns its place—instrument rationale, safety parameters, and contraindications—all essential for safe usage. A minor trim of redundant explanation about 'This tool does not move funds' could improve conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (4 parameters, annotated readOnly, with an output schema as per context signals), the description is thorough: it explains when to use, safety guards, risk disclosure expectations, and the analytical nature. The output schema covers return values, so the description's focus on usage and safety is appropriate and complete for this domain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds significant value by providing context for the riskTolerance enum (explains what moderate means with 0.15% slippage) and details for settlementDeadlineUtc ('30 minutes before'), which is not fully captured in the schema descriptions. However, dryRun's default is already in schema, and amountUsdc's minimum is duplicated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb+resource combination ('analyzes whether idle settlement float can be productively deployed into a yield-bearing instrument') and distinguishes itself from siblings by specifying its unique function (yield routing analysis, not fund movement). The optional/client-directed-only note further clarifies its role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool (analysis of idle settlement float) and when not to use it, listing four specific conditions (windows <2 hours, amounts <$50,000, unacknowledged risk disclosure, time-critical settlement). It also clarifies what the tool does NOT do (move funds), which differentiates it from sibling tools like 'settlement.execute' or 'mercury.send'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables detection and analysis of pre-public product launches through web search, content extraction, AI-powered scoring, and automated alerting. Provides comprehensive tools for surfacing stealth startup signals before they trend publicly.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI chat clients to perform market research and competitive intelligence by gathering company overviews, competitor lists, product portfolios, pricing snapshots, and recent news via live Tavily search.
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources