PaymentOracle — Verifiable Multi-Rail Payment Receipts
Server Details
PaymentOracle — ES256K-signed receipts for x402 payments on USDC+EURC (Base) and XRP+RLUSD (XRPL).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- ToolOracle/paymentoracle
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 3.7/5 across 6 of 6 tools scored.
Each tool has a distinct, non-overlapping purpose: health check, quoting payment intents, verifying transactions, issuing receipts, retrieving receipts, and getting the latest proof. No two tools could be confused.
All tool names use consistent snake_case and follow a verb_noun pattern (get_, issue_, quote_, verify_) except health_check which is noun_noun but still clear and fits the style.
With 6 tools, the server is well-scoped for its purpose. Each tool corresponds to a distinct operation in the payment receipt lifecycle, and there are no redundant or missing core functions.
The tool set covers the essential workflow: quote, verify, issue, retrieve, plus health and proof. Missing are operations like listing intents or canceling payments, but these are not critical for the primary use case.
Available Tools
6 toolsget_proof_latestBInspect
Get the most recent verified payment as a self-contained ES256K-signed proof. Liveness signal: if proof is recent, the service is signing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates the tool is a read operation returning a signed proof but does not disclose error behavior, idempotency, or what happens if no proof exists. The behavioral context is minimal.
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 with no wasted words. The first sentence states the core purpose, and the second adds a contextual usage hint. Perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description is relatively sparse. It explains what the tool returns and one use case, but lacks details on error handling, proof format, or integration with sibling tools. Adequate but not comprehensive.
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?
There are zero parameters in the input schema, so the baseline is 4. The description does not need to add parameter semantics, and the coverage is trivially 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the most recent verified payment as a self-contained ES256K-signed proof. The verb 'get' and the specific resource are unambiguous, but it does not explicitly differentiate from sibling tools like get_receipt.
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 mentions liveness signal as a use case but does not provide explicit guidance on when to use this tool versus alternatives like get_receipt or verify_payment. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_receiptAInspect
Fetch a previously-issued receipt by id. Returns the full signed receipt JSON. The receipt body can be canonicalised, hashed (sha256), and verified offline against the published JWK at /.well-known/payment-oracle.json#receipts.public_jwk.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_id | Yes | Receipt id (r_<hex>) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses the return type (signed receipt JSON) and mentions additional capabilities like offline verification, hashing, and canonicalization, providing good behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the core purpose and return type, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with no output schema, the description adequately explains what is returned and provides useful verification context, making it self-contained.
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?
Single parameter receipt_id with format 'r_<hex>' is clear from schema. Description adds no additional semantic detail, but schema coverage is 100%, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool fetches a receipt by ID and returns signed receipt JSON. Distinguishes from siblings like issue_receipt and verify_payment.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance, but the purpose is clear and implies use for retrieving existing receipts. Lacks mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_checkAInspect
Service status, version, mode, supported rails (base-usdc-x402, xrpl-xrp, xrpl-rlusd, base-eurc), signing algorithm and key kid.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lists what information is returned but does not disclose behavioral traits such as idempotency, safety, or any side effects. Given no annotations, the description could be more explicit about being 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence listing all returned fields. It is concise and efficient, though it could be slightly restructured for readability (e.g., 'Returns service status, version, mode, ...').
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description fully enumerates all returned fields (status, version, mode, rails, algorithm, key kid). Nothing is missing given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100% by default. According to guidelines, zero parameters warrant a baseline of 4 since no additional parameter information is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description lists the returned fields (status, version, mode, etc.) which clearly indicates this is a health check tool. However, it lacks an explicit verb like 'retrieves' or 'checks', so the action is implied rather than stated.
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 compared to siblings. While the name 'health_check' is self-explanatory, the description does not provide any context about when it is appropriate or what to expect from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issue_receiptAInspect
Issue an ES256K-signed receipt for a verified payment. Same signing key (tooloracle-paymentoracle-es256k-1) for all four rails. Idempotent: calling twice with the same verification_id returns the byte-identical receipt.
| Name | Required | Description | Default |
|---|---|---|---|
| verification_id | Yes | Verification id from verify_payment (ver_<hex>) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses ES256K signing, specific key, constant key across rails, and idempotency (repeat calls yield identical receipt). Does not cover error behavior or 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?
Two sentences, each essential. First states core action and key detail, second adds idempotency. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description is largely sufficient. Covers purpose, key, idempotency, and dependency on verification. Missing format of receipt output, but acceptable given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already describes verification_id as from verify_payment. The description adds value by noting idempotency tied to the parameter, enhancing behavioral understanding beyond 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 it issues an ES256K-signed receipt for a verified payment, providing specific verb and resource. It does not explicitly distinguish from sibling get_receipt, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage after verify_payment by referencing verification_id from that tool, and idempotency allows safe retries. No explicit when-not or alternatives to siblings like get_receipt are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_paymentAInspect
Open a payment intent for a tool call on a chosen rail. Returns intent_hash, amount in atomic + human form, payTo wallet on the selected chain, and expiry. Supported rails: base-usdc-x402, xrpl-xrp, xrpl-rlusd, base-eurc.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | Yes | Tool name within the product (e.g., 'keyword_research') | |
| units | No | Units to pay for. Defaults to 1. 1 unit = 0.01 of the asset (USDC/EURC) or rail-specific equivalent. | |
| product | Yes | Product slug the agent is paying for (e.g., 'rank', 'flight') | |
| agent_did | No | Agent DID, e.g. 'did:web:my-agent.example' (optional but recommended) | |
| tool_args | No | Arguments for the tool call. Hashed into the intent. | |
| preferred_rails | No | Preferred payment rails in priority order. Defaults to base-usdc-x402. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full disclosure burden. It lists returned values (intent_hash, amount, etc.) but does not disclose side effects (e.g., whether this actually charges or just reserves), idempotency, authentication needs, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise and front-loaded with action and return values. No wasted words, but could benefit from bullet points for readability.
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 6 parameters, nested objects, and no output schema, the description adequately covers returns but lacks context on idempotency, intent expiration, or payment flow steps. More detail 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 coverage is 100%. The description adds value by explaining unit equivalence ('1 unit = 0.01 of the asset') and clarifying that tool_args are hashed into the intent. This goes beyond basic schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool's purpose: opening a payment intent for a tool call on a chosen rail. It specifies supported rails and return fields. However, it does not explicitly differentiate from sibling tools, though siblings serve distinct functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given. The description implies its usage for initiating payment before a tool call, but lacks exclusions or alternatives. Siblings like get_receipt or verify_payment are not mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_paymentAInspect
Verify an on-chain transaction against a previously-issued intent. Reads the chain via public RPC, confirms recipient/asset/amount/timing. Cross-rail replay protection enforced: a tx_hash can be verified at most once across all rails.
| Name | Required | Description | Default |
|---|---|---|---|
| tx_hash | Yes | On-chain transaction hash. EVM rails: 0x<64 hex>. XRPL rails: 64 uppercase hex, no 0x prefix. | |
| intent_hash | Yes | Intent hash from quote_payment (sha256:...) | |
| preflight_id | No | Optional preflight id (pf_<hex>) if the agent ran a preflight check. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden. It discloses reading via public RPC, confirming recipient/asset/amount/timing, and replay protection. However, it omits side effects, error behavior, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, no redundancy. Every sentence adds unique information: purpose, mechanism, constraint.
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 explains what the tool does and a key constraint (replay protection), but without output schema, it fails to describe the return value or success/failure indicators, leaving an agent unsure of the response structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions (tx_hash format, intent_hash origin, preflight_id optional). The tool description does not add extra parameter semantics beyond repeating that it reads the chain.
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 'Verify an on-chain transaction against a previously-issued intent,' specifying the verb (verify) and the resource (transaction vs intent). This distinguishes it from sibling tools like issue_receipt or quote_payment.
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 after an intent is issued by referencing 'previously-issued intent' and mentioning cross-rail replay protection, but it does not explicitly state when to use versus alternatives (e.g., get_receipt) or 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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!