Skip to main content
Glama

DPX — Institutional Cross-Border Settlement

Ownership verified

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

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

MCP client
Glama
MCP server

Full call logging

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

Tool access control

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

Managed credentials

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

Usage analytics

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

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 61 of 71 tools scored.

Server CoherenceA
Disambiguation4/5

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

Naming Consistency3/5

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

Tool Count3/5

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

Completeness4/5

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

Available Tools

83 tools
agent.kya_registerAInspect

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

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

Output Schema

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

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

The description discloses that DPX calls the external GLEIF API to verify active LEI status and grants VERIFIED instantly, and that all tiers are instant with no manual review. This goes beyond the annotations (readOnlyHint false, etc.) by explaining the external dependency and the lack of document review. It also specifies caps per tier. 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.

Conciseness3/5

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

The description is a single dense paragraph without bullet points or headings. It includes extensive legal citations and repeated statements about no documents and instant verification. While every sentence provides information, the structure hampers quick scanning. It could be condensed and organized with tier breakdown.

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

Completeness4/5

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

For a registration tool with 8 parameters and nested objects, the description covers the tiering logic, compliance caps, and external verification. It does not describe error handling or output details, but the presence of an output schema mitigates that. Overall, it is comprehensive 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.

Parameters4/5

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

With 100% schema coverage, baseline is 3. The description adds meaning by mapping parameters to tiers: name→ANONYMOUS, ownerEntity/ownerEmail→REGISTERED, ownerLei→VERIFIED, and mandate restricted to REGISTERED/VERIFIED with clamping to tier caps. This contextual mapping is not fully present in the schema.

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

Purpose5/5

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

The description clearly identifies the tool as agent registration with a three-tier compliance model (ANONYMOUS, REGISTERED, VERIFIED) and specific caps per tier. The verb 'register' and resource 'KYA agent' are explicit, and the description distinguishes it from potential verification tools by detailing the registration process.

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

Usage Guidelines3/5

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

Usage is implied: to create an agent with desired compliance tier and caps, use this tool. However, there is no explicit comparison with sibling tools like agent.kya_verify or agent.mandate_create, and no exclusion criteria (e.g., 'use this only for new agents'). The description does state conditions for each tier, which helps decide when to use.

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

agent.kya_verifyA
Read-only
Inspect

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

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

Output Schema

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

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

Annotations already indicate readOnly, but the description adds behavioral details: 1-hour expiry, signed credential, header attachment, and what the credential enables. No contradiction with annotations.

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

Conciseness5/5

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

Three dense sentences with no filler. Each sentence earns its place: purpose, usage/headers, and expiry/refresh instruction.

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

Completeness5/5

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

The output schema exists, so return values are covered. The description provides sufficient context for successful invocation: prerequisites (registered agent ID), expiry behavior, and integration with /settle, making it complete for its complexity.

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

Parameters4/5

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

Schema coverage is 100% and the single parameter agentId is already described. The description adds value by specifying the format (agt_... from agent.kya_register) and how the value is used in headers.

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

Purpose5/5

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

The description uses a specific verb ('Verify') and resource ('registered DPX agent'), and clarifies the outcome (signed 1-hour credential). It distinguishes from sibling kya_register by focusing on verification rather than registration.

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

Usage Guidelines4/5

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

It clearly states when to use (before DPX /settle requests) and instructs to call again before credential expiry. It does not explicitly mention alternatives or exclusions, but the context is clear and actionable.

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

agent.mandate_createAInspect

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

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

Output Schema

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

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

The description discloses key behavioral traits not in annotations: tier-based cap clamping ($25K for REGISTERED), unlimited caps for VERIFIED, AP2 formatting, and the create/update (upsert) nature. The annotations (readOnlyHint=false, idempotentHint=false) align with this, and the description adds meaningful operational context.

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

Conciseness5/5

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

Four sentences front-loaded with purpose, followed by constraints then eligibility rules. Every sentence adds value—no filler, no repetition of schema details verbatim.

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

Completeness4/5

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

With an output schema present and annotations, the description covers prerequisites, behavioral limits, and interoperability. It could mention how updates merge vs replace, but that's not critical given the output schema and overall richness.

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

Parameters4/5

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

Schema coverage is 100% so baseline is 3; the description adds semantic context by listing constraint types (max notional, daily cap, whitelist) in natural language, reinforcing the schema. It also clarifies whitelist accepts LEIs or wallets, matching the schema but making the purpose clearer.

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

Purpose5/5

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

The description opens with a specific verb-resource pair 'Create or update an AP2-compatible spend mandate' and clearly targets REGISTERED or VERIFIED DPX agents. It enumerates the constraint fields, distinguishing it from sibling agent tools like agent.kya_register and agent.kya_verify.

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

Usage Guidelines4/5

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

It explicitly states anonymous agents cannot hold mandates and tells users to register first, giving a clear prerequisite and exclusion. It doesn't name alternative tools by name, but the registration reference and sibling names are sufficient context. It also differentiates between registered and verified caps, guiding when each applies.

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

analytics.overviewA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

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

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

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds 'live' and 'across all data sources', giving useful behavioral context. However, it doesn't disclose limitations like data freshness or potential delays, which would be valuable for a monitoring tool.

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

Conciseness5/5

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

The description is two sentences: the first lists outputs, the second lists use cases. Every word earns its place, and key information is front-loaded.

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

Completeness4/5

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

Since the tool has no parameters and an output schema exists, the description only needs to convey purpose and typical use. It covers the main content areas (stability, ESG, fees, oracle health, settlement) and is adequate for an agent to decide whether to invoke it.

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

Parameters4/5

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

The tool accepts zero parameters, so there is no ambiguity. The description does not need to explain parameter semantics, warranting the baseline score of 4 for this dimension.

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

Purpose5/5

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

The description clearly states the tool retrieves live DPX performance analytics and enumerates the specific metrics returned (stability score, ESG composites, fee breakdown, oracle health, settlement readiness). This distinguishes it from more focused sibling tools like oracle.status or esg.score, matching the 'overview' name.

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

Usage Guidelines4/5

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

The description explicitly states intended use cases: 'Use for dashboards, reporting, and AI-driven monitoring of protocol health.' This provides clear context for when to use the tool, though it does not mention when not to use it or list alternative tools.

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

batch_settleAInspect

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

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

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultsNo
summaryNo
Behavior4/5

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

With annotations all false, the description carries the burden and discloses key behavioral traits: concurrent execution, failure isolation ('one failure does not block others'), and return summary with per-item results. This adds substantial value beyond the annotations, though it does not cover authentication or rate limits.

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

Conciseness5/5

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

Every sentence serves a purpose: batch operation, concurrency/failure behavior, return format, and limit. No filler or redundancy, 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.

Completeness4/5

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

The description covers purpose, concurrency, failure behavior, return summary, and max limit. Since an output schema exists, return details are not repeated. It is mostly complete, though it could optionally note prerequisites or error handling specifics, but these are not essential.

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

Parameters3/5

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

The schema already covers the single parameter 'settlements' with a description referencing the settle tool schema, so the baseline is 3. The description adds no additional parameter-specific semantics beyond noting the max batch size, which is already in the schema.

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

Purpose5/5

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

The description states a specific verb and resource: 'Submit multiple settlements in a single call.' It clearly distinguishes from siblings by emphasizing the batch nature, and the title/maximum batch size further clarifies scope.

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

Usage Guidelines3/5

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

The description implies usage for multiple settlements (e.g., 'Submit multiple settlements in a single call') and sets a maximum of 50, but it does not explicitly name alternatives or state when not to use it. The context is clear but lacks explicit exclusions or comparisons.

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

card.positionsA
Read-onlyIdempotent
Inspect

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

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

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral context beyond these: it confirms zero execution side effects ('No settlement is executed') and notes the tool is 'Free.' It also describes the nature of the output (an optimal settlement plan with corridor selection, stablecoin choice, and fee), which clarifies the read-only analysis behavior.

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

Conciseness5/5

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

The description is concise (four short sentences) and front-loaded with the core purpose. Every sentence adds value: purpose, input/output, side-effect disclaimer, and usage ordering. The example is embedded naturally, and no words are wasted.

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

Completeness5/5

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

Given the tool's moderate complexity (2 params, no output schema) and strong annotations, the description covers all essential aspects: what it does, what input it expects, what output it returns, that it is non-executing, and how it relates to the settlement workflow. The output components (corridors to settle/hold, stablecoin choice, estimated fee) adequately substitute for a missing output schema.

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

Parameters4/5

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

Schema coverage is 100%, so both parameters are documented. The description enriches the semantics with a concrete example of the positions array ('USD-BRL: $2.3M, USD-EUR: €450K') and clarifies that inputs are net positions per corridor, adding meaning beyond the schema's generic item description.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Plan treasury settlement for a crypto card program.' It specifies the resource (treasury settlement), the action (plan), and differentiates from execution tools by noting 'No settlement is executed' and explicitly recommending 'Call this before card.settle.' This is a specific verb+resource+scope that distinguishes it from siblings.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Call this before card.settle to review the plan.' This names the alternative execution tool and establishes a temporal order. It also clarifies what the tool does not do ('No settlement is executed'), giving a clear when/when-not boundary.

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

card.settleAInspect

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

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

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

With all annotations set to false, the description carries the burden of disclosing behavioral traits. It clearly states that it 'executes all settlements via DPX batch' and mentions compliance gating, oracle pricing, and stablecoin routing, indicating a state-changing on-chain operation. It also warns about the required recipientAddress and suggests sandbox for testing, implying production use has real consequences. It does not discuss failure modes or idempotency, but covers the main operational behavior.

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

Conciseness5/5

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

The description is five short sentences, each delivering distinct information: the core action, the execution method, the required recipientAddress, testing guidance, and the return format. There is no fluff or redundancy, and it front-loads the purpose immediately. Every sentence earns its place, making it compact yet informative.

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

Completeness4/5

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

For a settlement tool with two parameters, high schema coverage, and no output schema, the description covers the essential aspects: what it does, how it works (DPX batch), compliance/oracle/stablecoin context, the required recipientAddress, sandbox testing, and the return value. It does not mention error handling, idempotency, or prerequisites beyond recipientAddress, but given the complexity and the lack of annotations, it is sufficiently complete to guide an agent.

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

Parameters4/5

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

The schema already describes both parameters with 100% coverage, including an example for positions and an explanation for sandbox. The description adds value by noting that the positions array is 'the same as card.positions,' providing a useful cross-reference, and reiterating the recipientAddress requirement. It also reinforces sandbox semantics with 'Use sandbox:true for testing.' This goes beyond simply repeating schema fields.

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

Purpose5/5

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

The description opens with 'Execute treasury settlement for a crypto card program,' a specific verb+resource pairing that clearly states the tool's function. It further distinguishes itself from card.positions by noting it 'executes all settlements via DPX batch' rather than merely listing positions. This makes the purpose unambiguous and differentiates it from sibling tools.

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

Usage Guidelines4/5

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

The description provides clear context: it is for executing treasury settlements for a crypto card program, and explicitly recommends 'Use sandbox:true for testing.' It also references card.positions for the array format, implying this is the execution counterpart. However, it does not explicitly state when to avoid using it or mention alternatives like settlement.execute or batch_settle, so it lacks explicit exclusionary guidance.

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

compliance.pep_screenA
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

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

Beyond the annotations (readOnlyHint, openWorldHint, idempotentHint, non-destructive), the description adds valuable behavioral context: it enumerates the output fields (match confidence, position/role, nationality, related entities, risk level) and interprets the risk levels with a compliance action (EDD). This is more than a mere restatement of annotations.

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

Conciseness4/5

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

The description is three sentences, each serving a distinct purpose: what it does, what it returns, and what to do with the results. It is front-loaded with the primary action and does not waste words, though it could be tightened slightly without losing value.

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

Completeness4/5

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

Given the tool's moderate complexity (2 params, output schema present), the description covers the core aspects: subject, dataset, return values, and post-settlement implications. It does not mention edge cases like name-matching limitations, but the openWorldHint annotation already signals the dataset's non-exhaustive nature, so the description is sufficient.

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

Parameters3/5

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

Schema coverage is 100%, with both 'q' and 'country' having descriptive text. The description adds only 'Optionally filter by country,' which restates the schema. No new format, syntax, or edge-case details are provided, so a baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states a specific action ('Screen an individual by name') against a named resource ('OpenSanctions PEP dataset'), and goes on to define PEPs and list the returned fields. However, it does not explicitly distinguish itself from sibling tools like ramp.compliance_screen, so it stops short of a 5.

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

Usage Guidelines3/5

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

The description implies a compliance use case by stating that HIGH or MEDIUM matches require EDD before settlement, giving context about when to act on results. It does not explicitly mention when to use this tool instead of alternatives (e.g., compliance.ubo_chain), nor does it 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.

compliance.regulatory_calendarA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

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

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds valuable behavioral context by detailing the exact return format (framework, jurisdiction, requirement summary, effective date, impact level, article reference) and the DPX alignment section, going beyond what annotations provide.

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

Conciseness5/5

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

The description is four sentences, each earning its place: the first states the core function, the second lists output fields, the third adds the DPX alignment section, and the fourth gives usage guidance. No redundancy or filler.

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

Completeness5/5

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

With no parameters, clear annotations, and an output schema, the description covers all necessary information: purpose, output details, and recommended use cases. An agent can correctly select and invoke this tool based solely on the description.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description adds no parameter-specific information, but none is needed since there is nothing to configure.

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

Purpose5/5

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

The description fully states the tool's purpose with a specific verb and resource: 'Returns a structured calendar of upcoming and in-effect compliance obligations' across a clearly enumerated set of regulations. It also lists the output fields and an additional DPX alignment section, making it easy to distinguish from sibling compliance tools like pep_screen or ubo_chain.

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

Usage Guidelines4/5

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

Explicitly tells the agent when to use the tool: 'Use this before settlement workflow design, compliance gap analysis, or regulatory reporting.' This provides clear context, though it does not mention when not to use it or 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.

compliance.ubo_chainA
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

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

Even though annotations already declare readOnly, idempotent, and non-destructive, the description adds substantial behavioral context: data sources (GLEIF, OpenSanctions list), traversal behavior, per-node sanctions status, LEI lapse flags, verdict categories, and FATF R.16 attestation. This goes well 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.

Conciseness5/5

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

The description is three sentences, front-loaded with the core action, then output details, then use cases. Each sentence carries distinct information and there is no filler or redundancy. It is dense but appropriately sized for a tool of this complexity.

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

Completeness5/5

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

With an output schema present, the description does not need to explain return structures. It covers purpose, method, data sources, verdict types, and regulatory use cases. Annotations cover safety profile. There are no significant gaps 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.

Parameters3/5

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

The input schema already provides full descriptions for both params (lei and deep) with 100% coverage. The description restates depth capability ('up to 3 levels') but adds no new parameter-specific meaning beyond what the schema offers, so it stays at the baseline for high schema coverage.

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

Purpose5/5

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

The description uses a specific verb 'Trace' with a clear resource ('beneficial ownership chain'), specifies depth ('up to 3 levels'), and names the downstream action ('screen every node against OpenSanctions'). It also lists concrete return values, making its purpose unmistakable and distinct from sibling tools like compliance.pep_screen.

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

Usage Guidelines4/5

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

The description explicitly names use cases ('correspondent banking due diligence', 'FATF R.12/13 UBO identification', 'MiCA Article 72 counterparty risk management'), giving clear context for when to use. It does not explicitly state when not to use it or name alternatives, 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.

compute.costA
Read-onlyIdempotent
Inspect

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

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

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

Annotations already declare readOnlyHint and idempotentHint. The description adds behavioral context: it returns the best free model, strengths, speed tier, and alternatives, and notes that it is 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.

Conciseness5/5

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

The description is three concise sentences covering purpose, usage, and a key note ('Free'). It is front-loaded and every sentence adds value.

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

Completeness5/5

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

The description fully explains what the tool returns and when to use it. No output schema exists, but the return information is adequately described. Given low complexity (2 params), it is complete.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The description adds only generic context ('for a task type') and does not enhance understanding beyond the schema. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get a model recommendation for a task type without running inference.' It specifies the output (best free model, strengths, speed tier, alternatives), distinguishing it from siblings like compute.models or compute.route.

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

Usage Guidelines4/5

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

The description provides explicit usage context: 'Use this when an agent needs to select a model before committing to inference, or to surface model selection logic to a human.' It does not explicitly exclude cases but gives clear guidance.

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

compute.modelsA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering core behavioral traits. The description adds value by specifying the return content (model IDs, provider, etc.), which supplements 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.

Conciseness5/5

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

The description is extremely concise: two sentences with no wasted words. It front-loads the main purpose and adds key details (free-tier, OpenRouter, return fields, usage context) efficiently.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, no output schema, but clear annotations), the description is complete. It tells what the tool does, what it returns, constraints (free-tier), and when to use it relative to siblings.

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

Parameters4/5

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

No parameters exist (0 params, schema coverage 100%), so the baseline is 4. The description does not need to add parameter info, and it doesn't. It correctly omits any unnecessary detail.

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

Purpose5/5

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

The description clearly states the tool's purpose: listing all AI models available through DPX Compute. It specifies the returned fields (model IDs, provider, capability strengths, context window, speed tier) and explicitly distinguishes itself from the sibling tool compute.route by advising to use this tool before routing.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Use this before compute.route to understand what models are available and pick the right one for a task.' It also notes all models are free-tier, which helps the agent decide when 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.

compute.routeAInspect

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

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

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

Annotations provide readOnlyHint=false and destructiveHint=false, and the description adds behavioral details: model selection based on task type, free-tier, payment via x402. It does not cover failure behavior or latency, but overall discloses key traits beyond annotations.

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

Conciseness5/5

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

Four concise sentences with front-loaded core action, no filler. Every sentence adds value: what it does, model selection, cost, and when to use.

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

Completeness3/5

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

The tool has no output schema, so the description should fully explain the return value. It says 'returns the completion' but does not specify format or structure. For an inference tool, this leaves ambiguity about the response shape.

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

Parameters4/5

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

Schema coverage is 100%, and the description adds meaning beyond the schema: explains how 'task' is used for model selection, notes 'messages' is optional, and clarifies 'preferSpeed' overrides default. This enhances understanding without repeating schema.

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

Purpose5/5

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

The description clearly states the tool routes a task to a free AI model and runs inference, with specific verb 'Route' and resource 'task to AI model'. It differentiates from sibling tools like compute.cost and compute.models by explaining model selection logic.

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

Usage Guidelines4/5

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

The description explicitly states 'Use this when an agent needs to delegate a subtask to a language model without managing model selection or API keys', providing clear usage context. It does not mention when not to use or alternative tools, but the purpose is sufficiently clear.

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

computer_use.payA
Destructive
Inspect

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

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

Output Schema

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

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

Annotations already indicate destructive and non-readOnly behavior. The description adds valuable context about the execution pipeline ('oracle gate → compliance screen → settlement flow') and states a receipt is returned. It does not mention reversibility or sandbox defaults, but the annotations provide the core safety profile, so this is solid rather than exceptional.

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

Conciseness5/5

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

The description is four sentences, each earning its place: purpose, when-not-to-use, process, and when-to-use. It is front-loaded with the primary action and avoids redundancy, making it appropriately sized for a payment tool with this complexity.

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

Completeness5/5

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

For a payment tool with multiple parameters, annotations, and an output schema, the description covers trigger context, execution flow, and return value (receipt). The sandbox default is documented in the schema, so the overall tool definition is complete enough 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.

Parameters3/5

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

Schema description coverage is 100%, with every parameter clearly documented. The description reiterates 'describe what you see, provide the amount and recipient' but adds no information beyond what the schema already provides. Baseline 3 is appropriate since the schema carries the full parameter burden.

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

Purpose5/5

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

The description opens with a specific verb-resource pair ('Complete a payment') and scopes it to 'Claude's computer use session has identified on screen,' distinguishing it from sibling tools like invoice.pay and settlement.execute by the computer-use context. It also lists concrete UI examples (checkout form, wire transfer, invoice approval, vendor portal) that make the purpose unambiguous.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance: 'Use whenever computer use encounters a payment that would otherwise require human re-entry or approval.' It also provides a clear alternative behavior ('Call this instead of typing credentials into a UI'), and the schema adds a specific tool alternative (settlement.nl) for bank/email-only recipients.

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

dpx.metricsA
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds meaningful context beyond annotations by stating the data is 'pulled directly from production telemetry' and that 'No auth required,' informing the agent about the data source and access requirements. There is no contradiction with the annotations.

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

Conciseness5/5

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

The description is three sentences long, front-loaded with the core purpose, then elaborates on returned data and contextual details. Every sentence contributes substantive information without redundancy, making it appropriately concise and well-structured.

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

Completeness5/5

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

With an output schema present, the description is not required to explain return values. It covers purpose, content, use cases, data source, cost, and authentication, providing complete context 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.

Parameters3/5

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

The schema provides 100% coverage for the single optional parameter (window), including enum values and default. The description does not add any parameter-specific details, so the baseline score of 3 applies given the schema already handles the semantics.

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

Purpose5/5

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

The description clearly states the tool returns live performance metrics for the DPX settlement infrastructure, enumerating specific output categories (request volumes, error rates, growth trends, per-service breakdown, spike analysis). It distinguishes itself from generic siblings like analytics.overview by focusing on DPX-specific production telemetry data.

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

Usage Guidelines4/5

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

The description provides clear intended use cases ('designed for investor due diligence, analyst queries, and Standard Metrics / portfolio management integrations') and notes that no authentication is required. However, it does not explicitly mention alternative tools or provide when-not-to-use guidance, so it stops short of full exclusion criteria.

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

esg.batchA
Read-only
Inspect

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

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

Output Schema

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

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

Annotations already declare read-only and non-destructive. The description adds key behavioral details: limit of 50 entities, GLEIF resolution for names, slower performance for names, and output ranked by composite ESG score descending. This goes well beyond annotation coverage, giving the agent a clear model of 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.

Conciseness5/5

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

Five short sentences pack all crucial information without redundancy: function, inputs, output, use cases, and caveat. Every sentence earns its place, and the structure front-loads the core action then expands contextually.

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

Completeness5/5

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

For a batch screening tool with an output schema, the description covers capacity, input resolution trade-offs, ranking behavior, and use cases. It is sufficiently complete for an agent to correctly select and invoke the tool without ambiguity.

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

Parameters4/5

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

The schema already describes both parameters in detail (LEIs as fastest, names via GLEIF slower with ≤3s per name). The description adds the combined batch limit ('up to 50 entities') and clarifies that inputs are alternatives, providing extra relational context beyond the schema's per-parameter descriptions.

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

Purpose5/5

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

The description uses a specific verb 'Screen' with a clear resource (up to 50 entities), defines input types (LEIs or names), and states output ranking. It clearly distinguishes from sibling tools like esg.lookup or esg.portfolio by emphasizing batch screening and their composite ESG score ranking.

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

Usage Guidelines4/5

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

Explicitly lists use cases ('portfolio-level compliance screening, supplier due diligence, TMS pre-payment checks') and provides practical guidance on input choice ('Name resolution is slower than direct LEI input'). However, it does not explicitly name alternative tools or when not to use it, leaving some differentiation to the agent.

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

esg.lookupA
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description goes beyond by detailing the return composition (pillar weights, composite score, fee tier, and per-source breakdown), giving the agent concrete insight into what the tool produces. No contradictions with annotations.

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

Conciseness5/5

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

The description is four sentences, each with a clear purpose: core action, value proposition, detailed output, and usage condition. It is front-loaded with the primary verb and resource, and no sentence is redundant or unnecessary.

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

Completeness5/5

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

Given the tool's moderate complexity (3 params, 1 required) and the presence of an output schema plus rich annotations, the description is complete. It explains when to use it, what it returns, and the optional inputs are well-covered by the schema. The sources list and weight breakdown add useful context not required by the output schema.

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

Parameters3/5

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

Schema coverage is 100%, and each parameter already includes rich descriptions (e.g., examples for 'q', ISO-2 format for 'country', and narrative behavior for 'narrate'). The description adds no additional parameter-level semantics beyond what the schema provides, 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.

Purpose5/5

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

The description opens with a specific verb-resource pair: 'Resolve a company name, domain, or ticker to a LEI via GLEIF and return the full ESG score.' It clearly states the tool's function and distinguishes it from siblings by emphasizing it removes the need for a LEI, making it the go-to when only a name/domain/ticker is available.

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

Usage Guidelines4/5

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

The final sentence provides an explicit usage condition: 'Use when you have a company name but not a LEI.' This implies when-not (if you already have a LEI, another tool is needed), but it does not explicitly name alternative sibling tools. Thus it gives clear context without full alternative listing.

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

esg.portfolioA
Read-only
Inspect

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

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

Output Schema

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

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to cover safety. It adds the 200-entity cap and a detailed list of return values, but it does not disclose behavior for missing entities, error handling, or rate limits. This is adequate but not rich.

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

Conciseness5/5

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

The description is concise: two sentences front-loaded with the main action and scope, followed by a list of return values. Every sentence provides useful information with no redundancy or filler.

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

Completeness4/5

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

The tool has no required parameters, a rich output schema, and strong annotations. The description covers the main purpose, limits, and return items, making it adequate for most use cases. It could be improved by mentioning edge-case behavior (e.g., unresolvable names), but the existing output schema and annotations fill many gaps.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter having a clear description. The tool description adds minimal information beyond schema (e.g., 'by LEI or name'), so it does not significantly enhance parameter understanding. Baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Score an entire counterparty portfolio in one call' with specific limits (up to 200 entities by LEI or name). It distinguishes itself by focusing on portfolio-level scoring, but it does not explicitly differentiate from sibling tools like esg.score or esg.batch.

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

Usage Guidelines4/5

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

The description provides context for when to use the tool: 'The canonical pre-settlement compliance check for treasury systems and TMS integrations.' This implies usage in a specific workflow, but there is no explicit mention of when not to use it or alternatives that might be more appropriate.

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

esg.scoreA
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds substantial behavioral transparency beyond these: it discloses the exact return fields (ESG scores 0-100, composite average, settlement fee percentage), update frequency (hourly), and data sources (6 institutional sources). This enriches the agent's understanding of data freshness and provenance.

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

Conciseness4/5

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

The description is four sentences, front-loaded with the primary purpose. Each sentence adds value: function, return values, update/data sources, and regulatory context. It is slightly dense with the list of data sources and regulations, but no sentence is wasted, and it remains compact for the amount of useful context provided.

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

Completeness5/5

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

For a tool with one optional parameter, rich annotations, and an output schema, the description is remarkably complete. It covers what the tool returns, how fresh the data is, where it comes from, and why it matters for compliance. Sibling differentiation is implicit but sufficient, and the absence of parameter detail is acceptable given the schema and output schema carry that load.

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

Parameters3/5

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

Schema description coverage is 100% for the single 'address' parameter, with a detailed description ('Wallet address (0x...) to score. Omit for protocol default.'). The description restates this ('for a wallet address or the protocol default') but adds no new syntax or format details, so it meets the baseline of 3 without surpassing it.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get the live counterparty risk score (ESG-denominated) for a wallet address or the protocol default.' This specific verb+resource combination distinguishes it from siblings like esg.portfolio or esg.trend, which likely target different scopes (portfolio-level or time-series).

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool: for a single wallet address or protocol default, and mentions regulatory use cases (EU SFDR, CSRD). However, it does not explicitly mention alternatives or when not to use it (e.g., for batch or portfolio scoring), so it falls 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.

esg.trendA
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

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

Annotations already declare read-only/idempotent/non-destructive, so the description doesn't need to restate safety. It adds valuable behavioral context: data accumulates from esg.lookup, esg.batch, or esg.portfolio, and it enumerates trend direction values and delta, which helps anticipate response semantics.

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

Conciseness5/5

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

Three sentences, each earning its place: purpose, return values, and data source/use cases. No fluff, front-loaded with the core action, and efficiently structured.

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

Completeness5/5

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

Given the output schema exists, the description doesn't need to explain return structure in detail. It covers purpose, inputs, data accumulation, and use cases, making it complete for an agent to decide when and how to invoke this tool.

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

Parameters3/5

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

Schema description coverage is 100%: both 'lei' and 'days' have detailed descriptions. The description adds no further parameter syntax or format details 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.

Purpose5/5

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

The description clearly states the verb ('Get'), resource ('historical ESG composite trend'), and input ('by LEI'). It also specifies return values (score history, trend direction, delta), distinguishing it from sibling ESG tools like esg.score or esg.lookup that likely return current or individual scores.

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

Usage Guidelines4/5

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

It explicitly lists use cases (due diligence, MiCA Article 72 monitoring, detecting degrading posture) and explains data accumulation via other tools, implying it should be used after scoring events. While it doesn't explicitly state when not to use it or name alternative tools, the context is clear.

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

esg.watchAInspect

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

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

Output Schema

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

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

Annotations are all false, providing minimal behavioral signal, so the description carries a heavy burden. It compensates well by disclosing daily check frequency, the threshold trigger (≥ thresholdPoints), webhook payload contents, and the returned watchId. It does not discuss error conditions, authentication, or duplicate-watch side effects, but the core behavioral traits are 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.

Conciseness5/5

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

The description is three sentences, each serving a distinct purpose: registration action, monitoring behavior and trigger, and return value. Every sentence earns its place, with no fluff or repetition.

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

Completeness5/5

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

The tool has moderate complexity with three parameters and an output schema. The description covers the registration action, monitoring cadence, trigger condition, output identifier, and webhook payload structure. Since an output schema exists, the description exceeds the requirement and provides a complete picture for selecting and invoking the tool.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for lei, webhookUrl, and thresholdPoints. The description reinforces thresholdPoints by mentioning the shift condition but adds no new semantic information beyond the schema. Baseline 3 is appropriate since the schema already does the heavy lifting.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Register an entity for ongoing ESG monitoring'. It clearly distinguishes itself from sibling tools like esg.lookup, esg.score, and esg.trend by emphasizing ongoing monitoring with daily checks and webhook events, and by referencing MiCA Article 72 compliance.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: when ongoing ESG monitoring with webhook alerts is required, particularly for MiCA compliance. However, it does not explicitly name alternatives or state when not to use this tool (e.g., for one-time score checks), so it lacks explicit exclusion criteria.

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

fees.compareA
Read-only
Inspect

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

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

Output Schema

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

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

While annotations already declare the tool read-only and non-destructive, the description goes further by disclosing that it uses the current DPX all-in rate (~2.035% typical), returns dollar savings, and includes GENIUS Act and MiCA compliance status for each competitor. This adds material context beyond structured annotations about the tool's dynamic behavior and output richness.

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

Conciseness5/5

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

The description is two sentences, packed with specific details (fee ranges, typical rate, compliance status) with no fluff. Every clause adds value, and the structure efficiently conveys purpose and outputs.

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

Completeness5/5

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

For a comparison tool with multiple competitors and an output schema, the description adequately conveys the core functionality, output specifics, and the dynamic rate aspect. The existence of an output schema means it need not detail return fields, and the description covers the essential context for an agent to decide when and how to use it.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter (hasFx, esgScore, amountUsd) already explained in the input schema. The tool description does not add parameter-specific semantics; it only mentions the output. With full schema coverage, a baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Compare') with a clear resource ('DPX settlement cost') and explicitly enumerates the comparison set (Stripe, Wise, Ripple ODL, etc.). It clearly distinguishes itself from sibling tools like fees.schedule and fees.verify by focusing on comparative analysis rather than schedule display or verification.

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

Usage Guidelines4/5

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

The description implies the tool's use case—when you need to compare DPX costs against alternative rails—through its explicit comparison framing. However, it does not state when not to use it or name alternative tools for specific sub-tasks (e.g., obtaining a simple fee schedule), making the guidance 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.

fees.scheduleA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

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

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds context about the content scope but does not disclose behavioral traits such as data freshness, pagination, or rate limits. This is adequate 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.

Conciseness5/5

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

A single sentence that is information-dense yet well-structured, with the main purpose front-loaded and subsequent details clearly enumerated. Every word adds value, making it an optimal length.

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

Completeness5/5

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

For a read-only informational tool with an output schema, the description covers all relevant aspects: the full schedule, discount tiers, ESG table, examples, and benchmarks. There are no missing elements that would impede correct tool selection or invocation.

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

Parameters4/5

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

The tool has zero parameters, and the schema is empty. The description properly focuses on the output content, which is all that is needed. Baseline of 4 is appropriate for parameterless tools.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('complete DPX fee schedule'), and enumerates the exact contents (components, tiers, ESG table, examples, benchmarks). This clearly distinguishes it from sibling tools like 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.

Usage Guidelines4/5

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: whenever the complete fee schedule with tiers and benchmarks is needed. However, it does not explicitly mention when not to use it or direct to alternative fee-related tools, so it falls short of a 5.

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

fees.verifyA
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

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

Annotations already establish read-only and idempotent behavior. The description adds valuable context about comparing off-chain quotes to the on-chain contract and the return value, which is useful. No contradictions.

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

Conciseness5/5

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

Two concise sentences that front-load the core purpose, state the return value, and provide sequencing guidance. No wasted words.

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

Completeness5/5

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

For a simple verification tool with full schema annotations and an output schema, the description adequately explains the tool's role and invocation context. The placement between get_quote and settle gives a clear operational flow.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema documents each parameter. The description does not add extra meaning beyond mentioning the fee quote verification, so it meets the baseline without enhancing parameter understanding.

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

Purpose5/5

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

The description clearly states the tool's function: verifying that the off-chain fee quote matches the on-chain DPXSettlementRouter charge. It also distinguishes it from sibling fee tools by focusing on verification rather than comparison or scheduling.

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

Usage Guidelines4/5

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

It provides explicit context: 'Call after get_quote and before settle to confirm fee integrity.' This clearly indicates when to invoke the tool, though it does not mention alternatives or exclusion scenarios.

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

flow_checkA
Read-only
Inspect

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

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

Output Schema

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

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

Annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds meaningful behavioral context: it runs checks 'in parallel', returns a 'go/no-go decision', and provides a 'ready-to-use settleBody'. These details go beyond the safety annotations, though it doesn't cover rate limits or auth.

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

Conciseness5/5

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

Two tightly worded sentences, front-loaded with the core purpose, followed by the internal actions and return fields. Every sentence earns its place, and there is no redundant or filler content.

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

Completeness4/5

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

Given the tool's moderate complexity and the existence of an output schema, the description sufficiently covers what the tool does, what it returns, and how it fits into the settlement workflow. It lacks some nuance (e.g., meaning of HOLD vs BLOCKED) but is complete enough for an agent to select it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all five parameters. The description doesn't add any new meaning beyond the schema; it only references 'amount' implicitly via 'settling' and mentions the compliance screen, which aligns with schema descriptions for address/lei. Baseline of 3 is appropriate.

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

Purpose5/5

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

Description clearly states a specific verb+resource: 'Single pre-flight call before settling' that runs three named checks (oracle, compliance, stablecoin routing) and returns a unified decision. It explicitly replaces the 3-step oracle → screen → route loop, distinguishing it from sibling tools.

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

Usage Guidelines4/5

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

The description gives clear context for when to use it: 'before settling', and explicitly mentions it replaces the separate 3-step loop. It doesn't explicitly say when not to use it or list alternative individual check tools, but the primary use case is well defined.

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

forecast.calendarA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

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

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

The description adds substantial behavioral context beyond annotations: it returns exactly 12 windows, sorted by urgency with active windows first, and includes affected commodities, severity, and agronomic basis. This complements the read-only, idempotent annotations without contradiction.

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

Conciseness5/5

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

Two sentences front-load the primary purpose and then efficiently detail the return structure and sorting logic. Every word adds value, with no redundancy or filler.

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

Completeness5/5

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

For a zero-parameter, read-only tool with an output schema, the description fully covers what the agent needs to know: what the calendar is, what it contains, and how it is ordered. No critical information is missing.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description does not need to explain parameters; it instead focuses on the output, which is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: a seasonal climate event calendar with commodity impact. It specifies the resource (calendar), the action (returns 12 annual windows), and provides specific examples (hurricane season, corn pollination) that distinguish it from sibling forecast tools.

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

Usage Guidelines4/5

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

The description implies usage context for retrieving seasonal climate windows and their commodity impact. It does not explicitly name alternatives, but the focused scope and details of the return data provide clear context for when this tool is relevant.

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

forecast.commodity_outlookA
Read-only
Inspect

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

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

Output Schema

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

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

Annotations already mark readOnlyHint=true and destructiveHint=false, so the description adds value by disclosing cache behavior (4h), the fresh parameter option, the return structure, and a disclaimer ('not a financial recommendation'). It does not fully characterize data limitations or broader behavioral nuances, but with annotations covering the safety profile, this is solid.

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

Conciseness5/5

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

Four tight sentences, each earning its place: purpose, output detail, commodity coverage, audience/caveat, cache policy. Front-loaded with the core verb and resource, zero fluff or repetition.

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

Completeness5/5

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

Despite having an output schema (so return values needn't be elaborated), the description goes further by listing covered commodities, cache lifecycle, and intended audience. With only 2 params (1 required) and enum constraints, this description fully covers the decision space for an AI agent selecting and invoking the tool.

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

Parameters4/5

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

Schema coverage is 100% for both parameters, so the baseline is 3. The description adds meaning by explicitly mentioning 'Cache: 4h' and implying the fresh parameter bypasses this cache, complementing the schema description for 'fresh'. This goes beyond merely restating the schema.

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

Purpose5/5

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

The description clearly states a specific verb+resource: 'Climate-driven price pressure outlook for a commodity', and details the output (BULLISH/BEARISH/NEUTRAL signal, horizons, confidence, region breakdown, FRED price). It also lists the 11 covered commodities, distinguishing it from siblings like forecast.scenario and forecast.portfolio_stress.

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

Usage Guidelines4/5

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

Provides clear context: 'Designed for institutional research teams evaluating commodity positions' and notes the climate/supply-constraint focus. However, it does not explicitly state when not to use it or contrast with alternative forecast tools (e.g., forecast.scenario), 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.

forecast.portfolio_stressA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
positionsYesPortfolio positions with symbol and weight

Output Schema

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

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

Beyond annotations (readOnlyHint, destructiveHint), the description discloses behavioral traits: it accepts up to 20 positions, normalizes weights internally, and returns a specific set of outputs (aggregate score, stressed positions, hedges, plain-language summary). This adds practical context about the tool's operation and results without contradicting the annotations.

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

Conciseness5/5

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

The description is concise and well-structured: it states the purpose, input constraints, output details, and intended use case in four sentences. Every sentence contributes essential information without redundancy, and it is front-loaded with the primary action.

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

Completeness4/5

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

Given the tool's moderate complexity (one parameter, an output schema, and clear annotations), the description covers inputs, outputs, and usage context well. It does not explain the deeper methodology of 'climate stress test' but that is not necessary for tool selection and invocation. The presence of an output schema further reduces the need to describe return values.

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

Parameters4/5

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

Although the schema provides descriptions for both parameters, the description adds meaning by clarifying that weights can be percentages or fractions and are normalized internally. This supplements the schema's statement that weights are normalized to sum to 1.0, giving the agent additional context about input flexibility.

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

Purpose5/5

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

The description clearly identifies a specific verb+resource: 'Climate stress test for a multi-commodity portfolio.' It states the primary function, the object (portfolio), and the specialized domain (climate). This distinguishes it from sibling tools like forecast.commodity_outlook or forecast.scenario by explicitly focusing on portfolio-level climate stress assessment.

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

Usage Guidelines4/5

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

The description provides a clear use case: 'Useful for commodity fund managers evaluating aggregate climate exposure before rebalancing.' This gives context for when to use the tool, but does not explicitly mention alternatives or when not to use it. Since it offers a specific scenario without exclusions, it earns a 4.

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

forecast.production_regionsA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

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

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool's safety is clear. The description adds useful behavioral context beyond annotations by explaining that results are ranked by a current climate risk score and that each region maps to affected commodities with HIGH/MODERATE/LOW risk levels. This meaningfully supplements the structured metadata.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the most important information (what the tool returns) and followed by a practical use case. Every phrase earns its place, with no filler or redundancy.

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

Completeness5/5

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

The tool has a simple signature (no params), an output schema exists, and strong annotations are present. The description fully covers the tool's purpose, output content, and intended use, making it sufficiently complete for an agent to select and query it correctly.

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

Parameters4/5

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

The tool has zero parameters, and the schema coverage is 100% by default. The description does not need to explain parameters, and the baseline of 4 for zero-parameter tools is appropriate as it focuses on what the returned data represents.

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

Purpose5/5

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

The description clearly states that the tool returns all ~40 global commodity production regions ranked by climate risk score, and specifies the output includes affected commodities and risk levels. This distinguishes it from sibling forecast tools like forecast.commodity_outlook by focusing specifically on production regions and geographic exposure.

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

Usage Guidelines4/5

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

The description explicitly says 'Use to identify which geographic zones are under active climate stress and which commodities are most exposed,' giving clear guidance on when to invoke the tool. It does not mention exclusions or alternative tools, but the use case is unambiguous for a read-only list tool.

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

forecast.scenarioA
Read-only
Inspect

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

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

Output Schema

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

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

Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds that it shows 'how signals shift' but does not detail response format or data freshness. The scenario list is more parameter semantics than behavioral disclosure.

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

Conciseness5/5

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

The description is two sentences plus a scenario list. The first sentence is a clear subject-verb-object statement, the use case is stated at the end, and every element (including the scenario enumeration) earns its place.

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

Completeness4/5

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

For a read-only analysis tool with full schema coverage and an output schema, the description is adequately complete. It covers the purpose, input modes (scenario vs overrides), and intended use, though it does not elaborate on output interpretation or alternative tools.

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

Parameters3/5

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

The input schema already provides 100% description coverage for all three parameters, including enum values and the note for symbols. The description adds a high-level explanation of named vs custom stressors but does not explain parameter syntax beyond the schema.

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

Purpose5/5

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

The description clearly states it is a 'What-if climate scenario analysis' that applies scenarios to commodities and shows signal shifts. It lists specific built-in scenarios and the use case ('stress-test a commodity thesis'), distinguishing it from sibling forecasting tools like forecast.portfolio_stress by focusing on commodity-specific climate impact.

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

Usage Guidelines4/5

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

The description explicitly suggests using it to 'stress-test a commodity thesis before committing to a position,' providing clear context. It implies use for commodity-specific scenario analysis rather than portfolio-level stress, but does not explicitly name alternatives or exclusions.

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

fx.corridorsA
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

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

Annotations already establish read-only/idempotent/non-destructive behavior. The description adds valuable behavioral context including the sort order (OPTIMAL → ADVERSE), the 'Free' access note, and the completeness guarantee ('All 60+ corridors'), which go beyond the annotations.

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

Conciseness5/5

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

The description is four sentences, each adding distinct value: scope/data, sort order, use case with example, filter, and cost. No fluff or repetition, making it highly concise and front-loaded.

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

Completeness5/5

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

With an output schema present, the description doesn't need to explain return values. It adequately covers scope, sorting, usage, filtering, and cost, which is complete for a simple read-only tool with one optional parameter.

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

Parameters3/5

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

The schema description for the 'from' parameter is 100% covered, so the baseline is 3. The description's 'Filter by source currency' adds little beyond the schema's own description, though it does reinforce the parameter's purpose.

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

Purpose5/5

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

The description clearly identifies the tool as returning all 60+ currency corridors with specific fields (stability tier, daily volatility, regulatory flags). The 'All' scope is a specific resource, and the data fields distinguish it from sibling tools that focus on individual rates or stability assessments.

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

Usage Guidelines4/5

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

The description gives explicit usage context: 'Use to compare corridors before choosing a payment route' and provides a concrete example query. However, it does not mention alternative tools or when not to use this tool, 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.

fx.cost_certaintyA
Read-only
Inspect

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

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

Output Schema

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

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

Annotations already declare readOnlyHint=true, and the description adds meaningful behavioral context: the tool requires an x402 micropayment and produces a specific set of outputs (exact received amount, 48h variance, corridor stability, execution window). 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.

Conciseness4/5

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

The description is three sentences and front-loaded with the core purpose. It is efficient, though some phrasing is buzzword-heavy ('CFO-grade', 'corridor stability overlay') and could be tightened without losing meaning.

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

Completeness4/5

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

With an output schema present, the description covers the essential behavioral context: purpose, key output dimensions, cost requirement, and the question it answers. It lacks explicit detail about data freshness or execution latency, but overall it is sufficiently complete for a tool of this complexity.

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

Parameters3/5

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

The schema covers 100% of parameters, so the baseline is 3. The description reinforces the meaning of amount and target currency by framing the question, but it does not add parameter-specific details beyond what the schema already provides.

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

Purpose5/5

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

The description clearly identifies the tool as an all-in settlement cost quote for cross-border payments and states the exact question it answers: what the counterparty receives net of fees and how certain that number is. This is specific and distinguishes it from sibling tools like fx.rate or settlement.quote.

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

Usage Guidelines4/5

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

The description provides clear usage context (when sending a cross-border payment and needing cost certainty) and notes the x402 micropayment requirement. However, it does not explicitly compare to 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.

fx.rateA
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

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

Annotations already flag read-only, idempotent, non-destructive. Description adds valuable context: data sourced from open.er-api.com (central bank rates), hourly updates, no API key required, free. 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.

Conciseness5/5

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

Two sentences: first gives purpose and returns, second gives source and access. Front-loaded, every clause earns its place, no repetition.

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

Completeness5/5

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

Tool is simple, has output schema, full schema coverage, and annotations. Description covers data source, freshness, auth, and return fields, making it complete for invocation.

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

Parameters3/5

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

Schema covers both parameters with ISO 4217 descriptions and examples (100% coverage). Description does not add beyond 'any currency pair', so baseline 3 applies.

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

Purpose5/5

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

Description states 'Live mid-market FX rate for any currency pair' – a specific verb and resource with clear scope. It distinguishes from siblings like fx.corridors and market.fx by focusing on the mid-market rate and listing returned data fields.

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

Usage Guidelines4/5

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

Clearly implies when to use: 'for any currency pair' and source details (central bank rates) but does not explicitly name alternatives or exclusions. Sibling tools like fx.corridors exist but no comparison is made.

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

integration.statusA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesverificationId returned by integration.verify.

Output Schema

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

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

The annotations already establish read-only and idempotent behavior. The description adds valuable context beyond this: it polls Base mainnet for a specific payment, returns 'pending' until detected, then 'verified' with a txHash and Basescan link. This fully discloses the tool's operational behavior 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.

Conciseness5/5

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

Three sentences, each with a clear role: purpose, behavior, and polling recommendation. No wasted words, 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.

Completeness5/5

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

Given the tool's simplicity (one parameter, output schema present, annotations provided), the description fully covers the state transitions, return content, and appropriate polling cadence. It is complete for an agent to use correctly.

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

Parameters3/5

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

Schema coverage is 100%, with the id parameter described as 'verificationId returned by integration.verify.' The description adds no additional parameter semantics beyond this, but the schema handles it fully, so the baseline of 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource: 'Check the status of a DPX integration verification session.' It clearly distinguishes from sibling tools like integration.verify, which initiates verification, and settlement.status, which pertains to settlements.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: poll after sending the $0.01 USDC handshake payment, every 10–15 seconds. It does not explicitly mention when not to use it or name alternative tools, but the usage pattern is well implied.

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

integration.verifyAInspect

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

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

Output Schema

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

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

With all annotations false, the description carries the transparency burden and does a decent job: it discloses the exact amount and network, that the client sends the payment, what the tool returns, and the required next step. It does not mention whether the call creates a persistent record or discuss rate limits/authorization, which prevents a 5.

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

Conciseness5/5

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

Four short sentences each add meaningful information: what the tool does, return value, client action, and follow-up/requirement. The description is front-loaded and contains no filler.

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

Completeness5/5

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

For a simple onboarding handshake tool, the description is complete: it explains the workflow, the Base mainnet context, the amount, the follow-up call, and the production prerequisite. The presence of an output schema and rich input schema means the description does not need to restate return structures.

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

Parameters3/5

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

The input schema already provides 100% parameter descriptions, including the wallet address role and the API key hashing behavior, so the description adds little parameter-level information. The baseline of 3 applies 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.

Purpose5/5

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

The description uses a specific verb ('Initiate') and resource ('DPX integration onboarding handshake') and clearly states its purpose: verify wallet funding via a $0.01 USDC transfer. It also distinguishes the tool from the sibling integration.status by naming that tool as the polling step.

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

Usage Guidelines4/5

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

The description explicitly says when to use it ('Required for all new integrations before production settlements are enabled') and names the follow-up alternative ('Call integration.status to poll for confirmation'). It does not explicitly state when not to use it or list other sibling alternatives, 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.

intelligence.aftershockA
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable behavioral context by detailing the three wave time horizons and the type of analysis (rebounding, amplified pressure, structurally altered). This goes beyond the structured annotations without contradicting them.

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

Conciseness4/5

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

The description is moderately detailed but well-structured, front-loading the purpose and then explaining the wave outputs and usage sequence. Every sentence adds value, though the POST note is somewhat redundant with schema.

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

Completeness4/5

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

Given the presence of an output schema and strong annotations, the description provides sufficient context: it explains the tool's role, the wave structure, and the companion relationship with market.cascade. It does not describe the return format in detail, but that is covered by the output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description mentions origin, eventType, magnitude, and elapsedHours in context, but does not add substantial meaning beyond the schema. It notably omits horizonHours, which is already well-documented in the schema.

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

Purpose4/5

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

The description clearly states the tool models secondary waves following a primary cascade event, with specific outputs (Wave 1, Wave 2, Wave 3). It names the companion tool market.cascade but does not explicitly differentiate from other intelligence.* siblings like contagion or resonance, so it lacks full sibling distinction.

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

Usage Guidelines4/5

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

The description provides explicit sequencing guidance ('run cascade first, then aftershock') and describes the intended scenario (modeling aftershock waves). It does not list alternatives or exclusions, but the context is clear enough for when this tool should be used.

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

intelligence.contagionA
Read-onlyIdempotent
Inspect

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

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

Output Schema

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

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

The description adds substantial behavioral detail beyond the readOnlyHint/openWorldHint/idempotentHint annotations: it explains the epidemiological model, lists return payloads (R trajectory, spread map, superspreader nodes, containment forecast, AI briefing), and gives the R-value interpretation threshold. The 'POST' wording might superficially suggest mutation, but the simulation semantics and annotations align, so 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.

Conciseness4/5

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

The description is a single front-loaded block with dense but relevant sentences covering model, domains, outputs, threshold, and usage. It is slightly redundant by beginning with 'Contagion Intelligence' when the tool name already includes 'contagion', but overall every sentence earns its place.

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

Completeness5/5

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

For a three-parameter simulation tool with a full output schema and read-only/idempotent annotations, the description is very complete: it covers prerequisites, how to trigger node discovery vs simulation, parameter expectations, output highlights, and result interpretation. No critical operational context is missing.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents origin, listNodes, and magnitude. The description adds domain context for origin selection and shows how listNodes acts as a discovery mode, but it does not materially expand parameter meaning beyond the schema.

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

Purpose4/5

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

The description clearly identifies the tool as simulating contagion spread across 30 nodes and 6 domains using an R-value model, with specific outputs. It is more specific than a generic verb-resource pair, but it does not explicitly contrast with sibling shock-model tools like intelligence.aftershock or intelligence.resonance, so it falls short of a 5.

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

Usage Guidelines4/5

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

It provides a clear prerequisite ('Call /contagion/nodes first to discover valid origin IDs') and parameter guidance ('POST with origin and magnitude'), which establishes when to use the simulation branch vs the node-listing branch. However, it does not address when to prefer this tool over related forecasting tools or any exclusion cases.

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

intelligence.gender_riskA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

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

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to restate these. It adds valuable behavioral context beyond annotations: '12h cache', 'Live FRED economic stress feedback', and the two-score output with transmission mechanisms. This helps the agent understand the nature of the data and response. No contradictions with annotations.

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

Conciseness4/5

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

The description is a single dense paragraph but is well-structured with an em-dash opener that front-loads the main purpose. Every sentence adds value: it explains the two scores, their meanings, data sources, cache behavior, and the absence of input. It avoids fluff, though it could be slightly more scannable with breaks, it remains efficient.

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

Completeness4/5

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

Given that the tool has an output schema (as indicated by context signals), the description does not need to enumerate return fields. It adequately covers the domain, the two output scores, transmission mechanisms, data sources, and caching. The main gaps are that the 'five transmission mechanisms' are not enumerated and 'AI synthesis' is vague, but these are minor for a no-input GET tool.

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

Parameters4/5

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

The tool has zero parameters, and the schema coverage is 100% (vacuously). The description explicitly states 'No input required — GET,' which reinforces that the agent can invoke the tool without any arguments. According to the calibration baseline for 0 params, this is an appropriate score.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb and resource: 'maps the structural relationship between GBV prevalence, legal discrimination, female labour force participation, and economic outcomes across 18 countries.' It also distinguishes itself from sibling intelligence tools by focusing on gender risk, which is unique among the listed siblings. The purpose is unmistakable.

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

Usage Guidelines4/5

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

The description provides clear context for when to use this tool: it is a standalone GET call with no input, designed to return gender risk and opportunity scores. It implies usage for assessing sovereign risk, FDI inflows, and economic reform potential. However, it does not explicitly mention alternatives or exclusions, though the tool's unique subject matter makes confusion unlikely.

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

intelligence.resonanceA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

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

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is clear. The description adds meaningful behavioral context beyond annotations: it specifies the tool returns per-signal phase angles, resonance clusters, amplification factor, a 0–100 score, and historical comparison to crisis precedents. It also states no input is required and uses GET, which aligns with the read-only nature. No contradiction with annotations.

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

Conciseness5/5

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

The description is compact yet information-dense. It front-loads the core purpose, explains the conceptual meaning of resonance, lists all major outputs, and ends with a clear usage note. Every sentence adds value without redundancy. It is appropriately sized for the tool's complexity.

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

Completeness5/5

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

Given the tool has no parameters, paired with annotations (read-only, idempotent, open-world) and an output schema (not shown but indicated), the description covers all essential aspects: what it does, what it returns, and how to invoke it. It even adds historical context with crisis precedents, making it self-contained for an agent. It is complete for its complexity level.

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

Parameters4/5

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

The tool has zero parameters, and the schema is empty with 100% coverage trivially. The description explicitly states 'No input required — GET,' which resolves any ambiguity about invocation. Since there are no parameters, the baseline for 0 params is 4, and the description adds the key fact that no input is needed, so no deduction needed.

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

Purpose5/5

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

The description clearly states the tool's function with a specific verb ('detects') and resource (macro forces oscillating in phase across 28 signals in 5 domains). It further differentiates from sibling tools by focusing on resonance/amplification rather than cancellation, and lists precise outputs. This is more specific than typical tool descriptions and immediately conveys its unique role among intelligence tools.

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

Usage Guidelines3/5

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

The description implies when to use the tool (e.g., when multiple macro forces might be aligning to create systemic risk), but it does not explicitly contrast with sibling tools like intelligence.contagion or intelligence.aftershock. 'No input required — GET' is a usage method note, not a when-to-use guideline. There is no exclusion or alternative recommendation, so it falls short of explicit guidance.

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

intelligence.subscribeAInspect

Register a webhook to receive alerts when a DPX intelligence signal crosses a threshold. Supported signals: stability (overall 0–100 score), cascade (shock propagation risk), macro_stress, climate, fx, or any. The cron checks hourly and fires the webhook on crossing — edge-triggered, not repeated every hour. Returns a subscriptionId for status checks and cancellation. Use for treasury alert systems, TMS integrations, or autonomous agent monitoring loops.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelNoOptional label for your own tracking.
signalNoSignal to monitor. Default: stability.
directionNoFire when signal goes above or below threshold. Default: above.
thresholdYesScore value (0–100) that triggers the webhook.
webhookUrlYesHTTPS URL to POST alerts to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
signalNo
deleteUrlNo
directionNo
statusUrlNo
thresholdNo
currentScoreNoSignal score at registration time
subscriptionIdNo
Behavior4/5

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

Annotations are all false, so the description carries the transparency burden. It discloses key behavioral traits: the cron checks hourly, the trigger is edge-triggered (not repeated), and it returns a subscriptionId. This goes beyond the schema and gives agents an accurate mental model of the tool's execution. It does not cover retry/failure behavior, but the essentials are present.

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

Conciseness5/5

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

Four sentences, zero redundancy. The purpose leads, followed by signal details, trigger cadence, return value, and use cases. Every sentence adds unique information without repeating schema fields or annotations.

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

Completeness5/5

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

For a 5-parameter subscription tool with no helpful annotations and an output schema present, this description is remarkably complete. It covers what the tool does, supported signals, trigger semantics, return value, and intended use cases. The absence of wire format details is acceptable given the output schema exists.

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

Parameters4/5

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

The schema covers 100% of parameters, providing a baseline of 3. The description adds meaningful context by explaining signal semantics: stability's 0–100 range, cascade as shock propagation risk, and the 'any' option. It also ties threshold to the 0–100 score and explicitly notes the edge-triggered behavior, which clarifies the threshold's semantics.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Register a webhook to receive alerts when a DPX intelligence signal crosses a threshold.' This clearly distinguishes from sibling tools like intelligence.subscription.delete/get, which are for management. The supported signals are enumerated, reinforcing 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.

Usage Guidelines4/5

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

The description closes with explicit use cases: 'Use for treasury alert systems, TMS integrations, or autonomous agent monitoring loops.' This gives clear context for when to apply the tool, though it does not explicitly name alternatives or exclusion criteria. The sibling tools suggest a natural alternative for cancellation/status (intelligence.subscription.delete/get), but they are not referenced.

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

intelligence.subscription.deleteA
DestructiveIdempotent
Inspect

Cancel an intelligence subscription by ID. Stops future webhook alerts for that subscription. The alert log is retained for audit purposes.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYesUUID returned by intelligence.subscribe.

Output Schema

ParametersJSON Schema
NameRequiredDescription
deletedNo
subscriptionIdNo
Behavior4/5

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

Annotations already disclose destructive and idempotent hints. The description adds valuable context: it stops 'future webhook alerts' while retaining 'the alert log for audit purposes.' This clarifies the exact scope of destruction, going beyond the annotations.

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

Conciseness5/5

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

Two concise sentences deliver the core function, effect, and an important retention detail. No redundant phrases or filler; every word earns its place.

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

Completeness5/5

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

For a simple one-parameter delete tool with annotations and an output schema, the description is complete. It explains what happens (cancellation), the consequence (no future alerts), and a key exception (log retained). Nothing essential is missing.

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

Parameters3/5

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

The schema covers the single parameter fully, describing it as 'UUID returned by intelligence.subscribe.' The description only says 'by ID,' which adds no new semantic information. With 100% schema coverage, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: 'Cancel an intelligence subscription by ID.' The verb 'Cancel' and resource 'intelligence subscription' are specific, and the description distinguishes it from siblings like intelligence.subscribe (creating) and intelligence.subscription.get (retrieving).

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

Usage Guidelines4/5

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

The description provides clear usage context: it stops future webhook alerts. It implies this is the tool to use when you want to terminate a subscription. However, it does not explicitly mention alternatives or 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.getA
Read-onlyIdempotent
Inspect

Check the status of an intelligence subscription by ID. Returns current signal score, last fired timestamp, total alerts fired, and subscription configuration. Use after intelligence.subscribe to verify a subscription is active.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYesUUID returned by intelligence.subscribe.

Output Schema

ParametersJSON Schema
NameRequiredDescription
signalNo
directionNo
lastScoreNo
thresholdNo
lastFiredAtNo
lastCheckedAtNo
subscriptionIdNo
totalAlertsFiredNo
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, covering safety. The description adds behavioral detail by listing what the tool returns (signal score, last fired timestamp, total alerts fired, subscription configuration) and its role in verifying subscription activation. It doesn't cover errors or rate limits, but with rich annotations and output schema, this is adequate.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the purpose, and every word contributes. It efficiently covers what the tool does, what it returns, and when to use it.

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

Completeness5/5

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

This is a simple read-only tool with one parameter, an output schema, and strong annotations. The description provides purpose, return contents, and lifecycle context, making it complete for an agent to invoke correctly without additional ambiguity.

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

Parameters3/5

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

Schema coverage is 100%, and the parameter description ('UUID returned by intelligence.subscribe') is clear. The description merely restates 'by ID' without adding new semantic value beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: 'Check the status of an intelligence subscription by ID.' It specifies the resource (subscription) and verb (check/status), and distinguishes itself from siblings like intelligence.subscribe and intelligence.subscription.delete by focusing on status verification.

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

Usage Guidelines4/5

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

The description provides explicit usage context: 'Use after intelligence.subscribe to verify a subscription is active.' This tells the agent when to use the tool, though it doesn't explicitly mention exclusions or when to prefer alternatives. Since alternatives are clearly different (subscribe/delete), the guidance is sufficient for a status check tool.

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

intelligence.tectonicA
Read-onlyIdempotent
Inspect

Tectonic Intelligence — maps slow-moving structural stress across 22 fault lines in 5 domains (demographic, fiscal, environmental, infrastructure, geopolitical). Each node carries current stress (0–100), accumulation rate (%/yr), tipping threshold, and estimated years to rupture. Where market.cascade traces an acute shock, tectonic surfaces latent pressure before it ruptures. Returns per-node stress state, rupture sequence, horizon timeline, and AI synthesis briefing. No input required — GET.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
synthesisNoAI briefing on the most dangerous structural accumulations.
faultLinesNoPer-node: domain, label, stress, accumulationRate, yearsToRupture, tippingThreshold.
systemStressNoComposite tectonic stress 0–100.
ruptureSequenceNoOrdered fault lines by proximity to rupture.
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering safety. The description adds non-obvious behavioral details: the GET method, no input, return contents ('per-node stress state, rupture sequence, horizon timeline, and AI synthesis briefing'), and its focus on latent pressure. It is consistent with annotations and adds useful context.

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

Conciseness5/5

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

The description is four sentences, each carrying substantive information: mapping scope, node data structure, comparison to market.cascade, and output/request details. It is front-loaded with the core purpose and contains no filler or redundant statements.

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

Completeness5/5

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

An output schema exists, so return values are already formally defined. The description still adds rich context: the specific domains, node attributes, comparison to a sibling tool, and the request method. For a zero-parameter read-only tool, this is complete and eliminates ambiguity.

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

Parameters4/5

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

With zero parameters and schema coverage at 100% (vacuously), the baseline is 4. The description explicitly states 'No input required — GET,' which reinforces the empty schema and prevents confusion. No further parameter semantics are needed.

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

Purpose5/5

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

The description clearly identifies the tool's function: 'maps slow-moving structural stress across 22 fault lines in 5 domains.' It specifies the resource and output detail, and explicitly distinguishes from market.cascade by contrasting acute shock vs. latent pressure. This is a specific verb+resource with sibling differentiation.

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

Usage Guidelines4/5

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

The description provides clear usage context by contrasting with market.cascade: 'Where market.cascade traces an acute shock, tectonic surfaces latent pressure before it ruptures.' It also states 'No input required — GET.' However, it doesn't explicitly compare with other intelligence.* siblings like intelligence.contagion or intelligence.resonance, so the exclusion guidance is partial.

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

invoice.createAInspect

Create an agent-to-agent invoice. Agent A calls this to request payment from Agent B. Returns an invoiceId and payUrl — Agent B calls invoice.pay with the invoiceId to settle. Invoice expires after ttlSeconds (default 24h).

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesInvoice amount in source currency
currencyNoSource currency code (default: USD)
ttlSecondsNoInvoice TTL in seconds (default: 86400 = 24h)
callbackUrlNoURL to notify when invoice is paid
descriptionNoHuman-readable payment description
recipientAddressNoPayee wallet address (can also be provided at pay time)
destinationCurrencyNoDestination currency (default: same as currency)

Output Schema

ParametersJSON Schema
NameRequiredDescription
payUrlNoDirect URL to pay this invoice
statusNoOPEN | PAID | EXPIRED
expiresAtNo
invoiceIdNoUUID — pass to invoice.get or invoice.pay
Behavior4/5

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

The description discloses that the operation returns invoiceId and payUrl, that it is a payment request rather than a direct transfer, and that invoices expire after ttlSeconds default 24h. Since annotations provide no safety hints, this description carries the burden well, though it omits potential side effects like fees or required preconditions.

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

Conciseness5/5

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

The description is three sentences, front-loaded with the primary action, then workflow, then expiration. Every sentence contributes unique information without redundancy.

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

Completeness4/5

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

For a tool with 7 parameters and an output schema, the description covers the core workflow, return values, and expiry. It does not mention prerequisites or edge cases, but the context is sufficient for an agent to select and invoke correctly. Output schema handles return details.

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

Parameters3/5

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

All seven parameters have descriptions in the schema (100% coverage), so the description adds little beyond already-documented parameter semantics. It references ttlSeconds default, which is already in the schema, providing no additional value. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: 'Create an agent-to-agent invoice' with a specific call pattern (Agent A requests payment from Agent B). It also distinguishes from sibling invoice.pay by explicitly naming it as the settlement step.

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

Usage Guidelines5/5

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

It provides explicit usage context: 'Agent A calls this to request payment from Agent B' and instructs that Agent B calls invoice.pay with the returned invoiceId to settle. This clearly differentiates when to use this tool versus the sibling invoice.pay and describes the expected workflow.

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

invoice.getA
Read-onlyIdempotent
Inspect

Retrieve an agent-to-agent invoice by ID. Returns status (OPEN/PAID/EXPIRED), amount, currency pair, and payUrl. Use before calling invoice.pay to confirm the invoice is still OPEN.

ParametersJSON Schema
NameRequiredDescriptionDefault
invoiceIdYesInvoice UUID returned by invoice.create

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
amountNo
payUrlNo
statusNo
currencyNo
expiresAtNo
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds workflow context ('confirm the invoice is still OPEN') and enumerates the statuses, which conveys the intended read-only check behavior. 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.

Conciseness5/5

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

The description is two sentences: the first states the core function and return values, the second gives a workflow directive. Both sentences carry necessary information with no redundancy or filler.

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

Completeness5/5

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

For a simple read tool with a single parameter and an output schema, the description is complete. It covers the purpose, the exact use case, and key returned fields. Annotations handle safety and idempotency, so no further behavioral details are needed.

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

Parameters3/5

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

Schema description coverage is 100%: the parameter invoiceId is fully documented as 'Invoice UUID returned by invoice.create'. The description only refers to 'by ID' and adds no additional parameter semantics beyond what the schema already provides. Baseline 3 is appropriate 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.

Purpose5/5

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

The description uses the specific verb 'Retrieve' with a clear resource ('an agent-to-agent invoice by ID') and lists the returned fields (status, amount, currency pair, payUrl). It explicitly positions itself in the workflow by mentioning invoice.pay, which 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.

Usage Guidelines4/5

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

The description states clearly when to use the tool: 'Use before calling invoice.pay to confirm the invoice is still OPEN.' This provides clear context and a specific workflow trigger. It does not explicitly name alternatives or when-not-to-use, but the placement before invoice.pay is a strong, unambiguous guideline.

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

invoice.payAInspect

Pay an agent-to-agent invoice by ID. Retrieves the invoice, runs settlement via POST /settle, and marks the invoice PAID on success. In sandbox mode returns a simulated receipt; in live mode returns execution parameters for on-chain completion.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoTrue for sandbox simulation (default: false)
invoiceIdYesInvoice UUID to pay
recipientAddressNoPayee wallet address (required if not set in invoice)

Output Schema

ParametersJSON Schema
NameRequiredDescription
invoiceIdNo
settlementNoFull settlement result from POST /settle
Behavior4/5

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

The description discloses behavior beyond the annotations: it retrieves the invoice, calls POST /settle, marks the invoice PAID on success, and explains sandbox vs live return behavior. This adds meaningful context about side effects and mode-dependent outputs. The annotations (readOnlyHint=false, destructiveHint=false) are consistent; no contradiction present.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence states the primary action and key side effects; the second sentence efficiently covers mode-dependent behavior. All information is relevant and front-loaded.

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

Completeness4/5

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

The tool has moderate complexity and an output schema, so return values need not be described. The description covers the core workflow (retrieve, settle, mark PAID), mode differences, and endpoint. It omits potential error handling or authorization details, but for this complexity level the description is reasonably complete.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are already documented. The description adds context around the sandbox parameter by explaining simulated vs live mode outputs, but it does not add detail about invoiceId or recipientAddress beyond the schema. This meets the baseline of 3 for high schema coverage.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Pay an agent-to-agent invoice by ID.' It clearly distinguishes from sibling invoice.get/invoice.create and settlement tools by focusing on the payment action and the 'agent-to-agent' scoping. The mention of settlement via POST /settle and marking PAID further clarifies the tool's unique role.

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

Usage Guidelines4/5

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

The description makes the usage context clear: use this when paying an agent-to-agent invoice by ID. It explains the mechanics (retrieves invoice, settles, marks PAID) and covers sandbox vs live behavior. It does not explicitly mention alternatives or when NOT to use this tool, but the context is sufficiently clear for an AI to select it over siblings like settlement.execute.

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

ledger.sessionA
Read-onlyIdempotent
Inspect

Get the aggregated payment graph for a multi-agent session. Returns total USD moved, transaction count, and a chronological list of all payments made during the session. Use for cost accounting, audit, or to show a human what an agent run spent.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesSession or task ID — the same ID used in receipt.create calls
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds behavioral context beyond that: it specifies the return contents (total USD, transaction count, chronological list) and the scope (all payments during the session). No contradiction with annotations; it complements them well.

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

Conciseness5/5

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

The description is two sentences: the first states the function and outputs, the second gives usage context. Every sentence earns its place, no clutter, and the most important information is front-loaded. Excellent conciseness.

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

Completeness4/5

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

For a simple read-only tool with a single parameter, the description covers the purpose, output contents, and use cases. Since there is no output schema, listing the return fields in the description helps fill that gap. It could have mentioned pagination or error conditions, but for this complexity level, it is sufficiently complete.

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

Parameters3/5

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

Schema coverage is 100% for the only parameter, session_id, which includes a helpful description ('the same ID used in receipt.create calls'). The tool description does not add additional parameter-level meaning 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.

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('aggregated payment graph for a multi-agent session'), and it clearly distinguishes what the tool does from siblings like receipt.create or analytics.overview. It also lists the exact outputs (total USD, transaction count, chronological list), making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool ('for cost accounting, audit, or to show a human what an agent run spent'). It doesn't mention alternatives or exclusions, but the use cases are clear enough to guide an agent in choosing it over similar tools. This is a solid 'use for' statement, though it lacks explicit '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.

market.cascadeA
Read-onlyIdempotent
Inspect

Butterfly Effect Cascade Intelligence — models how a shock in one macro domain propagates through the interconnected web of climate, geopolitical, economic, and commodity systems. Given an origin event (e.g. armed conflict escalation, agricultural drought, central bank rate decision, rare earth export restriction) and a magnitude score, returns a time-ordered cascade chain showing which downstream systems are hit, in what sequence, with what attenuated signal strength, and an AI synthesis briefing on the highest-impact transmission paths. Covers 24 nodes across 4 domains: climate (drought, flood, carbon price, wildfire, sea-level stress, heatwave), geopolitical (sanctions, conflict, trade tariffs, regime change, election shock, port blockade), economic (rate decisions, inflation, sovereign debt, banking stress, currency crisis, recession), and commodity (oil, gas, grain, rare earth/lithium, copper, water, fertilizer). Purely macro intelligence — no settlement or stablecoin mechanics.

ParametersJSON Schema
NameRequiredDescriptionDefault
originNoOrigin node ID. Call market.cascade with listNodes:true to discover valid IDs (e.g. "geo.conflict", "climate.drought", "commodity.oil", "macro.rate_decision").
eventTypeNoFree-text description of the specific event (e.g. "Russia-Ukraine escalation", "Sahel drought season", "Fed emergency 75bps hike").
listNodesNoIf true, returns all valid origin node IDs and descriptions instead of running a cascade. Use this first to discover valid origin values.
magnitudeNoShock magnitude 1–100. 100 = maximum plausible shock for this event type. 40–60 = significant but not extreme.
horizonHoursNoForward time horizon in hours (1–720). Default: 168 (1 week). Use 24 for immediate cascade, 720 for full 30-day view.

Output Schema

ParametersJSON Schema
NameRequiredDescription
originNoOrigin node metadata.
cascadeNoTime-ordered propagation chain — each entry has node, magnitude, arrivalHours, via path, and mechanism.
eventTypeNoEvent description provided.
synthesisNoAI intelligence briefing on transmission paths, concentrated risk, feedback loops, and forward signals.
computedAtNoISO timestamp of computation.
horizonHoursNoTime horizon modeled.
inputMagnitudeNoClamped input magnitude.
Behavior4/5

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

Annotations already indicate readOnly, openWorld, idempotent, and non-destructive behavior. The description adds meaningful detail about return structure (time-ordered chain, attenuated signal strength, AI synthesis briefing) and domain coverage. While it doesn't discuss rate limits or auth, annotations cover the safety profile, so the additional context is sufficient.

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

Conciseness3/5

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

The description is long and includes a detailed enumeration of all 24 nodes across 4 domains, which is largely redundant given the schema's instruction to call listNodes:true. The opening metaphor 'Butterfly Effect Cascade Intelligence' adds flourish but no functional value. It is information-dense but could be more concise.

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

Completeness5/5

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

The tool is complex (5 optional params, multiple domains, cascade logic) and the description covers inputs, outputs, domain lists, discovery mechanism (listNodes), magnitude scale, horizon, and exclusions. The presence of an output schema means return values need no further detail. This is nearly complete for the tool's complexity.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters thoroughly. The description mentions 'origin event and magnitude score' and provides examples, but these echo the schema's existing parameter descriptions rather than adding new meaning. It does not offer extra guidance beyond what the schema provides.

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

Purpose5/5

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

The description clearly states what the tool does: 'models how a shock in one macro domain propagates' and 'returns a time-ordered cascade chain'. It specifies the tool's scope (macro domains) and explicitly distinguishes it from stablecoin/settlement tools with 'Purely macro intelligence — no settlement or stablecoin mechanics'.

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

Usage Guidelines4/5

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

The description gives clear context for use: analyzing shock propagation across climate, geopolitical, economic, and commodity systems. It provides a 'when-not' hint with the no-stablecoin exclusion, but it does not explicitly name alternative sibling tools or state conditions when this tool is preferred over others like intelligence.contagion.

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

market.fxA
Read-onlyIdempotent
Inspect

FX Settlement Corridor Intelligence — per-pair execution risk assessment for 10 major currency corridors against USD: EUR, GBP, JPY, CAD, AUD, CHF, MXN, BRL, CNY, INR. Maps live FRED spot rates to settlement advice for each pair: SETTLE_NOW / SETTLE_WITH_HEDGE / DELAY_SHORT / DELAY_REVIEW / AVOID. Returns DXY dollar regime (STRONG_DOLLAR / NORMAL / WEAK_DOLLAR), regional block risk rollup (G4, Americas, Asia-Pacific), best corridors to settle through now, worst corridors to avoid or hedge, and recommended actions. Distinct from oracle.stability (which covers peg deviation and macro settlement gates) — this tool answers "which currency pairs are risky to settle through right now?" Data: FRED spot rates (DEXUSEU, DEXUSUK, DEXJPUS, etc.), DXY (DTWEXBGS). 1h cache.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dxyNoDXY value, trend, regime, and settlement impact summary.
corridorsNoPer-pair risk, spot rate, advice, and settlement cost.
overallRiskNoFAVORABLE / NORMAL / MODERATE / HIGH / CRITICAL
bestCorridorsNoPairs with NORMAL or FAVORABLE risk — settle now.
worstCorridorsNoPairs with HIGH or CRITICAL risk — delay or hedge.
executiveSummaryNoPlain-language summary of FX settlement conditions.
recommendedActionsNoActionable guidance for treasury teams.
Behavior4/5

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

Annotations already declare readOnly, openWorld, idempotent, and non-destructive. The description adds valuable context: it uses FRED spot rates and DXY, has a 1h cache (indicating potential staleness), and returns a structured risk classification. This goes beyond the annotations, though it doesn't detail edge cases like rate limits or error behavior.

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

Conciseness5/5

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

The description is a single paragraph of moderate length, but every sentence adds substance: purpose, currencies, outputs, data sources, cache, and differentiation. It is front-loaded with the core purpose and avoids filler. No wasted words.

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

Completeness5/5

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

Given zero parameters and the presence of an output schema, the description is fully complete. It explains what data is used, what advice categories are returned, the regional rollups, and how this tool differs from oracle.stability. Nothing critical is missing 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.

Parameters4/5

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

The input schema has zero parameters, so the description carries no parameter burden. The baseline for zero-param tools is 4. The description does not mislead and correctly implies there are no inputs to configure.

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

Purpose5/5

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

The description states a specific verb+resource: 'FX Settlement Corridor Intelligence — per-pair execution risk assessment for 10 major currency corridors against USD.' It enumerates the exact currency pairs, outputs (SETTLE_NOW, etc.), and clearly differentiates itself from oracle.stability by stating its specific question. This is unambiguous and distinguishes the tool from siblings.

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

Usage Guidelines5/5

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

Explicitly says '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 gives a clear when-to-use vs. alternative context. It also specifies the data sources and cache, helping the agent infer freshness.

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

market.shippingA
Read-onlyIdempotent
Inspect

Shipping & Logistics Stress Intelligence — composite view of global freight market conditions across ocean, air, truck, and rail. Tracks energy-driven shipping costs (Brent crude, diesel), 8 key global trade routes with disruption status, and trade flow signals. Returns a settlementRelevance section mapping logistics conditions to cross-border payment corridor risk: invoice delay risk, trade finance stress, and affected corridors. Useful for treasury teams with supply chain financing exposure, trade finance desks, and agents pricing cross-border payments on goods-backed corridors. Data: FRED (Brent crude), EIA (US diesel). 4h cache.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
regimeNoSTABLE / MODERATE / ELEVATED / SEVERE_DISRUPTION
keyRoutesNoPer-route disruption status and stress score.
synthesisNoNarrative briefing on freight conditions and implications.
energyCostNoBrent crude, diesel price, marine fuel proxy.
freightModesNoPer-mode (ocean/air/truck/rail) cost index and stress signal.
compositeScoreNoComposite stress score 0–100 (higher = more stress).
settlementRelevanceNoInvoice delay risk, trade finance stress, affected corridors.
Behavior4/5

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

Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds meaningful context: external data sources (FRED, EIA), a 4-hour cache, and the settlementRelevance mapping to payment corridor risk. These details go beyond what annotations provide.

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

Conciseness5/5

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

The description is four sentences, each adding value: scope, tracked data, returned relevance mapping, target users, and data provenance/cache. It is front-loaded with the tool's purpose and contains no redundancy.

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

Completeness5/5

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

With an output schema present and no input parameters, the description fully covers purpose, data scope, use cases, data sources, and cache behavior. It gives enough context for an agent to know when and why to call this tool.

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

Parameters4/5

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

The tool has zero parameters, so the schema provides all needed parameter information. The baseline is 4, and the description appropriately does not need to explain parameter semantics.

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

Purpose5/5

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

The description clearly identifies the tool as providing 'Shipping & Logistics Stress Intelligence' with specific coverage of ocean, air, truck, and rail markets, plus a settlementRelevance section. This specific domain and return value distinguishes it from sibling tools like market.fx and forecast.commodity_outlook.

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

Usage Guidelines4/5

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

The description names concrete target users and use cases: treasury teams with supply chain financing exposure, trade finance desks, and agents pricing cross-border payments on goods-backed corridors. It does not mention when not to use it or alternatives, but the context is clear.

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

mercury.accountsA
Read-onlyIdempotent
Inspect

List all Mercury bank accounts and balances connected to the DPX Settlement Agent. Returns account IDs, names, available balance, current balance, and currency for each account. Use account IDs with mercury.transactions to fetch payment history, or mercury.send to initiate a payment. Works with both Mercury sandbox and production environments.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countNoNumber of accounts returned
totalNoTotal balance across all accounts in USD
accountsNo
environmentNosandbox or production
Behavior4/5

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

Annotations already indicate readOnly=true, destructive=false, idempotent=true, openWorld=true. The description adds value by specifying the DPX Settlement Agent scope, the precise fields returned (account IDs, names, available/current balance, currency), and dual-environment support. This 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.

Conciseness5/5

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

Three sentences, front-loaded with the primary action. Each sentence provides distinct useful information: the list action, the return fields, and downstream usage. No wasted words.

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

Completeness5/5

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

The tool has no parameters and is a simple listing operation. The description covers its scope, output fields, and integration with sibling tools, and the output schema exists to detail the return structure. Context is 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.

Parameters4/5

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

The input schema has zero parameters, and schema coverage is 100%. The description need not explain parameters; it adds value by explaining the output fields and downstream usage. Baseline of 4 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's function: 'List all Mercury bank accounts and balances connected to the DPX Settlement Agent.' It uses a specific verb (List) and resource (Mercury accounts), and distinguishes itself from sibling tools by mentioning follow-up use with mercury.transactions and mercury.send.

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

Usage Guidelines4/5

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

The description provides context for when to use the tool—when needing account IDs, balances, and currency for accounts connected to the DPX Settlement Agent. It instructs to use account IDs with mercury.transactions for payment history or mercury.send for initiating payments, though it does not explicitly contrast with alternative listing tools (which may not exist). It also confirms compatibility with sandbox and production environments.

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

mercury.ach_authorizeA
Destructive
Inspect

Screen an ACH payment through the DPX compliance oracle before execution. Runs FATF R16, GENIUS Act, MiCA, and AML checks against the recipient. Returns APPROVED / FLAGGED / BLOCKED with full compliance reasoning.

Use this tool BEFORE every ACH payment via mercury.send. ACH is hard to reverse — compliance pre-screening prevents blocked transactions and BSA/AML exposure.

Workflow:

  1. mercury.ach_authorize (screen only, autoExecute:false) → review decision

  2. If APPROVED → set autoExecute:true to send, or call mercury.send directly

  3. If FLAGGED → manual review required before proceeding

  4. If BLOCKED → do not proceed

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoPayment memo / note (optional).
amountYesPayment amount in USD.
purposeNoPayment purpose category (optional — required by Mercury for domesticWire, recommended for ACH). E.g. "Vendor", "Contractor", "Expenses".
accountIdYesSource Mercury account ID (from mercury.accounts).
autoExecuteNoIf true and compliance returns APPROVED, immediately sends the ACH payment. Default false — screen first, execute separately.
recipientIdYesMercury saved recipient ID (from mercury.send / POST /mercury/recipients).
externalMemoNoExternal memo / reference visible to recipient (optional).
recipientNameYesLegal name of the recipient entity or individual — used for compliance screening.
idempotencyKeyNoIdempotency key for safe retries. Auto-generated if omitted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierNoCompliance tier — FAST_PATH, STANDARD, ENHANCED, or HOLD.
_nextNoGuidance on next action.
reasonNoHuman-readable decision summary.
decisionNoCompliance decision.
executedNoTrue if autoExecute:true and ACH was sent.
mercuryIdNoMercury transaction ID (present when executed).
authorizedNoTrue if compliance approved the payment.
complianceNoFull compliance oracle response including framework attestations.
requiresReviewNoTrue when decision is FLAGGED — manual review required.
Behavior5/5

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

Beyond the annotations (destructiveHint=true, readOnlyHint=false), the description discloses critical behaviors: it runs specific compliance checks, returns three statuses (APPROVED/FLAGGED/BLOCKED) with reasoning, and can automatically execute the ACH payment when autoExecute=true. It also highlights the irreversibility of ACH payments as a risk context. This provides substantial added value over the annotations alone.

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

Conciseness5/5

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

The description is well-structured and front-loaded: the first sentence clearly states the tool's core function, followed by a concise rationale, and then a bullet-point workflow. Every sentence serves a purpose, and the content is neither overly verbose nor missing essential information. The use of a numbered step list improves scannability and understanding.

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

Completeness5/5

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

Given the tool's complexity (compliance screening), the output schema, and annotations, the description provides a complete picture. It explains the return statuses, the relationship to mercury.send, the workflow for each outcome, and the risk context (ACH irreversibility). Since an output schema exists, it doesn't need to detail return fields, but it still summarizes the decision output. No critical usage context is missing.

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

Parameters3/5

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

The input schema already includes high-quality descriptions for all 9 parameters (100% coverage). The description text does not add any parameter-specific meaning beyond what the schema already states; for example, autoExecute's behavior is already fully explained in the schema. There is no additional clarification about the parameters' formats, semantics, or relationships that isn't already present.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('screen') and resource ('ACH payment'), and mentions the DPX compliance oracle. It distinguishes itself from sibling tools like mercury.send by positioning it as a pre-screening step before execution. The description also names the specific regulatory checks (FATF R16, GENIUS Act, MiCA, AML), making the tool's scope unambiguous.

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

Usage Guidelines5/5

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

The description explicitly instructs to 'Use this tool BEFORE every ACH payment via mercury.send' and provides a step-by-step workflow (screen → approve → send or review/block). This clearly communicates when to use the tool relative to mercury.send and gives conditional actions for each status. It also distinguishes from the direct execution path by explaining autoExecute:false for screening and autoExecute:true for sending.

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

mercury.sendA
Destructive
Inspect

Initiate a Mercury bank payment from a connected account. Supports all Mercury payment rails: ACH (0–1 days), Wire (0–1 days), Real-Time Payment / RTP (instant), International Wire (1–3 days), and Check (7–10 days).

For International Wire — the primary DPX cross-border use case — provide SWIFT/BIC code and beneficiary bank details. DPX oracle conditions and FX corridor risk should be checked via oracle.stability and market.fx before executing.

Can optionally tag the payment for automatic DPX on-chain routing — when dpxRoute:true is set, the payment memo includes the DPX executor wallet address and the Mercury webhook picks it up for USDC settlement on Base mainnet.

Use sandbox:true (default) for dry-run testing. Set sandbox:false only when ready to move real funds.

Typical cross-border flow:

  1. market.fx → check FX corridor risk for the destination currency

  2. mercury.accounts → get source accountId

  3. mercury.send (sandbox:true) → confirm payment parameters

  4. settlement.quote → get DPX fee quote for the USDC leg

  5. mercury.send (sandbox:false) → execute (requires explicit user confirmation)

  6. mercury.transactions → verify payment posted

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoPayment memo / description.
amountYesPayment amount in USD (or destination currency if specified).
sandboxNoDry run — returns what would be sent without executing. Default: true. Set false to execute.
bankCityNoBeneficiary bank city.
bankNameNoBeneficiary bank name (e.g. "Barclays Bank UK PLC").
currencyNoDestination currency for internationalWire (e.g. "GBP", "EUR"). Default USD.
dpxRouteNoIf true, appends dpx:<wallet> to the memo — triggers DPX on-chain USDC settlement via the Mercury webhook. Use this to settle the stablecoin leg of a cross-border payment.
accountIdYesSource Mercury account ID (from mercury.accounts).
swiftCodeNoBIC/SWIFT code of beneficiary bank (required for internationalWire without recipientId). E.g. "BARCGB22" for Barclays UK.
bankAddressNoBeneficiary bank street address.
bankCountryNoBeneficiary bank country — ISO 3166-1 alpha-2 (e.g. "GB", "DE", "SG").
recipientIdNoMercury saved recipient ID for internationalWire. Use this if the recipient is already saved in Mercury — skips inline bank detail fields.
accountNumberNoRecipient account number (required for ach/wire/check). Also used for IBAN on internationalWire.
paymentMethodNoPayment rail. rtp = Real-Time Payment (instant, US domestic). internationalWire = cross-border (1–3 days). Default: ach.
recipientCityNoBeneficiary city.
recipientNameNoRecipient legal name (required for ach/wire/rtp/check).
routingNumberNoRecipient routing number (required for ach/wire/check).
recipientEmailNoRecipient email (optional — for payment notification).
recipientAddressNoBeneficiary street address.
recipientCountryNoBeneficiary country — ISO 3166-1 alpha-2.
recipientPostalCodeNoBeneficiary postal code.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoMercury transaction ID (present when sandbox:false and executed)
noteNoPayment memo as sent
amountNoAmount in USD
statusNoTransaction status from Mercury
sandboxNoTrue if this was a dry run
dpxTaggedNoWhether the DPX routing tag was appended
simulationNoDry-run summary (present when sandbox:true)
Behavior4/5

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

Annotations already declare destructiveHint=true, but description adds context beyond that: dpxRoute:true triggers a webhook for on-chain settlement, sandbox returns what would be sent without executing, and real-funds execution requires sandbox:false. No contradiction with annotations.

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

Conciseness4/5

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

The description is longer than average but well-structured with paragraphs and a numbered flow. Front-loads the purpose and rail list, then dives into use-case details. Every section earns its place, though some repetition of parameter info could be trimmed.

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

Completeness5/5

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

For a tool with 21 parameters, the description is remarkably complete: covers all payment rails, safety checks, DPX integration, and a step-by-step workflow. Output schema exists, so return values are covered elsewhere. The description provides enough context for an agent to use the tool safely and correctly.

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

Parameters4/5

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

Schema covers 100% of parameters, but description adds value by explaining rail-specific requirements (e.g., swiftCode needed for internationalWire without recipientId, accountNumber for ach/wire/check) and clarifying the dpxRoute memo effect. This goes beyond the raw schema.

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

Purpose5/5

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

The description opens with a specific action verb ('Initiate') and resource ('Mercury bank payment'), then enumerates all supported rails. It clearly distinguishes from sibling tools like mercury.accounts (account discovery) and mercury.transactions (verification) by focusing on the act of sending funds.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: 'For International Wire — the primary DPX cross-border use case' plus a numbered flow referencing sibling tools (market.fx, mercury.accounts, settlement.quote). Also includes safety guidance: sandbox:true for dry-run, sandbox:false for real funds, and explicit user confirmation requirement.

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

mercury.sweepA
Read-onlyIdempotent
Inspect

Treasury float yield routing analysis for idle Mercury bank balances. Computes how much can be swept above a reserve threshold, then evaluates whether deploying into sUSDS (Sky Protocol Savings Rate) on Base is viable before a settlement deadline.

THIS TOOL DOES NOT MOVE FUNDS. It returns a structured recommendation with expected net yield, deployment amount, exit timing, and step-by-step execution instructions. All fund movement decisions remain with the client.

Safety rules enforced: • Always keeps thresholdUsd in Mercury — never swept • Maximum 90% of sweepable amount deployed to sUSDS • Minimum 2-hour window required (shorter windows don't cover gas) • Minimum $50,000 sweepable (below this, gas costs exceed yield) • Exit triggered 30 minutes before settlement deadline

Current instrument: sUSDS (Sky Protocol) — instant on-chain entry/exit, ~6.25% APY, Base chain, no US person restrictions, no de-peg events on record.

Workflow:

  1. mercury.accounts → get accountId and available balance

  2. mercury.sweep → get yield recommendation and execution steps

  3. If PROCEED → follow execution.steps to wire funds and deploy

  4. mercury.accounts again at exit time → confirm balance restored

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoIf true, marks analysis as sandbox mode — Mercury balance may not reflect live state.
accountIdYesMercury account ID to analyze (from mercury.accounts).
thresholdUsdNoMinimum USD balance to always keep in Mercury as a reserve. Sweepable = available balance minus this amount. Default: $50,000.
riskToleranceNoRisk tolerance for yield deployment. Conservative requires APY > 5%. Default: moderate.
settlementDeadlineUtcNoISO 8601 UTC timestamp of when funds must be back in Mercury (e.g. "2026-06-28T18:00:00Z"). Defaults to 7 days from now. Drives the yield window calculation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
accountNoMercury account summary with available balance, reserve threshold, and sweepable amount.
executionNoStep-by-step execution instructions (present when recommendation is PROCEED).
yieldAnalysisNoYield routing analysis: instrument, APY, expected net yield, window, and recommendation (PROCEED | HOLD).
risk_disclosureNoMandatory risk disclosure — client must acknowledge before acting.
Behavior5/5

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

Beyond the annotations (readOnly=true, idempotent=true), the description adds substantial behavioral detail: safety rules (max 90% deployed, exit 30 minutes before deadline), instrument specifics (sUSDS on Base, ~6.25% APY), and the guarantee that it does not move funds. It even notes sandbox mode may show non-live balance. No contradictions with annotations.

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

Conciseness4/5

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

The description is well-structured with clear sections (overview, safety rules, instrument, workflow) and is front-loaded with the main purpose. It is somewhat lengthy but every section adds value, though a few phrases like 'All fund movement decisions remain with the client' are redundant with 'THIS TOOL DOES NOT MOVE FUNDS'.

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

Completeness5/5

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

Given the tool's complexity, the description is remarkably complete: it explains what it returns, the workflow with sibling tools, safety thresholds, instrument details, and prerequisites. The output schema exists so return-value details are covered. The description fully equips 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.

Parameters3/5

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

Schema coverage is 100%, so description need not compensate. The description adds minor context by explaining thresholdUsd is never swept and settlementDeadlineUtc drives the yield window, but these concepts are already present in the schema descriptions. No additional semantics beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's function: 'Treasury float yield routing analysis for idle Mercury bank balances' that computes sweepable amount and evaluates sUSDS deployment viability. It explicitly distinguishes from fund-moving tools by stating 'THIS TOOL DOES NOT MOVE FUNDS', which also separates it from siblings like mercury.send.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool, including workflow steps with mercury.accounts and explicit constraints like minimum $50,000 sweepable and 2-hour window. It does not mention alternative yield tools (e.g., treasury.yield_route) but the workflow and safety rules effectively imply usage scenarios.

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

mercury.transactionsA
Read-only
Inspect

List recent transactions for a Mercury bank account. Returns transaction ID, amount (USD), status, note/memo, counterparty name, created date, and whether the transaction was DPX-tagged (memo contains "dpx:"). Filter by account ID obtained from mercury.accounts. Use this to reconcile DPX settlements against Mercury bank activity.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of transactions to return (default 20, max 500).
offsetNoPagination offset (default 0).
accountIdYesMercury account ID (from mercury.accounts).

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalNoTotal number of transactions on this account
accountIdNo
transactionsNo
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context by listing the return fields, noting the USD amount, and explaining the DPX-tag detection ('memo contains dpx:'). This goes beyond the annotation-provided safety profile and helps the agent understand output semantics.

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

Conciseness5/5

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

The description is three sentences, each with a distinct purpose: action, return payload, and usage guidance. No redundant wording; all information is front-loaded and essential. It earns a top score for efficiency.

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

Completeness5/5

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

Given that an output schema exists (so return values are already structured) and annotations cover safety, the description covers purpose, parameter source, DPX-tag logic, and the reconciliation use case. It is complete for a read-only list tool with high schema coverage.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds extra value by telling the agent that accountId comes from mercury.accounts, which is a helpful source hint not present in the schema. It also implicitly explains the purpose of limit/offset via 'recent transactions' and pagination context.

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

Purpose5/5

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

The description states a specific action: 'List recent transactions for a Mercury bank account.' It also lists the exact returned fields and mentions the DPX-tagging logic, clearly distinguishing it from sibling tools like mercury.accounts (which lists accounts) and mercury.send (which sends funds).

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

Usage Guidelines4/5

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

The description provides clear usage context: 'Filter by account ID obtained from mercury.accounts' and 'Use this to reconcile DPX settlements against Mercury bank activity.' It implies the tool is for read-only reconciliation and does not overlap with transaction-sending tools, though it does not explicitly name alternatives or state 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.

oracle.governanceA
Read-onlyIdempotent
Inspect

Get the live governance score (0–100) for any legal entity identified by LEI or company name. Pulls from GLEIF (LEI registration status, renewal compliance) and World Bank Worldwide Governance Indicators (Government Effectiveness, Control of Corruption, Rule of Law). Returns composite governance score, tier (STRONG / ADEQUATE / MODERATE / WEAK / POOR), MiCA compliance flag, and per-source component breakdown. Complements esg.score by isolating the G pillar as a standalone institutional-grade signal.

ParametersJSON Schema
NameRequiredDescriptionDefault
qNoCompany name to resolve via GLEIF if LEI is unknown (e.g. "Siemens AG").
leiNo20-character GLEIF LEI. Provide this for fastest response.
countryNoISO-2 country code for World Bank WGI lookup (e.g. "DE", "US"). Optional but improves score accuracy.

Output Schema

ParametersJSON Schema
NameRequiredDescription
leiNo
tierNo
countryNo
sourcesNo
scoredAtNo
compositeNoGovernance score 0–100
componentsNoPer-source breakdown: gleif (LEI status, renewal) and worldbank (WGI indicators)
entityNameNo
mikaCompliantNoTrue if composite ≥ 60 (MiCA Article 72 threshold)
Behavior4/5

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

Annotations already state readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context by naming the live data sources (GLEIF and World Bank WGI), the output components (tier, MiCA flag, per-source breakdown), and the composite score. There is no contradiction with annotations.

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

Conciseness5/5

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

The description uses four focused sentences covering purpose, data sources, return values, and tool positioning. Every sentence earns its place, with no filler or irrelevant detail.

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

Completeness5/5

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

Given that an output schema exists and the annotations cover read-only/idempotent behavior, the description sufficiently frames the tool's complexity: two data sources, an optional country parameter, a compliance flag, and a composite tiered score. It also places the tool in the context of the sibling ESG scoring tool.

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

Parameters3/5

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

The input schema already provides full descriptions for all three parameters, including LEI format, company-name resolution, and country optionality. The description reinforces the LEI/company-name/country mapping to GLEIF and WGI but does not materially add syntax or format details beyond the schema.

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

Purpose5/5

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

The description opens with a specific action and scope: 'Get the live governance score (0–100) for any legal entity identified by LEI or company name.' It also distinguishes itself from the ESG sibling by framing itself as the G-pillar complement to esg.score.

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

Usage Guidelines4/5

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

It explicitly names esg.score as the related alternative and clarifies that this tool 'Complements esg.score by isolating the G pillar as a standalone institutional-grade signal.' It could be stronger with explicit when-not guidance, but the usage context is clear.

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

oracle.myceliumA
Read-onlyIdempotent
Inspect

Mycelium Network Oracle — models the global financial system as a living network and detects crisis formation from network topology before it surfaces in market data, typically 6–14 weeks ahead. Maps nodes (markets, economies, funding markets), threads (capital flow channels, correspondent banking, trade finance), nutrient flow (liquidity), stress signals (spread widening, FX stress), and dead zones (sanctioned corridors, failed correspondent networks). Returns network health score (0–100), regime classification (HEALTHY / THINNING / STRESSED_CONNECTIVITY / DEAD_ZONE_FORMING / FRUITING_BODY_IMMINENT), node-by-node connectivity, thread health, signal propagation speed, and fruiting body risk — the probability of a visible crisis with estimated lead time in weeks. Data: FRED (funding markets, credit spreads), BIS SDMX API (credit-to-GDP gaps), IMF DOTS (bilateral trade volumes). The only oracle that reads network topology rather than individual metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
nodesNo
regimeNoNetwork regime classification.
threadHealthNo
networkHealthNoComposite network vitality score 0–100.
fruitingBodyRiskNo
networkNarrativeNo
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior; the description adds substantial context about what the tool computes, the outputs returned, and the data sources used (FRED, BIS, IMF). There is no contradiction with the annotations, and the description meaningfully supplements the structured metadata.

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

Conciseness4/5

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

The description is relatively long but front-loaded with the core purpose and uses structured enumeration for outputs and data sources. Some metaphorical language ('nutrient flow', 'fruiting body') adds color but could be seen as slightly excessive; still, every sentence contributes meaningful information for a complex analytical tool.

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

Completeness4/5

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

The description covers a broad set of context: purpose, predictive lead time, output dimensions, data provenance, and differentiation from alternatives. With an output schema present, it does not need to detail return structures. Minor omissions such as limitations or accuracy caveats prevent a perfect score, but overall it is highly complete for a zero-parameter oracle.

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

Parameters4/5

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

The tool accepts zero parameters, so the input schema is inherently complete and the baseline score is 4. The description does not need to explain parameters; it focuses instead on the tool's analytical behavior and output, which is appropriate given the empty schema.

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

Purpose5/5

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

The description states a specific, vivid function: models the global financial system as a network and detects crisis formation 6–14 weeks ahead. It explicitly differentiates from siblings by claiming to be 'the only oracle that reads network topology rather than individual metrics.' This makes the tool's role unmistakable.

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

Usage Guidelines4/5

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

The description clearly implies when to use it: when you need crisis detection from network topology, lead time estimates, or systemic connectivity insights. It also provides an implicit exclusion by contrasting with approaches that read 'individual metrics,' which helps distinguish it from sibling oracles. However, it stops short of offering explicit 'use when / do not use when' guidance.

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

oracle.railsA
Read-only
Inspect

Get live health status of local payment rails relevant to a settlement. Returns per-rail status (OPERATIONAL/DEGRADED/DOWN), latency, last incident, and a composite health score. Key rails: PIX (Brazil), SEPA (Europe), FedACH (US domestic), CHAPS (UK), UPI (India), PromptPay (Thailand). Call this before domestic or regionally-specific settlements to confirm the destination rail is healthy.

ParametersJSON Schema
NameRequiredDescriptionDefault
railsNoSpecific rails to check: 'PIX', 'SEPA', 'FedACH', 'CHAPS', 'UPI', 'PromptPay'. Omit for all.
regionNoFilter by region: 'latam', 'europe', 'us', 'asia', 'uk'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
railsNoPer-rail status map
timestampNoISO 8601 timestamp
healthScoreNoComposite rail health score 0–100
recommendationNoSettlement recommendation based on rail health
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds valuable behavioral context by detailing return contents (per-rail status, latency, last incident, composite health score) and the intended usage pattern, going beyond the 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.

Conciseness5/5

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

Four purposeful sentences: purpose, return summary, key rails, and usage guidance. No filler or redundant content; each sentence earns its place.

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

Completeness5/5

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

With complete schema coverage, rich annotations, an output schema, and clear usage timing, the description fully equips an agent to decide when to call and what to expect. It even lists operational statuses and key rails, making it self-sufficient.

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

Parameters3/5

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

Schema coverage is 100%—both parameters are thoroughly described with valid values. The description repeats the rail names but does not add new syntax, defaults, or parameter interactions. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states a specific action ('Get live health status of local payment rails') with a defined resource (payment rails) and scope ('relevant to a settlement'). It distinguishes itself from siblings like oracle.stability by focusing on local payment rails and settlement readiness.

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

Usage Guidelines4/5

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

Explicitly tells the agent when to use it: 'Call this before domestic or regionally-specific settlements to confirm the destination rail is healthy.' It provides clear context but does not mention alternatives or exclusions, 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.

oracle.stabilityA
Read-onlyIdempotent
Inspect

Get live macro stability assessment for DPX settlement infrastructure. Returns institutional risk score (0–100), status (STABLE/CAUTION/UNSTABLE), peg deviation in basis points, AI reasoning, and PROCEED/CAUTION/HOLD recommendation. Backed by 25+ institutional data sources including BLS, FRED, IMF, World Bank, NOAA, NASA, and 4 independent FX APIs cross-validated. If UNSTABLE or peg deviation ≥ 50 bps, hold large settlements.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNoCurrent stability status
outlookNoShort-term stability outlook
reasoningNoAI reasoning for current status
timestampNoISO 8601 assessment timestamp
pegDeviationNoUSDC peg deviation in basis points
recommendationNoPROCEED | CAUTION | HOLD
stabilityScoreNoOracle stability score 0–100
Behavior4/5

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

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds meaningful context: 25+ institutional data sources, cross-validated FX APIs, and a concrete decision threshold. No contradiction with annotations.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, followed by output highlights, data provenance, and an actionable condition. Every sentence contributes meaningful information with no redundant filler.

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

Completeness5/5

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

With no input parameters, strong annotations, and an output schema present, the description fully covers the tool's purpose, key return fields, underlying data sources, and the operational threshold for action. It is complete 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.

Parameters4/5

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

The tool has zero parameters and schema coverage is 100%, so the baseline for a no-parameter tool is 4. No parameter-level detail is needed, and the description does not attempt to add any.

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

Purpose5/5

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

Description opens with a specific verb and resource: 'Get live macro stability assessment for DPX settlement infrastructure.' It then enumerates concrete outputs (risk score, status, peg deviation, recommendation), making it clear and distinct from sibling oracle/stability tools.

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

Usage Guidelines4/5

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

The description provides clear context for use by instructing to hold large settlements when UNSTABLE or peg deviation ≥ 50 bps, implying use before settlement decisions. However, it does not explicitly name alternatives 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.

oracle.statusA
Read-onlyIdempotent
Inspect

Get full output from the latest DPX Stability Oracle run. Includes all 9 signal layers: climate, commodities, macro, FX, basket peg, yield curve, infrastructure, war/geopolitical risk, and USD structural health. Includes AI intelligence briefing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierNoOracle tier classification
scoreNoComposite oracle score 0–100
alertsNoActive oracle alerts
statusNoSTABLE | CAUTION | UNSTABLE
signalsNoIndividual signal scores for all 9 oracle layers
briefingNoAI intelligence briefing text
timestampNoISO 8601 oracle run timestamp
chaosRegimeNoTrue if extreme market conditions detected
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing the safety profile. The description adds valuable context about the output content (9 signal layers and AI briefing) without contradicting annotations.

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

Conciseness5/5

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

Two concise, front-loaded sentences with no filler. The first sentence states the core action, and the second enumerates contents efficiently.

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

Completeness5/5

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

With strong annotations, an output schema present, and no parameters, the description fully covers what an agent needs to know. It clearly states the resource, scope (latest run), and contents without requiring extra details.

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

Parameters4/5

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

The tool has zero parameters, so the schema coverage is trivially 100% and the baseline is 4. The description's mention of 'latest' run clarifies that no parameter selects a run, which is a useful semantic addition.

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

Purpose5/5

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

The description uses a specific verb 'Get full output' and identifies a precise resource: 'the latest DPX Stability Oracle run.' It enumerates the exact signal layers included, making the tool's purpose unmistakable and distinguishing it from other oracle-related siblings.

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

Usage Guidelines2/5

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

The description explains what the tool returns but gives no explicit guidance on when to use it versus alternatives like oracle.stability or oracle.governance. It does not mention exclusions or provide a comparison to sibling tools.

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

policy.checkA
Read-onlyIdempotent
Inspect

Check a proposed payment against the agent's active policy before executing it. Returns ALLOW, HOLD, or BLOCK with a reason. Run this before every settlement call. ALLOW = proceed. HOLD = route to human review queue. BLOCK = halt, do not proceed.

ParametersJSON Schema
NameRequiredDescriptionDefault
purposeNoPayment purpose string
agent_idYesAgent identifier — must match the agent_id used in policy.create
recipientNoRecipient wallet address
amount_usdYesProposed payment amount in USD
session_idNoTask or session grouping ID for ledger tracking.
to_currencyNoDestination currency code (e.g. EUR, GBP)
counterpartyNoCounterparty name or LEI
delegation_idNoIf acting under a delegation from a parent agent, provide the delegation ID.
oracle_statusNoCurrent oracle status — STABLE, CAUTION, or UNSTABLE. Get from get_reliability.
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds valuable behavioral context: the return semantics (ALLOW/HOLD/BLOCK with reason) and the recommended sequencing before settlement calls. It does not contradict annotations and goes beyond them by explaining the gate behavior.

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

Conciseness5/5

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

The description is three sentences, each essential: purpose, output type, and usage/interpretation. It is front-loaded with the core action and avoids filler or redundancy. Every sentence earns its place.

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

Completeness4/5

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

For a complex tool with 9 parameters and no output schema, the description effectively communicates the return values and the action to take for each outcome, compensating for the missing output schema. It gives clear usage context. However, it does not mention edge cases like what happens if no active policy exists or how HOLD items are routed (beyond 'human review queue'), leaving slight gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are fully documented in the schema. The description does not add extra meaning about parameters or relationships between them, but it doesn't need to since the schema already handles this. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool checks a proposed payment against the agent's active policy before execution, returning ALLOW, HOLD, or BLOCK. This specific verb+resource (check against policy) distinguishes it from sibling tools like policy.create and settlement.execute, and the 'before executing it' phrase clarifies its role as a pre-flight gate.

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

Usage Guidelines4/5

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

Provides explicit guidance: 'Run this before every settlement call.' It also explains the meaning of each output (ALLOW=proceed, HOLD=route to human review, BLOCK=halt), which tells the agent how to act on the result. However, it does not mention alternatives or when not to use it, so it's slightly below the strongest standard.

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

policy.createAInspect

Create a spending policy for an AI agent. Sets rules the agent must follow before any financial action: per-transaction ceiling, daily limit, hold threshold, blocked counterparties, allowed purposes, oracle stability gate. Once set, every payment by this agent is checked against the policy automatically via policy.check.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable policy name
agent_idYesStable identifier for the agent or org (wallet address, session prefix, org slug, etc.)
max_per_txNoUSD ceiling per single transaction. Payments above this are BLOCKED.
max_per_dayNoUSD rolling daily ceiling. Payments that would exceed this are HOLDed.
blocked_regionsNoISO 3166-1 alpha-2 country codes to block.
allowed_purposesNoIf set, only payments with a purpose in this list are allowed.
require_hold_aboveNoRoute to HOLD queue for human review if amount exceeds this threshold.
require_oracle_stableNoIf true, HOLD on CAUTION as well as UNSTABLE oracle status.
blocked_counterpartiesNoWallet addresses or LEIs to block.
Behavior4/5

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

Annotations indicate readOnly=false, confirming this is a write operation. The description adds behavioral context by explaining that the policy sets rules the agent must follow before any financial action and that payments are automatically checked against it via policy.check. It doesn't contradict the annotations and provides meaningful side-effect information.

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

Conciseness5/5

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

The description is two compact sentences, front-loaded with the core purpose and followed by a useful enforcement detail. Every sentence adds value, with no unnecessary words.

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

Completeness4/5

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

The description gives a clear picture of the tool's operation, including the enforcement tie-in with policy.check. However, it doesn't mention return values or behavior with multiple policies, which would be helpful given the absence of an output schema, though the schema covers parameter semantics well.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already fully documents all 9 parameters. The description adds only a high-level summary of the rule categories (per-transaction ceiling, daily limit, etc.) without new semantic detail, earning the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb and resource: 'Create a spending policy for an AI agent.' It enumerates the policy rules and distinguishes itself from the sibling policy.check by explaining that the policy is enforced automatically via policy.check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool: when you need to establish spending limits for an agent. It references policy.check as the enforcement mechanism, providing context on how this tool relates to its sibling, but it doesn't explicitly state exclusions or when to use policy.delegate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

policy.delegateAInspect

Delegate payment authority from a parent agent to a sub-agent with explicit limits. The sub-agent can only spend up to the delegated ceiling. Delegation can be revoked at any time. Use in multi-agent workflows where an orchestrator authorises a worker agent to make payments on its behalf.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_totalNoLifetime spending ceiling for this delegation
policy_idNoPolicy ID to inherit (optional — inherits parent policy if omitted)
expires_atNoUnix timestamp (ms) when this delegation expires. Omit for no expiry.
max_per_txNoMaximum USD per transaction for the sub-agent
child_agent_idYesThe sub-agent receiving delegated authority
parent_agent_idYesThe authorising (parent) agent ID
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a non-read-only, non-idempotent, non-destructive operation. The description adds meaningful behavioral details: the sub-agent can only spend up to the delegated ceiling, and delegation can be revoked at any time. However, it does not describe side effects (e.g., whether a policy record is created) or response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: purpose, constraint, and use case. No fluff, front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, no output schema, and moderate complexity, the description covers the essential context: usage scenario, key constraints, and revocability. It does not mention potential errors or permissions, but given the rich schema descriptions, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema descriptions cover all 6 parameters (100% coverage), so the description does not need to explain each parameter. It adds a conceptual framing (explicit limits, ceiling) but no new parameter-level semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Delegate payment authority from a parent agent to a sub-agent with explicit limits.' The verb 'delegate' and resource ('payment authority') are specific. It implicitly distinguishes from siblings like policy.create by focusing on parent-to-sub-agent delegation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: 'Use in multi-agent workflows where an orchestrator authorises a worker agent to make payments on its behalf.' It explains when to use but does not explicitly mention exclusions or alternatives, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

protocol.investment_contextA
Read-onlyIdempotent
Inspect

Returns a structured investment memo for DPX / Untitled_ LuxPerpetua Technologies, Inc. Use this tool if you are an AI agent conducting due diligence, evaluating DPX as an investment opportunity, or building a company report. Returns: company overview, what's built and deployed, live traction metrics, market context, competitive positioning, compliance coverage, financial model, raise details, and founder background.

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNoWhich section to return. Default 'all' returns the complete memo.

Output Schema

ParametersJSON Schema
NameRequiredDescription
_metaNoMemo metadata
raiseNoRaise details
risksNoKey risks
marketNoMarket context
founderNoFounder background
productNoProduct and technology
overviewNoCompany overview
tractionNoTraction and metrics
complianceNoCompliance posture
financialsNoFinancial model
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful context by listing the sections returned (company overview, product, traction, market, etc.), clarifying the output scope beyond the schema. This goes beyond the annotation baseline, though it doesn't disclose any side effects or edge cases, which is fine for a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: three sentences that front-load the core purpose, then use cases, and then the return contents. No filler or repetition. Every sentence earns its place, making it well-structured for quick consumption.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (one optional parameter, strong annotations, and an output schema), the description provides enough context: what it is, when to use it, and what it returns. It does not need to explain return values since an output schema exists, and the description fully covers the agent's needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has full coverage (100%) for the single 'section' parameter, including an enum and description. The tool description does not add parameter-level detail, but the schema already documents it thoroughly. Baseline 3 is appropriate because the description doesn't need to compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a structured investment memo for DPX / Untitled_ LuxPerpetua Technologies, Inc. The verb 'returns' and specific resource (investment memo) make the purpose unambiguous. It also distinguishes the tool from siblings by focusing on investment context rather than generic metrics or compliance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists use cases: 'if you are an AI agent conducting due diligence, evaluating DPX as an investment opportunity, or building a company report.' This gives clear context for when to use it, though it doesn't mention alternatives or when not to use it, which prevents a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

protocol.manifestA
Read-onlyIdempotent
Inspect

Get the DPX protocol manifest. Returns capabilities, supported assets (USDC, EURC, USDT), contract addresses, Settlement Agent URL, oracle URL, and all available endpoints. Call this first to understand what DPX can do.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
agentNoSettlement Agent manifest: name, version, status
oracleNoOracle manifest: name, version, assets, endpoints
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering safety. The description adds behavioral context by enumerating what the manifest returns (capabilities, supported assets, contract addresses, oracle/Settlement Agent URLs, endpoints) and by positioning it as the first call, implying a non-mutating discovery role. This goes beyond simple safety flags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences deliver the core action ('Get the DPX protocol manifest'), enumerate key return items in a compact list, and end with a clear usage directive. Every word contributes meaning; no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, an output schema present, and rich annotations (readOnly, idempotent, openWorld), the description tells the agent everything needed: what it returns, what to expect, and when to call it. The tool is a simple discovery endpoint, and the description fully covers its operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline for parameter semantics is 4. The description correctly avoids inventing parametric detail and instead focuses on the tool's return payload, which is appropriate given the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Get the DPX protocol manifest,' a specific verb+resource statement. It then lists the concrete contents (capabilities, assets, addresses, URLs, endpoints), making the tool's scope unambiguous. This clearly differentiates it from the sibling protocol.investment_context and other endpoint-heavy tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Call this first to understand what DPX can do' gives an explicit usage directive, establishing this as the entry point for DPX discovery. It does not mention when-not to use or name alternatives, but the context is strong enough for an agent to know when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ramp.agent_cardAInspect

Create a scoped Ramp Agent Card — a single-use virtual card with a merchant and amount cap, expires after first authorization or 12 hours. Used to fund the fiat leg of a DPX settlement without pre-funding a crypto wallet. Returns a task ID; poll ramp.agent_card_status to get PAN/CVV once ready. Requires cards:read_agentic scope (granted via ramp.connect).

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesCard spending cap (e.g. "10000.00").
currencyNoCurrency code (default USD).
referenceNoYour internal reference ID.
tenant_idYesTenant ID of the connected Ramp account.
display_nameNoCard label visible in Ramp dashboard.
merchant_scopeNoIntended merchant name (informational).

Output Schema

ParametersJSON Schema
NameRequiredDescription
amountNo
taskIdNoPoll GET /ramp/agent-card/:taskId for card PAN/CVV.
currencyNo
referenceNo
statusUrlNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits beyond the annotations: single-use nature, expiry after first authorization or 12 hours, async result via task ID, and the required cards:read_agentic scope. This adds substantial context to the raw readOnly/idempotent/destructive hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, each serving a distinct purpose: core definition, use case, and workflow/auth. No redundancy or filler, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and annotations, the description covers the essential creation flow, async retrieval path, and auth requirement. It is complete enough for an agent to select and invoke the tool correctly without ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning by framing 'amount cap' and 'merchant cap', directly clarifying the purpose of the amount and merchant_scope parameters, which goes beyond the schema's terse field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Create a scoped Ramp Agent Card') and defines the resource with distinguishing characteristics: single-use, amount/merchant cap, and expiration. It differentiates from sibling ramp.agent_card_status by explicitly referencing the polling workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete use case: funding the fiat leg of a DPX settlement without pre-funding a crypto wallet. It also instructs to poll ramp.agent_card_status for PAN/CVV, giving a clear context for follow-up. However, it does not explicitly name alternatives or when-not-to-use conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ramp.compliance_screenA
Read-onlyIdempotent
Inspect

Compliance pre-screen for Ramp accounting agent payments — run before issuing an Agent Card to eliminate unnecessary human approval queues. Performs 5 checks in parallel: (1) FATF country risk on source and destination country, (2) amount threshold flags (CTR-equivalent at $10K, large-payment at $100K), (3) OpenSanctions global sanctions screen by counterparty name, (4) OpenSanctions PEP screen for individual counterparties or payroll, (5) GLEIF UBO chain with sanctions at each beneficial ownership node (if LEI provided). Returns APPROVED / FLAGGED / BLOCKED with a humanRequired boolean — true only for FLAGGED cases. APPROVED: issue card automatically, no human needed. BLOCKED: halt, do not proceed, do not notify counterparty. FLAGGED: route to compliance queue. Removes human-in-the-loop for the ~95% of payments that are clean.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesPayment amount in units of currency.
currencyNoISO 4217 currency code. Defaults to "USD".
paymentTypeNoPayment type — payroll automatically triggers PEP screen.
isIndividualNotrue if counterparty is an individual (triggers PEP screen). Defaults to false.
sourceCountryNoISO 3166-1 alpha-2 source country. Defaults to "US".
counterpartyLeiNoOptional GLEIF LEI — enables UBO chain check and satisfies FATF R.16 originator identification.
counterpartyNameYesLegal name of the payment counterparty.
counterpartyCountryNoISO 3166-1 alpha-2 destination country (e.g. "DE", "NG", "IR").

Output Schema

ParametersJSON Schema
NameRequiredDescription
checksNofatfCountry, amountFlags, sanctions, pep, uboChain check details.
_actionNoRecommended action for the agent.
fatfR16NoFATF R.16 satisfied status and basis.
reasonsNoSpecific reasons for the decision.
decisionNoCompliance decision.
riskScoreNoRisk score 0–100.
humanRequiredNotrue only for FLAGGED — APPROVED payments proceed automatically.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses the parallel execution of five checks, specific monetary thresholds ($10K CTR, $100K large payment), the three possible statuses, the humanRequired boolean semantics, and the critical instruction not to notify counterparties on BLOCKED. This is rich, actionable 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but tightly structured with a numbered list of checks and clear decision outcomes. Every sentence adds value, and the length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, when to run it, what checks it performs, thresholds, return statuses, and required actions for each outcome. The output schema exists, so no additional return-format detail is needed; this description is complete for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and schema already describes each parameter's purpose. The description adds meaningful value by linking checks to parameters (e.g., amount thresholds, country risk, PEP triggers) and explaining threshold behavior not present in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states this is a compliance pre-screen for Ramp payments, with the specific purpose of eliminating unnecessary human approval queues before issuing an Agent Card. It enumerates the five checks performed, which distinguishes it from 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to run this before issuing an Agent Card and gives clear post-result actions for APPROVED, BLOCKED, and FLAGGED outcomes. It does not explicitly name alternatives or edge cases when this tool should not be used, but the context and scope are clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ramp.connectA
Read-only
Inspect

Connect a Ramp corporate account to DPX settlement. Returns an OAuth authorization URL — direct the user to this URL to grant DPX access to their Ramp account. Required scopes: transactions:read, bills:read/write, cards:read/write, cards:read_agentic (Agent Cards), business:read, bank_accounts:read, vendors:read, entities:read. Call once per tenant; tokens are stored and refreshed automatically.

ParametersJSON Schema
NameRequiredDescriptionDefault
tenant_idYesYour internal tenant or customer ID — returned in the callback so you can match the connection.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopesNoRequested OAuth scopes.
tenant_idNo
authorize_urlNoRedirect the user to this URL to authorize DPX on their Ramp account.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the OAuth URL return, required scopes, and automatic token storage/refresh, adding behavioral context beyond the annotations. The readOnlyHint is not contradicted because the tool itself only returns a URL; actual authorization happens externally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, stating the action and outcome in the first sentence. The scope list is necessary and the operational note 'Call once per tenant' adds value without unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema, the description is comprehensive. It explains the OAuth flow, lists required scopes, and provides operational guidance, covering all necessary context for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the tenant_id parameter with 'Your internal tenant or customer ID — returned in the callback so you can match the connection.' The description does not add additional parameter meaning beyond 'Call once per tenant,' so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Connect a Ramp corporate account to DPX settlement' with a specific verb and resource, and differentiates from sibling tools like ramp.settle by focusing on OAuth authorization. The OAuth URL return is also explicitly mentioned, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context: 'Call once per tenant' and explains automatic token storage/refresh. Does not explicitly name alternatives but implies usage for initial connection rather than ongoing operations, which is sufficient guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ramp.settleA
Destructive
Inspect

Execute a DPX stablecoin settlement funded by a Ramp Agent Card — combines card creation and settlement in one call. Ramp handles the fiat conversion leg; DPX settles USDC or EURC on Base mainnet in ~30 seconds. Returns pacs.002 confirmation + SFDR PAI indicators. No crypto wallet pre-funding required. Requires Ramp account connected via ramp.connect.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesPayment amount (e.g. "50000.00").
currencyYesSource currency: USD or EUR.
referenceNoYour internal payment reference.
tenant_idYesTenant ID of the connected Ramp account.
callback_urlNoWebhook URL for pacs.002 delivery.
creditor_leiNoRecipient LEI for GLEIF VoP (optional).
creditor_nameYesRecipient name.
merchant_scopeNoMerchant name for Agent Card scope.
creditor_walletYesRecipient on-chain wallet address (0x...).
settlement_assetNoSettlement asset: USDC (default) or EURC.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
iso20022Nopacs.002 status object.
agentCardNo
complianceNoFATF R16 + SFDR PAI indicators.
settlementNo
dpxPaymentIdNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behaviors: combines card creation and settlement, handles fiat conversion, settles on Base mainnet in ~30 seconds, returns pacs.002 + SFDR PAI indicators, and requires no pre-funding. Annotations are sparse (only readOnlyHint, openWorldHint, idempotentHint, destructiveHint), so description carries the burden well.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences; the first immediately states the action and scope, followed by supporting details. No redundant words or repetition of schema information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter financial tool, the description covers prerequisites, operational flow, expected output, and network specifics. It could mention potential errors or contrast with settlement.execute, but overall it is quite complete 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter is described. The description adds contextual meaning (e.g., 'USDC or EURC' settlement and 'USD or EUR' source currency) but does not elaborate on individual parameter syntax or edge cases. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('Execute') and resource ('DPX stablecoin settlement funded by a Ramp Agent Card'), and clearly states it 'combines card creation and settlement in one call,' distinguishing it from sibling tools like ramp.agent_card and settlement.execute.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States a clear prerequisite ('Requires Ramp account connected via ramp.connect') and context ('No crypto wallet pre-funding required', 'Ramp handles the fiat conversion leg'). While it doesn't explicitly name alternatives, the context implies when to use this over other settlement tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ramp.spend_analysisA
Read-only
Inspect

Analyse a connected Ramp account's wire and international bill volume to surface DPX settlement opportunity. Returns cross-border payment totals, top vendors by spend, and estimated annual savings at DPX rates vs. typical bank wire (3.0% all-in vs. DPX ~2.035%). Requires Ramp account connected via ramp.connect.

ParametersJSON Schema
NameRequiredDescriptionDefault
page_sizeNoNumber of bills to analyse (default 100, max 500).
tenant_idYesTenant ID of the connected Ramp account.

Output Schema

ParametersJSON Schema
NameRequiredDescription
crossBorderNoWire and international bill totals.
dpxOpportunityNoEstimated annual savings and DPX fees.
topVendorsBySpendNoTop 10 vendors by total payment volume.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false, which cover the read-only and non-destructive behavior. The description adds valuable behavioral context by specifying the output: '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%).' It also adds a prerequisite condition, enriching transparency beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: the first states the purpose, the second lists the return values with a specific rate comparison, and the third states the prerequisite. Every sentence earns its place, and the content is front-loaded with the action verb. There is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema available (has_output_schema: true), the description need not detail the return format. It covers the tool's purpose, key return metrics, and prerequisite connection. It does not mention data freshness or time-window assumptions, but given the schema and annotations, the description is sufficiently complete for an analysis tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 100% of the parameters with clear descriptions: page_size ('Number of bills to analyse (default 100, max 500)') and tenant_id ('Tenant ID of the connected Ramp account.'). Since the schema already provides full parameter semantics, the description does not need to add further detail, fitting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Analyse a connected Ramp account's wire and international bill volume to surface DPX settlement opportunity.' It uses a specific verb ('Analyse'), identifies the resource (Ramp account's wire and international bill volume), and specifies the outcome (surface DPX settlement opportunity). It also lists concrete return values, distinguishing it from sibling tools like ramp.agent_card and ramp.settle.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when the user wants to surface DPX settlement opportunities from Ramp spend data, and it provides a prerequisite: 'Requires Ramp account connected via ramp.connect.' However, it does not explicitly state when not to use this tool or name alternative tools for settlement or other Ramp operations, so the guidance remains implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

receipt.createAInspect

Record a tamper-evident signed receipt for an agent financial action. Call immediately after every successful settlement. Returns a receipt ID and HMAC-SHA256 signature over the canonical receipt JSON — cryptographic proof the record has not been altered. Receipts are queryable by session or agent for audit.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoTrue if this was a sandbox settlement
tx_hashNoOn-chain transaction hash (if live)
agent_idYesAgent that executed the payment
policy_idNoPolicy ID that governed this payment
recipientNoRecipient wallet address
amount_usdYesAmount paid in USD
session_idNoTask or session ID for grouping (use the same ID for all payments in one agent run)
to_currencyNoDestination currency (default: USD)
counterpartyNoCounterparty name
task_contextNoPlain-text description of what task triggered this payment
delegation_idNoDelegation ID if acting under delegated authority
from_currencyNoSource currency (default: USD)
oracle_statusNoOracle status at time of payment (STABLE / CAUTION / UNSTABLE)
settlement_idNoSettlement ID returned by the settle tool
compliance_decisionNoCompliance decision at time of payment (PROCEED / HOLD / BLOCKED)
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that receipts are tamper-evident, signed with HMAC-SHA256, and queryable for audit, adding value beyond the annotations (which only indicate non-read-only, non-idempotent, non-destructive). It doesn't detail storage/duplication behavior, but with annotations present this is a solid, non-contradictory behavioral summary.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each adding critical value: what it does, when to call, what it returns and why. No fluff, front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 15 parameters and no output schema, but the description explains the key return values (receipt ID, signature), the invocation timing, and audit use case. It doesn't enumerate every optional parameter, but the schema handles that, so the overall context is sufficient 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers all 15 parameters with descriptions, so the description is not required to repeat them. The text adds some context (e.g., receipts queryable by session/agent hints at session_id and agent_id roles) but largely relies on the schema, matching the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Record') and names the resource ('tamper-evident signed receipt for an agent financial action'), clearly distinguishing it from payment/settlement siblings like settlement.execute or ramp.settle. It also specifies the tool's output (receipt ID and HMAC-SHA256 signature), making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to 'Call immediately after every successful settlement,' providing clear timing. It does not name alternatives or state when not to use it, but the audit-oriented purpose is obvious relative to sibling tools, giving sufficient contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

routeA
Read-onlyIdempotent
Inspect

Multi-stablecoin settlement routing. Given amount, source currency (from), and destination currency (to), returns all three stablecoin options (USDC, EURC, USDT) ranked by settlement efficiency. EURC is recommended for EUR destinations — eliminates cross-currency conversion. Returns settleBody ready to POST to /settle for the top-ranked option.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination currency code (USD, EUR, GBP, etc.)
fromYesSource currency code (USD, EUR, GBP, BRL, etc.)
amountYesSettlement amount in source currency

Output Schema

ParametersJSON Schema
NameRequiredDescription
optionsNo
ttlSecondsNo
generatedAtNo
routingAdviceNo
settleEndpointNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, openWorld, idempotent, and non-destructive. The description adds valuable behavioral context beyond annotations: it returns a settleBody ready to POST to /settle and explains that EURC avoids cross-currency conversion for EUR destinations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three straightforward sentences, front-loaded with the core purpose. Each sentence adds actionable information without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present and annotations covering safety, the description adequately conveys the full workflow: inputs, ranking logic, recommendation, and a ready-to-use output. No critical missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds meaningful semantics by explaining the role of the 'to' parameter (EUR destination leads to EURC recommendation) and the source currency context, which elevates it above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: multi-stablecoin settlement routing that returns three stablecoin options ranked by settlement efficiency. It specifies inputs (amount, from, to) and output (settleBody for POST /settle), distinguishing it from generic routing tools like compute.route.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context on inputs and output, and gives a specific recommendation for EUR destinations. However, it does not explicitly name alternative tools or exclusion criteria for when not to use this tool, 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.

search_docsA
Read-onlyIdempotent
Inspect

Search DPX documentation by keyword. Returns the most relevant doc sections — including how-to guides, API references, fee structure, oracle architecture, compliance requirements, and integration setup. Call this when you need protocol details mid-task rather than relying on context alone. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (default 3, max 5).
queryYesKeywords to search — e.g. "how to settle", "esg fee formula", "butterfly cascade", "mercury send", "compliance screen".
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is established. The description adds behavioral context beyond annotations: it specifies the breadth of documentation covered (e.g., fee structure, oracle architecture, compliance requirements) and notes that it is 'Free'. This goes beyond the minimal annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded: the first sentence states the core purpose, the second lists expected content, the third gives usage context, and 'Free' is a single-word addition. Every sentence contributes value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a straightforward search tool, the description covers the action, the scope of results, and the intended usage scenario. With annotations covering safety/idempotency and the schema fully documenting parameters, no additional context is needed. The lack of an output schema is acceptable because the description already clarifies what is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters already described in the schema. The description only reinforces 'by keyword', which is already captured in the query parameter description. It does not add new semantic detail beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and resource 'DPX documentation', and specifies the return type ('most relevant doc sections'). It lists specific content areas (how-to guides, API references, fee structure, etc.), which distinguishes it from domain-specific sibling tools like 'esg.lookup' or 'fx.rate'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance: 'Call this when you need protocol details mid-task rather than relying on context alone.' This conveys a clear usage context, though it doesn't mention when not to use or alternative tools. The addition of 'Free' also hints at unrestricted availability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settlement.executeA
Destructive
Inspect

Execute a DPX cross-border settlement. The Settlement Agent checks oracle conditions, reasons with Claude AI, and executes on-chain (or returns sandbox result if sandbox=true). Returns settlement ID, status (executed/held/sandbox/failed), tx hash, net amount, fees, oracle conditions, and AI reasoning. Default: sandbox=true — set sandbox=false only for live execution.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount in source currency units
purposeNoPayment purpose: intercompany, vendor-payment, payroll, treasury
quoteIdNoPre-fetched quoteId from get_quote (optional — agent fetches live if omitted)
sandboxNoSandbox mode — real calculations, no on-chain execution. Default: true.
esgScoreNoESG score override 0–100 (testing only)
referenceIdNoExternal reference ID (invoice number, TMS ID, etc.)
sourceCurrencyYesSource currency: USD, EUR, GBP, USDC, EURC
recipientAddressYesOn-chain recipient wallet address (0x...)
destinationCurrencyYesDestination currency: USD, EUR, GBP, USDC, EURC

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultNo
summaryNoHuman-readable settlement outcome summary
httpStatusNoHTTP status from Settlement Agent
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and readOnlyHint=false, and the description adds context by explaining the on-chain execution, sandbox behavior, and the Settlement Agent's autonomous checks (oracle, AI reasoning). This goes beyond the annotations and clarifies the operational impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and includes crucial safety guidance about sandbox mode. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is complex (on-chain execution, 9 params), but the annotations and output schema cover safety and return structure. The description adds the core behavioral context (execution flow, sandbox default) and is sufficient for an agent to decide when and how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all 9 parameters with descriptions (100% coverage). The description adds no parameter-specific meaning beyond restating the sandbox default, which is also in the schema. Thus the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Execute a DPX cross-border settlement') with a specific resource, and details the execution process (oracle checks, AI reasoning, on-chain execution). This distinguishes it from siblings like settlement.quote and settlement.status 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage guidance for sandbox vs. live execution ('Default: sandbox=true — set sandbox=false only for live execution'), which is actionable. It does not explicitly mention alternatives like batch_settle, but the purpose is so specific that context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settlement.nlA
Destructive
Inspect

Execute a payment from a plain-English instruction. DPX's AI synthesis layer parses the instruction, runs the full oracle gate → compliance screen → settlement flow autonomously, and returns a receipt. Use this when the agent has a natural-language payment task rather than structured parameters. Examples: 'Pay Acme GmbH $25,000 for invoice #42', 'Send $10k to 0x... for vendor services', 'Settle the outstanding balance with Nova Trade SA'. Sandbox mode by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
sandboxNoSet false for live execution. Default: true
instructionYesPlain-English payment instruction, e.g. 'Pay Acme GmbH $25,000 USD for invoice #INV-2026-0042'
recipientAddressYesRecipient wallet address (0x...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
txHashNo
feesTotalNo
netAmountNo
aiDecisionNo
aiConfidenceNo
settlementIdNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (destructiveHint=true, idempotentHint=false), the description adds valuable behavioral context: the AI synthesis layer parses instructions, autonomously runs the oracle gate → compliance screen → settlement flow, and returns a receipt. It also notes the sandbox default, providing extra safety context beyond the annotation set.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the primary action, followed by a use-case clause, examples, and the sandbox note. The examples are slightly redundant given the schema's example, but each sentence contributes useful context without excessive verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values are covered. However, the description leaves ambiguity around the required recipientAddress: it claims to execute from a plain-English instruction alone, but the schema requires a separate structured address field. The description does not explain how these interact, which is a meaningful gap for a payment tool. Otherwise, the autonomous pipeline and sandbox default are well covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The main description repeats the 'plain-English instruction' concept and includes examples, but the schema already documents the instruction and sandbox default in detail. No meaningful parameter semantics are added beyond what the input schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Execute a payment') with a clear resource (plain-English instruction), and provides multiple concrete examples. It also distinguishes the tool from structured-parameter payment tools by emphasizing natural-language tasks, making its purpose unambiguous relative to siblings like settlement.execute or invoice.pay.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use this when the agent has a natural-language payment task rather than structured parameters,' giving a clear when-to-use condition and an implicit exclusion. However, it does not name alternative tools or describe scenarios where this tool should not be used, so it falls short of the highest bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settlement.quoteA
Read-only
Inspect

Get a binding fee quote for a DPX settlement. Returns core fee (1.50%), FX fee (0.40% cross-currency), live ESG fee (0–0.50%), license fee (0.01%), total all-in rate, net amount, oracle status, AI reasoning, and a quoteId valid for 300 seconds. Always call this before settlement.execute.

ParametersJSON Schema
NameRequiredDescriptionDefault
leiNoCounterparty LEI — triggers automatic ESG lookup if esgScore is not provided.
hasFxNoTrue if source and destination currencies differ (adds 0.40% FX fee).
esgScoreNoCounterparty ESG score 0–100. If omitted and lei or counterpartyName is provided, the ESG Oracle is queried automatically.
amountUsdYesSettlement amount in USD.
counterpartyNameNoCounterparty company name — used for ESG auto-lookup if lei is not provided.
monthlyVolumeUsdNoMonthly volume for discount tier. $1M+ = Institutional (20% off). $10M+ = Sovereign (30% off).

Output Schema

ParametersJSON Schema
NameRequiredDescription
feesNo
tierNoVolume tier: Standard | Growth | Institutional | Sovereign
quoteIdNoBinding quote ID, valid 300 seconds
amountUsdNoInput settlement amount in USD
expiresAtNoISO 8601 expiry timestamp
reasoningNoAI reasoning for fee calculation
oracleScoreNoOracle confidence 0–100
netAmountUsdNoNet amount after all fees
oracleStatusNoSTABLE | CAUTION | UNSTABLE
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so a read operation is expected. The description adds meaningful behavioral context: the quote is binding, valid for 300 seconds, includes oracle status and AI reasoning, and must precede execute. These traits are 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary purpose. The second sentence packs essential return items and validity period without filler. Every clause contributes value, making it appropriately dense yet concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a full output schema and 100% parameter schema coverage, the description fills the remaining workflow gap: it establishes the quote as a binding prerequisite to settlement.execute, defines validity (300 seconds), and highlights key business terms. No necessary context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for all six parameters, so the baseline is 3. The description adds fee percentages (e.g., 1.50% core, 0.40% FX) that relate to parameters like hasFx, but it does not explain parameter usage beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Get a binding fee quote for a DPX settlement,' a specific verb + resource. It clearly distinguishes itself from sibling tools by stating 'Always call this before settlement.execute,' and the return list (fees, quoteId, oracle status) further removes ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'Always call this before settlement.execute.' This provides a strong sequential guideline versus the main sibling. However, it does not mention alternatives or when not to use it, though the sequencing effectively implies the exclusion of direct execution without a quote.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settlement.statusA
Read-onlyIdempotent
Inspect

Look up a previous DPX settlement by settlement ID. Returns the full audit record: status, tx hash, amounts, fees, oracle conditions at time of settlement, ESG score, Claude AI reasoning, and timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
settlementIdYesSettlement ID from the settlement.execute tool (format: dpx_...)

Output Schema

ParametersJSON Schema
NameRequiredDescription
httpStatusNoHTTP status from Settlement Agent
settlementNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, non-destructive behavior. The description adds value by specifying exactly what fields the audit record contains (status, tx hash, amounts, fees, oracle conditions, ESG score, Claude AI reasoning, timestamp), giving the agent a concrete sense of the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two well-structured sentences front-load the action ('Look up') and resource ('DPX settlement'), then provide a useful list of return fields. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple lookup tool with one parameter, rich annotations, and an output schema, the description provides sufficient context. It clarifies the record scope ('previous') and what data is included, which complements the structured metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the parameter is self-explanatory with format hints (dpx_...). The description adds no further parameter semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool looks up a previous DPX settlement by ID, with a specific verb ('Look up') and resource ('DPX settlement'). It enumerates the full audit record fields, making it distinct from sibling tools like settlement.execute or settlement.quote.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes clear context: use this to retrieve an existing settlement's audit record. It does not explicitly name alternative tools, but the retrieval vs. creation/quoting distinction is evident from the action verb and the mention of 'previous' settlements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settle.subscribeAInspect

Register a webhook callback for settlement completion events. Your endpoint receives a POST with X-DPX-Signature: sha256= over the raw JSON body whenever a settlement completes. Returns a subscriptionId and webhookSecret — store the secret immediately, it is returned once.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesHTTPS endpoint to receive settlement.completed events
eventsNoEvent types (default: ["settlement.completed"])

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventsNo
webhookSecretNoHMAC secret — returned once, store immediately
subscriptionIdNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations do not provide any positive hints (all false), so the description carries the burden. It adds valuable behavioral details: the X-DPX-Signature header format, the raw JSON body, and the critical one-time return of the webhookSecret with instruction to store it immediately. This goes beyond what annotations convey and alerts the agent to an important side effect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the primary purpose. Every sentence adds value: purpose, signature/format detail, and the critical secret-storage warning. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity, the presence of an output schema, and the annotations, the description is sufficiently complete. It covers the webhook contract, the event trigger, and the one-time secret behavior. The description does not need to explain return values since the output schema exists, and it addresses likely uncertainty about signature verification and secret handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with descriptions for both 'url' and 'events'. The description reinforces the role of the url endpoint (receives POST with signature) but does not add significant 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Register a webhook callback for settlement completion events.' This uses a specific verb and resource, and the mention of 'settlement completion events' distinguishes it from other subscribe tools like intelligence.subscribe.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use the tool: to receive webhook notifications when settlements complete. It does not explicitly mention alternatives or exclusions, but the purpose is unmistakable. The absence of contrast with polling tools like settlement.status is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stability.corridorA
Read-onlyIdempotent
Inspect

Corridor-specific settlement stability score (0–100) for any currency pair. Combines the live global Stability Oracle score with corridor-specific risk adjustments covering 28 currency pairs: regulatory flags (BCB/IOF for BRL, PBoC capital rules for CNH, BCRA controls for ARS, etc.), FX liquidity score based on active trading sessions at current UTC time, cascade penalty from live macro signals, and weekend/off-hours penalty. Returns SETTLE_NOW / DELAY_24H / DELAY_48H recommendation with rationale. Distinct from oracle.stability (which is global) and market.fx (which is spot-rate focused) — this answers "is this specific corridor safe to settle through right now?"

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination currency ISO-4217 code (e.g. "BRL", "MXN", "SGD").
fromYesSource currency ISO-4217 code (e.g. "USD", "EUR", "GBP").

Output Schema

ParametersJSON Schema
NameRequiredDescription
corridorNoscore (0–100), tier, recommendation (SETTLE_NOW/DELAY_24H/DELAY_48H), regulatoryFlags, corridorNotes
componentsNoglobalOracleScore, corridorAdjustment, cascadePenalty, liquidityScore, weekendPenalty
marketContextNocascadeLevel, globalOutlook, currentUtcHour, isWeekend
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations already indicate read-only, idempotent, and non-destructive behavior, the description adds substantial context: the combination of global oracle score with corridor-specific risk adjustments, regulatory flags for specific currencies, FX liquidity based on current UTC time, cascade penalties, and weekend/off-hours penalties. This goes well beyond the annotations and discloses dynamic behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet detailed, with each sentence serving a purpose: first defines output, second explains underlying components, third lists possible recommendations, and fourth differentiates from siblings. It is front-loaded with the most important information and contains no filler. The length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a complex tool with an output schema. It covers inputs (currency pair), outputs (score and recommendation), underlying logic (regulatory, liquidity, cascade, weekend penalties), and temporal dynamics (current UTC time). It even provides examples of covered currencies. Given the presence of an output schema, the description needs not detail return values, and it adequately covers all other aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides complete descriptions for 'from' and 'to' parameters (ISO codes). The description adds context by mentioning 'any currency pair' but also '28 currency pairs' with specific regulatory examples (BRL, CNH, ARS), implying richer data for certain currencies. This adds some meaning beyond the schema, though the parameter semantics themselves are not deeply elaborated. Given 100% schema coverage, a score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Corridor-specific settlement stability score (0–100) for any currency pair.' It explicitly distinguishes itself from sibling tools by naming oracle.stability and market.fx and contrasting their scope. This makes the purpose unambiguous and differentiable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance by stating it answers 'is this specific corridor safe to settle through right now?' and explaining how it differs from oracle.stability (global) and market.fx (spot-rate focused). This tells the agent when to use this tool versus alternatives, fulfilling the 'when vs alternatives' criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stability.settlement_windowA
Read-onlyIdempotent
Inspect

Optimal settlement execution window analysis for a specific cross-border payment over the next 72 hours. Generates 18 × 4-hour time slots and scores each by composite risk: corridor stability, FX session liquidity, cascade level decay/growth based on macro outlook, weekend/off-hours penalty, and counterparty ESG tier (if LEI provided). Returns a ranked window schedule with OPTIMAL / GOOD / ACCEPTABLE / AVOID classification per slot, a best-window recommendation, and large-amount splitting guidance for settlements ≥ $5M. Use this before scheduling large cross-border settlements to minimize execution risk.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination currency ISO-4217 (e.g. "BRL").
leiNoOptional 20-char GLEIF LEI of counterparty — fetches live ESG tier to apply counterparty risk penalty.
fromYesSource currency ISO-4217 (e.g. "USD").
amountNoSettlement amount (default 1,000,000). Used for large-amount guidance ≥$5M.
currencyNoCurrency of the amount (defaults to from).

Output Schema

ParametersJSON Schema
NameRequiredDescription
windowsNo18 × 4-hour slots: startUtc, endUtc, compositeScore, tier, components, recommendation, rationale
marketContextNoglobalOracleScore, corridorAdjustment, cascadeLevel, globalOutlook, regulatoryFlags
recommendationNobestWindow (ISO datetime), bestScore, optimalCount, goodCount, summary, largeAmountNote
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds substantial context by detailing the internal logic (18 slots, composite risk scoring with corridor stability, FX liquidity, cascade level, penalties, ESG tier) and the output structure (ranked schedule, classifications, best-window, splitting guidance). This goes well beyond the annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense. It opens with the core purpose, then systematically covers slot generation, scoring factors, output, and usage guidance. Each sentence earns its place without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully covers the tool's scope (72 hours, 18 slots), composite risk factors, output types (classifications, best-window, splitting guidance), and use case. Given that an output schema exists and annotations cover safety, the description is complete and leaves no critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description reinforces that LEI influences the ESG tier penalty and that amount ≥5M triggers splitting guidance, but these are already reflected in the schema parameter descriptions. No significant additional semantic value is added beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a specific verb+resource: 'Optimal settlement execution window analysis for a specific cross-border payment over the next 72 hours.' This is clearly distinct from sibling tools like settlement.quote or stability.corridor, which focus on pricing or corridor stability rather than timing analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this before scheduling large cross-border settlements to minimize execution risk,' providing clear context for when to invoke the tool. However, it does not name alternative tools or explicitly state when not to use it, so it stops short of full exclusionary guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stability.stablecoin_routeA
Read-onlyIdempotent
Inspect

Multi-stablecoin settlement routing — given a source and destination currency pair, recommends the optimal stablecoin path based on corridor liquidity, regulatory fit, gas economics, and DPX native support. Returns a ranked list of stablecoins (USDC, EURC, BRLA, MXNC, NGNC, AEDX, PYUSD, USDT, and others) with regulatory flags, MiCA/GENIUS Act compliance status, liquidity tier, and warnings. Identifies blocked routes (e.g. USDT for EU under MiCA, BRLA before BCB Resolution 561 deadline). Use before settlement to avoid regulatory penalties and ensure optimal execution path.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination currency ISO-4217 (e.g. "EUR", "BRL", "AED").
fromYesSource currency ISO-4217 (e.g. "USD").
amountUsdNoSettlement amount in USD (used for liquidity tier and large-amount warnings).

Output Schema

ParametersJSON Schema
NameRequiredDescription
routesNoRanked stablecoin options — each with symbol, liquidityTier, regulatoryFlags, warnings, blocked status, notes
evaluatedAtNoISO timestamp
recommendationNosymbol, chain, reason, micaCompliant, geniusActCompliant
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds substantial behavioral context: it identifies blocked routes (e.g., USDT for EU under MiCA), provides compliance status, liquidity tiers, and warnings, and clarifies that it returns recommendations rather than executing settlements. This goes well beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each dense with unique information: purpose, output details, and usage guidance. It is front-loaded with the primary function and includes concrete examples of blocked routes and compliance flags without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters and an output schema, the description covers inputs, behavior, output, and usage context. It addresses regulatory edge cases, explains the recommendation logic, and gives explicit guidance on when to use it. This provides sufficient context for an AI to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter has a description. The description adds meaning by explaining that amountUsd is used for liquidity tier and large-amount warnings, bridging the parameter to the output. It also frames from/to as source and destination currency pair, reinforcing the schema but not duplicating it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a multi-stablecoin settlement routing tool that recommends the optimal stablecoin path based on specific factors (corridor liquidity, regulatory fit, gas economics, DPX support). It specifies the return value as a ranked list of stablecoins with compliance and liquidity details, distinguishing it from sibling tools like settlement.execute 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to 'Use before settlement to avoid regulatory penalties and ensure optimal execution path,' providing clear when-to-use context. However, it does not explicitly name alternative tools for actual settlement execution or state when not to use it, so it falls short of full alternatives/exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

swift.gpi_trackA
Read-onlyIdempotent
Inspect

Track a DPX settlement via SWIFT gpi-compatible status. Given a UETR (Unique End-to-End Transaction Reference), returns gpi-format payment status including pacs.002 payload that a SWIFT member bank can submit to the gpi Tracker.

Use this when a UETR was provided at payment initiation (via the uetr field in settlement.execute or POST /payments/initiate). Returns ACCP (settled), PDNG (pending), or RJCT (rejected) with full on-chain settlement details.

DPX is not a SWIFT member — the SWIFT member bank submits the returned pacs.002 to the gpi Tracker via their own gpi API access.

ParametersJSON Schema
NameRequiredDescriptionDefault
uetrYesRFC 4122 UUID UETR assigned at payment initiation, e.g. "97ed4827-7b6f-4491-a06f-b548d5a7512d".

Output Schema

ParametersJSON Schema
NameRequiredDescription
uetrNoThe UETR provided.
pacs002NoFull ISO 20022 pacs.002 payload for gpi Tracker submission.
gpiStatusNoACCP | PDNG | RJCT
dpxPaymentIdNoDPX internal payment ID.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only and idempotent annotations, the description adds key behavioral context: it returns ACCP/PDNG/RJCT statuses, includes the pacs.002 payload, and clarifies that DPX is not a SWIFT member so the counterparty bank submits the payload. This enriches the operational understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is composed of three short paragraphs, each serving a distinct purpose: what the tool does, when to use it, and an important caveat. It is front-loaded with the core purpose, contains no filler, and every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with rich annotations and an output schema, the description covers all critical aspects: the input, the output (statuses and pacs.002), usage guidance, and the SWIFT membership nuance. It is sufficiently complete for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the uetr parameter with format and example. The description supplements it by explaining when the UETR is assigned (at payment initiation via settlement.execute) and how it relates to this tool, providing additional semantic context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool tracks a DPX settlement via SWIFT gpi-compatible status, given a UETR, and returns a gpi-format payment status including the pacs.002 payload. It uses a specific verb and resource and distinguishes itself from other settlement tools by mentioning the pacs.002 payload and the SWIFT member bank submission context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use this when a UETR was provided at payment initiation' and connects it to settlement.execute or POST /payments/initiate. It provides clear context, but does not explicitly name alternatives or exclusion conditions, which is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

treasury.yield_routeA
Read-only
Inspect

Treasury Float Yield Routing Analysis — OPTIONAL, CLIENT-DIRECTED ONLY.

Analyzes whether idle settlement float can be productively deployed into a yield-bearing instrument between the current time and a scheduled settlement deadline. Returns a structured recommendation with expected yield, exit timing, liquidity assessment, slippage estimate, and a mandatory risk disclosure.

THIS TOOL DOES NOT MOVE FUNDS. It provides analysis only. All execution decisions are made by the client or agent acting on explicit instruction. DPX charges a flat fee for this analysis and does not receive any portion of yield earned.

Current supported instrument: sUSDS (Sky Protocol Savings Rate). Selected because: • Instant on-chain entry and exit (no T+1 delays) • No US person restrictions • Real asset backing (tokenized RWAs + Spark borrow rates) • Available on Base chain via bridge • No de-peg events recorded (unlike synthetic alternatives)

Safety parameters enforced: • Maximum 90% of settlement amount — 10% always stays in USDC • Early exit triggered 30 minutes before settlement deadline (not 15) • Slippage guard: if DEX USDC/USDS quote shows >0.1% slippage, recommendation = HOLD • Minimum viable window: 2 hours (shorter windows do not justify entry/exit gas costs)

Not recommended if: • Settlement window is < 2 hours • Amount is < $50,000 (gas costs erode yield) • Client has not acknowledged the risk_disclosure object in this response • Settlement is time-critical with zero tolerance for delay

ParametersJSON Schema
NameRequiredDescriptionDefault
dryRunNoIf true, returns analysis without any on-chain queries. Useful for planning. Default: false.
amountUsdcYesSettlement amount in USDC. Minimum $50,000 for yield routing to be viable after gas costs.
riskToleranceNoconservative = sUSDS only (T-bill / RWA backed, instant exit). moderate = sUSDS with higher slippage tolerance (up to 0.15%). Default: conservative.
settlementDeadlineUtcYesISO 8601 UTC timestamp of when USDC must be ready for settlement (e.g. "2026-06-15T20:00:00Z"). The tool will recommend exiting 30 minutes before this.

Output Schema

ParametersJSON Schema
NameRequiredDescription
exitByNoRecommended exit timestamp (30 min before deadline).
notViableNoTrue if net yield is negative (gas exceeds expected yield).
instrumentNoRecommended instrument (currently always sUSDS).
windowHoursNoAvailable window in hours (deadline minus now minus 30-min buffer).
netYieldUsdcNoExpected yield minus gas costs.
currentApyPctNoCurrent Sky Savings Rate APY (live, from Sky Protocol).
amountReservedNoAmount kept in USDC regardless (10% floor).
amountRoutableNoAmount to deploy (90% of input, USDC). 10% stays in USDC.
recommendationNoROUTE (deploy float), HOLD (stay in USDC), or INSUFFICIENT_WINDOW.
gasEstimateUsdcNoEstimated Base L2 gas cost for entry + exit in USDC.
risk_disclosureNoMUST be surfaced to the client before any action is taken.
estimatedSlippageNoEstimated DEX slippage for USDC→USDS→USDC round trip (%).
expectedYieldUsdcNoExpected yield for this window at current APY.
instrument_detailNoBackground on the recommended instrument.
slippageGuardTrippedNoTrue if slippage > 0.1% — recommendation will be HOLD.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and destructiveHint annotations, the description discloses critical behavioral traits: it charges a flat fee, does not share in yield, enforces a 90% maximum deployment, uses a 30-minute early exit, and applies a slippage guard that triggers a HOLD recommendation. It also mandates a risk_disclosure object in responses. This fully informs the agent of the tool's operational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear introduction, a bold section on what the tool does NOT do, bullet points for instrument rationale and safety parameters, and a concise 'Not recommended if' list. Every sentence conveys necessary information without redundancy, making it long but efficient for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers virtually every aspect an agent needs: purpose, scope, usage conditions, exclusions, cost, safety parameters, supported instrument rationale, and expected response content. It mentions the mandatory risk disclosure and structured recommendation fields, aligning with the output schema. There are no significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds meaningful context that enhances parameter understanding: it states the $50,000 minimum for amountUsdc, clarifies that settlementDeadlineUtc is when USDC must be ready (with 30-minute exit automatically), and explains the riskTolerance enum behavior for slippage thresholds. This additional context justifies a score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Analyzes whether idle settlement float can be productively deployed into a yield-bearing instrument between the current time and a scheduled settlement deadline.' It explicitly differentiates itself from execution tools by stating 'THIS TOOL DOES NOT MOVE FUNDS' and provides a clear deliverable: a structured recommendation with yield, exit timing, liquidity, slippage, and risk disclosure.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: it is 'OPTIONAL, CLIENT-DIRECTED ONLY' and applies to idle settlement float before a deadline. It also lists clear 'Not recommended if' conditions: settlement window < 2 hours, amount < $50,000, unacknowledged risk disclosure, or time-critical settlement. This gives the agent strong decision rules for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    GTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.
    11
    111
    1
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources