x402 Bazaar Rank
by mike-lblc · remote · no sign-in to list tools · v0.1.2 · published by GitHub user mike-lblc
Ranked search over 15k+ live x402 services by real 30-day usage; free top-5, paid depth via x402.
45 tools: 1 do something that can't be undone, 36 change things and 8 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone1Claude Code: ask: see these tools
- Changes things36Claude Code: ask: see these tools
- Only reads8Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http x402-bazaar-rank https://x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnkv_put
The server marks "kv_put" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "kv_put" says "put": a word for a change.
The server marks "x402_test_purchase" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "x402_test_purchase" says "purchase": a word that usually means money moves, which cannot be taken back.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
45 tools
Can't be undone 1Claude Code: ask
x402_test_purchaseUse when you test an x402 or MPP client, wallet, SDK, facilitator or CI: a test target for x402/MPP clients, use it in your integration tests.1 finding
Why it is in this group
- The name "x402_test_purchase" says "purchase": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "x402_test_purchase" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "x402_test_purchase" says "purchase": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Use when you test an x402 or MPP client, wallet, SDK, facilitator or CI: a test target for x402/MPP clients, use it in your integration tests. Returns the exact paid x402 request for your input (GET /x402/test, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: x402 test purchase
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Changes things 36Claude Code: ask
best_service_for_taskUse when a router agent must pick which paid x402 service to send a task to: send the task in plain words.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when a router agent must pick which paid x402 service to send a task to: send the task in plain words. Returns the exact paid x402 request for your input (GET /route, $0.01 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. Returns a recommendation for one task; to browse or compare services use search_x402_services.
Annotations the server declares
- title: Best service for task
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
buy_brandwatchLookalike-domain alerts, yearly: buy it in one x402 payment, $990 (USDC or USDT).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Lookalike-domain alerts, yearly: buy it in one x402 payment, $990 (USDC or USDT). Returns the exact paid x402 request for your input (POST /buy/brandwatch, $990 in one payment), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. A free check first: POST the same body to /buy/brandwatch/check (email required). Yearly plan; for one month use buy_brandwatch_monthly. Payable with x402 or MPP.
Annotations the server declares
- title: Buy brandwatch
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
buy_brandwatch_monthlyLookalike-domain alerts, monthly: buy it in one x402 payment, $99 (USDC or USDT).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Lookalike-domain alerts, monthly: buy it in one x402 payment, $99 (USDC or USDT). Returns the exact paid x402 request for your input (POST /buy/brandwatch-monthly, $99 in one payment), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. A free check first: POST the same body to /buy/brandwatch-monthly/check (email required). One month; for a year use buy_brandwatch. Payable with x402 or MPP.
Annotations the server declares
- title: Buy brandwatch monthly
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
buy_dao_reportDAO treasury report, monthly: buy it in one x402 payment, $99 (USDC or USDT).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it DAO treasury report, monthly: buy it in one x402 payment, $99 (USDC or USDT). Returns the exact paid x402 request for your input (POST /buy/dao-report, $99 in one payment), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. A free check first: POST the same body to /buy/dao-report/check (email required). Monthly plan; for a year use buy_dao_report_yearly. Payable with x402 or MPP.
Annotations the server declares
- title: Buy DAO report
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
buy_dao_report_yearlyDAO treasury report, yearly: buy it in one x402 payment, $990 (USDC or USDT).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it DAO treasury report, yearly: buy it in one x402 payment, $990 (USDC or USDT). Returns the exact paid x402 request for your input (POST /buy/dao-report-yearly, $990 in one payment), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. A free check first: POST the same body to /buy/dao-report-yearly/check (email required). Yearly plan; for one month use buy_dao_report. Payable with x402 or MPP.
Annotations the server declares
- title: Buy DAO report yearly
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
buy_discovery_listingAgent discovery listing: buy it in one x402 payment, $290 (USDC or USDT).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Agent discovery listing: buy it in one x402 payment, $290 (USDC or USDT). Returns the exact paid x402 request for your input (POST /buy/listing, $290 in one payment), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. A free check first: POST the same body to /buy/listing/check (email required). Payable with x402 or MPP.
Annotations the server declares
- title: Buy discovery listing
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
buy_market_reportAgent-economy market report: buy it in one x402 payment, $390 (USDC or USDT).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Agent-economy market report: buy it in one x402 payment, $390 (USDC or USDT). Returns the exact paid x402 request for your input (POST /buy/market-report, $390 in one payment), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. A free check first: POST the same body to /buy/market-report/check (email required). Payable with x402 or MPP.
Annotations the server declares
- title: Buy market report
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
check_email_addressUse when you must check an email address before sending, signing up a user or adding a lead: syntax (IDN-aware), MX records with A/AAAA fallback, null MX, and disposable, role (inf…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you must check an email address before sending, signing up a user or adding a lead: syntax (IDN-aware), MX records with A/AAAA fallback, null MX, and disposable, role (info@, sales@). Returns the exact paid x402 request for your input (GET /v1/email/verify, $0.01 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. Checks one mailbox; for a list use check_email_batch; for a whole domain (DNS, SPF, DMARC) use domain_report.
Annotations the server declares
- title: Check email address
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
check_email_batchUse when you must check a list of email addresses before a mailing or import: up to 25 addresses in one POST, each checked exactly like /v1/email/verify.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you must check a list of email addresses before a mailing or import: up to 25 addresses in one POST, each checked exactly like /v1/email/verify. Returns the exact paid x402 request for your input (POST /v1/email/verify/batch, $0.25 per call), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. For one address use check_email_address.
Annotations the server declares
- title: Check email batch
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
domain_reportUse when you need one report on a domain: DNS records (A, AAAA, MX, NS, TXT, CAA) with SPF and DMARC parsed, RDAP registration for .com, .net and .org (registrar, dates, status, na…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need one report on a domain: DNS records (A, AAAA, MX, NS, TXT, CAA) with SPF and DMARC parsed, RDAP registration for .com, .net and .org (registrar, dates, status, nameservers, DNSSEC). Returns the exact paid x402 request for your input (GET /domain/report, $0.005 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. For several domains use domain_report_batch; for a single mailbox use check_email_address.
Annotations the server declares
- title: Domain report
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
domain_report_batchUse when you must vet several domains at once (vendors, leads, lookalikes): up to 10 domains in one POST, each answered exactly like /domain/report.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you must vet several domains at once (vendors, leads, lookalikes): up to 10 domains in one POST, each answered exactly like /domain/report. Returns the exact paid x402 request for your input (POST /domain/report/batch, $0.05 per call), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. For one domain use domain_report.
Annotations the server declares
- title: Domain report batch
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
evm_blockUse when you need a block header on Base, Ethereum, Arbitrum, Polygon or Optimism: latest or a given number, with hash, parent, timestamp, miner, gas used/limit.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need a block header on Base, Ethereum, Arbitrum, Polygon or Optimism: latest or a given number, with hash, parent, timestamp, miner, gas used/limit. Returns the exact paid x402 request for your input (GET /evm/block, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: EVM block
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
evm_codeUse when you must know whether an address is a contract on Base, Ethereum, Arbitrum, Polygon or Optimism: is_contract, bytecode size, sha256 of the bytecode.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you must know whether an address is a contract on Base, Ethereum, Arbitrum, Polygon or Optimism: is_contract, bytecode size, sha256 of the bytecode. Returns the exact paid x402 request for your input (GET /evm/code, $0.002 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: EVM code
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
evm_ensUse when you need ENS on Ethereum: name to address (name=vitalik.eth, via the Universal Resolver, with resolver address) or address to primary name (address=0x..., reverse record, …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need ENS on Ethereum: name to address (name=vitalik.eth, via the Universal Resolver, with resolver address) or address to primary name (address=0x..., reverse record, forward-verified). Returns the exact paid x402 request for your input (GET /evm/ens, $0.002 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: EVM ENS
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
evm_erc20_balanceUse when you need one ERC-20 balance for one wallet: balanceOf, decimals and symbol read in a single multicall on Base, Ethereum, Arbitrum, Polygon or Optimism, with raw units, a d…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need one ERC-20 balance for one wallet: balanceOf, decimals and symbol read in a single multicall on Base, Ethereum, Arbitrum, Polygon or Optimism, with raw units, a decimal amount. Returns the exact paid x402 request for your input (GET /evm/erc20-balance, $0.002 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. One token on one chain; for several tokens or chains at once use wallet_balance.
Annotations the server declares
- title: EVM ERC-20 balance
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
evm_native_balanceUse when you need the native coin balance (ETH or POL) of an address on Base, Ethereum, Arbitrum, Polygon or Optimism: wei and a decimal amount from a public node, with the block n…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need the native coin balance (ETH or POL) of an address on Base, Ethereum, Arbitrum, Polygon or Optimism: wei and a decimal amount from a public node, with the block number and as_of. Returns the exact paid x402 request for your input (GET /evm/native-balance, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. Native coin on one chain only; for stablecoins or several chains use wallet_balance.
Annotations the server declares
- title: EVM native balance
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
evm_nonceUse when you need an account's transaction count on Base, Ethereum, Arbitrum, Polygon or Optimism: nonce at the latest block and the pending nonce (queued transactions in the node'…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need an account's transaction count on Base, Ethereum, Arbitrum, Polygon or Optimism: nonce at the latest block and the pending nonce (queued transactions in the node's pool). Returns the exact paid x402 request for your input (GET /evm/nonce, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: EVM nonce
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
evm_receiptUse when you need to know whether a transaction succeeded on Base, Ethereum, Arbitrum, Polygon or Optimism: receipt status, block, confirmations, gas used, effective gas price.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need to know whether a transaction succeeded on Base, Ethereum, Arbitrum, Polygon or Optimism: receipt status, block, confirmations, gas used, effective gas price. Returns the exact paid x402 request for your input (GET /evm/receipt, $0.002 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. Returns the outcome; for the transaction fields (from, to, value, input) use evm_transaction.
Annotations the server declares
- title: EVM receipt
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
evm_transactionUse when you need a transaction by hash on Base, Ethereum, Arbitrum, Polygon or Optimism: from, to, value, nonce, gas and fee fields, block, confirmations, method id and input (fir…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need a transaction by hash on Base, Ethereum, Arbitrum, Polygon or Optimism: from, to, value, nonce, gas and fee fields, block, confirmations, method id and input (first 1 KB). Returns the exact paid x402 request for your input (GET /evm/tx, $0.002 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. Returns the transaction itself; to know whether it succeeded (status, gas used, logs) use evm_receipt.
Annotations the server declares
- title: EVM transaction
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
kv_putUse when an agent needs memory between runs without an account: store value (text or JSON, up to 8 KB) under key in a private namespace keyed to the wallet that pays.1 finding
Why it is in this group
- The name "kv_put" says "put": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "kv_put" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "kv_put" says "put": a word for a change.
Description, as the server wrote it Use when an agent needs memory between runs without an account: store value (text or JSON, up to 8 KB) under key in a private namespace keyed to the wallet that pays. Returns the exact paid x402 request for your input (POST /kv/put, $0.001 per call), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: KV put
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
news_latestUse when an agent needs the latest crypto or AI headlines: up to 50 English articles from the last 1-168 hours for a topic.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when an agent needs the latest crypto or AI headlines: up to 50 English articles from the last 1-168 hours for a topic. Returns the exact paid x402 request for your input (GET /news/latest, $0.002 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: News latest
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
sanctions_screeningUse when you need to screen a crypto wallet address or a person/company name against the official OFAC SDN sanctions list before paying or trading: exact address match.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need to screen a crypto wallet address or a person/company name against the official OFAC SDN sanctions list before paying or trading: exact address match. Returns the exact paid x402 request for your input (GET /sanctions/check, $0.005 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. OFAC SDN match only. For a broader rule-based risk label use wallet_risk (addresses) or token_risk (tokens); for a list of addresses use sanctions_screening_batch.
Annotations the server declares
- title: Sanctions screening
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
sanctions_screening_batchUse when you need to screen a list of wallet addresses against the official OFAC SDN list in one call: up to 25 per POST (0x, BTC, TRX, SOL and others as OFAC lists them).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need to screen a list of wallet addresses against the official OFAC SDN list in one call: up to 25 per POST (0x, BTC, TRX, SOL and others as OFAC lists them). Returns the exact paid x402 request for your input (POST /sanctions/check/batch, $0.125 per call), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. For one address or a name use sanctions_screening.
Annotations the server declares
- title: Sanctions screening batch
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
sec_filingsUse when you need a US public company's SEC EDGAR filings and key financials by ticker or CIK: latest filings.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need a US public company's SEC EDGAR filings and key financials by ticker or CIK: latest filings. Returns the exact paid x402 request for your input (GET /sec/filings, $0.008 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. For several companies at once use sec_filings_batch.
Annotations the server declares
- title: SEC filings
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
sec_filings_batchUse when you need recent SEC EDGAR filings for several US public companies at once: up to 10 tickers or CIKs in one POST.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need recent SEC EDGAR filings for several US public companies at once: up to 10 tickers or CIKs in one POST. Returns the exact paid x402 request for your input (POST /sec/filings/batch, $0.08 per call), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. For one company use sec_filings.
Annotations the server declares
- title: SEC filings batch
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
tip_p0Information about optionally supporting P0, the AI-run project behind this server: the donation and sponsorship pages, payment addresses per network, and how to claim a verified re…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Information about optionally supporting P0, the AI-run project behind this server: the donation and sponsorship pages, payment addresses per network, and how to claim a verified receipt for a transfer. Read-only; it moves no money. Support is voluntary and non-refundable; all funds are dedicated to engineering advancement, feature development and architectural optimization, and your support will be highly appreciated! Information only: it buys nothing and returns no data.
Annotations the server declares
- title: Tip P0
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
token_riskUse for a rule-based risk label on an ERC-20 token before you accept or route it: OFAC SDN match of the token, owner and proxy admin; upgradeable proxy; owner with mint, pause or b…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use for a rule-based risk label on an ERC-20 token before you accept or route it: OFAC SDN match of the token, owner and proxy admin; upgradeable proxy; owner with mint, pause or blacklist functions. Returns the exact paid x402 request for your input (GET /token/risk, $0.01 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. For a wallet (not a token contract) use wallet_risk.
Annotations the server declares
- title: Token risk
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
util_base64Use when you need base64 in or out: encode UTF-8 text to base64 (standard or url_safe) or decode base64 back to text (hex when the bytes are not UTF-8), up to 64 KB, no external ca…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need base64 in or out: encode UTF-8 text to base64 (standard or url_safe) or decode base64 back to text (hex when the bytes are not UTF-8), up to 64 KB, no external call. Returns the exact paid x402 request for your input (GET /util/base64, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: Util base64
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
util_hashUse when you need a checksum or digest of a string: sha256 (default), sha1, sha384, sha512 and md5 of text given as utf8, hex or base64 (up to 64 KB), hex digests, no external call…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need a checksum or digest of a string: sha256 (default), sha1, sha384, sha512 and md5 of text given as utf8, hex or base64 (up to 64 KB), hex digests, no external call. Returns the exact paid x402 request for your input (GET /util/hash, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: Util hash
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
util_ipUse when an agent needs to know how it is seen from outside: its public IP plus the country, region, city, ASN, AS organization.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when an agent needs to know how it is seen from outside: its public IP plus the country, region, city, ASN, AS organization. Returns the exact paid x402 request for your input (GET /util/ip, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: Util IP
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
util_jwt_decodeUse when you need to inspect a JWT without a key: decoded header and payload, alg, kid, iat/nbf/exp as ISO times and whether it is expired now.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need to inspect a JWT without a key: decoded header and payload, alg, kid, iat/nbf/exp as ISO times and whether it is expired now. Returns the exact paid x402 request for your input (GET /util/jwt-decode, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: Util JWT decode
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
util_uuidUse when you need fresh UUIDs: n (1-100) random v4 or time-sortable v7 identifiers, generated on Cloudflare's edge with crypto randomness, no external call, under 100 ms.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need fresh UUIDs: n (1-100) random v4 or time-sortable v7 identifiers, generated on Cloudflare's edge with crypto randomness, no external call, under 100 ms. Returns the exact paid x402 request for your input (GET /util/uuid, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: Util UUID
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
wallet_balanceUse when you need a wallet's token balances on several chains in one call: native coin plus USDC, USDT, DAI, WETH, WBTC/cbBTC on Ethereum, Base, Arbitrum and Polygon.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need a wallet's token balances on several chains in one call: native coin plus USDC, USDT, DAI, WETH, WBTC/cbBTC on Ethereum, Base, Arbitrum and Polygon. Returns the exact paid x402 request for your input (GET /wallet/balance, $0.003 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. One wallet across several chains. For one token on one chain use evm_erc20_balance; for the native coin on one chain use evm_native_balance; for many wallets use wallet_balance_batch.
Annotations the server declares
- title: Wallet balance
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
wallet_balance_batchUse when you need native and stablecoin balances for a list of wallets: up to 25 addresses (0x or ENS names) in one POST.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use when you need native and stablecoin balances for a list of wallets: up to 25 addresses (0x or ENS names) in one POST. Returns the exact paid x402 request for your input (POST /wallet/balance/batch, $0.075 per call), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. For one wallet use wallet_balance.
Annotations the server declares
- title: Wallet balance batch
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
wallet_riskUse for a rule-based risk label on an EVM address before paying it: exact OFAC SDN match, contract or plain account (Base, Ethereum), outgoing transaction count (Base, Ethereum, Ar…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Use for a rule-based risk label on an EVM address before paying it: exact OFAC SDN match, contract or plain account (Base, Ethereum), outgoing transaction count (Base, Ethereum, Arbitrum, Polygon). Returns the exact paid x402 request for your input (GET /wallet/risk, $0.01 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. For an ERC-20 token use token_risk; for an OFAC-only check of many addresses use sanctions_screening_batch.
Annotations the server declares
- title: Wallet risk
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
x402_market_statsOverall statistics of the x402 service market: catalog size, median price per call, total 30-day calls and unique payers, and the largest categories by paying demand.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Overall statistics of the x402 service market: catalog size, median price per call, total 30-day calls and unique payers, and the largest categories by paying demand. Market-wide totals only; for individual services use search_x402_services.
Annotations the server declares
- title: x402 market stats
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 8Claude Code: allow
buy_lead_listVerified B2B contact list, 200 contacts: buy it in one x402 payment, $390 (USDC or USDT).No findings
Why it is in this group
- The name "buy_lead_list" says "list": a word for reading.
Description, as the server wrote it Verified B2B contact list, 200 contacts: buy it in one x402 payment, $390 (USDC or USDT). Returns the exact paid x402 request for your input (POST /buy/leads, $390 in one payment), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. A free check first: POST the same body to /buy/leads/check (email required). 200 contacts. Payable with x402 or MPP.
Annotations the server declares
- title: Buy lead list
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
kv_getUse when an agent needs a value it stored earlier with /kv/put: returns the text (and parsed json when it was stored as JSON), size.No findings
Why it is in this group
- The name "kv_get" says "get": a word for reading.
Description, as the server wrote it Use when an agent needs a value it stored earlier with /kv/put: returns the text (and parsed json when it was stored as JSON), size. Returns the exact paid x402 request for your input (GET /kv/get, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: KV get
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
kv_listUse when an agent needs to see what it has stored: lists up to 100 keys (optionally under prefix) in the namespace of the paying wallet with size, stored_at and expires_at.No findings
Why it is in this group
- The name "kv_list" says "list": a word for reading.
Description, as the server wrote it Use when an agent needs to see what it has stored: lists up to 100 keys (optionally under prefix) in the namespace of the paying wallet with size, stored_at and expires_at. Returns the exact paid x402 request for your input (GET /kv/list, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: KV list
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_paid_data_productsList the paid data products on this host (wallet balances, payment check, time and verifiable random, domain report, SEC filings, weather, OFAC sanctions screening, Wikipedia knowl…No findings
Why it is in this group
- The name "list_paid_data_products" says "list": a word for reading.
Description, as the server wrote it List the paid data products on this host (wallet balances, payment check, time and verifiable random, domain report, SEC filings, weather, OFAC sanctions screening, Wikipedia knowledge search, URL uptime ping, email address check (syntax and MX, no mailbox probe), the agent-economy index across protocols, EVM chain reads, utility functions, agent memory (KV), crypto and AI news, batch variants and the /buy/* service orders): route, price per call in USD, parameters and an example request URL. The data itself is paid per call over x402 or MPP at that URL. Lists THIS host's own paid tools only; to find third-party APIs use search_x402_services.
Annotations the server declares
- title: List paid data products
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
search_x402_servicesSearch live x402 services by capability, ranked by REAL 30-day usage: unique payers weighted above raw call volume.No findings
Why it is in this group
- The name "search_x402_services" says "search": a word for reading.
Description, as the server wrote it Search live x402 services by capability, ranked by REAL 30-day usage: unique payers weighted above raw call volume. Covers every service in the public index. Free tier returns the top 5; full results, market report and underserved-niche analysis are available as paid endpoints (x402 or MPP) on the same host. Not for picking one service for a concrete task (use best_service_for_task), for market-wide totals (use x402_market_stats) or for this host's own products (use list_paid_data_products).
Annotations the server declares
- title: Search x402 services
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
url_uptime_pingUse when you need to know if a URL is up right now (uptime ping, health check, link check): one HEAD request from a Cloudflare edge (GET if HEAD answers 4xx/5xx), redirects followe…No findings
Why it is in this group
- The name "url_uptime_ping" says "ping": a word for reading.
Description, as the server wrote it Use when you need to know if a URL is up right now (uptime ping, health check, link check): one HEAD request from a Cloudflare edge (GET if HEAD answers 4xx/5xx), redirects followed up to 4. Returns the exact paid x402 request for your input (GET /v1/uptime/ping, $0.01 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge. For several URLs use url_uptime_ping_batch.
Annotations the server declares
- title: URL uptime ping
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
url_uptime_ping_batchUse when you monitor several endpoints: up to 10 http(s) URLs in one POST, each checked exactly like /v1/uptime/ping (status, latency, redirects, TLS, server) from Cloudflare's edg…No findings
Why it is in this group
- The name "url_uptime_ping_batch" says "ping": a word for reading.
Description, as the server wrote it Use when you monitor several endpoints: up to 10 http(s) URLs in one POST, each checked exactly like /v1/uptime/ping (status, latency, redirects, TLS, server) from Cloudflare's edge. Returns the exact paid x402 request for your input (POST /v1/uptime/ping/batch, $0.10 per call), with the response schema and an example; POST that JSON body to the URL with an x402 or MPP client to get the data. Bad input is refused before any charge. For one URL use url_uptime_ping.
Annotations the server declares
- title: URL uptime ping batch
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
util_json_validateUse when you must check that a JSON document fits a schema before acting on it: validates json against a JSON Schema subset.No findings
Why it is in this group
- The name "util_json_validate" says "validate": a word for reading.
Description, as the server wrote it Use when you must check that a JSON document fits a schema before acting on it: validates json against a JSON Schema subset. Returns the exact paid x402 request for your input (GET /util/json-validate, $0.001 per call), with the response schema and an example; call that URL with an x402 or MPP client to get the data. Bad input is refused before any charge.
Annotations the server declares
- title: Util JSON validate
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.2. Values in angle brackets are yours to fill in.
claude mcp add --transport http x402-bazaar-rank https://x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__x402-bazaar-rank__search_x402_services",
"mcp__x402-bazaar-rank__list_paid_data_products",
"mcp__x402-bazaar-rank__url_uptime_ping",
"mcp__x402-bazaar-rank__url_uptime_ping_batch",
"mcp__x402-bazaar-rank__util_json_validate",
"mcp__x402-bazaar-rank__kv_get",
"mcp__x402-bazaar-rank__kv_list",
"mcp__x402-bazaar-rank__buy_lead_list"
],
"ask": [
"mcp__x402-bazaar-rank__x402_market_stats",
"mcp__x402-bazaar-rank__tip_p0",
"mcp__x402-bazaar-rank__check_email_address",
"mcp__x402-bazaar-rank__sanctions_screening",
"mcp__x402-bazaar-rank__sec_filings",
"mcp__x402-bazaar-rank__wallet_balance",
"mcp__x402-bazaar-rank__domain_report",
"mcp__x402-bazaar-rank__check_email_batch",
"mcp__x402-bazaar-rank__sanctions_screening_batch",
"mcp__x402-bazaar-rank__wallet_risk",
"mcp__x402-bazaar-rank__token_risk",
"mcp__x402-bazaar-rank__best_service_for_task",
"mcp__x402-bazaar-rank__sec_filings_batch",
"mcp__x402-bazaar-rank__wallet_balance_batch",
"mcp__x402-bazaar-rank__domain_report_batch",
"mcp__x402-bazaar-rank__evm_erc20_balance",
"mcp__x402-bazaar-rank__evm_native_balance",
"mcp__x402-bazaar-rank__evm_block",
"mcp__x402-bazaar-rank__evm_transaction",
"mcp__x402-bazaar-rank__evm_receipt",
"mcp__x402-bazaar-rank__evm_code",
"mcp__x402-bazaar-rank__evm_ens",
"mcp__x402-bazaar-rank__evm_nonce",
"mcp__x402-bazaar-rank__util_uuid",
"mcp__x402-bazaar-rank__util_hash",
"mcp__x402-bazaar-rank__util_ip",
"mcp__x402-bazaar-rank__util_jwt_decode",
"mcp__x402-bazaar-rank__util_base64",
"mcp__x402-bazaar-rank__kv_put",
"mcp__x402-bazaar-rank__news_latest",
"mcp__x402-bazaar-rank__x402_test_purchase",
"mcp__x402-bazaar-rank__buy_market_report",
"mcp__x402-bazaar-rank__buy_discovery_listing",
"mcp__x402-bazaar-rank__buy_brandwatch",
"mcp__x402-bazaar-rank__buy_brandwatch_monthly",
"mcp__x402-bazaar-rank__buy_dao_report",
"mcp__x402-bazaar-rank__buy_dao_report_yearly"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as x402-bazaar-rank. Review it before you use it.
