agent-audit + page-read (x402)
Server Details
Pay-per-call page reader, quote check, link check and x402 seller audit. USDC on Base via x402.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- agent-audit-x402/x402-tools-mcp
- GitHub Stars
- 0
- Server Listing
- x402-tools MCP server
TDQS
Scored across 7 tools
Each tool has a distinct role: auditing, link checking, page reading, quote verification, service listing, and free previews. The paid/free preview pairs (audit_x402_seller vs preview_audit, read_page vs preview_page) overlap slightly but are clearly differentiated by price, depth, and rate limits.
Most names follow a predictable snake_case verb_noun pattern: check_links, list_services, preview_audit, preview_page, read_page. Minor deviations include quote_check (noun_verb order) and audit_x402_seller (verb + protocol qualifier + noun), but the set remains readable and mostly consistent.
Seven tools is well-scoped for an x402 audit and page-reading service, with free discovery/preview tools and paid execution tools each earning their place. The count is neither thin nor bloated.
The surface covers the core lifecycle: service discovery, free previews, paid audits, link checks, quote verification, and page fetching. Minor gaps exist, such as no batch page-reading or multi-origin audit operation, but agents can work around these with existing tools.
Available Tools
7 toolsaudit_x402_sellerAudit an x402 sellerARead-onlyInspect
Paid, $0.02 USDC on Base via x402 (agent-audit). Read-only x402 seller and agent-readiness audit of one origin: live 402 challenge per paid route, price vs catalog, llms.txt, /.well-known/x402, openapi.json, dead doc links. JSON score, findings and fixes. Grades measure protocol conformance, not legitimacy. Call without payment to get the x402 requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Origin or paid endpoint URL | |
| payment | No | Optional. A signed x402 v2 PaymentPayload for this tool's PaymentRequired (as an object, or base64 as in the PAYMENT-SIGNATURE HTTP header). Prefer params._meta["x402/payment"]. Omit it to get the exact payment requirements first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/openWorld/idempotent=false/destructive=false, and the description goes well beyond them by disclosing the exact cost and rail ('$0.02 USDC on Base via x402'), the return shape ('JSON score, findings and fixes'), and a genuine limitation ('Grades measure protocol conformance, not legitimacy'). That last caveat is the kind of subtle behavioral signal an agent could not infer from the schema or annotations and directly affects how results should be interpreted.
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?
Dense but front-loaded: price and rail first, then the audited surface, then output shape, then the payment bootstrap hint — every sentence carries signal. It is fragmentary rather than prose (the core purpose is a noun phrase, not a verb), which costs a little readability but wastes no 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?
With no output schema, the description correctly covers the return value ('JSON score, findings and fixes') and the paid-invocation protocol, which are the two things an agent cannot read off structured fields. It stops short of describing error or failure behavior for an unreachable origin, a minor gap for an open-world network tool.
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 (url and the x402 payment payload) are already documented in the schema. The description reinforces the payment semantics by advising a payment-less first call, but adds no format or syntax detail beyond what the schema states. Baseline 3 is appropriate when the schema carries the parameter burden.
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 — a read-only x402 seller / agent-readiness audit — plus its exact scope ('of one origin') and enumerates the checks performed (402 challenge per paid route, price vs catalog, llms.txt, /.well-known/x402, openapi.json, dead doc links). This clearly separates it from siblings such as check_links or preview_audit, which do not combine live 402 probing with protocol-conformance grading.
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?
Gives explicit operational guidance for the paid flow: 'Call without payment to get the x402 requirements,' which tells the agent exactly how to bootstrap the two-step invocation. It also scopes usage to a single origin. However, it never contrasts itself with the closest siblings (preview_audit, check_links) or states when a full audit is warranted versus a cheaper preview, so a 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_linksCheck link healthARead-onlyInspect
Paid, $0.01 USDC on Base via x402 (agent-audit). Checks up to 25 URLs now: status, final URL, redirects, latency, verdict ok/broken/paid(402). Call without payment to get the x402 requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | ||
| payment | No | Optional. A signed x402 v2 PaymentPayload for this tool's PaymentRequired (as an object, or base64 as in the PAYMENT-SIGNATURE HTTP header). Prefer params._meta["x402/payment"]. Omit it to get the exact payment requirements first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnlyHint, destructiveHint=false, openWorldHint), but the description adds material behavior they cannot express: the exact cost ($0.01 USDC on Base via x402), the 25-URL cap, the field set returned, and the paid(402) verdict semantics. It does not clarify timeout behavior or whether checking a broken URL still charges, so it is strong but not 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?
Two tight sentences with no filler, and the price/payment constraint is front-loaded before the capability list. Information density is high without becoming unparseable. Minor jargon stacking ("$0.01 USDC on Base via x402 (agent-audit)") slightly taxes first-pass comprehension.
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 return-value burden and does so by naming the five result fields and the verdict taxonomy (ok/broken/paid(402)). Payment prerequisites and the discovery step are both covered. What is missing is error/pagination behavior for partially failed URL batches, which keeps it from a 5.
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 50%: the payment parameter is well documented in the schema, while urls has only type/limits and no prose. The description partially compensates by stating the 25-URL ceiling and that omitting payment returns the payment requirements, which matches the schema note. It adds some meaning over the raw schema but leaves URL format expectations (e.g., absolute vs relative) unaddressed.
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 ("Checks up to 25 URLs") and enumerates exactly what it returns: status, final URL, redirects, latency, and verdict. It is clearly distinct from read_page and preview_page because link-health checking with a verdict is the stated output. Sibling differentiation is implicit rather than explicit, 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?
The description gives one concrete usage instruction — "Call without payment to get the x402 requirements" — which correctly sequences the paid flow. However, it never says when to prefer check_links over read_page or preview_page, nor when bulk checking is appropriate versus a single-page fetch. Usage is implied by the output list, not spelled out against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesList services and pricesARead-onlyInspect
Free. Lists the paid tools, their USDC prices on Base, the upstream x402 HTTP endpoints, and how to pay.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and non-destructive, so safety is covered. The description adds cost context ('Free') and specifies the chain (Base) and x402 endpoint information, which is meaningful behavioral context for a paid-services catalog beyond what the annotations provide.
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?
A single sentence with the free-of-charge fact front-loaded, then the returned fields. Every clause earns its place with no filler.
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 input params and no output schema, the description carries the burden of explaining return contents, and it does so explicitly (prices, endpoints, payment instructions). It could note the format/pagination of the listing, but for a simple discovery call it is effectively 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?
The tool takes zero parameters, so the baseline is 4. There is nothing for the description to clarify, and it correctly omits parameter discussion rather than padding.
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 (Lists) and resource (paid tools/services) and enumerates exactly what is returned: USDC prices on Base, upstream x402 HTTP endpoints, and payment instructions. No sibling tool is a comparable catalog lister, so it is trivially distinguishable.
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 leading 'Free.' is a genuine decision cue telling an agent this call has no cost and is safe for discovery before spending. However, it gives no explicit when-to-use/when-not or routing to an alternative (e.g. quote_check before paying), leaving usage implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_auditFree audit scoreARead-onlyInspect
Free, rate-limited (10 per hour). Audit score, grade and fail/warn counts for one origin (no findings), from agent-audit's free preview.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly, non-destructive, openWorld, non-idempotent), so the description's job is to add beyond that. It does: the 10-per-hour rate limit is a real operational constraint not present in the annotations, and 'no findings' sets expectations about the abbreviated response.
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?
A single dense sentence that front-loads cost and rate limit, then defines the resource and the excluded payload. Every clause carries information; nothing is filler.
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 one-parameter, read-only, no-output-schema tool, the description covers cost, rate limit, scope, and output summary. Given annotations carry the safety profile, this is close to complete; only the absence of a named full-audit alternative keeps it short of a 5.
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%, but there is only one parameter (url) and the description supplies its meaning via 'for one origin'. For a single, self-evident required parameter this is adequate compensation; no syntax or format detail is given, but little 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?
States a specific operation and scope: an audit score, grade, and fail/warn counts for one origin. The parenthetical '(no findings)' signals this is the summary-only preview rather than a full report. It does not explicitly distinguish itself from any named sibling, but its 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?
The phrase 'Free, rate-limited (10 per hour)' implies the tool is the low-cost preview path and sets a hard usage cap, which is useful context for deciding whether to call it. However, it never states when to prefer this over a full audit or names an alternative tool, so usage guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preview_pageFree page previewARead-onlyInspect
Free, rate-limited (10 per hour). Title and the first 300 characters of a public page, from page-read's free preview.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnly, not destructive). Beyond that, the description adds the concrete rate limit (10 per hour), the truncation scope (300 chars), and that the page must be public - real operational context the annotations don't 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?
Two tight sentences, front-loading the cost/limit and the return content. Nothing is redundant and every clause carries information.
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?
No output schema exists, but the description explains what is returned (title plus first 300 characters) and covers the rate limit and safety via annotations. Adequate for a one-parameter read tool, with only the url semantics left underspecified.
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 should compensate for the undocumented url parameter, but it only hints at a constraint ('public page') and gives no URL format or validation details. The single obvious param keeps it from being a 1, but the gap is unaddressed.
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 what the tool returns: the title and first 300 characters of a public page. That is a specific output an agent can act on, though it never names read_page as the alternative for full content, so sibling differentiation is left implicit.
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 'free, rate-limited' framing implies you reach for this when you only need a cheap peek rather than the full page, but there is no explicit when-to-use/when-not guidance or reference to read_page. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_checkIs this quote on that page?ARead-onlyInspect
Paid, $0.005 USDC on Base via x402 (agent-audit). Fetches the page now and reports whether the quote is really there: found_exact/found_near/partial/not_found/page_unavailable, similarity, context and page sha256. Call without payment to get the x402 requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| quote | Yes | ||
| payment | No | Optional. A signed x402 v2 PaymentPayload for this tool's PaymentRequired (as an object, or base64 as in the PAYMENT-SIGNATURE HTTP header). Prefer params._meta["x402/payment"]. Omit it to get the exact payment requirements first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly, non-destructive, open-world, non-idempotent); the description adds materially more: the exact price and chain/rail ($0.005 USDC on Base via x402), that the page is fetched at call time, and the full enumeration of return statuses plus similarity/context/sha256. This is behavior an agent cannot derive from the annotations or schema.
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 tight sentences, no filler, and the critical call-without-payment instruction is placed last where it is easy to act on. Slightly off-balance in that pricing leads ahead of the tool's actual purpose.
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 does the necessary work of enumerating return fields, and the payment path is explained. Minor gaps remain: matching semantics for the quote and whether payment is charged per call or only on success.
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 33% – only `payment` is documented, and the description merely restates the payment handshake that the schema already explains. The required `url` and `quote` parameters get no added semantics (matching mode, normalization, length limits, or error behavior), so the description does not compensate for the coverage gap.
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+resource: fetches the live page and verifies whether a given quote is present, naming the exact result vocabulary (found_exact/found_near/partial/not_found/page_unavailable). No sibling (read_page, preview_page, check_links) does quote verification, so the tool is trivially distinguishable.
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?
"Call without payment to get the x402 requirements" gives concrete invocation sequencing for the paid handshake, which is the main usage trap here. It does not, however, state when to prefer this over read_page/preview_page or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_pageRead a web page as markdownARead-onlyInspect
Paid, $0.001 USDC on Base via x402 (page-read). Fetches one public web page now and returns clean markdown or text with title, canonical URL, published time and sha256. No JavaScript execution. Fetch failures and unreadable pages are not charged. Call without payment to get the x402 requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) URL | |
| links | No | include absolute link list | |
| format | No | ||
| payment | No | Optional. A signed x402 v2 PaymentPayload for this tool's PaymentRequired (as an object, or base64 as in the PAYMENT-SIGNATURE HTTP header). Prefer params._meta["x402/payment"]. Omit it to get the exact payment requirements first. | |
| maxChars | No | default 10000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, non-destructive and non-idempotent, so the safety profile is covered. The description adds real value beyond them: no JavaScript execution, the fact that fetch failures and unreadable pages are not charged, and that a payment payload is required for a successful fetch. It does not contradict any annotation.
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?
Four dense sentences with no filler, and the cost/payment model is front-loaded so an agent immediately knows the price before committing. Slightly compressed wording, but every sentence carries information.
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 returns and does so well (markdown/text, title, canonical URL, published time, sha256), plus failure and charging semantics. It omits what maxChars truncation or the links flag do to the result, a minor but real gap for a 5-parameter tool.
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 80%, so the schema already documents url, links, format, payment and maxChars. The description reinforces format (markdown or text) and payment flow, but the payment guidance largely restates the schema's own note about params._meta['x402/payment'], and maxChars truncation behavior is left entirely to the schema. 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?
States a specific verb and resource ('Fetches one public web page now') plus the return shape (markdown/text with title, canonical URL, published time, sha256). It is clearly distinguishable from check_links or list_services, but it never names or contrasts with preview_page, the closest sibling, so sibling differentiation is incomplete.
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?
Gives actionable flow guidance ('Call without payment to get the x402 requirements') and a scope limit ('No JavaScript execution'), which tells the agent when this tool will fail. It stops short of explicit when-not-to-use routing against preview_page or other 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.
7 tool updates
- First observed
audit_x402_seller - First observed
check_links - First observed
list_services - First observed
preview_audit - First observed
preview_page - First observed
quote_check - First observed
read_page
Related MCP Connectors
Pay-per-call web extraction, SEO audits and text analysis. USDC on Base via x402, no API keys.
x402 pay-per-call agent tools (Base USDC): web search, URL extract, OCR, Base tx & allowance scans
Pay-per-call (x402/USDC-Base) web + crypto data tools for AI agents: audit, extract, crypto, DeFi.
8 pay-per-call agent tools: company card $0.03, page meta $0.002. USDC on Base via x402.
Related MCP Servers
- AlicenseAqualityCmaintenancePay-per-call web page extraction, on-page SEO audits and text analysis for AI agents. Paid in USDC on Base via x402; no API keys, failed calls are not charged.4MIT
- AlicenseAqualityDmaintenancePay-per-call tools for AI agents including trust checks, due diligence, market data, and human-verified approvals, settled in USDC on Base via the x402 protocol.16MIT
- AlicenseNot gradedqualityCmaintenanceLets AI agents make automated USDC micro-payments on Base mainnet via x402/MPP to unlock clean structured data from URLs and other pay-per-call tools like Markdown reading, security scans, wallet enrichment, and settlement proof, with no API key or subscription.1 npm1MIT

hyperd-mcpofficial
AlicenseAqualityDmaintenancePre-trade DeFi intelligence for AI agents. 20 paid x402 endpoints, USDC on Base.2390 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.