402xAgent
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Check an x402 endpoint before your agent pays: pay, skip or recheck. Plus a verified x402 catalog.
| Author | io.github.withgrokbot |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 96 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"402xAgent": {
"url": "https://api.402xagent.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (10)
search_catalogread-onlyBrowse or keyword-search the verified catalog of pay-per-call (x402) agent services. Use it when you don't know the task name or want to see what exists; use lookup to rank endpoints for a known task at a max price, and get_service for one id's full record. Read-only. No auth or API key; free, no quota or per-client limit: it only reads the catalog snapshot (bundled catalog.json in the local server, the published catalog.json on remote /mcp). Returns {count, results, generated_at, note, methodology_url}; results are in catalog order, ungraded, each with id, name, category, endpoint, advertised_price_usd, page_url and latest (checked_at, reachable, http_status, latency_ms, quoted_price_usd, price_matches_listing, charged_price_usd, delivered_valid, raw_log_url). No match: count 0, empty results. A non-numeric max_price_usd or limit returns an error.
Parameters:
limit— integer — Optional. Maximum number of results, 1-100 (default 20).query— string — Optional. Space-separated words; every word must appear (case-insensitive) in the service id, name, category, description or provider. Omit to list all. Examples: "search", "crypto news".category— string — Optional. Case-insensitive substring of the service category, e.g. "web search", "news", "on-chain data", "weather", "public records", "utility".max_price_usd— number — Optional. Keep services whose advertised price per call is at or below this many USD, e.g. 0.01.reachable_only— boolean — Optional (default false). If true, keep only services that were reachable in the latest check.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_serviceread-onlyFetch the complete catalog record for one known service id (e.g. from search_catalog or lookup results). Use search_catalog to find ids and lookup to rank services for a task; get_service has no per-call receipts, so for receipts with tx and Basescan links call lookup with endpoint=<id>. Read-only. No auth or API key; free, no quota (reads the same catalog snapshot as search_catalog). Returns the record as published: id, name, provider, category, description, endpoint, advertised_price (USD, atomic, asset, network), sample_request, tasks, quality_test (known-answer test, facts_only flag and reason), paid_receipts (count), latest (full last check incl. x402_challenge, error, raw_log_url), history_summary and page_url. Unknown or missing id: error "no service with id ...".
Parameters:
id(required) — string — Exact, case-sensitive catalog service id as returned by search_catalog or lookup, e.g. "exa-search", "x402tap-weather", "onesource-erc20-balance".
Hints: read-only yes · destructive no · idempotent yes · open-world no
lookupread-onlyRank x402 endpoints for a known task at or under a price: "which endpoint should I pay for task X at <= $Y?". Prefer it over search_catalog (keyword browsing, unranked) and get_service (one id's raw record). No auth or API key. Calls the hosted lookup service as client=vc-mcp; all MCP users share that client's 5 free lookups per UTC day (reset 00:00 UTC), after which the tool returns an error reporting the HTTP 402 ($0.02 USDC on Base via x402) and never pays. Returns results sorted by known-answer pass_rate over the last n paid calls, then price, each with price_usd, pass_rate, last_check_at, last_check, stale and receipts (time, tx, basescan_url, charged_usd, delivered, quality); seller-broken services come unsorted under facts_only. No match: empty results, matched 0. Needs task or endpoint; invalid params return an error. Payment never changes results.
Parameters:
n— integer — Optional. Most recent paid receipts per service used for pass_rate and returned, 1-20 (default 5; out-of-range values are clamped).task— string — Task name from /v1/tasks, e.g. web-search, crypto-news, news, weather, token-balance, sec-filings, fx-rates, url-check. Case-insensitive; a known name matches exactly, an unknown one falls back to matching every word in service text. Required unless endpoint is given.limit— integer — Optional. Maximum ranked services in results, 1-20 (default 10; clamped). facts_only is not limited.payer— string — Optional 0x wallet address (40 hex characters), recorded so a later payment from it to a returned vendor can be matched on-chain. Nothing is charged; a malformed address returns an error.endpoint— string — A catalog service id (e.g. exa-search) or endpoint URL, to get one service's receipts instead of a whole task. Required unless task is given; can be combined with task.max_price_usd— number — Optional. Only services whose listed price per call is at or below this many USD, e.g. 0.01. Negative values are rejected.
Hints: read-only yes · destructive no · idempotent no · open-world yes
get_overnight_cos_packBuy and download the Overnight Chief of Staff Setup Pack ($9 USDC on Base via x402): 5 ready-to-paste bot prompts, an HTML morning-briefing template, and a PDF setup guide. Always paid — no free quota. Call without PAYMENT-SIGNATURE to receive payment requirements and the HTTP endpoint URL. Agents pay by retrying the HTTP endpoint (or this MCP call) with a PAYMENT-SIGNATURE header holding a signed USDC EIP-3009 authorization.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_receiptread-onlyFree: read a public 402xAgent receipt. Give id (sc-... from endpoint_spot_check's receipt_id, or a 10-hex crawl id) or url (latest live + crawl receipt for that URL). Receipts hold the listing URL, the live 402 terms, verdict, reason, reason_code, confidence, history summary, timestamp, and a status-badge embed snippet (badge.markdown / badge.html). Does not run a fresh check (use endpoint_spot_check for that).
Parameters:
id— string — receipt idurl— string — endpoint URL exactly as checked
Hints: read-only yes · destructive no · idempotent yes · open-world no
endpoint_spot_checkDecision-shaped 402xAgent check of a public URL (private, loopback and link-local addresses blocked on every redirect hop) for an x402 PAYMENT-REQUIRED / 402 challenge. Every answer has reason_code (stable code) and confidence (high|medium|low); rules: https://402xagent.com/rules.json. History: stable_for_days, last_changed, drift. Free: verdict (pay|skip|recheck), a plain-words reason, payment_terms_sha256 (hash of the approved payment), and access. Paid: verdict, reason code, quoted/claimed price, pay_to, network, asset, and payment = the exact {network, asset, amount_atomic, amount_usd, pay_to} a router may sign (verdict pay only), plus access with the settlement tx. No 402 terms is skip/no_paywall (recheck/free_trial_active when the target sends x-free-trial headers); recheck only for timeouts, 5xx and network errors; wrong or unsupported network, non-canonical USDC or a pay_to that differs from the listing is skip. The same normalized URL + method reuses one probe for 5 min, so consecutive calls agree. mode=dry-run: free dry run (nothing signed or paid, stored as a public receipt, no approval hash, 50/caller/day). Never pays the target (probe GET only). 5 free checks per client per UTC day (at most 25 per network) (client=vc-mcp), then $0.02 USDC a check on Base via x402. Unpaid after free quota: payment instructions. Forward PAYMENT-SIGNATURE for a paid check.
Parameters:
url(required) — string — public http(s) URL to proberef— string — optional attribution tag stored on the receipt (dry-run-<caller> sets mode=dry-run)mode— string — optional: dry-run = free dry run: one unpaid probe, nothing signed or paid, always stored as a public receipt (check_type dry-run). Returns the free-tier shape with payment_terms_sha256 null (never an approval). 50 per caller (ref, else client, else IP) per UTC day. ref=dry-run-<caller> also sets ittask— string — optional task label (ignored in decision output)method— string — optional: probe the target with POST (empty JSON body) for POST-only endpointspay_to— string — optional: the wallet you expect to pay (from your listing)network— string — optional: the CAIP-2 network you expect, e.g. eip155:8453claimed_price— number — optional claimed USD price to compare vs quoted
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
payment_statusread-onlyAfter you pay an x402 endpoint (Base USDC, EIP-3009 exact): did the payment land, and is it safe to sign a new one? Give payment_payload (the base64 PAYMENT-SIGNATURE you sent), or tx_hash, or from + nonce (+ valid_before). Returns status landed|not_landed|pending|canceled|unknown, safe_to_retry_same_payload (always true: a nonce is single-use), safe_to_resign (true only when two independent RPC sources agree the nonce is unused AND validBefore has passed), tx details, terms match, a claim pointer and a signed receipt. Same 5 free per UTC day as endpoint_spot_check (client=vc-mcp), then $0.02 USDC on Base via x402 (forward PAYMENT-SIGNATURE).
Parameters:
from— stringnonce— stringtx_hash— stringseller_url— string — the URL you paidvalid_before— string — unix seconds (with from + nonce)payment_payload— string — base64 PAYMENT-SIGNATURE / X-PAYMENT value of the payment you sent
Hints: read-only yes · destructive no · idempotent yes · open-world yes
x402_hygieneread-onlyFree x402 hygiene score for an endpoint you run: {score, grade, deductions[{code, points, fix}]} from normal unpaid requests (never pays, never sends bad params). 20 per day per network, cached 24 h. Grades are returned only to you.
Parameters:
url(required) — string — Full http(s) URL of the x402 endpoint.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
discoverread-onlyFree discovery of x402 pay-per-call endpoints from 402xAgent's weekly crawl. Returns up to 20 endpoints matching the words in q (URL or source list), each with the verified (quoted) price, network, last_checked, stale flag, verdict pay|skip|recheck with its reason, and a receipt. Skips are included by default; pass verdict to filter. A result older than 36 h is stale; a pay older than 7 days is returned as recheck. Run endpoint_spot_check right before paying. Read-only, no auth, 60 calls per minute.
Parameters:
q— string — Optional. 2-100 chars; space-separated words that must all appear, e.g. "weather" or "crypto price".limit— integerverdict— string — Optional filter on the (freshness-adjusted) verdict.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
endpoint_reportread-onlyPaid ($0.05 USDC on Base via x402, no free tier): the exact committed snapshots behind endpoint_spot_check's locked teasers: which payment terms changed in the last 30 days, when, from what to what, and the full hygiene checks. Pass the url and the commitment_ref from the free answer's locked_commitments; verify each revealed {snapshot, nonce} against its sha256 digest (docs: https://402xagent.com/docs#endpoint-report).
Parameters:
url(required) — string — the endpoint URL you checked, e.g. https://api.402rates.com/v1/pingcommitment_ref— string — locked_commitments.ref from the free check, e.g. cm-0123456789abcdefinclude_current— boolean — also return today's stored data under current (not covered by the commitment)
Hints: read-only yes · destructive no · idempotent no · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.