agpay
Server Details
Payments held between two agents: buyer pays, seller delivers, buyer confirms. Pay per call.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
Each tool targets a clearly distinct action on the deal resource: create, read (get/list), confirm, add a statement, or send feedback. There is no meaningful overlap between any pair, so an agent can select reliably.
Five of six tools follow a clean verb_noun snake_case pattern (add_statement, confirm_deal, create_deal, get_deal, list_deals). The lone outlier 'feedback' is a bare noun, a minor deviation that still reads clearly.
Six tools is well-scoped for a focused escrow-deal service, with each tool earning its place across the deal lifecycle plus a feedback channel. Nothing extraneous and nothing obviously thin.
The core lifecycle (create, get, list, confirm) is covered, but create_deal explicitly tells the buyer to 'keep the secret to confirm or dispute the deal' while no dispute tool exists, and there is no cancel/refund path. These referenced-but-missing operations are notable gaps.
Available Tools
6 toolsadd_statementAdd a statementAInspect
Add a statement to a deal as its buyer, up to 2000 characters. Free; needs the deal id, the buyer secret and the text. Statements are visible to the operator only.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | the statement, 1 to 2000 characters | |
| secret | Yes | the buyer secret the buyer chose when creating the deal (agp_ and 32 hex) | |
| deal_id | Yes | the deal id, as returned when the deal was created |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses three things the structured data does not: the operation is free, the credential type required (buyer secret), and the visibility rule that statements are 'visible to the operator only'. It does not mention that adding is non-idempotent, but the annotations already flag idempotentHint=false and the verb 'add' matches, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded clauses covering constraint, cost, required inputs, and visibility. Nothing is padded and the size limit plus the access rule appear before the parameter recap.
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 three-parameter mutation with an output schema absent, the description covers auth, cost, size limits, and visibility, which is most of what an agent needs. It does not state what the call returns (e.g., a statement id) or confirm whether repeat calls create duplicates, so a small gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters including the 1-2000 character bound on text and the agp_+32 hex format for secret. The description merely restates which inputs are needed, adding no syntax or format detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource ('Add a statement to a deal') with actor scope ('as its buyer') and a hard size bound. It is clearly distinguishable from the sibling set, which all operate on deals (create/confirm/get/list) rather than on buyer-authored statements.
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 caller must be the buyer's side of the deal via 'as its buyer' and tells the agent the operation is 'Free', which is useful framing. It never says when to prefer this over other deal tools or when not to call it, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
confirm_dealConfirm a dealAInspect
Confirm a deal as its buyer: the seller is paid now and the deal closes. Free; needs the deal id and the buyer secret. Confirming is final.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes | the buyer secret the buyer chose when creating the deal (agp_ and 32 hex) | |
| deal_id | Yes | the deal id, as returned when the deal was created |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false; the description adds real context beyond that — payment to the seller, deal closure, zero cost, and that the action is irreversible. It doesn't cover authorization mechanics beyond the buyer secret or what a repeat call does, so it isn't exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, zero filler, and the outcome ('seller is paid now and the deal closes') is front-loaded ahead of cost and prerequisites.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing the result and does so (seller paid, deal closed, irreversible), plus cost and required credentials. It leaves only minor gaps such as error/failure behavior on a re-confirm.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented with format details (agp_ + 32 hex). The description only restates that the deal id and buyer secret are required, adding no syntax or format meaning beyond the schema — the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Confirm a deal') and immediately states the concrete effect: 'the seller is paid now and the deal closes.' That distinguishes it from get_deal/list_deals/create_deal in practice, though it never names or contrasts a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the actor/role precondition ('as its buyer'), the cost ('Free'), the required inputs, and the irreversibility ('Confirming is final') — enough context to know when this applies. It stops short of naming when NOT to use it or pointing to alternatives like get_deal for inspection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_dealOpen a dealAInspect
Open an escrow deal with a seller agent. Pay in stablecoins with x402 like the HTTP route: call without a payment to get the quote, then again with the signed payment in _meta. The answer is the receipt; act only on state funded. Choose the buyer secret yourself and send only its SHA-256 hash as secret_hash; keep the secret to confirm or dispute the deal.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | No | a public reference; never put a secret in it | |
| instant | No | the job is delivered at once and may be confirmed at once | |
| network | Yes | ||
| amount_usd | Yes | what the seller receives on release, in dollars with at most 2 decimals | |
| secret_hash | Yes | SHA-256 hex of the secret you keep to confirm or dispute the deal | |
| review_hours | No | hours you have to dispute after delivery | |
| deadline_hours | No | hours from funding until the seller must deliver | |
| seller_address | Yes | the seller's EVM address; it proves control of it with one signature later |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safety profile (write, non-idempotent, non-destructive, closed-world). The description adds substantial behavior beyond that: the x402 stablecoin payment flow, the required two-call quote-then-pay sequence, the receipt as the response, the state gate ('act only on state funded'), and the secret-handling obligation. This is exactly the extra context the annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the purpose, then flows into payment sequence, response, and secret handling with no filler sentences. Phrasing is dense and a little jargon-heavy ('x402 like the HTTP route'), which costs a point, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly supplies return-value guidance ('The answer is the receipt') and the state semantics to act on. For an 8-parameter escrow-creation tool with a payment flow, this covers the essentials, though it leaves the optional timing/instant parameters to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 88%, so the schema already carries most parameter meaning and a baseline of 3 applies. The description adds marginal value by explaining that the buyer picks the secret and sends only its SHA-256 hash, and it references the out-of-schema '_meta' payment field, but it does not clarify the optional review_hours, deadline_hours, instant, or ref parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource: 'Open an escrow deal with a seller agent.' Combined with the title 'Open a deal', an agent can clearly tell this is the creation tool versus confirm_deal, get_deal, list_deals, add_statement or feedback. It does not name siblings explicitly, so it falls just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete invocation guidance: call without payment to get the quote, then again with the signed payment in _meta, and 'act only on state funded.' This is strong operational context for a payment-gated tool. It does not, however, explicitly name alternatives or when-not to use this tool versus a sibling, keeping it below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
feedbackSend feedbackInspect
Free. Tell the people who run this service what worked, what failed or what you miss: a bug, an idea or a thanks. A person reads it. No payment, no account; limited to a few messages an hour.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | other | |
| route | No | the route the feedback is about, if any | |
| contact | No | optional: how we can reach you or your operator | |
| message | Yes | what worked, what did not, what you miss; no secrets or private data |
get_dealGet a dealARead-onlyInspect
Get the status of a deal: its state, amounts, deadlines and outcome. Free; needs only the deal id. Act only on state funded.
| Name | Required | Description | Default |
|---|---|---|---|
| deal_id | Yes | the deal id, as returned when the deal was created |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnlyHint=true, destructiveHint=false). The description adds value beyond them: the call is free, needs only the id, and crucially warns the agent only to act on deals in 'funded' state. It doesn't describe response shape or failure modes (e.g., unknown deal id).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short clauses, front-loaded with the purpose, then cost, then the actionable state constraint. Every sentence carries distinct information and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully previews the returned fields (state, amounts, deadlines, outcome), covering the main gap. For a trivial single-param read tool this is close to complete; only error/unknown-id behavior is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so deal_id's meaning is fully documented in the schema. 'Needs only the deal id' reinforces the single-parameter shape but adds no format, sourcing, or validation detail beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get the status of a deal') and enumerates the returned surface (state, amounts, deadlines, outcome), which cleanly separates it from list_deals and the mutation siblings (create_deal, confirm_deal). Siblings are not named explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Act only on state funded' gives a concrete precondition for acting on the result, and 'Free; needs only the deal id' tells the agent the call is cheap and requires no extra context. It does not state when to prefer this over list_deals for a single deal, so guidance is clear but not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dealsList dealsARead-onlyInspect
List the deals of an address, as seller or as buyer, newest first. Free; give exactly one of seller or buyer, an address. Everything except statements is visible to anyone who knows the address.
| Name | Required | Description | Default |
|---|---|---|---|
| buyer | No | the buyer address (0x...) | |
| limit | No | ||
| before | No | the next_before id of the previous page | |
| seller | No | the seller address (0x...) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read (readOnlyHint=true, destructiveHint=false). The description adds value beyond them: ordering ("newest first"), cost ("Free"), and a visibility rule ("Everything except statements is visible to anyone who knows the address"). It does not describe the result shape or pagination depth, keeping it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no padding; the primary action and the mutual-exclusivity constraint are front-loaded. Every clause carries information (scope, ordering, cost, visibility).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description covers ordering, cost, input constraint and visibility. It leaves the shape of a returned deal and the pagination mechanism (the before/limit cycle) unstated, which is a modest gap given the missing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so most parameters are self-documented. The description adds a genuine constraint the schema does not express: seller and buyer are mutually exclusive and exactly one is required, even though both are optional strings in the schema. It clarifies pagination only implicitly via "newest first".
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list deals), the scope (of an address, as seller or as buyer) and the ordering (newest first). It is clearly distinguishable from get_deal by being plural/listing, though it never names the sibling it replaces. No sibling differentiation, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete call constraint ("give exactly one of seller or buyer") and notes the call is free, which is useful. However, it offers no when-to-use/when-not guidance relative to get_deal or confirm_deal, so usage is only implied.
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.
6 tool updates
- First observed
add_statement - First observed
confirm_deal - First observed
create_deal - First observed
feedback - First observed
get_deal - First observed
list_deals
Related MCP Connectors
Agent-to-agent network: find agents, negotiate deals, pay per call, escrow and payouts.
Stablecoin escrow payments the buyer can dispute, with a signed receipt. Pay a wallet or an email.
Pay-per-call APIs and MCP services for agents, no accounts or keys, with verifiable receipts.
Escrow, verification, and settlement platform for AI agents hiring other AI agents.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA per-call payment trust and reputation API for AI agents, allowing agents to check if a counterparty is safe to pay before making a payment.2 npm2MIT
- AlicenseAqualityCmaintenanceEnables AI assistants such as Claude, Cursor, and Windsurf to create and fund agent wallets, check balances, and move money idempotently between wallets. It also lets them find and hire people by skill, rate, and rating through posted jobs with escrowed budgets, deliverables, payment release, and disputes.1348 npmMIT
- AlicenseNot gradedqualityCmaintenanceMulti-party escrow and settlement for autonomous agent transactions with x402 micropayments and dispute resolution on Base, Ethereum, or Solana.MIT
- AlicenseNot gradedqualityBmaintenanceEnables multi-party conditional escrow locking, autonomous proof-of-delivery release triggers, referral fee splits, and dispute freeze protection for agentic commerce and enterprise settlement workflows.7MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.