
SiteCheck
io.github.bck-stackv1.2.0Updated Oct 8, 2026
29 pay-per-call agent tools: web reader, PDF, tech stack, email, domain, Solana, KYB. Paid via x402
Overview
SiteCheck is a remote MCP server offering 29 pay-per-call tools for web reading, PDF, domain, e-mail, compliance and Solana data, paid in USDC via x402.
- What it does
- Exposes each paid HTTP endpoint as an MCP tool with the same input schema and price, including a web page to Markdown reader, PDF to text, tech stack detection, sitemap URLs, e-mail and domain checks, exchange rates, EU VAT/IBAN/LEI checks, US recalls and enforcement data, UK insolvency notices, Solana token and wallet data, and Panta prediction-market tools. Payment uses the x402 MCP transport: an unpaid tools/call returns a PaymentRequired object, the client signs one option and repeats the call with the payment payload. A call that fails is not settled.
- When to use it
- Use it when an assistant needs occasional, per-request access to web extraction, document conversion, domain or e-mail checks, business and compliance lookups, or Solana and prediction-market data without creating an account or managing API keys. It suits agents that already hold USDC and can sign x402 payments.
- Requirements
- Remote Streamable HTTP endpoint; no account or API key from the caller. The client must support x402 payment and hold USDC on Base, Solana or Arc, with a signing wallet. MCP clients without x402 support can list tools and see prices but calls return payment requirements instead of results. Some optional tools depend on server-side secrets (PANTA_API_KEY, DOL_API_KEY, COMPANIES_HOUSE_API_KEY).
Installation
In SourceWeft
- Open SiteCheck in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"sitecheck": {
"type": "http",
"url": "https://api.sitecheck-api.workers.dev/mcp"
}
}
}README
SiteCheck: pay-per-call tools for AI agents (x402 on Base, Solana and Arc)
Live: https://api.sitecheck-api.workers.dev · listed on x402scan · discovery: /.well-known/x402, /openapi.json
SiteCheck is a small API that AI agents can use without an account or API key: 29 pay-per-call tools in all. Besides its AI and web tools (including a web page to Markdown reader), it sells PDF to text, translation, tech stack detection, sitemap URLs, exchange rates, e-mail, domain and Solana token and wallet data, business and compliance data (EU VAT, IBAN, LEI, US recalls, OSHA/EPA enforcement, UK insolvency notices), prediction-market data and unsigned trade transactions powered by Panta. Every call is paid per request in USDC with the x402 protocol, on Base, Solana or Arc (Circle's L1), whichever the buyer holds USDC on. Call it, get a 402 Payment Required listing the price on each network, sign the payment and get the result. It runs on Cloudflare Workers and Workers AI.
Prediction markets (Panta)
Agents can buy market intelligence and ready-to-sign trade transactions per call, with no account and no API key. An agent researching an event pays a fraction of a cent to find the markets and one cent for a market's odds and a neutral brief. An agent that wants to act pays for an unsigned Panta buy transaction and signs it with its own wallet. Panta runs USDC prediction markets on Solana.
- No custody. SiteCheck never signs, holds keys or custodies funds.
build-buyhands back an unsigned transaction whose only signer is the agent's wallet. - Information only, not financial advice. Every response says so (
disclaimer), and the brief never recommends a trade. If the model's text reads like advice, a factual template is returned instead. - Powered by Panta. Every response carries
poweredBy: { text: "Powered by Panta", url: "https://panta.market" }, as Panta's Terms of Use require. - Pay only for results, as with every tool: if Panta refuses or fails, the call returns an error and nothing is settled. The catalog is cached for 45 seconds and prices for 15 seconds, and responses say how old their data is.
- The tools are on only when the
PANTA_API_KEYsecret is set. Otherwise they are hidden, andGET /healthsays why. Endpoints, shapes, attribution and open questions: docs/PANTA.md.
Web, documents, e-mail, domain and Solana data
Business and compliance data
Six tools for an agent that has to check a counterparty before it trades with it. All of them read free official sources (or our own cache of one), need no key from the caller, and follow the same rule as every route here: a call that fails (bad input, upstream down, timeout) returns 4xx/5xx and is not settled, so the buyer is not charged.
Workers limits are respected: every upstream call has a timeout (at most 10 s) and a SiteCheck/1.x User-Agent, every tool stays well under 50 subrequests, and nothing large is parsed per request (the Gazette text is scanned and only matching notices are parsed). Stable upstream answers are cached with the Cache API where it works.
MCP server
https://api.sitecheck-api.workers.dev/mcp is a remote MCP server (Streamable HTTP, stateless, JSON answers). Every paid endpoint is an MCP tool with the same input schema (read, pdf, tech, email_check, domain, solana_token, vat, lei, ...), and the same price.
Payment uses the x402 MCP transport: a tools/call without payment returns isError with the x402 PaymentRequired object in structuredContent; the client signs one option and repeats the call with the PaymentPayload in params._meta["x402/payment"]; the answer carries the settlement in result._meta["x402/payment-response"]. A tool call that fails is not settled. Each call is replayed inside the Worker against the matching /api route, so MCP and HTTP buyers go through the same payment checks.
MCP clients without x402 support (for example a plain remote connector) can list the tools and see each price, but a call returns the payment requirements instead of a result.
Networks
The price is the same on every network. Buyers need only USDC: EVM payments are EIP-3009 signatures, and the facilitator pays gas and Solana fees. Sources and design decisions: docs/NETWORKS.md.
Try it
Pay with any x402 client. Base or Arc, with @x402/fetch and a viem account:
Solana, with @x402/svm and a @solana/kit signer:
Every endpoint declares its input schema and an output example through the x402 Bazaar discovery extension, so agents can find and call it without reading docs.
Demo agent
scripts/demo-agent.mjs discovers the API through /.well-known/x402, pays for one audit on the network you pick, and prints the result and the transaction link:
On the first run it creates a throwaway wallet in a git-ignored file (.env.evm for Base and Arc, .env.solana for Solana) and prints its address. Fund it with about 0.10 USDC on that network; one audit costs 0.02 USDC, and no ETH or SOL is needed. --dry-run stops before paying, and --url points it at another deployment.
Design notes
- Pay only for results. The settlement runs after the handler. If a model or upstream fails, the handler returns an error status and the payment is not settled, so the buyer isn't charged. This holds on all three networks and is covered by the tests.
- One route, several networks. Each route lists one x402
acceptsentry per configured network. Base and Solana settle through PayAI. Arc settles through Circle's Facilitator Service on its keyless trial: each request carries a seller proof signed by the Arc receiving wallet's key (see below). Each facilitator client only reports the networks assigned to it (lib/payments.js). - Workers-safe x402 middleware. A Worker can't await a promise created by another request, and the x402 middleware initialises lazily. Each request builds and initialises its own middleware until one has finished; that one is then reused (
lib/app.js). - No keys in the repo. Receiving addresses live in
wrangler.toml[vars](empty by default). The Arc seller key (or, as a fallback, the Circle API key) is a Worker secret. The helper scripts keep their wallets in git-ignored.env.*files.
Arc: Circle's keyless trial and a hot wallet
Circle's Facilitator Service normally needs an API key, and on mainnet that needs a Circle account with a credit card on file. SiteCheck uses Circle's keyless trial instead. Every /verify and /settle request carries a Facilitator-Seller-Proof header: an EIP-712 signature by the key that controls Arc's payTo, bound to the route, the exact request body and a fresh nonce (lib/sellerProof.js, lib/circle.js).
The trade-off: that key has to live in the Worker, as the secret ARC_SELLER_KEY. So Arc's payTo is a dedicated hot wallet that only receives payments. The owner sweeps it to a cold wallet regularly (scripts/sweep-arc.mjs), so a leaked key would expose at most what came in since the last sweep. The trial allowance is also limited, and Circle doesn't publish it. When it runs out, Circle answers 403 registration_required. The payment is not settled and the buyer is not charged, the Worker logs it, and GET /health shows arc.trialExhausted: true. From then on, Arc needs a Circle API key or has to be switched off. Details: docs/NETWORKS.md.
Run your own
Deploy: set account_id and at least one receiving address in wrangler.toml (or pass it with --var). For Arc, create the hot wallet and store its key first:
Leave an address empty to switch that network off. GET /health shows which networks are active and why the others are not, and whether the Panta tools are on. For Arc it also shows the auth mode, the receiving address and the trial status.
License
MIT
Mainnet transactions
Real x402 settlements on all three networks:
- Solana (our test): https://solscan.io/tx/4DQcTjw791d83iUFU7NBbyi3JZxXsvHbNHWgcXb9eeVT4tqReDV4ZFqYanUpJXnGP2ogucsWHqehioJd6Dq1ghDJ
- Base (our test): https://basescan.org/tx/0xf4e4a1aeeff698706e49cd921321cda9dba79babefd00b624bdf836fda57beb1
- Arc (our test): https://explorer.arc.io/tx/0xb6abceb6108099730c31b00f9140288585a869029bc5c922b88f0df5e8289476
- Base, paid by an outside AI agent we don't control (one of its 12 paid calls so far): https://basescan.org/tx/0x9e37d0287f04f7c1f89f159f839c0f391230dab6c21aeead58d6a29588239ea9
- Base, paid by a second outside wallet (6 Oct 2026): https://basescan.org/tx/0x9d5f1cae2c5016f165eead7dc56f51a3d74a1ea90a06270d4b0ca8bf97d8d211
Source: README.md at commit 8b6b7e8
Tools
0Version history
1- v1.2.0LatestOct 8, 2026

