agent-escrow
Server Details
Trustless escrow & settlement for A2A transactions: exactly-once state machine, frozen fees, tamper-
- Status
- Healthy
- Uptime
- 100.0% over 36 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- jdhart81/viridis-agent-fleet
- GitHub Stars
- 0
- Server Listing
- viridis-agent-fleet
TDQS
Scored across 9 tools
Each tool targets a distinct action or query on the escrow lifecycle: opening, funding, releasing, refunding, disputing, listing, status, audit, and self-description. There is no overlap where two tools could be confused for the same operation.
Most tools follow a clear verb_noun pattern (open_escrow, fund_escrow, release_escrow, etc.). The only deviation is escrow_status, which is a noun phrase, but it is still unambiguous and consistent in style with the rest.
Nine tools is appropriate for a focused escrow management server. Each tool covers a necessary part of the lifecycle, and there is no bloat or redundancy.
The tool surface covers the full escrow workflow: open, fund, release, refund, dispute, status, listing, and audit verification. No critical operations like cancellation or payment reference handling are missing; refunding an OPEN escrow effectively acts as a cancel.
Available Tools
9 toolsdescribe_agentDInspect
Fleet-standard self-description.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It merely says 'self-description,' which does not state whether the operation is read-only, what data it returns, whether it has side effects, or any constraints. No behavioral traits are disclosed beyond the bare concept.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than effective conciseness. The phrase 'Fleet-standard self-description' is a fragment that conveys almost no useful information. Every word does not earn its place because the phrase is vague and lacks substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description is too minimal to be considered complete. It does not explain what 'self-description' means, how the output is structured, or when to invoke the tool. The presence of the output schema helps, but the description itself leaves critical context unresolved, especially given the zero annotations and no usage guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline for this dimension is 4 per the rubric. The description adds no parameter semantics, but none are needed since the input schema is empty and coverage is trivially 100%. The description does not hinder parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Fleet-standard self-description' is essentially a tautology of the tool name 'describe_agent'; it restates the concept without specifying what the self-description contains or what action is performed. The modifier 'Fleet-standard' adds branding but not functional clarity, making it insufficiently distinct from the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention context, prerequisites, or exclusions, and none of the sibling tools are referenced. This is a complete absence of usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dispute_escrowBInspect
Move a FUNDED escrow to DISPUTED. An arbiter (agent-arbitration-agent) then resolves it to release or refund.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| escrow_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should detail behavioral traits. It mentions the arbiter resolution but does not disclose side effects, authorization needs, or state constraints. The description is vague on what happens if the escrow is not in FUNDED state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First sentence states the primary action; second provides follow-up context. No filler words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple state transition, the description covers the main effect but omits prerequisites (e.g., escrow must be funded) and error conditions. The presence of an output schema partially compensates, but more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description provides no parameter explanations. The reason parameter is optional but its purpose is not described. The description adds no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Move a FUNDED escrow to DISPUTED.' It uses a specific verb and resource, and distinguishes from siblings like refund_escrow and release_escrow by specifying the transition to disputed state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an escrow is funded and needs to be disputed. It does not explicitly exclude other states or mention alternatives, but the context is clear enough for the intended use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
escrow_statusCInspect
Current record for an escrow.
| Name | Required | Description | Default |
|---|---|---|---|
| escrow_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It does not state that the tool is read-only, nor does it mention any side effects, permissions, or rate limits. This is a critical omission for a tool interacting with an escrow system.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, but it is under-specified. Conciseness is positive, but the lack of necessary detail makes it insufficient for effective tool selection and use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low schema coverage, absence of annotations, and the existence of an output schema, the description is severely incomplete. It does not explain the function, parameter, or return value, leaving the agent without enough context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the parameter 'escrow_id' has no description in the schema. The tool description fails to explain what an escrow ID is or how to obtain it, leaving the agent with no semantic guidance beyond the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Current record for an escrow' clearly indicates the tool retrieves the current state of an escrow. It distinguishes from sibling tools that modify (fund, release) or list multiple escrows, but lacks an explicit verb like 'get' or 'retrieve'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not specify when to use this tool versus similar tools like 'list_escrows' or 'describe_agent', nor does it mention any prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fund_escrowAInspect
Mark an OPEN escrow as FUNDED (idempotent). payment_ref links the payment-rail transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| escrow_id | Yes | ||
| payment_ref | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that the tool is idempotent, which is a key behavioral trait. However, with no annotations, it lacks details on side effects, authorization requirements, or error handling. The return value is not described, though an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action and state, and contains no redundant information. Every word contributes to understanding the tool's purpose and key parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown but indicated), the tool's return value need not be described. The description covers the essential behavior, but could explicitly state prerequisites (e.g., escrow must be OPEN) to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It does so for payment_ref by stating it links to the payment-rail transaction. However, escrow_id is left unexplained beyond its context, and no parameter descriptions are provided for either parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action as marking an OPEN escrow as FUNDED, with idempotency. It specifies the resource (escrow) and the state transition. The sibling tools include other escrow actions (dispute, refund, release), distinguishing this as a dedicated funding step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool should only be used on OPEN escrows and mentions idempotency. However, it does not explicitly state when to use this tool over alternatives (e.g., release_escrow), nor does it provide conditions for 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.
list_escrowsAInspect
List escrows, optionally filtered by state (OPEN|FUNDED|RELEASED|REFUNDED|DISPUTED).
| Name | Required | Description | Default |
|---|---|---|---|
| state | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; 'list' implies read-only but no explicit behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a simple list tool with output schema; could mention no filter returns all.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning by listing allowed state values, which are not in schema enums.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists escrows with optional state filter. Distinguishes from sibling tools which are specific actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for listing escrows; sibling names suggest alternatives but no explicit when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_escrowBInspect
Open an escrow between payer and payee. amount_minor is a positive integer in minor units (cents). The platform fee is computed and FROZEN at open (ceil bps). Returns the escrow_id (state OPEN). RETRY-SAFE: pass open_ref= and a replayed open returns the ORIGINAL escrow (duplicate=true) instead of minting another one (E10).
| Name | Required | Description | Default |
|---|---|---|---|
| payee | Yes | ||
| payer | Yes | ||
| terms | No | ||
| fee_bps | No | ||
| currency | No | USD | |
| deadline | No | ||
| open_ref | No | ||
| amount_minor | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description effectively discloses key behaviors: fee freezing at open (ceil bps), return of escrow_id with state OPEN, and retry safety via open_ref. Missing are permission requirements or error scenarios, but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, front-loading the main action. Every sentence adds value, though some parameter details could be integrated without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description appropriately mentions return values. However, it fails to cover all parameters (only 2 of 8 discussed) and omits side effects or state transitions, making it incomplete for a tool with 8 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the description compensates only for amount_minor (positive integer in cents) and open_ref (retry safety). The other six parameters (payer, payee, terms, fee_bps, currency, deadline) are left unexplained, leaving significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action (open an escrow between payer and payee) and includes specific details about amount_minor, fee behavior, return value, and retry safety. It distinguishes itself well within the context of escrow operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like fund_escrow or release_escrow. It lacks explicit context for when-not-to-use or relationships to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refund_escrowAInspect
Refund an OPEN/FUNDED/DISPUTED escrow to the payer (exactly-once). Refunding an OPEN escrow is a cancel.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| escrow_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the exactly-once guarantee and clarifies behavior for OPEN escrows, which is useful. But with no annotations, it lacks deeper behavioral context such as idempotency, destructive nature, or side effects on escrow status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, front-loaded with the primary action. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with an output schema, the description covers eligible states and a key guarantee. It could mention error conditions or side effects more explicitly, but overall it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description does not explain the parameters. 'escrow_id' is implied by the tool name, but 'reason' is completely unexplained, leaving the agent without guidance on its purpose or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Refund' and the resource 'escrow' with specific states (OPEN/FUNDED/DISPUTED). It distinguishes from siblings like 'release_escrow' by specifying refund to the payer and noting that refunding an OPEN escrow is a cancel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: refunding escrows in specific states to the payer, with an exactly-once guarantee. However, it does not explicitly state when not to use it or mention alternatives like 'release_escrow' for releasing to the payee.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
release_escrowAInspect
Release a FUNDED/DISPUTED escrow to the payee (exactly-once — a repeat release returns the existing terminal record, never a double payout).
| Name | Required | Description | Default |
|---|---|---|---|
| escrow_id | Yes | ||
| delivery_proof | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully discloses the exactly-once behavior and idempotency (repeat returns same record). It does not cover authorization or side effects, but the core behavioral trait is well communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the main action and includes a clarifying parenthetical. Every word adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions the return of an existing terminal record, which helps with output understanding. However, it lacks prerequisites (e.g., escrow must be FUNDED or DISPUTED) and does not mention the output schema. Given the presence of an output schema and sibling tools, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It does not explain the parameters (escrow_id, delivery_proof) beyond their names. The context implies escrow_id is the identifier, but no additional semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (release), the resource (escrow), and the allowed states (FUNDED/DISPUTED). It distinguishes the tool from siblings like dispute_escrow or refund_escrow by specifying the exact scenario.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when the escrow is in FUNDED or DISPUTED state and mentions exactly-once semantics for safe retries. However, it does not explicitly state when not to use this tool or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_auditBInspect
Validate the tamper-evident audit hash chain for an escrow.
| Name | Required | Description | Default |
|---|---|---|---|
| escrow_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only states the tool validates an audit chain, but does not disclose behavioral traits such as read-only vs mutating, error handling (e.g., what happens if validation fails), or whether it requires special permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It is front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even with an output schema present, the description lacks completeness. It does not explain what constitutes a valid or invalid audit chain, what the return value indicates, or any preconditions. For a validation tool, more context is needed to understand the outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds minimal meaning. It implies escrow_id is the identifier, but does not clarify its format, required state (e.g., must exist), or any validation constraints. A single parameter with no additional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('validate') and the specific resource ('tamper-evident audit hash chain for an escrow'). It distinguishes from sibling tools like fund_escrow or escrow_status, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not specify prerequisites or context (e.g., after an escrow is opened or before release). Missing information on when validation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
open_escrow1 field changed- added
Input schema / properties / open_refAdded value: +{ + "default": "", + "title": "Open Ref", + "type": "string" +}
9 tool updates
- First observed
describe_agent - First observed
dispute_escrow - First observed
escrow_status - First observed
fund_escrow - First observed
list_escrows - First observed
open_escrow - First observed
refund_escrow - First observed
release_escrow - First observed
verify_audit
Related MCP Connectors
Deterministic, machine-verifiable dispute resolution for A2A escrows.
Trust-minimized USDC escrow for autonomous agent transactions
Agent-to-agent dispute resolution and arbitration with on-chain settlement
Verifiable delivery for the agent economy: commit-reveal content notarization. Sellers commit to a d
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMulti-party escrow and settlement for autonomous agent transactions with x402 micropayments and dispute resolution on Base, Ethereum, or Solana.MIT
- AlicenseAqualityAmaintenancePrivate escrow for AI agent work on Beam mainnet an agent locks payment, the worker locks collateral, and delivery settles on hash match or review, with M of N arbitrator voting and slashable worker bonds as the dispute backstop. 22 tools cover the full contract lifecycle, and dispute voting is deliberately not an agent tool, so an agent can never rule in its own favour.26MIT
- AlicenseNot gradedqualityDmaintenanceAI agent commerce platform — 141 tools for payments, escrow, identity, marketplace, and Z3 formal verificationMIT

evermint-mcpofficial
AlicenseNot gradedqualityDmaintenanceTamper-evident receipts for AI agent actions. The notary layer for agent-to-agent transactions.33 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.