DPX — Institutional Cross-Border Settlement
Server Details
AI-native settlement rail + intelligence oracle for autonomous agents. x402, Base mainnet, 81 tools.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- untitledfinancial/dpx-mcp
- GitHub Stars
- 1
- Server Listing
- dpx-mcp
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
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.
Tool Definition Quality
Average 4.4/5 across 81 of 81 tools scored.
Many tools have overlapping purposes, such as multiple stablecoin routing options (route vs stability.stablecoin_route), several compliance pre-checks (flow_check, policy.check, mercury.ach_authorize), and numerous FX/stability tools (oracle.stability, stability.corridor, market.fx, fx.rate). Even with detailed descriptions, the boundaries are subtle and an agent could easily select the wrong tool.
The dot-separated namespace convention is mostly consistent and readable, but verb vs noun usage varies (e.g., settlement.execute vs batch_settle vs route). Subscription tools also mix forms (intelligence.subscribe vs intelligence.subscription.get/delete), showing minor inconsistency.
81 tools is an extreme count for a settlement server. Even accounting for the broad 'institutional' scope, the volume overwhelms the core purpose and creates a heavy cognitive load for agents, far beyond the typical 3-15 well-scoped tool set.
The core settlement lifecycle is well-covered (quote, execute, track, receipt, batch), but there are notable gaps such as missing policy update/delete and no receipt retrieval (only create). While many tangential domains are over-covered, certain CRUD operations are absent, creating dead ends.
Available Tools
83 toolsagent.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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable name for this agent. | |
| mandate | No | Optional AP2-compatible spend mandate (REGISTERED/VERIFIED only). Caps are clamped to tier limits for REGISTERED agents. | |
| ownerLei | No | 20-char GLEIF LEI. Providing a valid active LEI instantly grants VERIFIED tier — no documents. Get your LEI at gleif.org. | |
| framework | No | Agent framework: "claude", "gpt-4o", "gemini", "custom", etc. | |
| protocols | No | Supported protocols: ["x402", "ap2", "mcp", "a2a"]. | |
| publicKey | No | Optional public key for credential signature verification. | |
| ownerEmail | No | Contact email. Required for REGISTERED tier ($25K/day cap). Self-attested, not verified. | |
| ownerEntity | No | Organization or person that owns/operates this agent. Required for REGISTERED tier. |
Output Schema
| Name | Required | Description |
|---|---|---|
| agentId | No | Unique agent identifier (agt_...). Store this. |
| kyaLevel | No | |
| kyaScore | No | Trust score 0–100. |
| tierCaps | No | maxNotionalUsd and dailyCapUsd effective for this agent. |
| tierNote | No | Explanation of tier and how to upgrade. |
| leiVerified | No | true if LEI was confirmed via GLEIF API. |
| leiEntityName | No | Legal name from GLEIF record (VERIFIED only). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the instantaneous nature of registration, the GLEIF API verification call, and that no documents or manual review are involved. It also describes tier-specific caps and legal basis, adding meaningful context beyond the sparse annotations. No annotation contradiction exists (readOnlyHint=false, openWorldHint=true) and the description aligns with these hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and information-rich, starting with the core concept and moving through tiers and legal reasoning. Every sentence adds value, but the single paragraph format could be improved with more structure (e.g., bullets or headings) for quicker scanning. It is appropriately sized given the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with three tiers, a nested mandate object, and regulatory implications. The description covers all essential decision points: tier selection criteria, daily caps, verification process, and legal acceptance. It also leverages the schema for parameter details and the output schema for return values, making the description complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the input schema already covers all parameters with descriptions, the description adds crucial tier mapping: it explains how the presence or absence of ownerEntity, ownerEmail, and ownerLei determines the tier and associated caps. It also clarifies that the mandate is only for REGISTERED/VERIFIED and that caps are clamped to tier limits, which is not fully captured in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as the agent registration entry point under the KYA model, with a specific action (register) and resource (agent). It distinguishes itself from sibling tools like agent.kya_verify by detailing the three tiers and their requirements, making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on which parameters to use for each registration tier (name alone for ANONYMOUS, + ownerEntity/ownerEmail for REGISTERED, + ownerLei for VERIFIED), effectively telling the agent how to select tier options. It does not, however, name alternative tools or explicitly state when not to use this tool, so it lacks full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
agent.kya_verifyARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | Agent ID from agent.kya_register (agt_...). |
Output Schema
| Name | Required | Description |
|---|---|---|
| mandate | No | Active mandate if present, null if expired. |
| kyaLevel | No | |
| kyaScore | No | |
| verified | No | |
| credential | No | agentId, issuedAt, expiresAt, mandateId, attestation (kyaLevel, ownerVerified, mandateActive, fatfCompliant, dailyCapUsd, maxNotionalUsd), signature |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is known to be safe. The description adds useful behavioral context: the credential expires in 1 hour, must be refreshed, and is needed for /settle requests. This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the core purpose, the second lists return values, and the third gives usage instructions. Every sentence provides essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only verification tool, the description covers the purpose, returned fields, usage instructions, and expiration/refresh behavior. It is self-sufficient even without an output schema, and it aligns well with the sibling tool set (e.g., agent.kya_register).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers the only parameter (agentId) with a description, achieving 100% schema coverage. The description does not add further parameter details beyond referencing agent.kya_register, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Verify a registered DPX agent and receive a signed 1-hour credential.' It clearly distinguishes from sibling tools like agent.kya_register (registration) and compliance.pep_screen (screening) by focusing on verification and credential issuance for DPX /settle requests.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: after registration and before settlement requests. It instructs how to use the credential (attach headers) and when to refresh ('Credential expires in 1 hour; call again to refresh before expiry'). It does not explicitly mention alternatives or exclusions, but the usage context is sufficiently clear.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | Agent ID from agent.kya_register. | |
| esgFloor | No | Min counterparty ESG score (0 = no floor). | |
| issuedBy | No | Organization issuing this mandate. | |
| expiresAt | No | Unix timestamp for mandate expiry. | |
| dailyCapUsd | Yes | Max USD per calendar day (UTC). | |
| currencyPairs | No | Allowed pairs e.g. ["USD|EUR"]. Empty = any pair. | |
| maxNotionalUsd | Yes | Max USD per single settlement. | |
| counterpartyWhitelist | No | LEIs or wallet addresses. Empty = any counterparty. |
Output Schema
| Name | Required | Description |
|---|---|---|
| agentId | No | |
| mandate | No | Full mandate object. |
| mandateId | No | Unique mandate ID (mnd_...). |
| ap2Compatible | No | |
| effectiveCaps | No | Actual caps after tier clamping. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, and the description aligns with these. It goes beyond annotations by revealing tier-dependent cap enforcement (REGISTERED agents clamped to $25K, VERIFIED agents no ceiling), the AP2 compatibility requirement, and the fact that it can create or update. This adds meaningful behavioral detail about how the mandate will be handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: the first states the core action, the second lists the constraint fields, and the third covers agent-tier rules. Each sentence is dense with essential information and no redundancy, with the purpose front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters and an output schema present, the description covers the non-obvious business rules (agent tiers, cap clamping, AP2 formatting) and the prerequisite that anonymous agents must register first. The output schema handles return values, so the description is complete for guiding invocation and expectation-setting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining that REGISTERED agents' caps are clamped to their tier limit, which directly affects the effective semantics of maxNotionalUsd and dailyCapUsd. It also maps the prose fields (counterparty whitelist, currency pairs, ESG floor, expiry) to schema properties, reinforcing their purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create or update an AP2-compatible spend mandate for a REGISTERED or VERIFIED DPX agent' — a specific verb, object, and target. It enumerates the mandate fields and clearly distinguishes this from sibling tools like agent.kya_register and agent.kya_verify by focusing on settlement constraints rather than identity management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear eligibility context: mandates are for REGISTERED or VERIFIED agents, and ANONYMOUS agents are explicitly excluded with the directive to 'register with ownerEntity + ownerEmail first.' This is helpful but doesn't explicitly name the alternative tools (e.g., agent.kya_register) or state when not to use this tool beyond the anonymous case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analytics.overviewARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| fees | No | |
| esgScore | No | Protocol ESG composite score 0–100 |
| timestamp | No | ISO 8601 analytics timestamp |
| oracleHealth | No | Health status per oracle data source |
| stabilityScore | No | Current oracle stability score 0–100 |
| settlementReady | No | True if conditions are suitable for settlement |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is known. The description adds value beyond annotations by specifying this is 'live' and detailing the returned data categories (stability, ESG, fees, oracle health, settlement readiness), which helps the agent predict the response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core capability and deliverables, the second gives use cases. It is front-loaded with the key phrase 'Get live DPX performance analytics' and contains no redundant or vague wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a zero-parameter, read-only overview tool with an output schema present. The description fully covers purpose, output contents, and intended use cases. No further context is necessary for an agent 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so there are no parameter semantics to clarify. Per rubric, 0 parameters earns a baseline of 4. The description adds no parameter information because none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Get live DPX performance analytics.' It clearly lists the returned components (stability score, ESG composite scores, fee breakdown, oracle health, settlement readiness) and distinguishes this aggregate overview from sibling tools like dpx.metrics 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states intended use: 'Use for dashboards, reporting, and AI-driven monitoring of protocol health.' This provides clear context for when to invoke the tool. It does not mention alternatives or when not to use it, but for a zero-parameter overview tool this is acceptable.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| settlements | Yes | Array of settlement request objects (same schema as the settle tool) |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No | |
| summary | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses valuable behavioral traits beyond the sparse annotations: concurrent execution, partial failure tolerance, response summary, and per-item mirroring of POST /settle. Annotations only provide false hints, so the description adds meaningful context, though it omits details like authorization or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first states the core purpose, the second explains concurrency and failure handling, and the third describes the return value and batch limit. Front-loaded and free of fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a batch operation with an output schema, the description covers all critical operational aspects: purpose, concurrency, partial failure, return summary, and maximum batch size. It does not mention sandbox usage or broader error handling, but these are not essential given the rich output schema and clear behavior description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'settlements' is already described in the schema as 'Array of settlement request objects (same schema as the settle tool)', and the description additionally repeats the 50-item max (already in schema). No new semantic meaning is added beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with 'Submit multiple settlements in a single call', a specific verb and resource, and clearly distinguishes batch_settle from single-settlement siblings via concurrency, failure isolation, and a 50-item cap. This leaves no doubt about the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly states the use case (multiple settlements in one call) and key behavior (concurrent execution, one failure not blocking others). However, it does not explicitly name alternatives or provide when-not scenarios, so it falls just short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
card.positionsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| positions | Yes | Array of net positions. Each: { corridor: "USD-BRL", netAmountUsd: 2300000, recipientAddress?: "0x..." } | |
| settlementDate | No | Settlement date ISO string (defaults to today UTC). E.g. "2026-08-09". |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint false, so there is no contradiction. The description adds useful behavioral context: it 'returns an optimal settlement plan', 'No settlement is executed', and 'Free', explaining the safe, non-executing nature of the call beyond what annotations capture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose, uses a compact example, and has no filler. Each clause (input, output, safety, usage sequence, cost) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only planning tool with no output schema, the description explains the return plan elements (settle-vs-hold, stablecoin, fee), the input format, and the intended position in the workflow before card.settle. It is sufficient for an agent to select and invoke the tool correctly given the annotations and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers both parameters at 100%, including an inline example for positions and a default note for settlementDate. The description's 'net positions per corridor' and currency examples reinforce the concept but do not add new parameter-level meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Plan treasury settlement for a crypto card program' with explicit input (net positions per corridor) and output (optimal settlement plan with corridors, stablecoin, fee). The phrase 'Call this before card.settle' and 'No settlement is executed' clearly distinguishes it from settlement execution tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states 'Call this before card.settle to review the plan', giving direct when-to-use guidance. It lists what the tool returns and explicitly says 'No settlement is executed', signaling when not to use it (when execution is desired). It also mentions 'Free', which may help tool selection.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sandbox | No | true = test mode, no on-chain execution. Default true — set false only for live execution. | |
| positions | Yes | Array of net positions. Each: { corridor: "USD-BRL", netAmountUsd: 2300000, recipientAddress: "0x..." }. recipientAddress is required for every position. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses beyond annotations: 'compliance-gated, oracle-priced, stablecoin-routed' adds operational context; notes sandbox behavior (no on-chain execution); states return type. No contradiction with annotations (readOnlyHint=false, destructiveHint=false). Still could mention idempotency or failure modes but solid coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences precisely convey purpose, method, constraint, usage tip, and return. Front-loaded with key action. No redundant or filler content. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity, schema coverage is good, but no output schema exists. Description mentions per-corridor results and summary but lacks details on error handling, idempotency, or failure scenarios. Leaves some gaps for a settlement execution tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover both parameters with high detail (100% coverage). The description reinforces that recipientAddress is required and echoes sandbox default, adding minimal new meaning. Baseline of 3 is appropriate as schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Execute treasury settlement' and resource 'crypto card program.' Differentiates from sibling card.positions by noting it uses the same positions array but executes settlement via DPX batch. However, does not distinguish from batch_settle or other settlement tools, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a specific usage tip: 'Use sandbox:true for testing.' Implicitly suggests when to use (when executing treasury settlement for a card program) but lacks explicit 'when not to use' or alternatives beyond mentioning card.positions. No guidance on selecting between batch_settle or other settlement tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliance.pep_screenARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Full name to screen (e.g. "Mario Draghi"). | |
| country | No | ISO-2 country code to narrow the search (e.g. "IT"). Optional. |
Output Schema
| Name | Required | Description |
|---|---|---|
| matched | No | |
| matches | No | Per match: caption, datasets, position, nationality, birthDate, relatedEntities, riskLevel, matchScore |
| overallRisk | No | |
| totalMatches | No | |
| fatfCompliance | No | EDD required flag, FATF R.12/13 attestation, note |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context: the specific return fields, the risk-level classification, and the EDD obligation triggered by matches, which goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, each sentence earns its place: defining the source, listing PEP categories, describing outputs, and stating the regulatory consequence. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the read-only annotations, simple two-parameter schema, and presence of an output schema, the description fully covers the tool's purpose, inputs, outputs, and regulatory significance. Nothing material is missing for an agent to invoke and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the 'q' and 'country' parameters. The description reinforces that 'q' is a name and 'country' is an optional filter, but adds little semantic nuance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Screen') and a clear resource ('OpenSanctions PEP dataset'), then details the output and risk levels. This distinguishes it from other compliance tools by its focus on PEP screening and regulatory implications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: for PEP screening before settlement, and it explicitly notes that HIGH/MEDIUM matches require EDD per FATF. It does not name sibling alternatives, but the context is sufficiently clear for an agent to select it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliance.regulatory_calendarARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| inEffect | No | Currently active requirements, most recent first |
| upcoming | No | Events not yet in effect, sorted by effective date ascending |
| dpxAlignment | No | Per-framework mapping to DPX endpoints that satisfy each obligation |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety behavior. The description adds context about the output (upcoming/in-effect obligations, DPX alignment) beyond annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is comprised of three concise sentences: what it returns, the event fields, and the DPX alignment section, plus when to use it. No redundant or extraneous content; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description doesn't need to repeat return details. It fully covers the regulatory scope, event fields, DPX alignment, and intended use cases, making the tool well-contextualized for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter information. The description compensates by explaining the structure of the returned data (framework, jurisdiction, requirement, effective date, impact level, article reference), which adds meaningful context even though no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a structured calendar of compliance obligations and lists specific regulations (MiCA, SFDR, CSRD, GENIUS Act, FATF). The verb 'Returns' plus the specific resource differentiates it from sibling compliance tools like pep_screen and ubo_chain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage guidance is provided: 'Use this before settlement workflow design, compliance gap analysis, or regulatory reporting.' This clearly indicates when the tool should be invoked and distinguishes it from alternative compliance tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compliance.ubo_chainARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | Yes | 20-character GLEIF LEI of the entity to trace (e.g. "2594007XIACKNMUAW223"). | |
| deep | No | Set true to attempt 3-level traversal including intermediate nodes. Default false (direct + ultimate parent only). |
Output Schema
| Name | Required | Description |
|---|---|---|
| chain | No | Per-node: level, role, lei, entityName, country, leiStatus, sanctions (matched, score, datasets), riskFlag |
| fatfR16 | No | FATF R.16 beneficial ownership compliance attestation |
| riskFlags | No | Nodes with sanctions hits or lapsed LEIs |
| chainDepth | No | |
| overallStatus | No | |
| ultimateBeneficialOwner | No | lei, entityName, country, leiStatus of the UBO |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context: the data sources (GLEIF, OpenSanctions), the traversal logic (SUBJECT → DIRECT_PARENT → ULTIMATE_PARENT), per-node sanctions status, LEI lapse flags, and the overall verdict types (CLEAR / REVIEW_REQUIRED / BLOCKED). This goes beyond the structured metadata and provides a clear picture of what the tool returns and how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences and about 90 words, covering functionality, return structure, and use cases. It is dense but not bloated, and each sentence contributes unique information. Slightly longer than ideal but well-structured and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with this complexity (multi-level chain tracing, sanctions screening, multiple output components), the description is thorough. It mentions the chain structure, sanctions status, LEI lapse flags, overall verdict, FATF attestation, and specific regulatory use cases. Since an output schema exists, the description does not need to enumerate return fields in detail. This is complete for an agent to decide when and how to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for both parameters ('lei' and 'deep'). The tool description does not add parameter-specific semantics beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Trace') and resource ('beneficial ownership chain'), with clear scope ('up to 3 levels deep') and explicit screening against OpenSanctions. It clearly distinguishes from sibling tools like compliance.pep_screen and ramp.compliance_screen by identifying a distinct compliance workflow (UBO chain tracing + sanctions screening).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use-case contexts: 'Required for correspondent banking due diligence, FATF R.12/13 UBO identification, and MiCA Article 72 counterparty risk management.' However, it does not explicitly mention alternative tools or when not to use this tool, so it falls just short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute.costARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Description of the task — e.g. "summarize a financial document", "write Python code", "translate from French", "reason through a math problem". | |
| speed | No | true = prefer fastest model over most capable. Default false. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds behavioral context: 'without running inference' and 'Free', which goes beyond the annotations and clarifies side-effects and cost characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with the first sentence front-loading the core purpose. Every sentence adds value: purpose, use case, and cost note. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with rich annotations and no output schema, the description sufficiently covers return values (best free model, strengths, speed tier, alternatives) and use context. It is complete for agent selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains both parameters. The description doesn't add parameter-specific syntax or format details beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets a model recommendation for a task type without running inference, listing specific outputs (best free model, strengths, speed tier, alternatives). This distinguishes it from siblings like compute.models and compute.route.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use guidance is provided: 'Use this when an agent needs to select a model before committing to inference, or to surface model selection logic to a human.' It implies not for running inference but doesn't name specific alternative tools or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute.modelsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds useful context: models are routed via OpenRouter, no token cost, and it lists the specific return fields (model IDs, provider, capability strengths, context window, speed tier). This goes beyond the annotations by clarifying the behavioral scope and output contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose, but it repeats 'Free' twice ('free-tier' and 'Free.') and includes slightly redundant phrasing. Overall, every sentence provides useful information, so it earns a strong score, but the redundancy keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is present, but the description details the return fields (model IDs, provider, capability strengths, context window, speed tier) and gives usage context. For a parameterless list tool with good annotations, this is complete and self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there are no parameter semantics to clarify. With 0 params, the baseline is 4, and the description provides a clear explanation of the tool's output, adding value despite the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all AI models available through DPX Compute, using the specific verb 'list' and the resource 'AI models'. It also distinguishes itself from the sibling tool compute.route by positioning itself as a precursor to route selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to use this tool before compute.route to understand available models and pick the right one, providing clear when-to-use guidance and naming the alternative tool. It also states all models are free-tier, eliminating concerns about cost.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Plain-language description of what the model should do. Used for model selection. | |
| messages | No | Optional. Full message array in OpenAI format [{role, content}]. If omitted, task is sent as a user message. | |
| preferSpeed | No | true = use the fastest available free model regardless of task type. Default false. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses several behavioral traits beyond the annotations: the automatic model selection logic, the free-tier nature with no token cost, the per-call USDC payment via x402, and that API keys are handled internally. It does not contradict annotations (readOnlyHint=false, destructiveHint=false), and adds meaningful context that helps an agent understand side effects and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences and every sentence earns its place: purpose, model mapping, cost model, and usage guidance. The task-type mapping is presented compactly in a parenthetical list, keeping the description tight and front-loaded with the primary action and outcome.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 params, no output schema, action with side effects), the description adequately covers what it does, how models are chosen, the payment mechanism, and when to use it. It does not detail the response format (the completion text), but that is standard for an inference endpoint and implied by the schema; the description is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds value by mapping task types to specific models (reasoning → DeepSeek R1, code → Llama 3.3, etc.), which enriches the 'task' parameter semantics beyond the schema's generic 'Used for model selection.' It also aligns 'fast' with Llama 3.1 8B, reinforcing the preferSpeed parameter behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Route') and resource ('a task... to the best available free AI model and run inference'), and distinguishes itself from sibling tools like compute.cost and compute.models by positioning itself as the inference execution tool. The model selection examples further clarify the exact scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit usage context: 'Use this when an agent needs to delegate a subtask to a language model without managing model selection or API keys.' This clearly indicates when to invoke it, though it does not name specific alternative tools for model listing or cost estimation, so it stops short of full when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
computer_use.payADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Payment amount in USD as shown on screen | |
| purpose | Yes | Payment purpose — e.g. vendor-invoice, contractor-payment, subscription, procurement | |
| sandbox | No | Set false for live execution. Default: true | |
| screen_context | Yes | Describe what is visible on screen — the payment form, vendor name, invoice number, or UI context. Used for audit trail. | |
| counterparty_name | No | Vendor or payee name as shown on screen | |
| recipient_address | Yes | Recipient wallet address (0x...). If only bank/email visible, use settlement.nl instead. |
Output Schema
| Name | Required | Description |
|---|---|---|
| feeUsd | No | |
| netUsd | No | |
| reason | No | |
| status | No | |
| txHash | No | |
| decision | No | |
| aiDecision | No | |
| aiConfidence | No | |
| settlementId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnly=false. The description adds meaningful context beyond annotations: 'DPX runs the full oracle gate → compliance screen → settlement flow' and 'Returns a receipt,' clarifying that this triggers a multi-step pipeline, not just a simple payment call. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with a front-loaded purpose and examples, followed by usage alternatives and execution flow. Efficient and well-structured, though there is slight redundancy between 'Call this instead of typing credentials into a UI' and 'Use whenever computer use encounters a payment...'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the rich input/output schemas, and a large sibling set, the description is quite complete: it covers the execution pipeline, return receipt, and the key distinction from manual credential entry. A short note on prerequisites or authorization would elevate it, but the current coverage is solid.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline applies. The main description mentions 'provide the amount and recipient' and 'Describe what you see on screen,' but these add little beyond the already-rich parameter descriptions in the schema. The useful alternative-tool hint for recipient_address is in the schema, not the main description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Complete a payment' with clear context: identified on screen by computer use, with concrete examples (checkout form, wire transfer UI, invoice approval, vendor portal). Distinguishes from siblings by 'Call this instead of typing credentials into a UI,' making the tool's unique role explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use guidance: 'Use whenever computer use encounters a payment that would otherwise require human re-entry or approval.' Also provides an alternative: 'If only bank/email visible, use settlement.nl instead' (in schema), and tells agents to call this instead of typing credentials into a UI.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dpx.metricsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| window | No | Time window for metrics. "7d" = last 7 days, "30d" = last 30 days. Default: 30d. |
Output Schema
| Name | Required | Description |
|---|---|---|
| window | No | |
| peakDay | No | |
| summary | No | |
| services | No | |
| errorRate | No | |
| weeklyTrend | No | |
| dailyAverage | No | |
| totalRequests | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the read-only, idempotent, non-destructive nature. The description adds valuable behavioral context: data is 'pulled directly from production telemetry,' 'No auth required,' and the tool is 'Free.' This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences densely pack all relevant information: what the tool does, what it returns, who it is for, and access requirements. No filler; each sentence contributes meaningfully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only metrics tool with a single optional parameter, the description is complete. It explains the data source, scope, use cases, and authentication, and the output schema exists to document returns. There is no missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the only parameter (window) including enum values and default. The tool description does not add any additional parameter insight, so the schema already carries the burden. Baseline 3 applies due to 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning live performance metrics for the DPX settlement infrastructure, enumerating specific data points (request volumes, error rates, growth trends, per-service breakdown, spike analysis). It does not explicitly differentiate from sibling tools like analytics.overview, but the specificity of resource and scope is strong.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by stating the tool is 'designed for investor due diligence, analyst queries, and Standard Metrics / portfolio management integrations.' It does not mention when to avoid using it or contrast it with alternatives, but the intended audience and scenarios are explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
esg.batchARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| leis | No | Array of LEIs to screen (fastest path — no GLEIF resolution needed). | |
| names | No | Array of company names to screen (resolved via GLEIF — slower, allows ≤3s per name). |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | No | |
| failed | No | |
| results | No | Entities sorted by composite score descending. Each item includes lei, entityName, score object, or an error note. |
| succeeded | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and non-destructive behavior. The description adds valuable context: the 50-entity batch limit, ranking order, and the performance trade-off of name resolution vs. direct LEI input. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four concise sentences with no redundant text. It front-loads the core capability and each sentence contributes useful details about limits, inputs, output ranking, use cases, or performance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering the safety profile, the description provides sufficient context including purpose, inputs, output ordering, use cases, and performance characteristics. It is complete for a batch screening tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover both parameters at 100%, but the description adds meaningful nuance: LEIs are the fastest path and names require slower GLEIF resolution. This goes beyond the baseline schema information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool screens up to 50 entities in a single call and returns results ranked by composite ESG score. It distinguishes itself from sibling tools by explicitly positioning it for batch/portfolio-level screening rather than single-entity lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names specific use cases: portfolio-level compliance screening, supplier due diligence, and TMS pre-payment checks. It does not explicitly mention alternatives for single-entity checks, but the context is clear enough to guide the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
esg.lookupARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Company name, domain, or ticker to look up (e.g. "Apple Inc", "siemens.com", "MSFT") | |
| country | No | ISO-2 country code to narrow results (e.g. "US", "DE"). Optional but improves match accuracy. | |
| narrate | No | Set true to include a 2–3 sentence plain-English compliance narrative generated by the AI synthesis layer. |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | No | |
| score | No | Full ESG score object with composite, environmental, social, governance, feeTier, feeSurcharge, sources, coverage |
| resolved | No | |
| narration | No | Plain-language compliance narrative (only when narrate=true) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey the read-only, idempotent, and non-destructive nature. The description adds valuable behavioral context by detailing the return structure: Environmental (40%), Social (35%), Governance (25%), composite 0–100, fee surcharge tier, and per-source breakdown. It also clarifies the LEI resolution step, enhancing understanding beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action and purpose. The second sentence adds usage guidance without redundant statements. Every word earns its place, making it exceptionally concise yet informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and fully described parameters, the description provides a complete picture: what the tool does, when to use it, and what it returns. It covers the LEI resolution need, the composite score, fee tier, and data sources, leaving no significant gaps for an agent to make an informed decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-specific semantics beyond restating the lookup scope (company name, domain, ticker). It reinforces that 'q' is the lookup key but provides no additional format or syntax details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Resolve' and clearly identifies the resource: 'company name, domain, or ticker to a LEI via GLEIF'. It further states the tool returns the full ESG score, and the 'Use when you have a company name but not a LEI' phrasing distinguishes it from sibling ESG tools that may require a LEI.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use: 'Use when you have a company name but not a LEI'. This provides clear context but does not name specific alternative tools or explicit exclusions, falling short of the full 5-level guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
esg.portfolioARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| leis | No | LEIs to score (fastest — no name resolution). | |
| label | No | Optional label for this portfolio (e.g. "Q3 2026 Counterparties"). | |
| names | No | Company names to score (GLEIF-resolved). |
Output Schema
| Name | Required | Description |
|---|---|---|
| label | No | |
| entities | No | |
| portfolio | No | composite, environmental, social, governance, tier, avgFeeSurcharge, totalFeeImpactBps |
| compliance | No | micaArticle72, highRiskCount, sfdr flags |
| distribution | No | byTier counts, min, max, median |
| topPerformers | No | |
| worstOffenders | No | Bottom 10% entities with weakest pillar identified |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety behavior is covered. The description adds valuable behavioral context: the 'up to 200 entities' limit, the 'one call' batch nature, and the specific list of returned portfolio-level metrics. No contradictions or hidden side effects are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two tightly packed sentences. The first sentence front-loads the action and immediately provides scale, method, and a comprehensive output list; the second sentence adds the use case. Every clause earns its place without fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich output schema and fully described parameters, the description adds the key contextual elements: batch scale, input method, output categories, and intended use case. The only minor gap is that all parameters are optional, and the description doesn't clarify what happens if no parameters are provided (e.g., whether an empty portfolio is allowed), but this is not a significant omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter already described meaningfully (LEIs are 'fastest — no name resolution', names are 'GLEIF-resolved', label has an example). The description adds little beyond confirming that entities are identified 'by LEI or name', so it does not need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Score an entire counterparty portfolio in one call', clearly distinguishing it from single-entity scoring tools. It also enumerates concrete outputs (composite scores, tier distribution, fee impact, worst offenders, etc.) and closes with a clear positioning as 'the canonical pre-settlement compliance check', which differentiates it from sibling ESG tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: a pre-settlement compliance check for treasury systems and TMS integrations, implying when to use it. It does not explicitly name alternative tools or state when not to use it, but the 'canonical' phrasing and portfolio-level scope provide enough guidance for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
esg.scoreARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| address | No | Wallet address (0x...) to score. Omit for protocol default. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | No | ESG tier label |
| feePct | No | ESG fee percentage applied at settlement |
| social | No | Social score 0–100 |
| address | No | Scored wallet address or "default" |
| sources | No | Data sources used |
| esgScore | No | Composite ESG score 0–100 |
| updatedAt | No | ISO 8601 last update timestamp |
| governance | No | Governance score 0–100 |
| environmental | No | Environmental score 0–100 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds valuable context: it updates hourly from six institutional data sources and returns specific output components including the compliance-adjusted settlement fee percentage. This goes beyond the annotations and gives the agent a clear understanding of data freshness and output scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place: purpose, return values, and data sources/use case. It is front-loaded with the core action and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one optional parameter, an output schema, and strong annotations, the description is complete. It covers what is returned, how often data updates, where data originates, and why it is used (compliance). No critical information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% parameter description coverage (the single 'address' parameter is fully described). The description's mention of 'for a wallet address or the protocol default' adds marginal value by contextualizing the optionality, but it does not introduce any new syntax or format details beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a live ESG-denominated counterparty risk score for a wallet address or protocol default. The verb (Get), resource (counterparty risk score), and scope (wallet address or default) are specific, and the detail about returning individual E/S/G scores, composite average, and fee percentage distinguishes it from sibling ESG tools like esg.batch, esg.portfolio, and esg.trend.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool, noting it is required for EU SFDR Principal Adverse Impact reporting and CSRD financed emissions disclosure. It does not explicitly name alternative tools or state exclusions, but the compliance use case is a strong implicit guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
esg.trendARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | Yes | 20-character GLEIF LEI. | |
| days | No | Lookback window in days (7–365). Default 90. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lei | No | |
| days | No | |
| delta | No | Score change over the window (positive = improving) |
| trend | No | |
| current | No | |
| history | No | |
| baseline | No | |
| dataPoints | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description only needs to add context beyond those. It explains that data accumulates each time the entity is scored and mentions return values (trend direction, delta), which adds useful behavioral detail 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff: what it does, what it returns, and data accumulation/use cases. Each sentence earns its place, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, two parameters, and presence of an output schema, the description is complete. It covers purpose, return values, data source, and use cases. It omits pagination or edge cases, but these are likely handled by the output schema. Overall, adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with clear descriptions. The description adds minimal extra meaning by referring to 'requested window' (matching days) and delta, but relies on the schema for parameter definitions. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get the historical ESG composite trend for a specific entity by LEI', using a specific verb and resource. It clearly distinguishes from sibling tools like esg.score or esg.lookup by emphasizing historical trend, and explicitly lists return values (score history, trend direction, delta).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete use cases: 'due diligence, MiCA Article 72 ongoing monitoring reports, and detecting counterparties whose ESG posture is degrading.' It implies when to use but does not explicitly contrast with sibling tools or state when not to use it. The note about data accumulation via esg.lookup/batch/portfolio adds helpful context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | Yes | 20-character GLEIF LEI of the entity to monitor. | |
| webhookUrl | Yes | HTTPS URL to POST score change alerts to. Must be HTTPS. | |
| thresholdPoints | No | Fire webhook if composite score changes by ≥ N points. Default 5. Minimum 1. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lei | No | |
| watchId | No | UUID — use to check status (GET /esg/watch/:id) or cancel (DELETE /esg/watch/:id) |
| createdAt | No | |
| entityName | No | |
| baselineTier | No | |
| baselineScore | No | Composite score at registration (used as first comparison point) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide generic flags (not read-only, not idempotent, not destructive). The description goes far beyond by detailing the exact behavior: DPX checks daily, fires webhook on threshold shift, returns a watchId for status/cancellation, and includes previous/current score, delta, and tier change in the payload. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, three sentences, and front-loaded with the primary purpose. Every sentence adds substantive information: registration, daily checking mechanism, webhook trigger, return value, and payload contents. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only 3 parameters and an output schema exists, so the description does not need to explain return fields in detail. It provides all necessary context: what the tool does, how it behaves, what it returns (watchId), and how to use it for regulatory compliance. The description is fully adequate 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already described in the schema. The description repeats the thresholdPoints semantics ('fires a webhook when the composite score shifts by ≥ thresholdPoints') but does not add new meaning beyond the schema. It also does not elaborate on lei or webhookUrl beyond their schema descriptions, so it adds minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Register an entity for ongoing ESG monitoring.' It uses a specific verb ('Register') and resource ('entity for ongoing ESG monitoring'), distinguishing it from sibling tools like esg.score (one-off scoring) and esg.trend (historical trends). The mention of MiCA Article 72 also provides a clear regulatory context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the intended use case: ongoing monitoring with daily checks and webhook alerts, rather than one-time lookups. It also mentions satisfying regulatory requirements, which helps an agent identify when to use this tool. However, it does not explicitly name alternative tools or state when not to use it, so it stops short of full exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fees.compareARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hasFx | No | Cross-currency? Adds 0.40% FX fee. | |
| esgScore | No | ESG score 0–100 | |
| amountUsd | Yes | Settlement amount in USD |
Output Schema
| Name | Required | Description |
|---|---|---|
| dpx | No | |
| note | No | Context note on comparison methodology |
| amountUsd | No | Settlement amount compared |
| comparison | No | Per-competitor comparison keyed by competitor ID |
Tool Definition Quality
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 this is a safe read operation. The description adds useful behavioral context: it returns dollar savings at the current DPX all-in rate (~2.035%) and includes GENIUS Act and MiCA compliance status for each competitor. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded, immediately listing competitors and rates, then shift to return behavior. Every sentence provides concrete, actionable information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the comparison scope, competitor list, output details (savings and compliance), and the current DPX rate. An output schema exists, so return structure is already documented. A minor gap is that optional parameters like esgScore and hasFx are not explained in the description, but the schema covers their semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters with descriptions (100% coverage), so the description doesn't need to compensate. The description adds no parameter-specific meaning beyond what the schema provides, which is acceptable given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: comparing DPX settlement costs against a specific list of competitors (Stripe, Wise, Ripple, etc.) and returning savings plus compliance status. This distinguishes it from sibling tools like fees.schedule and fees.verify, which likely handle schedule-only or verification-only concerns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: when a comparison of DPX fees to competitors is needed, with specific competitor rates included. It doesn't explicitly name alternatives or exclusion criteria, but the detailed competitor list makes the use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fees.scheduleARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| fees | No | Fee component definitions |
| tiers | No | Volume discount tiers |
| examples | No | Fee calculation examples |
| benchmarks | No | Competitor fee benchmarks |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent, and non-destructive, covering safety. The description adds what the returned schedule includes, setting expectations for data scope. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the verb and object, then a well-organized list of inclusions. Every phrase adds information; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values are documented elsewhere. The description covers all major aspects of the fee schedule and is sufficient for a no-param read-only retrieval tool. It doesn't need to explain parameters or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description appropriately doesn't discuss parameters because there are none; the input schema is an empty object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get the complete DPX fee schedule' – a specific verb and resource. It enumerates the exact contents (components, tiers, ESG table, scenarios, benchmarks), making its scope unambiguous and distinguishing it from fees.compare and fees.verify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when/when-not guidance is given. The word 'complete' implies this is the go-to for the full schedule, but alternatives like fees.compare and fees.verify are not mentioned or contrasted. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fees.verifyARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| hasFx | No | Cross-currency settlement? | |
| esgScore | No | ESG score 0–100 | |
| amountUsd | Yes | Settlement amount in USD |
Output Schema
| Name | Required | Description |
|---|---|---|
| delta | No | Absolute difference in basis points |
| feesMatch | No | True if off-chain quote matches on-chain contract |
| onChainFee | No | |
| offChainFee | No | |
| recommendation | No | PROCEED | INVESTIGATE |
Tool Definition Quality
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 meaningful context by referencing the specific on-chain contract and the boolean return, but does not elaborate on error handling or mismatch behavior. This adds value beyond annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose and including the crucial sequencing note. Every word earns its place; no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple verification tool with rich annotations, an output schema, and clear description of sequencing, the description is complete. It even names the contract and clarifies the expected return, leaving no critical gaps for the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are documented in the input schema. The tool description does not add additional parameter-specific details beyond that, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Verify') and resource ('off-chain fee quote matches what the on-chain DPXSettlementRouter contract will charge'), distinguishing it from sibling tools like fees.compare and fees.schedule. It also mentions the return value, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit timing guidance: 'Call after get_quote and before settle to confirm fee integrity.' This gives clear when-to-use context, though it doesn't mention alternatives or when-not-to-use scenarios, which would push 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.
flow_checkARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Destination currency code (default: USD) | |
| lei | No | Counterparty LEI for enhanced compliance check (optional) | |
| from | No | Source currency code (default: USD) | |
| amount | Yes | Settlement amount in source currency | |
| address | No | Counterparty wallet address for compliance screen (optional but recommended) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ready | No | True when decision is PROCEED |
| token | No | Recommended stablecoin (USDC, EURC, or USDT) |
| oracle | No | |
| decision | No | PROCEED | HOLD | BLOCKED |
| compliance | No | |
| settleBody | No | Ready to POST to /settle (null if BLOCKED or HOLD) |
| ttlSeconds | No | |
| estimatedNetUsd | No | Estimated net received after all fees |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds meaningful context: parallel execution of checks, the unified go/no-go decision format, and the inclusion of a 'ready-to-use settleBody'—all beyond what annotations provide. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the primary action, and every sentence adds value: purpose, workflow replacement, and return payload. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present (not shown but indicated), the description need not enumerate all return fields—yet it does. It covers what the tool does, when to use it, what it replaces, and what it returns. Combined with strong annotations and full schema coverage, this is fully contextualized for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter (amount, from, to, address, lei) having a clear description. The tool description does not add param-specific details beyond the schema, but it does provide workflow context (e.g., 'settlement amount in source currency') that reinforces the purpose. Baseline of 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb+resource: 'Single pre-flight call before settling' that runs oracle check, compliance screen, and stablecoin routing. It distinguishes itself from the multi-step process by explicitly noting it 'Replaces the 3-step oracle → screen → route loop,' making its unique role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context for when to use the tool: 'before settling.' It also names the alternative workflow it replaces ('the 3-step oracle → screen → route loop'), giving the agent clear guidance on choosing this tool over the sequential process or related sibling tools like settlement.execute.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forecast.calendarARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| calendar | No | Seasonal events sorted by urgency — active events first |
| currentMonth | No | Current UTC month (1–12) for reference |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description goes beyond annotations by specifying the number of windows (12), the sorting logic (by urgency, active first), and the content of each entry (affected commodities, severity, agronomic basis). This provides useful behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and provides a compact yet informative list of examples and output characteristics. Every sentence adds value and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, an output schema is available, and annotations cover safety, the description provides all necessary context for an agent to decide when and why to invoke it. It explains the content, ordering, and rationale sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so every aspect of input is already known. The description doesn't need to explain parameters; the baseline score of 4 applies. It does not introduce ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function as a seasonal climate event calendar with commodity impact, listing specific example windows (hurricane season, corn pollination, etc.). It distinguishes itself from siblings like forecast.commodity_outlook or forecast.scenario by focusing on a fixed set of recurring climate windows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives. The description explains what it returns but does not mention when it is appropriate or what other tools would be better for different scenarios. There is no exclusionary or comparative language.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forecast.commodity_outlookARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fresh | No | true = bypass 4h cache and recompute live signals | |
| symbol | Yes | Commodity symbol |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| signal | No | |
| symbol | No | |
| regions | No | Per production-region climate scores and drought/temperature readings |
| horizons | No | 30d / 60d / 90d — each has signal, confidence, basis |
| reasoning | No | Plain-language synthesis of climate signals and price implications |
| stressors | No | Active climate stressors with severity, region, price impact estimate, probability |
| confidence | No | Signal confidence 0–1 |
| climateScore | No | Supply constraint pressure 0–100; >65 = elevated bullish pressure |
| currentPrice | No | Latest FRED price reference (value, unit, date) |
| forecastedAt | No | |
| recommendation | No | |
| inGrowingSeason | No | true = stressors in peak transmission window — act faster |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description adds value by disclosing cache behavior ('Cache: 4h'), the ability to bypass it via 'fresh', and a disclaimer about not being a financial recommendation. It also details the output structure (BULLISH/BEARISH/NEUTRAL, horizons, confidence score). This goes beyond the minimal annotation credit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, with no fluff. It front-loads the core purpose and then logically flows to return values, scope, audience, disclaimer, and caching. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's straightforward read-only nature, rich annotations, full schema descriptions, and an output schema, the description is complete. It covers scope, behavior, audience, and caveats, and clearly differentiates from siblings without needing to explain the output format (handled by output schema).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have descriptions. The tool description's parameter-related content, such as the commodity list and cache time, largely duplicates the schema's own parameter descriptions. It adds no meaningful new semantic information about the parameters themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Climate-driven price pressure outlook for a commodity.' It clearly distinguishes itself from siblings like forecast.scenario or forecast.portfolio_stress by focusing on commodity-specific climate signals and listing the exact 11 commodities covered.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states the target audience and use case: 'Designed for institutional research teams evaluating commodity positions.' However, it does not explicitly name alternatives or state when not to use this tool, but the context is sufficiently clear for an evaluative decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forecast.portfolio_stressARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| positions | Yes | Portfolio positions with symbol and weight |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | No | |
| positions | No | Per-position signal and climate score |
| dominantRisk | No | Most climate-stressed position |
| hedgeCandidates | No | Symbols with climateScore ≤ 35 — potential climate hedges |
| stressedPositions | No | Symbols with climateScore ≥ 65 |
| portfolioClimateScore | No | Weighted aggregate climate stress 0–100 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavior: weights are normalized internally, the tool identifies stressed positions and hedges, returns a plain-language summary, and enforces a 20-position cap. This complements 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: first states the core function, second details inputs and outputs, third names the intended user. Every sentence earns its place, and the description is front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential input constraints, normalization behavior, output components, and typical use case. An output schema exists, so detailed return values aren't needed in the description. Minor gaps like the symbol enum are already in the schema, making this adequate for tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: positions array and weight are both documented, including normalization and maxItems. The description adds 'percentages or fractions' to clarify weight formats but otherwise restates schema details. This is marginal added value, so a baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies the tool as a climate stress test for a multi-commodity portfolio, with a specific verb ('stress test') and resource ('portfolio'). It lists distinct outputs (portfolio score, stressed positions, hedges, summary), but doesn't explicitly contrast with sibling tools like forecast.commodity_outlook or esg.portfolio, so it falls short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a clear use case: 'useful for commodity fund managers evaluating aggregate climate exposure before rebalancing.' It also provides input constraints (up to 20 positions, normalized weights). However, it doesn't explicitly state when not to use this tool or name alternatives, so it gives context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forecast.production_regionsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| regions | No | Regions sorted by climate risk score, with affected commodities and risk level |
| updatedAt | No |
Tool Definition Quality
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, so the safety profile is clear. The description adds meaningful behavioral context: the tool returns a ranking based on current climate risk scores and indicates risk levels, which is more detailed than just listing data. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary function, and every word adds value. It efficiently conveys scope, output content, and intended use without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters), the description is complete. It covers the output structure (regions, commodities, risk levels) and the purpose. An output schema exists (though not shown), so return value details are not the description's responsibility. There are no missing aspects for the agent to make a selection decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the baseline for such cases is 4. The description compensates by explaining what the output contains (commodities, risk levels), which helps the agent understand the fixed report format. No parameter explanations needed since there are none.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it lists and ranks ~40 global commodity production regions by current climate risk score, specifying the output details (affected commodities and risk levels). This distinguishes it from sibling forecast tools like commodity_outlook or scenario by focusing specifically on production regions and climate risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Use to identify which geographic zones are under active climate stress and which commodities are most exposed.' It gives context for when to use the tool, but does not explicitly mention alternatives or when not to use it, so it doesn't warrant a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
forecast.scenarioARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | No | Symbols to analyze — omit for all 11 | |
| scenario | No | Built-in scenario ID — or omit and provide stressorOverrides | |
| stressorOverrides | No | Custom multipliers if not using a named scenario (1.0 = no change) |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | No | Per-commodity signal, climateScore, recommendation, topStressor, reasoning |
| scenario | No | |
| description | No | |
| portfolioImpact | No | mostImpacted, leastImpacted, averageClimateScore |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds context that this is a 'what-if' analysis showing how signals shift, which aligns with read-only behavior. It does not disclose additional behaviors like latency or external dependencies, but the annotation coverage lowers the bar.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences and each contributes: a label, core functionality, the full scenario list, and a use-case note. The scenario list is somewhat redundant with the schema enum but serves as a quick reference. Overall, it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what, how, and when to use the tool, and the input/output schemas are rich enough to handle remaining details. It does not need to explain return values because an output schema exists. The mutual exclusivity of scenario vs. stressorOverrides is implied by 'or' and the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the scenario list and the 'or' relationship between scenario and stressorOverrides, but it largely repeats the schema's own descriptions. It adds minimal new meaning beyond interpreting symbols as 'any subset of commodities.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as 'What-if climate scenario analysis' and specifies that it applies named scenarios or custom stressor multipliers to commodity subsets. It distinguishes itself from siblings like forecast.portfolio_stress by focusing on commodities and climate scenarios rather than 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear use case: 'stress-test a commodity thesis before committing to a position.' However, it does not explicitly contrast with alternative tools (e.g., forecast.portfolio_stress) or state when not to use this tool, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx.corridorsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | Optional: filter to corridors starting from this currency (e.g. USD) |
Output Schema
| Name | Required | Description |
|---|---|---|
| summary | No | Count by tier: OPTIMAL / FAVORABLE / CAUTION / ELEVATED_RISK / ADVERSE |
| corridors | No | Corridors sorted best-first with score, tier, vol, regulatory flags |
| corridorCount | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given annotations already declare readOnlyHint=true and idempotentHint=true, the description adds valuable behavioral context: sorting order (OPTIMAL → ADVERSE), the inclusion of stability tiers and regulatory flags, and the 'Free' cost note. This exceeds what the annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each serving a distinct purpose: what it returns, how it's sorted, and when to use it. It is front-loaded with the core function and contains no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with a single optional parameter and an existing output schema, the description covers all essential aspects: scope, data fields, ordering, use case, parameter usage, and cost. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage for the single 'from' parameter is 100%, with the schema already explaining it as an optional filter. The description repeats this ('Filter by source currency with the from parameter') without adding new semantic detail, so it meets the baseline but doesn't elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns all 60+ currency corridors with stability tier, volatility, and regulatory flags. The phrase 'compare corridors before choosing a payment route' distinguishes it from sibling tools like fx.rate or stability.corridor, which likely focus on single values or specific corridors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Use to compare corridors before choosing a payment route' and provides a concrete example. It doesn't name alternative tools or mention when not to use it, but the context is clear enough for an agent to infer the appropriate scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx.cost_certaintyARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target currency ISO 4217 (e.g. BRL) | |
| lei | No | Optional counterparty LEI for ESG-adjusted fee tier | |
| from | Yes | Source currency ISO 4217 (e.g. USD) | |
| amount | Yes | Amount to send | |
| amountCurrency | No | Currency of the amount (defaults to from) |
Output Schema
| Name | Required | Description |
|---|---|---|
| railFees | No | All-in fee breakdown in USD |
| settlement | No | Sent and received amounts with live FX rate |
| costCertainty | No | 48h volatility, uncertainty in USD, received range in target currency |
| corridorIntelligence | No | Corridor stability score, regulatory flags, cascade level |
| executionRecommendation | No | SETTLE_NOW / DELAY_24H / DELAY_48H with best execution window UTC |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the x402 micropayment requirement and the specific output components (amount after rail fees, variance in dollars, stability overlay, execution window), which add behavioral context beyond the readOnlyHint annotation. There is no contradiction with annotations; the read-only nature is consistent with a quote tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences that front-load the tool's purpose, then detail the output, and finally answer the user's implicit question with a requirement. Every sentence adds value; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of cross-border settlement cost and the presence of an output schema, the description is sufficiently complete. It covers the tool's purpose, the key output dimensions, and the payment prerequisite, while the schema and annotations handle parameters and safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the description does not need to explain parameters; the baseline is 3. The description adds no parameter-specific detail beyond the schema, though it clarifies that 'amount' refers to the amount sent in the example question.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'All-in settlement cost quote for cross-border payments' and details the output as exact amount received, FX cost variance, stability overlay, and execution window. This specific verb+resource phrasing distinguishes it from sibling tools like fx.rate (simple rate lookup) and fx.corridors (corridor data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when a CFO-grade, all-in cost certainty quote is needed for cross-border payments, providing clear context. However, it does not explicitly state when not to use it or name alternative tools (e.g., settlement.quote) for comparison, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fx.rateARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Target currency ISO 4217 code (e.g. BRL) | |
| from | Yes | Source currency ISO 4217 code (e.g. USD) |
Output Schema
| Name | Required | Description |
|---|---|---|
| ask | No | |
| bid | No | |
| mid | No | Mid-market rate (from → to) |
| pair | No | |
| spreadPct | No | Implied interbank spread % |
| updatedAt | No | |
| corridorFlags | No | Regulatory flags for this corridor |
| dailyVolatilityPct | No | Estimated daily FX volatility % |
Tool Definition Quality
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 behavioral context: data source (central bank rates via open.er-api.com), update frequency (hourly), no API key requirement, and cost (free). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then return fields, then sourcing/cost. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema providing return field details and annotations covering safety, the description additionally specifies data source, freshness, and authentication requirements. For a simple 2-param read-only tool, this is fully sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters (from, to) with clear ISO 4217 descriptions (100% schema coverage). The description adds minimal parameter meaning beyond saying 'any currency pair'—no new syntax or constraints—so it meets the baseline but does not exceed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Purpose is clear: 'Live mid-market FX rate for any currency pair' with specific outputs listed (mid rate, bid/ask spread, volatility, flags, freshness). However, it does not explicitly distinguish itself from sibling tools like fx.corridors or market.fx, so it misses the full 5 for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool ('Live mid-market FX rate for any currency pair') and adds practical context (free, no API key, hourly updates). It does not provide explicit 'when not to use' or name alternatives, so it is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
integration.statusARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | verificationId returned by integration.verify. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| status | No | Current verification state. |
| txHash | No | Transaction hash of the $0.01 payment. Present when verified. |
| message | No | |
| explorer | No | Basescan URL for the verification transaction. |
| verifiedAt | No | ISO timestamp of on-chain confirmation. Present when status is "verified". |
| walletAddress | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/idempotentHint annotations, the description adds meaningful context: it mentions the specific USDC amount, chain, the transition from pending to verified, and the inclusion of a txHash and Basescan link. This enriches the agent's understanding of the polling behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the action ('Check the status'), and every sentence contributes value—explaining the mechanism, return values, and polling frequency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter polling tool with strong annotations and an output schema, the description covers the process, expected states, and usage cadence. It is complete enough for an agent to invoke it correctly without further clarification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'id' is fully described in the schema as 'verificationId returned by integration.verify.' The description itself does not add extra information about how to use the parameter, so the schema carries the full semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Check the status of a DPX integration verification session' and details the specific behavior of returning 'pending' vs 'verified' with a txHash and explorer link. This distinguishes it from sibling tools like integration.verify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to poll every 10–15 seconds after sending the payment and explains the condition for verification (receipt of $0.01 USDC on Base mainnet). However, it does not explicitly name integration.verify as the alternative or state 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Optional: the DPX API key being registered for this integration. Stored as a hash — never logged in plaintext. | |
| walletAddress | Yes | The client wallet address (0x...) that will send the $0.01 verification payment. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | Always "pending" on creation. |
| payment | No | |
| polling | No | |
| expiresAt | No | ISO timestamp — verification window closes after 24 hours. |
| verificationId | No | Session ID — use with integration.status to poll for payment confirmation. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the handshake flow: client sends $0.01 USDC on Base mainnet, returns treasury address and instructions, and requires status polling. This adds context beyond the annotations, which only indicate the tool is not read-only, idempotent, or destructive. It doesn't disclose failure modes or idempotency consequences, but annotations already cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three clear sentences, front-loaded with the action and purpose, with no filler. Each sentence adds value: initiation, return, and follow-up.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the initiation step, expected client action, network/currency, return value, and the follow-up polling step. With an output schema present, return values are further specified. It could mention failure/timeout scenarios but is quite complete for a simple initiation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters are fully described in the schema (100% coverage), so the baseline is 3. The description doesn't add parameter-specific semantics beyond the schema, such as address format or API key handling, which are already covered in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it initiates a $0.01 USDC onboarding handshake for a new DPX integration, which is a specific verb+resource+scope. It also distinguishes itself from integration.status by noting that status polling is a separate step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states this is required for all new integrations before production settlements and directs the user to call integration.status to poll for confirmation. This provides clear when-to-use and a related alternative, though it doesn't explicitly list when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intelligence.aftershockARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | Origin node ID from the primary cascade (e.g. "geo.conflict", "climate.drought"). | |
| eventType | No | Description of the primary event. | |
| magnitude | Yes | Primary shock magnitude 1–100. | |
| elapsedHours | No | Hours elapsed since the primary event. Default 24. | |
| horizonHours | No | Forward horizon to model in hours. Default 4320 (6 months). |
Output Schema
| Name | Required | Description |
|---|---|---|
| wave1 | No | Immediate (0–72h): rebound, amplified, structural nodes. |
| wave2 | No | Policy response phase (1–4 weeks). |
| wave3 | No | Structural lock-in (1–6 months). |
| synthesis | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior. The description adds rich behavioral context on wave timing, node status classification (rebounding, amplified pressure, structurally altered), which goes beyond annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence adds value: purpose, wave breakdown, output insights, and companion ordering. The POST method note is mildly redundant but doesn't detract from the concise, structured format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description doesn't need to detail return formats. It covers the tool's purpose, input semantics, wave outputs, and workflow context, making it complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 5 parameters with descriptions (100% coverage), so the description doesn't need to compensate. It restates origin, eventType, magnitude, elapsedHours but adds no new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool models secondary waves after a primary cascade event, with specific time horizons (0–72h, 1–4 weeks, 1–6 months). It names market.cascade as a companion, distinguishing its role in the workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'run cascade first, then aftershock' which tells the agent exactly when to use this tool relative to market.cascade. It also describes what outputs to expect, helping the agent decide if this is the right intelligence tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intelligence.contagionARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | No | Origin node ID. Call intelligence.contagion with listNodes:true to discover valid IDs. | |
| listNodes | No | If true, returns all valid origin node IDs instead of running a simulation. | |
| magnitude | No | Initial shock magnitude 1–100. |
Output Schema
| Name | Required | Description |
|---|---|---|
| systemR | No | System-level R value. ≥1.0 means spreading. |
| spreadMap | No | Per-epoch infection state across all nodes. |
| synthesis | No | |
| containment | No | Forecast of when/if containment is achieved. |
| superspreaders | No | Nodes with highest R contribution. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already marking readOnlyHint=true and destructiveHint=false, the description adds valuable behavioral context: the R-value interpretation (R < 1.0 vs ≥ 1.0), concrete return items (R trajectory, spread map, superspreader nodes, containment forecast, AI briefing), and a prerequisite call. This goes far beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is ~70 words across four sentences, front-loaded with the primary purpose. Each sentence adds substantive information (model, output, interpretation, prerequisite), though it could be slightly restructured for scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and safety annotations present, the description provides a full picture: the model, domain coverage, R-value threshold, output items, and prerequisite call. This is more than sufficient 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.
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 a workflow hint (call listNodes first) and says 'POST with origin and magnitude', but does not add additional semantic meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'simulates how a macro or financial shock spreads' — a specific verb and resource — and details unique aspects (30 nodes, 6 domains, R-value model), distinguishing it from sibling intelligence tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to 'Call /contagion/nodes first to discover valid origin IDs' and notes 'POST with origin and magnitude', providing a clear workflow. However, it does not name alternative tools for similar contagion simulations, so no explicit when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intelligence.gender_riskARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| countries | No | Per-country: gbvRiskScore, opportunityScore, LFPR gap, WBL index, GDP per capita, transmission mechanisms. |
| synthesis | No | |
| regionalSummary | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior, lowering the bar. The description adds valuable context: live FRED feedback, data sources (WHO GHO, World Bank WDI, FRED), a 12h cache, and the transmission mechanism linking GBV to GDP drag and sovereign risk. These details go beyond the annotations and set clear expectations for data freshness and source reliability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every clause earns its place: it explains the core mapping, the two scores, their implications, additional features (live FRED, AI synthesis), data sources, cache, and input requirements. It is structured as a single informative block, front-loaded with the tool's purpose, and avoids filler. The length is justified by the conceptual complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool takes no inputs, has a clear output schema (implied), and benefits from a rich annotation profile, the description fully covers the context needed for selection and invocation. It explains what the scores mean, how they relate to economic outcomes, what data is used, and the cache behavior. There is no ambiguity about the tool's scope or output semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the rubric baseline is 4. The description explicitly states 'No input required', confirming the tool takes no arguments. That adds no further semantic meaning since the schema already shows an empty properties object, but it reinforces the fact. No parameter list exists to elaborate, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with specific verbs ('maps', 'returns') and distinct output (two scores: gbvRiskScore and opportunityScore). It explicitly distinguishes from sibling tools by focusing on gender-specific risk and opportunity across 18 countries, making its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides strong context for when to use this tool—when assessing sovereign risk related to GBV prevalence, legal discrimination, and female labour force participation. It implies usage via the detailed data scope, but lacks explicit exclusion criteria or mention of alternatives. The 'No input required' clarifies invocation, but no direct comparison with sibling intelligence tools is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intelligence.resonanceARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| synthesis | No | |
| dangerZoneMatch | No | Similarity to historical crisis resonance patterns. |
| resonanceClusters | No | Groups of 3+ signals in mutual resonance. |
| amplificationFactor | No | Constructive interference gain across dominant cluster. |
| systemResonanceScore | No | 0–100. Higher = more dangerous in-phase alignment. |
Tool Definition Quality
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. The description adds meaningful behavioral context beyond this: it specifies 'No input required — GET,' and details the exact return payload (per-signal phase angles, resonance clusters, amplification factor, system resonance score, historical comparison). This goes beyond the minimal annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loaded with the core purpose, then elaborates with a vivid analogy and a clear enumeration of outputs. While slightly long, every sentence contributes functional or contextual information, and the structure flows logically from purpose to behavior to output. The final GET note is economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and a rich output schema, the description is fully complete: it explains the conceptual trigger, the signal scope (28 signals, 5 domains), the amplification concept, the exact return fields, and the historical comparison references. The description leaves no material questions about when or how to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description reinforces this with 'No input required — GET,' leaving no ambiguity about invocation. There is no schema-level parameter detail to compensate for, and the description adds sufficient clarity for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'detects when multiple independent macro forces are oscillating in phase,' clearly identifying what the tool does. It further distinguishes itself by contrasting a single shock with resonance and explicitly listing the output categories, making it distinct from sibling tools like intelligence.contagion or intelligence.aftershock.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for detecting systemic resonance ('detects when multiple independent macro forces are oscillating in phase'), and the phrase 'A single shock is manageable; resonance turns a bad quarter into a systemic crisis' gives conceptual context. However, it does not explicitly state when to use this tool over alternatives or mention any exclusions, leaving the comparative guidance to inference.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | Optional label for your own tracking. | |
| signal | No | Signal to monitor. Default: stability. | |
| direction | No | Fire when signal goes above or below threshold. Default: above. | |
| threshold | Yes | Score value (0–100) that triggers the webhook. | |
| webhookUrl | Yes | HTTPS URL to POST alerts to. |
Output Schema
| Name | Required | Description |
|---|---|---|
| signal | No | |
| deleteUrl | No | |
| direction | No | |
| statusUrl | No | |
| threshold | No | |
| currentScore | No | Signal score at registration time |
| subscriptionId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations, explaining that the webhook is edge-triggered (fires once on crossing) and checked hourly, and that it returns a subscriptionId for later management. This goes beyond the basic read-only/idempotent/destructive hints and provides useful operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with only four sentences: purpose, supported signals, trigger behavior, and use cases. It is well-structured, front-loaded with the main action, and every sentence provides useful information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a webhook subscription tool, the description covers purpose, trigger behavior, supported signals, return value, and use cases. The output schema presumably handles return structure details. It lacks some advanced details like webhook authentication or retry behavior, but these are not essential for tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full descriptions for all 5 parameters (100% coverage), so the baseline is 3. The description reinforces the threshold score range and signal types but does not add significant new meaning beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Register') with a clear resource (webhook) and scope (DPX intelligence signal crossing a threshold). It also lists supported signals, which distinguishes it from sibling subscription management tools like intelligence.subscription.get and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names relevant use cases ('treasury alert systems, TMS integrations, or autonomous agent monitoring loops'), providing clear context for when to use the tool. However, it does not explicitly contrast with alternatives or state when not to use it, 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.
intelligence.subscription.deleteADestructiveIdempotentInspect
Cancel an intelligence subscription by ID. Stops future webhook alerts for that subscription. The alert log is retained for audit purposes.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | UUID returned by intelligence.subscribe. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted | No | |
| subscriptionId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and idempotent behavior. The description adds valuable context beyond those annotations: it explicitly states the effect on webhook alerts and that the alert log is retained for audit purposes, giving users confidence about what is destroyed and what is preserved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the primary action and followed by important behavioral details. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete operation with an output schema and informative annotations, the description covers key contextual aspects: what stops, what remains, and audit implications. It is complete enough 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides full coverage for subscriptionId with a clear description ('UUID returned by intelligence.subscribe'), so the description adds no additional parameter meaning. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific action verbs ('Cancel', 'Stops') and clearly identifies the resource ('intelligence subscription by ID'). It distinguishes from siblings like intelligence.subscribe and intelligence.subscription.get by specifying that it stops future webhook alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you want to stop future webhook alerts for a subscription. However, it does not explicitly mention alternatives or exclusions, though the context is clear and the sibling tools (subscribe/get) provide implicit contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intelligence.subscription.getARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| subscriptionId | Yes | UUID returned by intelligence.subscribe. |
Output Schema
| Name | Required | Description |
|---|---|---|
| signal | No | |
| direction | No | |
| lastScore | No | |
| threshold | No | |
| lastFiredAt | No | |
| lastCheckedAt | No | |
| subscriptionId | No | |
| totalAlertsFired | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds context about the return payload (signal score, last fired timestamp, alert count, configuration), which goes slightly beyond annotations. However, it does not disclose any additional behavioral aspects like pagination, auth requirements, or side effects. With annotations in place, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and includes only essential details. Every sentence earns its place: the first states the action, the second enumerates the return values and the usage context. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only get operation with one parameter, an output schema, and clear annotations, the description is complete. It states the operation, usage context, and key return fields. There are no missing elements that would hinder correct tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with a single parameter `subscriptionId` described as 'UUID returned by intelligence.subscribe.' The description's phrase 'by ID' is consistent with the schema but does not add extra meaning beyond what the schema already provides. Baseline 3 is correct because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource: 'Check the status of an intelligence subscription by ID.' It clearly identifies the operation and distinguishes it from sibling tools like subscribe/delete by focusing on status retrieval. It also enumerates the return fields, reinforcing its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context on when to use the tool: 'Use after intelligence.subscribe to verify a subscription is active.' This tells the agent the typical workflow placement. It does not explicitly list alternatives or exclusions, but there are no obvious alternative tools for this specific status check, and the guidance is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
intelligence.tectonicARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| synthesis | No | AI briefing on the most dangerous structural accumulations. |
| faultLines | No | Per-node: domain, label, stress, accumulationRate, yearsToRupture, tippingThreshold. |
| systemStress | No | Composite tectonic stress 0–100. |
| ruptureSequence | No | Ordered fault lines by proximity to rupture. |
Tool Definition Quality
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 beyond this by specifying the HTTP method (GET), confirming no input, and detailing the returned artifact (per-node stress state, rupture sequence, horizon timeline, AI synthesis briefing). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description packs comprehensive information into a compact paragraph: purpose, data model, comparison with sibling, output, and invocation details. Every sentence adds value, and there is no tautology or superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only intelligence tool with an output schema, the description covers domain (5 domains, 22 fault lines), key data points (stress, accumulation rate, threshold, years to rupture), output structure, and the contrast with market.cascade. It is sufficient for an agent to decide whether to invoke and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters and an empty schema, the description explicitly states 'No input required — GET,' removing any ambiguity about hidden parameters. This exceeds the baseline for 0-parameter tools by explicitly confirming that no input is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as mapping slow-moving structural stress across 22 fault lines in 5 domains, with the specific verb 'maps' and resource 'structural stress.' It distinguishes itself from sibling market.cascade by contrasting acute shocks with latent pressure, and from other intelligence tools by focusing on structural domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance by contrasting with market.cascade: 'Where market.cascade traces an acute shock, tectonic surfaces latent pressure before it ruptures.' This signals when to choose this tool (latent/structural risk) versus an alternative. The statement 'No input required — GET' also clarifies invocation.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Invoice amount in source currency | |
| currency | No | Source currency code (default: USD) | |
| ttlSeconds | No | Invoice TTL in seconds (default: 86400 = 24h) | |
| callbackUrl | No | URL to notify when invoice is paid | |
| description | No | Human-readable payment description | |
| recipientAddress | No | Payee wallet address (can also be provided at pay time) | |
| destinationCurrency | No | Destination currency (default: same as currency) |
Output Schema
| Name | Required | Description |
|---|---|---|
| payUrl | No | Direct URL to pay this invoice |
| status | No | OPEN | PAID | EXPIRED |
| expiresAt | No | |
| invoiceId | No | UUID — pass to invoice.get or invoice.pay |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With minimal annotations (all false hints), the description carries the main transparency burden. It adds meaningful behavioral context: the invoice expires after ttlSeconds (default 24h) and the tool returns an invoiceId and payUrl. This goes beyond the annotations but does not cover potential side effects or failure modes, so a 4 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded: the first sentence states the core purpose, followed by the workflow, return values, and expiration. Every sentence adds distinct value with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description gives a complete workflow context for a tool with 7 parameters and an output schema: it explains the agent-to-agent payment flow, the return values, and the expiration behavior. The schema fills in parameter details and the output schema defines return structure, so the description does not need to repeat that. Minor edge cases (e.g., currency behavior or callbackUrl) are not detailed, but that's acceptable given the schema's coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters have schema-level descriptions (100% coverage), so the schema already provides parameter semantics. The description only mentions the ttlSeconds default, which is also in the schema, and adds no new meaning for the parameters. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create an agent-to-agent invoice') and the resource it acts on, with a clear statement of the caller's role ('Agent A calls this to request payment from Agent B'). It explicitly positions the tool against sibling tools by referencing invoice.pay as the settlement step, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly specifies when to use the tool ('Agent A calls this to request payment from Agent B') and the complementary use of invoice.pay for the payer. However, it does not explicitly mention when to avoid using this tool (e.g., when an invoice already exists, use invoice.get), so it stops short of a perfect score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
invoice.getARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| invoiceId | Yes | Invoice UUID returned by invoice.create |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| amount | No | |
| payUrl | No | |
| status | No | |
| currency | No | |
| expiresAt | No |
Tool Definition Quality
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 value beyond annotations by specifying return fields (status, amount, currency pair, payUrl) and the practical implication that the invoice must be OPEN for payment, enriching the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the core action and resource, followed by useful return-value details and usage guidance. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one required parameter, one resource) and the description covers what it does, what it returns, and when to use it. Combined with strong annotations and full schema coverage, no essential information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for the single parameter 'invoiceId', describing it as 'Invoice UUID returned by invoice.create'. The description does not add further parameter detail, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Retrieve' with the resource 'agent-to-agent invoice by ID', and explicitly lists what it returns (status, amount, currency pair, payUrl). This clearly distinguishes it from sibling tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use before calling invoice.pay to confirm the invoice is still OPEN.' This tells the agent when to invoke it relative to a related action. It could be clearer about when not to use it, but for a simple retrieval tool this is sufficient context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sandbox | No | True for sandbox simulation. Default: true — set false only for live execution. | |
| invoiceId | Yes | Invoice UUID to pay | |
| recipientAddress | No | Payee wallet address (required if not set in invoice) |
Output Schema
| Name | Required | Description |
|---|---|---|
| invoiceId | No | |
| settlement | No | Full settlement result from POST /settle |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description richly details behavior beyond sparse annotations: it retrieves the invoice, calls POST /settle, and marks the invoice PAID. It explicitly states the side effect (state change) and mode-dependent return values (simulated receipt vs. execution parameters). This fully informs an agent of the tool's runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero wasted words. The first sentence states purpose and steps; the second covers mode behavior. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (three params, output schema available), the description covers core behavior and output differences. However, it omits preconditions (e.g., invoice must be in a payable state, recipientAddress may be optional) and does not reference the output schema. Slightly incomplete but generally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add any parameter-level details beyond what the schema already provides (e.g., sandbox default, invoiceId UUID, recipientAddress condition). No additional usage context or format hints are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: pay an agent-to-agent invoice by ID. It explains the multi-step process (retrieve, settle, mark paid) and distinguishes between sandbox and live modes. However, it does not differentiate from sibling tools like settlement.execute or batch_settle that might handle similar payment logic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., settlement.execute, card.settle, ramp.settle). It does not state prerequisites (e.g., invoice must exist and be unpaid) or scenarios where another tool would be preferable. The sandbox/live distinction is helpful but addresses environment not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ledger.sessionARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session or task ID — the same ID used in receipt.create calls |
Tool Definition Quality
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 description is not responsible for safety disclosure. It supplements by explaining the aggregated output and its chronological nature, adding behavioral context beyond annotations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, starting with the primary action and result, then adding supporting output details and use cases. Every sentence contributes value with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description appropriately explains what is returned (total USD moved, transaction count, chronological list). For a simple read-only tool with one parameter and strong annotations, this description fully covers purpose, output, and applicable contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the only parameter 'session_id' is clearly described in the schema as 'Session or task ID — the same ID used in receipt.create calls'. The description does not add further parameter-level detail, which is acceptable given the schema's sufficiency, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb 'Get' and clearly defines the resource as 'the aggregated payment graph for a multi-agent session'. It enumerates exact outputs (total USD moved, transaction count, chronological list) and explicitly contrasts with use cases like cost accounting and audit, distinguishing it from siblings such as receipt.create and compute.cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: 'Use for cost accounting, audit, or to show a human what an agent run spent.' This gives strong contextual guidance, though it does not explicitly name alternative tools or state when not to use this tool, so a perfect score is not warranted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market.cascadeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | No | Origin node ID. Call market.cascade with listNodes:true to discover valid IDs (e.g. "geo.conflict", "climate.drought", "commodity.oil", "macro.rate_decision"). | |
| eventType | No | Free-text description of the specific event (e.g. "Russia-Ukraine escalation", "Sahel drought season", "Fed emergency 75bps hike"). | |
| listNodes | No | If true, returns all valid origin node IDs and descriptions instead of running a cascade. Use this first to discover valid origin values. | |
| magnitude | No | Shock magnitude 1–100. 100 = maximum plausible shock for this event type. 40–60 = significant but not extreme. | |
| horizonHours | No | Forward time horizon in hours (1–720). Default: 168 (1 week). Use 24 for immediate cascade, 720 for full 30-day view. |
Output Schema
| Name | Required | Description |
|---|---|---|
| origin | No | Origin node metadata. |
| cascade | No | Time-ordered propagation chain — each entry has node, magnitude, arrivalHours, via path, and mechanism. |
| eventType | No | Event description provided. |
| synthesis | No | AI intelligence briefing on transmission paths, concentrated risk, feedback loops, and forward signals. |
| computedAt | No | ISO timestamp of computation. |
| horizonHours | No | Time horizon modeled. |
| inputMagnitude | No | Clamped input magnitude. |
Tool Definition Quality
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 known. The description adds valuable behavioral context beyond this: it describes the modeling approach (shock propagation, time-ordered cascade, attenuated signal strength, AI synthesis), the coverage (24 nodes, 4 domains), and explicitly states what it does NOT do ('no settlement or stablecoin mechanics'). This goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured. It opens with the core function, then provides a complete enumeration of nodes and domains, and ends with a clear scope delimiter. While it is lengthy, each sentence adds relevant detail (especially the node list, which is crucial for usability). The front-loaded core function makes the purpose immediately clear, and the final sentence disambiguates from settlement tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 optional parameters, an output schema, and multiple sibling intelligence tools), the description is remarkably complete. It explains what the tool does, the domain coverage, the output format (time-ordered cascade chain, AI synthesis briefing), and how to discover valid origin IDs via listNodes. The presence of an output schema means return values need not be spelled out, and the description covers all essential usage aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: each of the five parameters includes a detailed explanation with examples in the input schema. The description itself does not add much parameter-level meaning beyond reiterating the origin event and magnitude score. With full schema coverage, the baseline of 3 is appropriate; the description neither compensates for gaps nor presents conflicting information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb ('models how a shock propagates') and a well-defined resource (macro domain cascade intelligence). It enumerates the 24 nodes across 4 domains, uses concrete examples, and explicitly distinguishes itself from settlement/stablecoin tools with the closing phrase 'Purely macro intelligence — no settlement or stablecoin mechanics.' This makes the tool's purpose unmistakable 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage guidance through the parameter descriptions (e.g., 'Call market.cascade with listNodes:true first', 'Use 24 for immediate cascade, 720 for full 30-day view') and the scope statement 'no settlement or stablecoin mechanics' gives an exclusion. However, it does not explicitly compare this tool to alternative sibling intelligence tools like intelligence.contagion or intelligence.aftershock, leaving the 'when to use vs alternatives' guidance implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market.fxARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| dxy | No | DXY value, trend, regime, and settlement impact summary. |
| corridors | No | Per-pair risk, spot rate, advice, and settlement cost. |
| overallRisk | No | FAVORABLE / NORMAL / MODERATE / HIGH / CRITICAL |
| bestCorridors | No | Pairs with NORMAL or FAVORABLE risk — settle now. |
| worstCorridors | No | Pairs with HIGH or CRITICAL risk — delay or hedge. |
| executiveSummary | No | Plain-language summary of FX settlement conditions. |
| recommendedActions | No | Actionable guidance for treasury teams. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds substantial context beyond these: it reveals the data inputs (FRED spot rates, DXY), the decision logic (maps rates to SETTLE_NOW/AVOID categories), and behavioral details like '1h cache'. This fully discloses the tool's analysis behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: purpose, pair list, output categories, distinction from sibling, data sources, and cache. It front-loads the primary action and uses formatting (italicized question) to highlight the core use case. Nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values need no explanation. The description covers everything else an agent needs: the exact pairs, the advisory categories, the DXY regime, the regional rollups, sibling differentiation, data provenance, and caching. For a zero-parameter, read-only tool, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the schema is trivially 100% covered. The description does not need to explain parameters, and the baseline for 0 params is 4. It also adds value by clarifying what the output covers, though that is not parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource+scope: 'FX Settlement Corridor Intelligence — per-pair execution risk assessment for 10 major currency corridors against USD'. It then lists the exact currency pairs and output categories, making it unmistakably distinct from siblings like fx.rate 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: '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?"' This directly tells the agent when to use this tool versus the named alternative, and no other exclusions are needed for a zero-parameter tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market.shippingARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| regime | No | STABLE / MODERATE / ELEVATED / SEVERE_DISRUPTION |
| keyRoutes | No | Per-route disruption status and stress score. |
| synthesis | No | Narrative briefing on freight conditions and implications. |
| energyCost | No | Brent crude, diesel price, marine fuel proxy. |
| freightModes | No | Per-mode (ocean/air/truck/rail) cost index and stress signal. |
| compositeScore | No | Composite stress score 0–100 (higher = more stress). |
| settlementRelevance | No | Invoice delay risk, trade finance stress, affected corridors. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnly/idempotent annotations, it discloses data sources (FRED, EIA), 4h cache, and the settlementRelevance output mapping to corridor risk. This adds useful behavioral context about data freshness and output structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized and front-loaded: purpose first, then tracked data, output section, target users, and data sources with cache. Every sentence contributes valuable information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, strong annotations, and an output schema, the description fully covers purpose, usage, data sources, cache, and audience. It is complete for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4 per rubric. The description correctly omits parameter details since there are none to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as a composite view of global freight market conditions, specifying modes (ocean, air, truck, rail) and tracked data (Brent crude, diesel, 8 trade routes). This distinguishes it from sibling tools like market.fx.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly identifies target users (treasury teams, trade finance desks) and use cases (pricing cross-border payments on goods-backed corridors). Does not name alternatives, but provides sufficient context for when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mercury.accountsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | Number of accounts returned |
| total | No | Total balance across all accounts in USD |
| accounts | No | |
| environment | No | sandbox or production |
Tool Definition Quality
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 useful context about the settlement agent scoping and workspace with both environments, which goes beyond the annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all dense with useful information. No repetition of the schema or annotations, every sentence adds value: what it lists, what fields are returned, how to use the results, and environment compatibility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter read-only list tool, this description is complete. It covers purpose, return fields, integration with sibling tools, and environment caveat. The output schema exists, so return values need not be described in detail. All essential context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the schema is minimal. The description enriches the semantics by specifying exactly what data is returned (account IDs, names, available balance, current balance, currency) and the connection to settlement agent. With 0 params, baseline is 4, and the description earns it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all Mercury accounts and balances, with specific fields returned. It distinguishes itself from related tools by explicitly referencing mercury.transactions and mercury.send for follow-up actions, though it doesn't explicitly name other bank-account listing tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the tool's role in the broader workflow: 'Use account IDs with mercury.transactions to fetch payment history, or mercury.send to initiate a payment.' It also clarifies it works in both sandbox and production environments. However, it doesn't state when NOT to use this tool or explicitly name alternatives beyond the mercury.* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mercury.ach_authorizeADestructiveInspect
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:
mercury.ach_authorize (screen only, autoExecute:false) → review decision
If APPROVED → set autoExecute:true to send, or call mercury.send directly
If FLAGGED → manual review required before proceeding
If BLOCKED → do not proceed
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Payment memo / note (optional). | |
| amount | Yes | Payment amount in USD. | |
| purpose | No | Payment purpose category (optional — required by Mercury for domesticWire, recommended for ACH). E.g. "Vendor", "Contractor", "Expenses". | |
| accountId | Yes | Source Mercury account ID (from mercury.accounts). | |
| autoExecute | No | If true and compliance returns APPROVED, immediately sends the ACH payment. Default false — screen first, execute separately. | |
| recipientId | Yes | Mercury saved recipient ID (from mercury.send / POST /mercury/recipients). | |
| externalMemo | No | External memo / reference visible to recipient (optional). | |
| recipientName | Yes | Legal name of the recipient entity or individual — used for compliance screening. | |
| idempotencyKey | No | Idempotency key for safe retries. Auto-generated if omitted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | No | Compliance tier — FAST_PATH, STANDARD, ENHANCED, or HOLD. |
| _next | No | Guidance on next action. |
| reason | No | Human-readable decision summary. |
| decision | No | Compliance decision. |
| executed | No | True if autoExecute:true and ACH was sent. |
| mercuryId | No | Mercury transaction ID (present when executed). |
| authorized | No | True if compliance approved the payment. |
| compliance | No | Full compliance oracle response including framework attestations. |
| requiresReview | No | True when decision is FLAGGED — manual review required. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, and the description adds context: it explains that setting autoExecute:true will actually send the payment, while default false is screen-only. It also mentions the compliance checks and decision outputs. It does not go into details about retries, partial failures, or network effects, but the core behavioral trait (execution vs screening) is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately lengthy but well structured, with a clear intro, rationale, and numbered workflow. Each sentence serves a purpose, though the intro could be tighter. The workflow steps are especially compact and high-signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, output schema, annotations), the description provides a complete picture: what it does, when to use it, how to integrate with mercury.send, and how to interpret the three decision states. The workflow fully covers the execution path, making it unambiguous for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers 100% of parameters, so the baseline is 3. The description adds value by clarifying the autoExecute parameter's role in the workflow (screen-only vs send) and notes that recipientName is used for compliance screening. It does not explain every parameter, but the schema is self-sufficient; these semantic additions meaningfully enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a specific verb and resource: 'Screen an ACH payment through the DPX compliance oracle before execution.' It clearly states the compliance checks (FATF R16, GENIUS Act, MiCA, AML) and the outcome (APPROVED / FLAGGED / BLOCKED). This distinguishes it from sibling tools like mercury.send (execution) and compliance.pep_screen (general screening) by its ACH-specific pre-execution role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs 'Use this tool BEFORE every ACH payment via mercury.send' and explains the rationale (ACH hard to reverse, prevents blocked transactions and BSA/AML exposure). The workflow gives clear step-by-step directives for each outcome, including when to call mercury.send directly and when to avoid proceeding. This is exemplary usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mercury.sendADestructiveInspect
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:
market.fx → check FX corridor risk for the destination currency
mercury.accounts → get source accountId
mercury.send (sandbox:true) → confirm payment parameters
settlement.quote → get DPX fee quote for the USDC leg
mercury.send (sandbox:false) → execute (requires explicit user confirmation)
mercury.transactions → verify payment posted
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | Payment memo / description. | |
| amount | Yes | Payment amount in USD (or destination currency if specified). | |
| sandbox | No | Dry run — returns what would be sent without executing. Default: true. Set false to execute. | |
| bankCity | No | Beneficiary bank city. | |
| bankName | No | Beneficiary bank name (e.g. "Barclays Bank UK PLC"). | |
| currency | No | Destination currency for internationalWire (e.g. "GBP", "EUR"). Default USD. | |
| dpxRoute | No | If 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. | |
| accountId | Yes | Source Mercury account ID (from mercury.accounts). | |
| swiftCode | No | BIC/SWIFT code of beneficiary bank (required for internationalWire without recipientId). E.g. "BARCGB22" for Barclays UK. | |
| bankAddress | No | Beneficiary bank street address. | |
| bankCountry | No | Beneficiary bank country — ISO 3166-1 alpha-2 (e.g. "GB", "DE", "SG"). | |
| recipientId | No | Mercury saved recipient ID for internationalWire. Use this if the recipient is already saved in Mercury — skips inline bank detail fields. | |
| accountNumber | No | Recipient account number (required for ach/wire/check). Also used for IBAN on internationalWire. | |
| paymentMethod | No | Payment rail. rtp = Real-Time Payment (instant, US domestic). internationalWire = cross-border (1–3 days). Default: ach. | |
| recipientCity | No | Beneficiary city. | |
| recipientName | No | Recipient legal name (required for ach/wire/rtp/check). | |
| routingNumber | No | Recipient routing number (required for ach/wire/check). | |
| recipientEmail | No | Recipient email (optional — for payment notification). | |
| recipientAddress | No | Beneficiary street address. | |
| recipientCountry | No | Beneficiary country — ISO 3166-1 alpha-2. | |
| recipientPostalCode | No | Beneficiary postal code. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | Mercury transaction ID (present when sandbox:false and executed) |
| note | No | Payment memo as sent |
| amount | No | Amount in USD |
| status | No | Transaction status from Mercury |
| sandbox | No | True if this was a dry run |
| dpxTagged | No | Whether the DPX routing tag was appended |
| simulation | No | Dry-run summary (present when sandbox:true) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description explains the sandbox mode (dry-run vs. real funds), the dpxRoute behavior (memo and webhook for USDC settlement), and the requirement for explicit user confirmation. This adds crucial context about side effects and safety.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with clear paragraphs and a numbered flow. Every sentence provides necessary context for a complex tool with 21 parameters; it is appropriately sized, though slightly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers prerequisites, a complete execution flow, dry-run vs. live behavior, and integration with other tools. Given the output schema and rich annotations, nothing essential is missing for the agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover all parameters, but the description adds semantic value by explaining parameter combinations for different rails (e.g., 'provide SWIFT/BIC and beneficiary bank details' for International Wire) and the dpxRoute flag. This cross-parameter guidance goes beyond individual field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states clearly 'Initiate a Mercury bank payment from a connected account' and goes on to detail all supported rails. It also distinguishes itself from siblings by highlighting the DPX cross-border use case, making its scope precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit guidance is provided: for International Wire, it specifies required parameters and prerequisites like checking oracle.stability and market.fx. The typical flow lists step-by-step interactions with sibling tools, clarifying when to use this tool vs. others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mercury.sweepARead-onlyIdempotentInspect
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:
mercury.accounts → get accountId and available balance
mercury.sweep → get yield recommendation and execution steps
If PROCEED → follow execution.steps to wire funds and deploy
mercury.accounts again at exit time → confirm balance restored
| Name | Required | Description | Default |
|---|---|---|---|
| sandbox | No | If true, marks analysis as sandbox mode — Mercury balance may not reflect live state. | |
| accountId | Yes | Mercury account ID to analyze (from mercury.accounts). | |
| thresholdUsd | No | Minimum USD balance to always keep in Mercury as a reserve. Sweepable = available balance minus this amount. Default: $50,000. | |
| riskTolerance | No | Risk tolerance for yield deployment. Conservative requires APY > 5%. Default: moderate. | |
| settlementDeadlineUtc | No | ISO 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
| Name | Required | Description |
|---|---|---|
| account | No | Mercury account summary with available balance, reserve threshold, and sweepable amount. |
| execution | No | Step-by-step execution instructions (present when recommendation is PROCEED). |
| yieldAnalysis | No | Yield routing analysis: instrument, APY, expected net yield, window, and recommendation (PROCEED | HOLD). |
| risk_disclosure | No | Mandatory risk disclosure — client must acknowledge before acting. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses critical behavioral details such as 'It returns a structured recommendation with expected net yield, deployment amount, exit timing, and step-by-step execution instructions' and 'All fund movement decisions remain with the client.' It also explicitly lists enforced safety rules (e.g., 'Always keeps thresholdUsd in Mercury', 'Exit triggered 30 minutes before settlement deadline'), which are not visible in annotations alone. This gives the agent a comprehensive understanding of the tool's side effects and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Although the description is longer than average, it is exceptionally well-structured: a front-loaded summary, safety rules as a bulleted list, a 'Current instrument' section, and a numbered workflow. Every sentence contributes unique information, with no redundancy or filler. The use of headings and bullets makes key constraints and steps highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all necessary context: what the tool does, constraints, relevant instrument details (sUSDS on Base, APY, restrictions), and a multi-step workflow that integrates with other tools. Since an output schema exists, the description does not need to explain return values in detail. The tool is clearly complex (5 parameters, safety rules), and the description fully prepares the agent to invoke it appropriately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all 5 parameters with descriptions, so the baseline is 3. The tool description adds extra meaning by explaining domain-specific relationships, such as 'Sweepable = available balance minus this amount' for thresholdUsd, and how settlementDeadlineUtc 'Drives the yield window calculation.' This additional context helps the agent correctly set parameters, but since the schema already does most of the heavy lifting, a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Treasury float yield routing analysis for idle Mercury bank balances,' which clearly identifies the resource and action scope. It further distinguishes itself from sibling tools by specifying it 'computes how much can be swept... then evaluates whether deploying into sUSDS... is viable,' making it unique among Mercury-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context for when to use the tool: 'THIS TOOL DOES NOT MOVE FUNDS' indicates it is analytical, and the safety rules (e.g., 'Minimum 2-hour window required', 'Minimum $50,000 sweepable') define clear boundaries for applicability. The workflow section also references mercury.accounts, indicating a sequential usage pattern. However, it does not explicitly name alternative yield analysis tools like treasury.yield_route, though the context still implies when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mercury.transactionsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of transactions to return (default 20, max 500). | |
| offset | No | Pagination offset (default 0). | |
| accountId | Yes | Mercury account ID (from mercury.accounts). |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | No | Total number of transactions on this account |
| accountId | No | |
| transactions | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is known to be safe. The description adds valuable context about the DPX-tagged heuristic (memo contains 'dpx:') and the specific returned fields, which goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and packs essential information about return fields and the DPX-tag heuristic without excessive verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple read-only nature of the tool, existing annotations, a full input schema, and an output schema, the description is complete. It covers the tool's purpose, the key filter requirement, and the notable DPX-tagged behavior, so an agent can correctly select and invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover all three parameters (limit, offset, accountId) at 100% coverage. The description only restates the accountId source, adding no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists recent transactions for a Mercury bank account, enumerates the returned fields, and explicitly frames it for reconciling DPX settlements. It distinguishes itself from siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: filtering by account ID from mercury.accounts and using this for DPX settlement reconciliation. It implies a read-only reconciliation use case but does not explicitly mention when not to use it or alternative tools for sending payments or managing accounts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oracle.governanceARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Company name to resolve via GLEIF if LEI is unknown (e.g. "Siemens AG"). | |
| lei | No | 20-character GLEIF LEI. Provide this for fastest response. | |
| country | No | ISO-2 country code for World Bank WGI lookup (e.g. "DE", "US"). Optional but improves score accuracy. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lei | No | |
| tier | No | |
| country | No | |
| sources | No | |
| scoredAt | No | |
| composite | No | Governance score 0–100 |
| components | No | Per-source breakdown: gleif (LEI status, renewal) and worldbank (WGI indicators) |
| entityName | No | |
| mikaCompliant | No | True if composite ≥ 60 (MiCA Article 72 threshold) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, open-world, idempotent, and non-destructive. The description adds context on data sources (GLEIF, World Bank WGI) and output components (composite score, tier, MiCA flag), which is useful beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste; the first sentence states the core function, the second lists data sources, and the third lists outputs and differentiates from esg.score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers what the tool does, its data sources, and output schema components, which is sufficient for a read-only governance score lookup. It doesn't discuss error handling or data freshness, but the annotations and output schema already provide adequate context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three optional parameters. The description reiterates that q/lei identify the entity and country improves World Bank lookup accuracy but adds no new parameter-specific information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('live governance score for any legal entity'), clearly distinguishing from sibling esg.score by noting it isolates the G pillar as a standalone signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly references esg.score as a complementary alternative, stating it 'Complements esg.score by isolating the G pillar,' which tells the agent when to choose this tool. The scope ('any legal entity identified by LEI or company name') and data sources clarify applicable context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oracle.myceliumARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| nodes | No | |
| regime | No | Network regime classification. |
| threadHealth | No | |
| networkHealth | No | Composite network vitality score 0–100. |
| fruitingBodyRisk | No | |
| networkNarrative | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, open-world, idempotent, and non-destructive behavior. The description adds valuable context about data sources (FRED, BIS, IMF), output structure (health score, regimes, propagation speed), and the time horizon, going beyond the annotation hints without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but well-structured and front-loaded with the core purpose. Each sentence adds valuable information about function, outputs, data sources, or differentiation. It could be trimmed slightly but is appropriately sized for the tool's rich output.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no parameters and an output schema (not shown), the description thoroughly explains return values (health score, regimes, connectivity, risk) and data sources. It is complete for a read-only oracle, though it could mention usage constraints or failure scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no semantic info. Baseline for 0 params is 4. The description compensates by explaining what the tool analyzes and returns, making parameter semantics unnecessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: modeling the global financial system as a network and detecting crisis formation ahead of market data. It uses specific verbs ('models', 'detects', 'maps', 'returns') and explicitly distinguishes itself from siblings by claiming to be 'The only oracle that reads network topology rather than individual metrics.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for early crisis detection (6-14 weeks ahead) and differentiates from alternatives via the network topology approach. It does not explicitly list when not to use it, but the context is clear enough for an agent to select it for predictive systemic risk analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oracle.railsARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| rails | No | Specific rails to check: 'PIX', 'SEPA', 'FedACH', 'CHAPS', 'UPI', 'PromptPay'. Omit for all. | |
| region | No | Filter by region: 'latam', 'europe', 'us', 'asia', 'uk'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rails | No | Per-rail status map |
| timestamp | No | ISO 8601 timestamp |
| healthScore | No | Composite rail health score 0–100 |
| recommendation | No | Settlement recommendation based on rail health |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds context on what the tool returns (per-rail status, latency, last incident, composite health score) and the geographic scope of supported rails. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, and provides the key rail list and usage guidance without unnecessary filler. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only status tool with two optional parameters and an output schema, the description fully covers what an agent needs: purpose, return fields, supported rails, and a usage trigger. Given the output schema exists, no need to detail return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters with descriptions, and coverage is 100%, so a baseline of 3 applies. The description adds semantic mapping of rail codes to regions (PIX=Brazil, SEPA=Europe, FedACH=US, etc.), which goes beyond the schema's bare names. This enriches parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') with a clear resource ('live health status of local payment rails') and states the return fields. It differentiates from sibling oracle tools by focusing on payment rails relevant to settlement, listing key rails. This is a strong purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent when to call this tool: 'before domestic or regionally-specific settlements to confirm the destination rail is healthy.' While it provides clear usage context, it does not mention when not to use it or name alternative tools, so it stops short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oracle.stabilityARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | Current stability status |
| outlook | No | Short-term stability outlook |
| reasoning | No | AI reasoning for current status |
| timestamp | No | ISO 8601 assessment timestamp |
| pegDeviation | No | USDC peg deviation in basis points |
| recommendation | No | PROCEED | CAUTION | HOLD |
| stabilityScore | No | Oracle stability score 0–100 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and nondestructive behavior, so the primary burden is on additional context. The description provides valuable behavioral detail: it is 'live,' backed by '25+ institutional data sources' with cross-validation, and includes a concrete decision threshold for holding settlements. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three well-structured sentences: what it does, what it returns, and the data provenance plus a conditional action. It is front-loaded with the primary purpose and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, an output schema exists (so return values are documented elsewhere), and the description covers the purpose, output fields, data sources, and a behavioral threshold. This is complete for an agent to decide when and how to use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is an empty object with zero parameters, so there is no parameter documentation burden. Baseline for zero parameters is 4; description adds context about the data sources and output, which is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies the tool as 'Get live macro stability assessment for DPX settlement infrastructure,' specifying both the action and resource. It also enumerates the output fields (risk score, status, peg deviation, AI reasoning, recommendation), which distinguishes it from sibling tools like oracle.status or stability.corridor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context (for DPX settlement infrastructure) and a clear conditional instruction: 'If UNSTABLE or peg deviation ≥ 50 bps, hold large settlements.' This implies when to use the tool, though it does not explicitly name 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.
oracle.statusARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | No | Oracle tier classification |
| score | No | Composite oracle score 0–100 |
| alerts | No | Active oracle alerts |
| status | No | STABLE | CAUTION | UNSTABLE |
| signals | No | Individual signal scores for all 9 oracle layers |
| briefing | No | AI intelligence briefing text |
| timestamp | No | ISO 8601 oracle run timestamp |
| chaosRegime | No | True if extreme market conditions detected |
Tool Definition Quality
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. The description adds temporal context by specifying 'latest' run, implying output changes over time, and enumerates the signal layers included, which is useful behavioral/scope information beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and resource, then listing the included layers efficiently. Every sentence contributes meaningful content without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, a rich output schema (implied), and annotations covering safety and idempotency, the description fully covers what the agent needs: it states the exact output scope and content. No aspects are left undocumented for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the schema is fully covered by default. The description adds no parameter-specific details (not needed), but it does explain what the returned output contains (9 signal layers + AI briefing), which is valuable for understanding the tool's effect without parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the full output from the latest DPX Stability Oracle run, listing all 9 signal layers. This specific verb+resource combination distinguishes it from sibling oracle tools like oracle.governance, oracle.mycelium, oracle.rails, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'latest' and 'full output', indicating when this tool is appropriate. It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to select it over other oracle.* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
policy.checkARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| purpose | No | Payment purpose string | |
| agent_id | Yes | Agent identifier — must match the agent_id used in policy.create | |
| recipient | No | Recipient wallet address | |
| amount_usd | Yes | Proposed payment amount in USD | |
| session_id | No | Task or session grouping ID for ledger tracking. | |
| to_currency | No | Destination currency code (e.g. EUR, GBP) | |
| counterparty | No | Counterparty name or LEI | |
| delegation_id | No | If acting under a delegation from a parent agent, provide the delegation ID. | |
| oracle_status | No | Current oracle status — STABLE, CAUTION, or UNSTABLE. Get from get_reliability. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. Beyond that, the description adds valuable behavior context by disclosing the exact return types (ALLOW/HOLD/BLOCK) and that a reason accompanies the verdict. It also explains the meaning of each verdict. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, then the usage timing, then the verdict definitions. Every sentence earns its place with no redundancy or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 9 parameters and no output schema, so the description partially substitutes an output contract by explaining the three verdicts and their implications. It handles the core decision flow (ALLOW/HOLD/BLOCK), but does not mention error conditions (e.g., missing policy, invalid agent_id) or additional response fields like the 'reason' structure. For a pre-flight check tool, this is reasonably complete but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add specific parameter-level meaning beyond what the schema provides; it only loosely references the 'proposed payment' and 'agent', which map to the required params (amount_usd, agent_id). It does not compensate with additional parameter context, but the schema fully covers each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Check' and clearly identifies the resource: 'a proposed payment against the agent's active policy before executing it.' It also distinguishes itself from sibling tools like policy.create and settlement.execute by positioning this as a pre-execution gate, and the return values (ALLOW/HOLD/BLOCK) reinforce the unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit when-to-use instruction: 'Run this before every settlement call.' It also defines the next actions for each outcome (ALLOW = proceed, HOLD = route to human review queue, BLOCK = halt, do not proceed), giving the agent clear operational guidance on how to integrate this tool into a workflow.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Human-readable policy name | |
| agent_id | Yes | Stable identifier for the agent or org (wallet address, session prefix, org slug, etc.) | |
| max_per_tx | No | USD ceiling per single transaction. Payments above this are BLOCKED. | |
| max_per_day | No | USD rolling daily ceiling. Payments that would exceed this are HOLDed. | |
| blocked_regions | No | ISO 3166-1 alpha-2 country codes to block. | |
| allowed_purposes | No | If set, only payments with a purpose in this list are allowed. | |
| require_hold_above | No | Route to HOLD queue for human review if amount exceeds this threshold. | |
| require_oracle_stable | No | If true, HOLD on CAUTION as well as UNSTABLE oracle status. | |
| blocked_counterparties | No | Wallet addresses or LEIs to block. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only note readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the description carries the burden of explaining behavior. It adds meaningful context: the policy defines rules and once set, every payment is automatically checked via policy.check. This goes beyond the structured annotations, though it does not mention authorization, overwrite semantics, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: first states the action, second lists the key policy rules, and third explains the automatic enforcement via policy.check. It is front-loaded with the main purpose and every sentence contributes value with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with 9 parameters and no output schema, the description covers the main purpose, key configurable rules, and the automatic enforcement consequence. It does not specify the return value/created policy identifier or whether creating a policy replaces an existing one, but the rich parameter schema and stated behavior make the tool sufficiently functional for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter has a detailed description. The description's enumeration of per-transaction ceiling, daily limit, hold threshold, blocked counterparties, allowed purposes, and oracle stability gate maps directly to schema fields, but it adds no new semantic meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Create' with a clear resource ('spending policy') and scope ('for an AI agent'). It enumerates the policy rules and distinguishes itself from the sibling tool policy.check by stating that payments are automatically checked via policy.check after creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: this tool is used to set spending rules before financial actions. It indicates that policy.check is the follow-up mechanism, but it does not explicitly discuss when not to use the tool or compare against policy.delegate, so 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.
| Name | Required | Description | Default |
|---|---|---|---|
| max_total | No | Lifetime spending ceiling for this delegation | |
| policy_id | No | Policy ID to inherit (optional — inherits parent policy if omitted) | |
| expires_at | No | Unix timestamp (ms) when this delegation expires. Omit for no expiry. | |
| max_per_tx | No | Maximum USD per transaction for the sub-agent | |
| child_agent_id | Yes | The sub-agent receiving delegated authority | |
| parent_agent_id | Yes | The authorising (parent) agent ID |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, but the description adds valuable behavior: 'sub-agent can only spend up to the delegated ceiling' and 'Delegation can be revoked at any time'. This goes beyond the annotations and illuminates the intended side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, and no filler. Each sentence earns its place: purpose, constraint, and usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage context, and key behavioral traits (limits, revocation). No output schema exists, so the description might have mentioned return values, but the schema fully documents parameters. It is complete enough for a straightforward delegation creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter clearly documented (e.g., max_total as 'Lifetime spending ceiling'). The description adds no additional parameter-specific meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Delegate payment authority from a parent agent to a sub-agent with explicit limits' – a specific verb and resource. It distinguishes from sibling tools like policy.create and agent.mandate_create by focusing on delegation with limits and revocation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use in multi-agent workflows where an orchestrator authorises a worker agent to make payments on its behalf' – provides clear context for when to use. It does not explicitly name alternatives or exclusions, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protocol.investment_contextARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| section | No | Which section to return. Default 'all' returns the complete memo. |
Output Schema
| Name | Required | Description |
|---|---|---|
| _meta | No | Memo metadata |
| raise | No | Raise details |
| risks | No | Key risks |
| market | No | Market context |
| founder | No | Founder background |
| product | No | Product and technology |
| overview | No | Company overview |
| traction | No | Traction and metrics |
| compliance | No | Compliance posture |
| financials | No | Financial model |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds the structure of the returned memo (sections like overview, traction, compliance), which is helpful but doesn't disclose operational caveats such as auth, freshness, or rate limits. It meets the baseline for a read-only tool with annotation coverage, but doesn't go beyond.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences: what it returns, when to use it, and what sections are included. It is front-loaded with the main action, contains no vague or redundant phrasing, and every sentence adds value. This is a model of concise tool documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a read-only non-destructive annotation profile, one optional parameter fully covered by the schema, and an output schema present, the description provides sufficient context for an agent to select and invoke the tool correctly. It covers the use case and enumerates all major memo sections, leaving few open questions about what the tool can deliver.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains the 'section' parameter and its default value. The tool description lists the memo sections, which aligns with the enum, but doesn't add new syntax or behavioral details beyond what the schema provides. Baseline of 3 is appropriate when the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb+resource: 'Returns a structured investment memo for DPX / Untitled_ LuxPerpetua Technologies, Inc.' It immediately clarifies the tool's purpose and differentiates it from broader analytics or metrics siblings like dpx.metrics or analytics.overview. The explicit use case ('conducting due diligence, evaluating DPX as an investment opportunity, or building a company report') further strengthens clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'Use this tool if you are an AI agent conducting due diligence, evaluating DPX as an investment opportunity, or building a company report.' It does not explicitly mention when not to use or name alternatives, but the context is clear and actionable, so it earns a 4 rather than a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
protocol.manifestARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| agent | No | Settlement Agent manifest: name, version, status |
| oracle | No | Oracle manifest: name, version, assets, endpoints |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered. The description adds only the 'Get' action and output contents, not new behavioral traits like rate limits or failure modes. It is consistent with annotations but adds no behavioral disclosure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, then a compact list of returns and a usage directive. Every clause earns its place; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no params, output schema present, annotations cover safety), the description fully covers purpose, expected content, and entry-point role. It names all relevant asset types and URLs without overwhelming detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema trivially covers 100% of them. According to the rubric, 0 params yields a baseline of 4. The description does not need to document parameters; it correctly implies no arguments are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' with the resource 'DPX protocol manifest' and enumerates exact return contents (capabilities, supported assets, contract addresses, URLs, endpoints). It stands apart from siblings like dpx.metrics by explicit phrasing 'understand what DPX can do'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: 'Call this first' establishes when to use the tool (before other DPX interactions). It does not mention alternatives or exclusions, so it falls short of a 5, but the guidance is direct and actionable.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Card spending cap (e.g. "10000.00"). | |
| currency | No | Currency code (default USD). | |
| reference | No | Your internal reference ID. | |
| tenant_id | Yes | Tenant ID of the connected Ramp account. | |
| display_name | No | Card label visible in Ramp dashboard. | |
| merchant_scope | No | Intended merchant name (informational). |
Output Schema
| Name | Required | Description |
|---|---|---|
| amount | No | |
| taskId | No | Poll GET /ramp/agent-card/:taskId for card PAN/CVV. |
| currency | No | |
| reference | No | |
| statusUrl | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation (readOnlyHint=false) and non-idempotency; the description adds behavioral specifics such as single-use, 12-hour expiry, and the poll-for-card-details flow. It also discloses the required auth scope (cards:read_agentic). This is valuable context beyond annotations, though it doesn't cover failure modes or open-world side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: definition, use case, return/auth. Every sentence adds distinct, necessary information; no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema available, the description doesn't need to enumerate return values, but it explains the asynchronous task/poll pattern and the DPX settlement context. This is sufficient for an agent to decide and invoke correctly, especially given the rich annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 6 parameters have schema descriptions covering 100% of the space, so the description carries no added param burden. It reinforces that 'amount' acts as a cap and 'merchant_scope' as intended merchant, but these are already in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Create') and resource ('Ramp Agent Card'), then defines key attributes: single-use, merchant/amount cap, expiration after first authorization or 12 hours. It clearly distinguishes from sibling tools like ramp.connect and ramp.settle by tying it to DPX fiat funding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a concrete use case: 'fund the fiat leg of a DPX settlement without pre-funding a crypto wallet.' It also directs the agent to poll ramp.agent_card_status for PAN/CVV, establishing a follow-up workflow. However, it doesn't explicitly enumerate alternatives or exclusion criteria, so it stops short of a full when/when-not set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ramp.compliance_screenARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Payment amount in units of currency. | |
| currency | No | ISO 4217 currency code. Defaults to "USD". | |
| paymentType | No | Payment type — payroll automatically triggers PEP screen. | |
| isIndividual | No | true if counterparty is an individual (triggers PEP screen). Defaults to false. | |
| sourceCountry | No | ISO 3166-1 alpha-2 source country. Defaults to "US". | |
| counterpartyLei | No | Optional GLEIF LEI — enables UBO chain check and satisfies FATF R.16 originator identification. | |
| counterpartyName | Yes | Legal name of the payment counterparty. | |
| counterpartyCountry | No | ISO 3166-1 alpha-2 destination country (e.g. "DE", "NG", "IR"). |
Output Schema
| Name | Required | Description |
|---|---|---|
| checks | No | fatfCountry, amountFlags, sanctions, pep, uboChain check details. |
| _action | No | Recommended action for the agent. |
| fatfR16 | No | FATF R.16 satisfied status and basis. |
| reasons | No | Specific reasons for the decision. |
| decision | No | Compliance decision. |
| riskScore | No | Risk score 0–100. |
| humanRequired | No | true only for FLAGGED — APPROVED payments proceed automatically. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already declaring readOnly/idempotent, the description adds substantial behavioral detail: returns APPROVED/FLAGGED/BLOCKED, humanRequired only for FLAGGED, and prescribes actions for each outcome (e.g., 'BLOCKED: halt, do not proceed, do not notify counterparty').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with a purpose sentence, numbered check list, and clear decision actions. Every sentence provides necessary information; the detail is justified for a tool with 8 parameters and complex compliance logic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers trigger context, all five checks, thresholds, and explicit handling of APPROVED/FLAGGED/BLOCKED statuses, including the human approval workflow. Output schema exists, so the description sufficiently complements structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters, and the description adds meaningful semantic value: amount thresholds ($10K CTR, $100K large-payment), payroll/individual triggering PEP, and LEI enabling UBO chain checks. This goes beyond the baseline 3 for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it is a compliance pre-screen for Ramp accounting agent payments, run before issuing an Agent Card. It enumerates 5 distinct checks, which differentiates it from narrower sibling tools like compliance.pep_screen and compliance.ubo_chain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use context ('run before issuing an Agent Card') and notes it eliminates unnecessary human approval queues. It does not explicitly name alternatives or exclusions, but the target use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ramp.connectARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tenant_id | Yes | Your internal tenant or customer ID — returned in the callback so you can match the connection. |
Output Schema
| Name | Required | Description |
|---|---|---|
| scopes | No | Requested OAuth scopes. |
| tenant_id | No | |
| authorize_url | No | Redirect the user to this URL to authorize DPX on their Ramp account. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by explaining the OAuth flow, directing the user to the returned URL, listing required scopes, and noting that tokens are stored and refreshed automatically. This adds significant behavioral context that annotations do not cover, with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences), front-loaded with the primary purpose, and efficiently lists scopes. Every sentence adds value with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (OAuth authorization, multiple scopes, one-time setup), the description covers what it returns, what the user should do, required permissions, and token lifecycle. The output schema exists, so return details are not needed in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage of the single parameter tenant_id, including its purpose. The description reinforces the 'per tenant' context but does not add new syntax or format details, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Connect a Ramp corporate account to DPX settlement' with a specific verb (connect), resource (Ramp corporate account), and target (DPX settlement). This clearly differentiates it from sibling ramp tools like ramp.agent_card, ramp.settle, and ramp.spend_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Call once per tenant' and lists the required OAuth scopes, providing clear usage context. However, it does not explicitly mention alternatives or when not to use this tool, so it lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ramp.settleADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Payment amount (e.g. "50000.00"). | |
| currency | Yes | Source currency: USD or EUR. | |
| reference | No | Your internal payment reference. | |
| tenant_id | Yes | Tenant ID of the connected Ramp account. | |
| callback_url | No | Webhook URL for pacs.002 delivery. | |
| creditor_lei | No | Recipient LEI for GLEIF VoP (optional). | |
| creditor_name | Yes | Recipient name. | |
| merchant_scope | No | Merchant name for Agent Card scope. | |
| creditor_wallet | Yes | Recipient on-chain wallet address (0x...). | |
| settlement_asset | No | Settlement asset: USDC (default) or EURC. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| iso20022 | No | pacs.002 status object. |
| agentCard | No | |
| compliance | No | FATF R16 + SFDR PAI indicators. |
| settlement | No | |
| dpxPaymentId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint false, destructiveHint true), the description adds that it creates a card, processes fiat via Ramp, settles on Base mainnet, and discloses a ~30 second timeframe. It also mentions the return of pacs.002 and SFDR PAI indicators, plus the lack of pre-funding, which are not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: five sentences conveying the core purpose, mechanism, timeline, outputs, and prerequisites. Every sentence adds value and the main purpose is front-loaded, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 10-parameter, complex settlement operation, the description covers the essentials: the combined card creation and settlement action, the roles of Ramp and DPX, the settlement asset options, the quick settlement time, the confirmation returns, and the lack of pre-funding. The output schema and annotations handle the remaining structural details, making it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 10 parameters are already documented in the input schema with descriptions (100% coverage), so the schema carries the parameter semantics. The description adds general context (e.g., settlement in USDC/EURC, source currency via Ramp) but does not provide additional per-parameter meaning beyond the schema, aligning with the baseline 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Execute a DPX stablecoin settlement funded by a Ramp Agent Card' which precisely names the action and resource. It further distinguishes from sibling tools by noting it 'combines card creation and settlement in one call', which separates it from separate card settlement or execution tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context: requires a connected Ramp account, handles fiat conversion, settles on Base mainnet in ~30 seconds, and does not require crypto pre-funding. These conditions help an agent determine when to use it, though it doesn't explicitly name alternative tools or exclusions, so it doesn't reach a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ramp.spend_analysisARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Number of bills to analyse (default 100, max 500). | |
| tenant_id | Yes | Tenant ID of the connected Ramp account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| crossBorder | No | Wire and international bill totals. |
| dpxOpportunity | No | Estimated annual savings and DPX fees. |
| topVendorsBySpend | No | Top 10 vendors by total payment volume. |
Tool Definition Quality
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 analysis's financial context (3.0% bank rate vs. ~2.035% DPX rate) and return contents (totals, top vendors, savings). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary purpose, followed by return value details and a prerequisite. No redundant or filler content; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the purpose, prerequisites, return values, and financial rationale. With an output schema present, the description does not need to explain response format. It could mention failure modes (e.g., if no bills exist) but this is not critical for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both tenant_id and page_size described in the input schema. The description does not add parameter-specific semantics beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Analyse' + specific resource 'connected Ramp account's wire and international bill volume' + stated goal 'surface DPX settlement opportunity'. This distinguishes it from siblings like ramp.settle and ramp.connect by focusing on spend analysis rather than execution or connection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the prerequisite 'Requires Ramp account connected via ramp.connect' and implies the scenario (analyzing cross-border bill volume for DPX savings). Does not explicitly name alternative tools, but the Ramp-specific purpose provides clear context for 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sandbox | No | True if this was a sandbox settlement | |
| tx_hash | No | On-chain transaction hash (if live) | |
| agent_id | Yes | Agent that executed the payment | |
| policy_id | No | Policy ID that governed this payment | |
| recipient | No | Recipient wallet address | |
| amount_usd | Yes | Amount paid in USD | |
| session_id | No | Task or session ID for grouping (use the same ID for all payments in one agent run) | |
| to_currency | No | Destination currency (default: USD) | |
| counterparty | No | Counterparty name | |
| task_context | No | Plain-text description of what task triggered this payment | |
| delegation_id | No | Delegation ID if acting under delegated authority | |
| from_currency | No | Source currency (default: USD) | |
| oracle_status | No | Oracle status at time of payment (STABLE / CAUTION / UNSTABLE) | |
| settlement_id | No | Settlement ID returned by the settle tool | |
| compliance_decision | No | Compliance decision at time of payment (PROCEED / HOLD / BLOCKED) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a write operation (readOnlyHint=false), but the description adds valuable behavioral details: the receipt is 'tamper-evident,' returns an HMAC-SHA256 signature over canonical JSON, and is 'queryable by session or agent for audit.' This provides context about return format and persistence beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the main purpose, then usage timing, then return value and auditability. Every sentence carries necessary information with zero waste. The structure is ideal for quick agent parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 15 params and no output schema, the description covers key contextual needs: when to call it, what it returns (receipt ID + HMAC), and why it matters (proof of integrity, auditability). It does not detail error cases or prerequisites, but the schema and annotations cover parameter requirements. This is reasonably complete 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully documents all 15 parameters. The description does not add meaning to individual parameters; it only references 'canonical receipt JSON' globally. Per the baseline rule, a score of 3 is appropriate since no additional param-level insight is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Record a tamper-evident signed receipt for an agent financial action.' It further distinguishes itself from sibling settlement tools by instructing to call it 'immediately after every successful settlement,' framing it as the post-settlement audit step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit usage context is provided: 'Call immediately after every successful settlement.' This tells the agent when to use the tool, though it does not explicitly mention when not to use it or name alternative tools. The auditability note implies suitability for record-keeping but lacks direct exclusions, so a slight deduction applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
routeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination currency code (USD, EUR, GBP, etc.) | |
| from | Yes | Source currency code (USD, EUR, GBP, BRL, etc.) | |
| amount | Yes | Settlement amount in source currency |
Output Schema
| Name | Required | Description |
|---|---|---|
| options | No | |
| ttlSeconds | No | |
| generatedAt | No | |
| routingAdvice | No | |
| settleEndpoint | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds valuable behavioral details beyond annotations: it returns all three stablecoin options, ranks them by settlement efficiency, and returns a settleBody ready for POST to /settle. It also explains the EURC recommendation logic, which is useful for understanding outputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, with the main purpose front-loaded. Every sentence adds value: what it does, a specific recommendation rule, and the output format. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only 3 well-documented parameters and an output schema, so the description does not need to explain return values. It covers the essential behavioral aspects: number of options, ranking logic, recommendation for EUR, and the generated settleBody. Comprehensive for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter has a clear description (e.g., 'Settlement amount in source currency'). The description mostly restates the schema ('amount, source currency (from), and destination currency (to)') without adding new semantics or constraints. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Multi-stablecoin settlement routing' with specific verb 'returns' and resource 'all three stablecoin options... ranked by settlement efficiency'. It distinguishes itself from sibling tools like compute.route and treasury.yield_route by focusing on stablecoin settlement and providing a concrete output (settleBody).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying inputs (amount, source currency, destination currency) and the domain (stablecoin settlement). It provides a specific recommendation for EUR destinations, but does not explicitly name alternative tools or state when not to use this tool. This is clear context but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (default 3, max 5). | |
| query | Yes | Keywords to search — e.g. "how to settle", "esg fee formula", "butterfly cascade", "mercury send", "compliance screen". |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds 'Free' and the type of content returned, but does not disclose additional behavioral aspects like rate limits, pagination, or response format. This is acceptable for a simple read-only search tool but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences. The opening sentence front-loads the core action, the second specifies return value and content, and the third gives usage guidance. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with full annotations and schema coverage, the description covers what the tool does, what it returns, and when to use it. It lacks minor details like search limitations or whether results are snippet-only, but these are not critical for a basic documentation search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed descriptions for both 'query' (including example keywords) and 'limit' (default 3, max 5). The description adds no new parameter-level information, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search DPX documentation by keyword. Returns the most relevant doc sections' and lists specific content areas (how-to guides, API references, fee structure, etc.). It is immediately distinguishable from all sibling tools given its documentation-search role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this when you need protocol details mid-task rather than relying on context alone,' which provides clear situational guidance. It does not mention alternatives or when not to use it, but the instruction is direct and useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settlement.executeADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in source currency units | |
| purpose | No | Payment purpose: intercompany, vendor-payment, payroll, treasury | |
| quoteId | No | Pre-fetched quoteId from get_quote (optional — agent fetches live if omitted) | |
| sandbox | No | Sandbox mode — real calculations, no on-chain execution. Default: true. | |
| esgScore | No | ESG score override 0–100 (testing only) | |
| referenceId | No | External reference ID (invoice number, TMS ID, etc.) | |
| sourceCurrency | Yes | Source currency: USD, EUR, GBP, USDC, EURC | |
| recipientAddress | Yes | On-chain recipient wallet address (0x...) | |
| destinationCurrency | Yes | Destination currency: USD, EUR, GBP, USDC, EURC |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | |
| summary | No | Human-readable settlement outcome summary |
| httpStatus | No | HTTP status from Settlement Agent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include destructiveHint=true (mutation) and readOnlyHint=false. The description goes beyond by explaining the agent's internal behavior (checks oracle conditions, reasons with Claude AI) and the sandbox fallback. It doesn't detail irreversibility or failure reasons, but it provides valuable context consistent with annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences cover purpose, behavior, return values, and safe usage. Every sentence is information-dense with no filler. The sandbox warning is front-loaded for safety-critical usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 9-parameter tool with an output schema, the description effectively covers the execution flow, sandbox mode, and live execution constraint. It could mention prerequisites (e.g., need for a quote) more explicitly, but quoteId is described as optional. Overall, sufficiently complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described. The description adds the sandbox/live distinction and return value list, but does not significantly enhance individual parameter understanding. Baseline of 3 is appropriate since structured schema already handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: 'Execute a DPX cross-border settlement' with explicit process details (checks oracle conditions, reasons with Claude AI, executes on-chain). It distinguishes from sibling tools like settlement.quote (quoting) and settlement.status (status check) by focusing on execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on sandbox vs live execution: 'Default: sandbox=true — set sandbox=false only for live execution.' This is clear when-to-use context. However, it doesn't explicitly mention alternatives like batch_settle for batch scenarios, so it earns a 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settlement.nlADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sandbox | No | Set false for live execution. Default: true | |
| instruction | Yes | Plain-English payment instruction, e.g. 'Pay Acme GmbH $25,000 USD for invoice #INV-2026-0042' | |
| recipientAddress | Yes | Recipient wallet address (0x...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| txHash | No | |
| feesTotal | No | |
| netAmount | No | |
| aiDecision | No | |
| aiConfidence | No | |
| settlementId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover destructiveHint=true and readOnlyHint=false. The description adds valuable context: the autonomous pipeline (oracle gate → compliance screen → settlement flow), the default sandbox mode, and that a receipt is returned. It does not contradict annotations, and the sandbox default is an important safety-related behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary action. The examples are helpful but three examples may be slightly repetitive; however, each sentence adds useful context (parsing, pipeline, sandbox default). No fluff, but could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a payment execution tool, the description covers the key aspects: what it does, when to use it, how it executes (autonomous pipeline), safety default (sandbox), and output (receipt). Since an output schema exists, the return format is already documented. It does not mention failure modes or authorization requirements, but annotations and schema fill some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description reinforces the 'instruction' parameter as plain-English and gives examples, but does not add new semantic information about parameters beyond what the schema already provides. The sandbox default is mentioned both in the description and schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's action: 'Execute a payment from a plain-English instruction.' It names the resource (payment/settlement) and the key differentiator (natural-language instruction vs. structured parameters). The title 'Natural Language Settlement' reinforces this, making it easy to distinguish from sibling tools like settlement.execute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use it: 'Use this when the agent has a natural-language payment task rather than structured parameters.' It provides concrete examples of appropriate inputs. It doesn't name alternative tools explicitly, but the 'rather than structured parameters' exclusion gives enough guidance for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settlement.quoteARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | No | Counterparty LEI — triggers automatic ESG lookup if esgScore is not provided. | |
| hasFx | No | True if source and destination currencies differ (adds 0.40% FX fee). | |
| esgScore | No | Counterparty ESG score 0–100. If omitted and lei or counterpartyName is provided, the ESG Oracle is queried automatically. | |
| amountUsd | Yes | Settlement amount in USD. | |
| counterpartyName | No | Counterparty company name — used for ESG auto-lookup if lei is not provided. | |
| monthlyVolumeUsd | No | Monthly volume for discount tier. $1M+ = Institutional (20% off). $10M+ = Sovereign (30% off). |
Output Schema
| Name | Required | Description |
|---|---|---|
| fees | No | |
| tier | No | Volume tier: Standard | Growth | Institutional | Sovereign |
| quoteId | No | Binding quote ID, valid 300 seconds |
| amountUsd | No | Input settlement amount in USD |
| expiresAt | No | ISO 8601 expiry timestamp |
| reasoning | No | AI reasoning for fee calculation |
| oracleScore | No | Oracle confidence 0–100 |
| netAmountUsd | No | Net amount after all fees |
| oracleStatus | No | STABLE | CAUTION | UNSTABLE |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's job is lighter. It adds valuable context: the quote is 'binding,' the quoteId is 'valid for 300 seconds,' and the ESG fee is 'live' (auto-looked-up). These details go beyond the schema and annotations, improving transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by a concrete list of return values, and ends with a usage directive. Each sentence earns its place; no filler or repetition of annotations or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not detail return structures. It covers purpose, key outputs, quote validity, and workflow position relative to settlement.execute. For a read-only quote tool with 6 parameters and rich sibling context, this is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The description reinforces the FX fee (0.40%) and ESG fee ranges, but does not significantly expand on parameter semantics beyond the schema. Baseline 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get a binding fee quote') and resource ('DPX settlement'), clearly distinguishing it from sibling tools by explicitly naming settlement.execute as the follow-up. It also enumerates the exact outputs (fees, quoteId, oracle status), leaving no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Always call this before settlement.execute,' providing a direct when-to-use instruction and linking to a sibling tool. This serves as an implicit exclusion for skipping the quote step, making the intended workflow clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
settlement.statusARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| settlementId | Yes | Settlement ID from the settlement.execute tool (format: dpx_...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| httpStatus | No | HTTP status from Settlement Agent |
| settlement | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only, idempotent, and non-destructive. The description adds behavioral context by detailing the returned audit record (status, tx hash, oracle conditions, ESG score, Claude AI reasoning, timestamp), which indicates a historical snapshot and adds value beyond the safety annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the action and object, the second lists the return contents. No unnecessary wording, front-loaded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup tool with output schema and annotations already established, the description is complete. It specifies the input source, the nature of the resource, and the full set of return fields, leaving no ambiguity for an agent deciding to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, already specifying the source (settlement.execute) and format (dpx_...). The description merely restates 'by settlement ID' without adding new syntax or constraints, so it does not elevate meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Look up') and the specific resource ('previous DPX settlement by settlement ID'). It distinguishes from siblings like settlement.execute, settlement.quote, and settlement.nl by focusing on retrieval of an existing settlement's audit record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description and parameter schema together provide clear context: use this to fetch a previous settlement's details, with the ID sourced from settlement.execute. No explicit alternatives are named, but the 'previous' and 'from settlement.execute' phrasing strongly implies the intended usage scenario.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | HTTPS endpoint to receive settlement.completed events | |
| events | No | Event types (default: ["settlement.completed"]) |
Output Schema
| Name | Required | Description |
|---|---|---|
| events | No | |
| webhookSecret | No | HMAC secret — returned once, store immediately |
| subscriptionId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals critical behavior beyond annotations: the webhook signature format (X-DPX-Signature with HMAC), the POST delivery, and that the webhookSecret is returned only once and must be stored immediately. This is essential operational detail that 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action, and every sentence adds essential information: registration purpose, callback format, signature, and secret handling. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema in the provided context, the description explains return values (subscriptionId and webhookSecret) and crucial operational behavior like signature verification and secret storage. It is complete for a webhook registration tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter details for url and events. The description does not add significant parameter-level meaning, only restating url as the endpoint. The return value mention is useful but not parameter semantics. Baseline 3 is appropriate given schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool registers a webhook callback for settlement completion events, using a specific verb and resource. It differentiates from sibling tools like settlement.status or intelligence.subscribe by focusing on settlement completion events and webhook registration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use it: whenever a settlement completes. It does not explicitly name alternatives or exclusions, but the webhook registration purpose is distinct enough to guide selection. A minor gap is the lack of explicit 'use this instead of polling' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stability.corridorARead-onlyIdempotentInspect
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?"
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination currency ISO-4217 code (e.g. "BRL", "MXN", "SGD"). | |
| from | Yes | Source currency ISO-4217 code (e.g. "USD", "EUR", "GBP"). |
Output Schema
| Name | Required | Description |
|---|---|---|
| corridor | No | score (0–100), tier, recommendation (SETTLE_NOW/DELAY_24H/DELAY_48H), regulatoryFlags, corridorNotes |
| components | No | globalOracleScore, corridorAdjustment, cascadePenalty, liquidityScore, weekendPenalty |
| marketContext | No | cascadeLevel, globalOutlook, currentUtcHour, isWeekend |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly and non-destructive behavior, and the description adds rich detail about the underlying logic: it combines the global oracle score with corridor-specific adjustments (regulatory flags, FX liquidity, cascade penalty, weekend/off-hours penalty) and returns a recommendation with rationale. This fully discloses how the score is computed and what the output contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat dense but each of its four sentences contributes essential information: purpose, inputs/factors, output, and differentiation. It is efficiently worded without redundant fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple risk factors, recommendation output) and the presence of an output schema, the description sufficiently covers what the tool does, how it behaves, and when to use it. It leaves no major gaps 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the two parameters (from and to) with clear descriptions. The tool's description adds no new parameter-level semantics beyond naming currency pair examples, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific, actionable statement: 'Corridor-specific settlement stability score (0–100) for any currency pair.' It also explicitly distinguishes the tool from siblings like oracle.stability and market.fx, making its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description not only states what the tool does but also names alternatives and clarifies when to use this one: 'this answers "is this specific corridor safe to settle through right now?"' It contrasts with oracle.stability (global) and market.fx (spot-rate focused), providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stability.settlement_windowARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination currency ISO-4217 (e.g. "BRL"). | |
| lei | No | Optional 20-char GLEIF LEI of counterparty — fetches live ESG tier to apply counterparty risk penalty. | |
| from | Yes | Source currency ISO-4217 (e.g. "USD"). | |
| amount | No | Settlement amount (default 1,000,000). Used for large-amount guidance ≥$5M. | |
| currency | No | Currency of the amount (defaults to from). |
Output Schema
| Name | Required | Description |
|---|---|---|
| windows | No | 18 × 4-hour slots: startUtc, endUtc, compositeScore, tier, components, recommendation, rationale |
| marketContext | No | globalOracleScore, corridorAdjustment, cascadeLevel, globalOutlook, regulatoryFlags |
| recommendation | No | bestWindow (ISO datetime), bestScore, optimalCount, goodCount, summary, largeAmountNote |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds valuable behavioral context: generates 18 time slots, scores by composite risk factors, returns classifications, and includes large-amount splitting guidance. It does not contradict annotations and enriches beyond what structured fields provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph with multiple clauses, but every sentence adds specific information about slots, scoring factors, output classification, or usage timing. It is appropriately compact for the tool's complexity, though a more structured bulleted format could improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all key behavioral aspects: 18×4-hour slots, composite risk dimensions, classification categories, best-window output, and large-amount guidance. It assumes an output schema (which exists) for return details, so the description is sufficiently complete for an agent 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter is already well-documented. The description reinforces the role of `lei` and `amount` in the analysis, but adds no meaning substantially beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Optimal settlement execution window analysis' with a specific verb and resource. It distinguishes from siblings like settlement.execute (execution), settlement.quote (quoting), and stability.corridor (corridor-specific analysis) by emphasizing a comprehensive 72-hour window scoring approach.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use this before scheduling large cross-border settlements to minimize execution risk', providing clear when-to-use context. However, it does not mention alternative tools or when-not-to-use conditions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stability.stablecoin_routeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Destination currency ISO-4217 (e.g. "EUR", "BRL", "AED"). | |
| from | Yes | Source currency ISO-4217 (e.g. "USD"). | |
| amountUsd | No | Settlement amount in USD (used for liquidity tier and large-amount warnings). |
Output Schema
| Name | Required | Description |
|---|---|---|
| routes | No | Ranked stablecoin options — each with symbol, liquidityTier, regulatoryFlags, warnings, blocked status, notes |
| evaluatedAt | No | ISO timestamp |
| recommendation | No | symbol, chain, reason, micaCompliant, geniusActCompliant |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial behavioral context: it returns a ranked list of stablecoins with regulatory flags, MiCA/GENIUS Act compliance status, liquidity tier, warnings, and identifies blocked routes with concrete examples (USDT for EU, BRLA before BCB deadline). This goes beyond the annotations and fully discloses the tool's advisory, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: the first states the primary purpose and decision criteria, the second lists the output elements, and the third gives usage guidance with examples. It is front-loaded, every sentence adds value, and there is no fluff or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a routing tool with regulatory implications, the description covers what the tool does, what factors it considers, what it returns (ranked stablecoins, compliance status, warnings), and when to use it (before settlement). Even without detailing the output schema, the description is sufficiently complete for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% since all three parameters are described in the input schema. The description mentions "source and destination currency pair" which maps to `from` and `to`, and it references liquidity tier and large-amount warnings aligned with `amountUsd`, but it does not add new meaning beyond the schema. Thus baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Multi-stablecoin settlement routing" and explicitly states it "recommends the optimal stablecoin path based on corridor liquidity, regulatory fit, gas economics, and DPX native support." This clearly distinguishes it from sibling tools like stability.corridor or fx.corridors by focusing on stablecoin settlement routing and listing concrete outputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says "Use before settlement to avoid regulatory penalties and ensure optimal execution path," giving a clear when-to-use instruction. However, it does not list exclusions or name specific alternative tools, so while context is clear, the exclusionary guidance is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swift.gpi_trackARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| uetr | Yes | RFC 4122 UUID UETR assigned at payment initiation, e.g. "97ed4827-7b6f-4491-a06f-b548d5a7512d". |
Output Schema
| Name | Required | Description |
|---|---|---|
| uetr | No | The UETR provided. |
| pacs002 | No | Full ISO 20022 pacs.002 payload for gpi Tracker submission. |
| gpiStatus | No | ACCP | PDNG | RJCT |
| dpxPaymentId | No | DPX internal payment ID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint, etc.), the description discloses the specific statuses returned (ACCP, PDNG, RJCT), the inclusion of full on-chain details, the pacs.002 payload, and the crucial caveat that DPX is not a SWIFT member so the bank must submit the payload via their own gpi API. This is rich 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused paragraphs, each serving a distinct purpose: what it does, when to use it, and a key contextual limitation. No filler or redundancy; every sentence adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (SWIFT gpi, pacs.002), the description covers the purpose, input, output statuses, and the non-member nuance that affects end usage. The existing output schema further reduces the need to describe return format. Complete for a read-only tracking tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explicitly linking the UETR to payment initiation fields (settlement.execute or POST /payments/initiate) and providing an example, reinforcing where the parameter originates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the exact action ('Track a DPX settlement via SWIFT gpi-compatible status'), the input (UETR), and the output (gpi-format payment status including pacs.002 payload). It clearly distinguishes itself from generic settlement tools by emphasizing the SWIFT gpi compatibility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use ('Use this when a UETR was provided at payment initiation'), referencing specific fields and endpoints. It does not explicitly state when not to use the tool or list alternative tools, but the contextual trigger is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
treasury.yield_routeARead-onlyInspect
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
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | If true, returns analysis without any on-chain queries. Useful for planning. Default: false. | |
| amountUsdc | Yes | Settlement amount in USDC. Minimum $50,000 for yield routing to be viable after gas costs. | |
| riskTolerance | No | conservative = sUSDS only (T-bill / RWA backed, instant exit). moderate = sUSDS with higher slippage tolerance (up to 0.15%). Default: conservative. | |
| settlementDeadlineUtc | Yes | ISO 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
| Name | Required | Description |
|---|---|---|
| exitBy | No | Recommended exit timestamp (30 min before deadline). |
| notViable | No | True if net yield is negative (gas exceeds expected yield). |
| instrument | No | Recommended instrument (currently always sUSDS). |
| windowHours | No | Available window in hours (deadline minus now minus 30-min buffer). |
| netYieldUsdc | No | Expected yield minus gas costs. |
| currentApyPct | No | Current Sky Savings Rate APY (live, from Sky Protocol). |
| amountReserved | No | Amount kept in USDC regardless (10% floor). |
| amountRoutable | No | Amount to deploy (90% of input, USDC). 10% stays in USDC. |
| recommendation | No | ROUTE (deploy float), HOLD (stay in USDC), or INSUFFICIENT_WINDOW. |
| gasEstimateUsdc | No | Estimated Base L2 gas cost for entry + exit in USDC. |
| risk_disclosure | No | MUST be surfaced to the client before any action is taken. |
| estimatedSlippage | No | Estimated DEX slippage for USDC→USDS→USDC round trip (%). |
| expectedYieldUsdc | No | Expected yield for this window at current APY. |
| instrument_detail | No | Background on the recommended instrument. |
| slippageGuardTripped | No | True if slippage > 0.1% — recommendation will be HOLD. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is partly known, but the description adds substantial behavioral context beyond that: no funds move, a flat fee is charged, safety parameters (90% max, 30-minute early exit, slippage guard >0.1%, 2-hour minimum window) are disclosed, and instrument selection rationale is provided. This is rich, non-redundant disclosure that helps the agent set expectations and avoid misuse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average, but it is highly structured with front-loaded 'OPTIONAL, CLIENT-DIRECTED ONLY' and clear bullet sections. Every sentence carries purpose: safety parameters, fee disclosure, instrument rationale, and exclusions. There is no filler or repetition of schema fields. The length is justified by the tool's complexity and the need to set safety expectations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description is remarkably complete: it covers purpose, output, safety constraints, fee implications, supported instrument, suitability criteria, and recommended conditions. The output schema exists, so the description correctly summarizes return fields without duplicating them. It fully equips an agent to decide whether this tool is appropriate and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds meaningful context beyond the schema: it quantifies the 90% deployment cap, explains the 30-minute early-exit trigger, provides a slippage guard threshold, and clarifies the minimum viable window and amount threshold. While the schema already documents parameter meanings, the description enriches them with operational constraints and safety rules.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Analyzes') and a precise resource ('idle settlement float') deployed into a yield-bearing instrument before a settlement deadline. It clearly describes the output (structured recommendation with yield, exit timing, liquidity, slippage, and risk disclosure) and immediately distinguishes itself from execution tools by emphasizing 'THIS TOOL DOES NOT MOVE FUNDS.' This is unambiguous and differentiates from siblings like settlement.execute 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly frames the tool as 'OPTIONAL, CLIENT-DIRECTED ONLY' and states that execution decisions are client-driven. It provides a concrete 'Not recommended if' list covering window duration, amount, risk acknowledgment, and time-critical settlement, which tells the agent exactly when not to use it. It also contrasts with execution by noting all alternatives require explicit instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
AlicenseAqualityBmaintenancePre-trade DeFi intelligence for AI agents. 20 paid x402 endpoints, USDC on Base.23561MIT- FlicenseAqualityNot gradedmaintenanceTrust infrastructure for AI agents on Base. DEX Spread Oracle (live Uniswap V3 prices), on-chain escrow, insurance pool, and collective knowledge base. 7 smart contracts. Pay-per-query via x402 micropayments in USDC.6
- FlicenseAqualityCmaintenancePay-per-call tools for AI agents including trust checks, due diligence, market data, and human-verified approvals, settled in USDC on Base via the x402 protocol.16
- FlicenseNot gradedqualityDmaintenancePay-per-use AI security and research tools for autonomous agents on Base, enabling honeypot detection, risk assessment, wallet analysis, and yield optimization via the x402 protocol.
Your Connectors
Sign in to create a connector for this server.