Skip to main content
Glama

Server Details

Read-only on-chain receipt check for x402 payments; confirm settlement before trusting a tx.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
98.6% over 24 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
xka0085-byte/agenttoll
GitHub Stars
0
Server Listing
ReceiptRail — x402 Delivery Receipts on Solana

TDQS

A4.1/5.0

Scored across 4 tools

Disambiguation4/5

get_receipt, issue_receipt, and verify_receipt have clearly distinct actions and descriptions. verify_receipt and verify_x402_receipt both verify receipts, but descriptions clearly distinguish on-chain AgentToll verification from x402 JWS-extension verification, so misselection is possible but unlikely.

Naming Consistency4/5

All tools use snake_case with a verb-first pattern: get_receipt, issue_receipt, verify_receipt, verify_x402_receipt. The only minor deviation is the extra protocol qualifier in verify_x402_receipt, but the overall convention is predictable.

Tool Count4/5

Four tools is slightly thin but well within the typical 3-15 scoped range for a focused receipt service. Each tool covers a distinct operation (issue, get, verify on-chain, verify x402 format).

Completeness4/5

The core lifecycle is covered: issuing a receipt, fetching it by ID or payment reference, and verifying it both on-chain and in x402 format. A listing/search operation by buyer or seller is missing, but agents can work around this with individual lookups.

Available Tools

4 tools
get_receiptGet receipt detailsAInspect

Fetch full receipt details: digests, checks, outcome, amount, buyer, seller, timestamp, PDA. Look up by receipt_id, or by x402_payment_ref (always works — the receipt lives on-chain). Read-only, no cost.

ParametersJSON Schema
NameRequiredDescriptionDefault
receipt_idNoReceipt id, e.g. r_abcdef1234567890
payment_refNox402_payment_ref of the transaction (use this if receipt_id unknown; resolved on-chain)

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It states 'Read-only, no cost' and 'always works — the receipt lives on-chain', which informs the agent about safety and reliability. It does not mention failure modes or return format details, but for a read-only tool 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?

Two sentences with zero waste. The first sentence states what is returned, the second explains lookup methods and safety. Critical information is front-loaded and every phrase adds value.

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

Completeness4/5

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

The description lists the returned fields, both lookup methods, and discloses read-only status. With no output schema, this is sufficient for an agent to know what to expect. Minor gaps like precedence when both parameters are provided are not addressed, but the tool's simplicity makes this acceptable.

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

Parameters4/5

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

Schema coverage is 100%, so both parameters have descriptions. The description adds value by explaining that payment_ref is the more reliable lookup method and provides an example format for receipt_id. This goes beyond the schema's basic type 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 states a specific verb (Fetch) and resource (full receipt details) and enumerates the specific fields returned (digests, checks, outcome, amount, buyer, seller, timestamp, PDA). This clearly distinguishes it from sibling tools issue_receipt and verify_receipt, which focus on creation and verification respectively.

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

Usage Guidelines4/5

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

The description provides clear lookup guidance: use receipt_id or x402_payment_ref, and explicitly notes that payment_ref always works because the receipt lives on-chain. It does not explicitly contrast with siblings, but the purpose is distinct and the usage context is well-defined.

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

issue_receiptIssue delivery receiptAInspect

Anchor a SHA-256 digest of delivered content plus the x402 settlement reference on Solana. Returns a permanent, publicly verifiable receipt (poll until outcome === "settled"). Costs 0.001 USDC via x402; if x402_payment_signature is omitted, returns the payment challenge instead (pay 0.001 USDC to the service address, then call again with the payment tx signature).

ParametersJSON Schema
NameRequiredDescriptionDefault
buyerNoOptional buyer identifier (wallet address)
sellerNoOptional seller identifier
x402_payment_refYesUnique reference for this transaction (1-128 chars)
deliverable_digestYesSHA-256 hex digest (64 chars) of the delivered content
x402_payment_signatureNoSolana tx signature of the 0.001 USDC payment to the service address. Omit to receive the payment challenge.

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries burden. It discloses that it costs 0.001 USDC, requires x402 payment, and returns a payment challenge if signature omitted. However, it does not describe what happens on failure (e.g., insufficient payment, invalid digest), or the exact format of the challenge, though polling behavior is mentioned. Partial disclosure.

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?

Compact two-sentence description that front-loads the core purpose and then explains the payment flow. Good use of parentheses. Slightly dense, but efficient.

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?

For a transactional tool with payment and multiple optional params, description covers the essential flow but misses failure scenarios, return structure details, and any rate limits. Given no output schema and no annotations, there is room for more, but the core usage is 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% and each parameter has a decent description. Description clarifies that x402_payment_signature is optional and its omission triggers challenge issuance, which adds value. But it doesn't elaborate on buyer/seller semantics beyond schema—acceptable given high 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?

Description clearly states verb 'anchor', resource (SHA-256 digest + x402 settlement reference on Solana), and outputs a permanent publicly verifiable receipt. Differentiates from siblings: get_receipt retrieves, verify_receipt verifies, issue_receipt anchors.

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?

Description explicitly explains when to use: to issue a receipt for delivered content after payment. It also specifies the two-step flow: omit signature to get challenge, then call again with signature. No alternatives mentioned but the usage context is clear and complete.

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

verify_receiptVerify delivery receiptAInspect

Verify an AgentToll receipt against live Solana state: PDA owner must be the AgentToll program and the stored digest must match the receipt. Look up by receipt_id, or by x402_payment_ref (always works — the receipt lives on-chain). Read-only, no cost.

ParametersJSON Schema
NameRequiredDescriptionDefault
receipt_idNoReceipt id, e.g. r_abcdef1234567890
payment_refNox402_payment_ref of the transaction (use this if receipt_id unknown; resolved on-chain)

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it delivers: discloses read-only nature, no cost, on-chain verification logic, and the fallback lookup behavior. It does not state failure semantics (error vs. boolean result) or return format, which is a minor gap for a verify tool given zero annotation coverage.

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

Conciseness5/5

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

Three sentences with zero waste: core verification logic front-loaded, then lookup methods, then a concise safety note. Every sentence earns its place and the most important information appears first.

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?

For a tool with no annotations and no output schema, the description covers verification semantics and lookup well, but does not explain what the agent receives on success or failure, nor whether both parameters can be provided together. This is a meaningful gap for an MCP tool with no structured output contract.

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 both parameters are well documented in the schema, so the baseline is 3. The description adds the nuance that payment_ref 'always works' and clarifies the relationship between the two lookups, adding marginal value beyond the schema but not compensating for anything missing.

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?

States a specific verb (verify) and resource (AgentToll receipt against live Solana state), then defines what verification means concretely: PDA owner must be the AgentToll program and the stored digest must match. This gives an agent a precise mental model and implicitly differentiates from siblings get_receipt (fetch) and issue_receipt (create).

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 lookup guidance: primary key receipt_id, with payment_ref as the reliable fallback ('always works — the receipt lives on-chain'), reinforced by the schema's 'use this if receipt_id unknown.' However, it does not explicitly state when to choose verify_receipt over get_receipt, leaving the verify-vs-fetch decision to inference.

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

verify_x402_receiptVerify signed x402 receipt (official offer-receipt format)AInspect

Verify a signed receipt in the official x402 offer-receipt extension format (docs.x402.org/extensions/offer-receipt, npm @x402/extensions). Accepts {format:"jws", signature} artifacts (JWS with EdDSA/Ed25519 or ES256/P-256), checks structure, required payload fields (version/network/resourceUrl/payer/issuedAt), cryptographic signature, optional freshness window, and optional expected values. Public key resolves automatically from did:key/did:web/did:jwk kid, or pass public_key_jwk directly. Read-only, no cost.

ParametersJSON Schema
NameRequiredDescriptionDefault
expectNoOptional assertions: {resourceUrl?, payer?, network?} — verification fails if the payload contradicts them.
receiptYesSigned receipt artifact, e.g. {"format":"jws","signature":"<JWS compact serialization>"}
public_key_jwkNoOptional JWK to verify with. Omit to resolve from the kid (did:key:z... Ed25519, did:web, did:jwk).
max_age_secondsNoFreshness window for issuedAt (default 3600; pass 0 to skip the freshness gate).

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and discloses that it is read-only and no-cost, checks structure, payload fields, cryptographic signature, freshness, and expected values, and resolves keys from DIDs. It does not describe the exact return shape or error output, which remains a gap.

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 dense but front-loaded with the core purpose and then layers relevant verification details without obvious filler. It could be slightly tightened, but every clause contributes useful 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 nested-input verifier with no annotations and no output schema, the description covers inputs, verification stages, key resolution, freshness, and expected-value assertions thoroughly. The main omission is the success/return format, which is not fully specified.

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 already 100%, but the description adds supported algorithm details (EdDSA/Ed25519, ES256/P-256) and explains automatic public-key resolution from did:key/did:web/did:jwk when public_key_jwk is omitted. These details go beyond the schema text.

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 ('Verify') and resource ('signed receipt') constrained to the official x402 offer-receipt extension format. This scoping distinguishes it from the generic sibling verify_receipt without needing to name it explicitly.

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 scopes use to the x402 offer-receipt extension format and cites the docs/npm package, giving the agent enough context to choose this over a generic verifier. However, it does not explicitly say when not to use it or name alternative siblings.

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. 1 tool update
    • Addedverify_x402_receipt
  2. 3 tool updates
    • First observedget_receipt
    • First observedissue_receipt
    • First observedverify_receipt

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.