x402-audit-mcp
Server Details
Audits any URL for HTTP 402 x402 V2 compliance, PAYMENT-REQUIRED headers, Bazaar schema, and MCP.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools target completely different concerns: auditing a remote endpoint versus inspecting an agent's payment/quota ledger. Their descriptions explicitly cross-reference each other ('use get_agent_wallet_status to check your remaining quota'), removing any selection ambiguity.
Both names follow a clean verb_noun snake_case pattern (audit_x402_and_a2a_endpoint, get_agent_wallet_status) with no mixing of conventions. They are verbose but structurally predictable and readable.
Only two tools exist for a service that mentions a broader workflow (audit, payment, top-up, retry). It is not a mismatch, but the surface feels thin and leans on an implied external flow rather than self-contained tooling.
Audit and wallet-status are covered, but there is no tool to submit payments or top-ups, despite descriptions referring to 'the other tools on this server for execution' (which do not exist here). This creates a lifecycle dead end around the payment step.
Available Tools
2 toolsaudit_x402_and_a2a_endpointARead-onlyIdempotentInspect
Audits any remote agent or MCP URL for JSON-RPC compliance, latency SLA, OpenAPI schema, and HTTP 402 settlement headers. WHEN TO USE: Call audit_x402_and_a2a_endpoint when your task requires deterministic x402-audit analysis for url; use get_agent_wallet_status to check your remaining free trial quota or prepaid balance. WHEN NOT TO USE: Do not use for unrelated domains or binary media. PARAMETER INTERACTIONS: Pass the target url as a non-empty string; omit agent_id and tx_hash during your 5 free trial calls, or supply agent_id (agd_pass_...) / tx_hash for paid execution. Read-only and idempotent; results are cached for 1 hour (<5ms cache hit). $0.01 per call. Pricing: the first 5 calls per agent_id are free and failed calls are never charged. After 5 calls, the tool returns a payment-required quote (not a fatal error) with a $2 Stripe top-up link and Base/Solana USDC addresses; complete payment, then retry with your agd_pass_ key in agent_id or pass tx_hash. Example: audit_x402_and_a2a_endpoint(url='https://docs.stripe.com/api')
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target A2A, MCP, or x402 service URL to audit for protocol compliance. | |
| tx_hash | No | Optional on-chain Base Mainnet (0x...) or Solana SPL USDC transaction hash. Omit unless settling an individual call directly on-chain instead of using an agd_pass_ key in agent_id. | |
| agent_id | No | Optional agent identifier or prepaid agd_pass_ session key. Omit during your 5 free trial calls to use an ID automatically derived from your client IP, or pass your agd_pass_ key after topping up. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Structured tool output payload. |
| status | Yes | Execution status ('ok' or 'payment_required'). |
| roi_proof | No | Token compression and cost-savings verification metrics. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: discloses 1-hour result caching with <5ms cache hits, $0.01 per-call pricing, a 5-call free trial, that failed calls are never charged, and that exhausted quota returns a payment-required quote rather than a fatal error, including top-up mechanisms (Stripe link, Base/Solana USDC). This is exactly the behavioral context an agent needs before invoking.
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?
Front-loaded with the core purpose and organized under clear labeled sections, which aids scanning. However, the pricing/trial terms are restated multiple times ($0.01 per call, first 5 free, then re-explained), so some sentences are redundant rather than additive.
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?
An output schema exists, so return values need not be described. The description fully covers the billing lifecycle, caching, trial limits, and parameter interplay, leaving nothing an agent needs to call the tool correctly 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 coverage is 100%, so baseline is 3, but the PARAMETER INTERACTIONS section adds genuine meaning: use only url during free trials, and supply agent_id (agd_pass_) or tx_hash for paid execution. This encodes the mutual-exclusion/branching logic between optional params that the schema lists but does not relate.
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 (Audits) plus the resource (remote agent or MCP URL) and enumerates exactly what is checked: JSON-RPC compliance, latency SLA, OpenAPI schema, and HTTP 402 settlement headers. It also names the sibling get_agent_wallet_status and its distinct role, so the agent can differentiate without opening schemas.
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?
Explicit WHEN TO USE and WHEN NOT TO USE sections, with a named alternative (get_agent_wallet_status) tied to a concrete condition (checking trial quota/prepaid balance). Exclusions for unrelated domains and binary media remove ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_wallet_statusARead-onlyIdempotentInspect
Inspect an agent's account ledger: remaining free trial calls (out of 5), prepaid USD balance, cumulative spend, total API calls, and total LLM tokens saved. WHEN TO USE: Call before a batch of paid tool executions or after completing a Stripe or USDC top-up to confirm your balance. WHEN NOT TO USE: Do not use to process web content, execute marketplace tools, or submit payments; use the other tools on this server for execution. PARAMETER INTERACTIONS: Omit agent_id to inspect the default trial account derived from your client IP, or pass your explicit agent_id or agd_pass_ session key to check a specific funded wallet. Free and read-only: never charges a fee or consumes a free trial call. Example: get_agent_wallet_status(agent_id='example')
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Optional Agent ID or agd_pass_ session key to inspect. Omit to check the default wallet derived from your client IP. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Structured tool output payload. |
| status | Yes | Execution status ('ok' or 'payment_required'). |
| roi_proof | No | Token compression and cost-savings verification metrics. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds real context beyond that: it never charges a fee or consumes a free trial call, and the default wallet is derived from the caller's client IP. It does not discuss rate limits or caching, but the cost/free-trial guarantee is meaningful behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the ledger contents, then structured WHEN TO USE / WHEN NOT TO USE / PARAMETER INTERACTIONS / Example. The labeled sections make it scannable, though the repetition of the read-only guarantee and the worked example add a little bulk.
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?
An output schema exists, so return-value detail is optional, yet the description still names the key fields. With a single optional parameter, no nested objects, and annotations covering safety, an agent has everything needed to invoke it 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 100%, so the baseline is 3. The description goes slightly further by naming the agd_pass_ session-key form and framing the two modes as an interaction (omit for IP-derived trial account vs. pass explicit agent_id/session key for a funded wallet), which aids selection even though the schema states the omit behavior.
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 (inspect) and resource (agent's account ledger) and enumerates exactly what is returned: trial calls out of 5, prepaid USD balance, cumulative spend, total API calls, tokens saved. This clearly separates it from the sibling web-content tools (distill_webpage, extract_structured_data, recon_webpage_skeleton), which operate on webpages rather than wallet 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?
Explicit WHEN TO USE (before paid tool batches, after a Stripe or USDC top-up) and WHEN NOT TO USE (not for processing web content, executing marketplace tools, or submitting payments). The exclusion clause routes the agent back to the other server tools for execution, so the alternative is named.
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.
2 tool updates
- Changed
audit_x402_and_a2a_endpoint1 field changed- added
Input schema / examplesAdded value: +[ + { + "url": "https://docs.stripe.com/api" + } +]
- Changed
get_agent_wallet_status1 field changed- added
Input schema / examplesAdded value: +[ + { + "agent_id": "example" + } +]
2 tool updates
- Changed
audit_x402_and_a2a_endpoint8 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - changed
Input schema / properties / agent_id / descriptionPrevious value: -"Your agent ID, or the agd_pass_ key you got from a payment. It tracks your free calls and credit, so treat it like a password. Omit it to use an ID derived from your IP and client."New value: +"Optional agent identifier or prepaid agd_pass_ session key. Omit during your 5 free trial calls to use an ID automatically derived from your client IP, or pass your agd_pass_ key after topping up." - added
Input schema / properties / agent_id / maxLengthAdded value: +256 - added
Input schema / properties / agent_id / minLengthAdded value: +1 - changed
Input schema / properties / tx_hash / descriptionPrevious value: -"Use only after paying on-chain: the Base (0x...) or Solana USDC transfer hash. It is verified on-chain before the call runs, and any overpayment is returned as an agd_pass_ credit key."New value: +"Optional on-chain Base Mainnet (0x...) or Solana SPL USDC transaction hash. Omit unless settling an individual call directly on-chain instead of using an agd_pass_ key in agent_id." - added
Input schema / properties / tx_hash / maxLengthAdded value: +256 - added
Input schema / properties / tx_hash / minLengthAdded value: +10 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "description": "Structured tool output payload.", + "type": "object" + }, + "roi_proof": { + "description": "Token compression and cost-savings verification metrics.", + "type": "object" + }, + "status": { + "description": "Execution status ('ok' or 'payment_required').", + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" +}
- Changed
get_agent_wallet_status6 fields changed- changed
Input schema / additionalPropertiesPrevious value: -trueNew value: +false - changed
Input schema / properties / agent_id / descriptionPrevious value: -"Agent ID or agd_pass_ key to look up. Omit it to see the ID derived from your IP and client."New value: +"Optional Agent ID or agd_pass_ session key to inspect. Omit to check the default wallet derived from your client IP." - added
Input schema / properties / agent_id / maxLengthAdded value: +256 - added
Input schema / properties / agent_id / minLengthAdded value: +1 - removed
Input schema / properties / tx_hashRemoved value: -{ - "description": "Not needed; this tool is free.", - "type": "string" -} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "description": "Structured tool output payload.", + "type": "object" + }, + "roi_proof": { + "description": "Token compression and cost-savings verification metrics.", + "type": "object" + }, + "status": { + "description": "Execution status ('ok' or 'payment_required').", + "type": "string" + } + }, + "required": [ + "status" + ], + "type": "object" +}
2 tool updates
- Changed
audit_x402_and_a2a_endpoint3 fields changed- changed
Input schema / properties / agent_id / descriptionPrevious value: -"Optional Agent ID or Session Pass (agd_pass_...)"New value: +"Your agent ID, or the agd_pass_ key you got from a payment. It tracks your free calls and credit, so treat it like a password. Omit it to use an ID derived from your IP and client." - changed
Input schema / properties / tx_hash / descriptionPrevious value: -"Optional Base (0x...) or Solana USDC tx hash"New value: +"Use only after paying on-chain: the Base (0x...) or Solana USDC transfer hash. It is verified on-chain before the call runs, and any overpayment is returned as an agd_pass_ credit key." - changed
Input schema / properties / url / descriptionPrevious value: -"Target A2A, MCP, or x402 service URL to audit for protocol compliance"New value: +"Target A2A, MCP, or x402 service URL to audit for protocol compliance."
- Changed
get_agent_wallet_status2 fields changed- changed
Input schema / properties / agent_id / descriptionPrevious value: -"Optional Agent ID or Session Pass (agd_pass_...)"New value: +"Agent ID or agd_pass_ key to look up. Omit it to see the ID derived from your IP and client." - changed
Input schema / properties / tx_hash / descriptionPrevious value: -"Optional Base (0x...) or Solana USDC tx hash"New value: +"Not needed; this tool is free."
2 tool updates
- Changed
audit_x402_and_a2a_endpoint3 fields changed- changed
Input schema / additionalPropertiesPrevious value: -falseNew value: +true - added
Input schema / properties / agent_idAdded value: +{ + "description": "Optional Agent ID or Session Pass (agd_pass_...)", + "type": "string" +} - added
Input schema / properties / tx_hashAdded value: +{ + "description": "Optional Base (0x...) or Solana USDC tx hash", + "type": "string" +}
- Changed
get_agent_wallet_status5 fields changed- changed
Input schema / additionalPropertiesPrevious value: -falseNew value: +true - added
Input schema / properties / agent_id / descriptionAdded value: +"Optional Agent ID or Session Pass (agd_pass_...)" - removed
Input schema / properties / agent_id / maxLengthRemoved value: -99999 - removed
Input schema / properties / agent_id / minLengthRemoved value: -1 - added
Input schema / properties / tx_hashAdded value: +{ + "description": "Optional Base (0x...) or Solana USDC tx hash", + "type": "string" +}
2 tool updates
- Changed
audit_x402_and_a2a_endpoint3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / url / maxLengthAdded value: +99999 - added
Input schema / properties / url / minLengthAdded value: +1
- Changed
get_agent_wallet_status3 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / agent_id / maxLengthAdded value: +99999 - added
Input schema / properties / agent_id / minLengthAdded value: +1
Related MCP Connectors
Audits any remote agent or MCP URL for JSON-RPC compliance, latency SLA, OpenAPI schema, and HTTP.
Free x402 endpoint linter: unpaid 402 challenge, payTo/asset/amount, CORS, directory readiness.
Lints whether a paid API's 402 response speaks the x402 protocol correctly.
Test any x402 paid URL without paying: 402, PAYMENT-REQUIRED, USDC, amounts, payTo, EIP-712, CORS.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables agents and IDE assistants to validate x402 payment endpoints without shelling out: it fetches a URL unpaid and returns a conformance report on the returned 402 challenge, decodes and classifies base64 payment blobs, and summarises which scheme/network pairs a facilitator can settle.40 PyPIMIT
- AlicenseNot gradedqualityCmaintenanceEnables users to analyze HTTP response headers of any URL for security and configuration, returning a 0-100 security score, HSTS/CSP and header checks, server detection, caching details, and recommendations. Supports pay-per-call access via x402 micropayments.MIT
- AlicenseNot gradedqualityCmaintenanceEnables an MCP host to run an automated, non-destructive security audit of a paid x402 endpoint URL and receive a SECURE/FINDINGS/EXPOSED verdict with per-check evidence. The built-in tool handles the entire x402 payment flow — challenge, signed USDC authorization on Base, paid retry — using the user's own wallet, with a spend guard.MIT
- AlicenseAqualityCmaintenanceEnables agents to perform a paid trust and liveness audit on any x402 resource URL, returning a verdict, trust score, deductions, terms, schema quality, catalog presence, and diff against the previous check.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.