Get connected

Every way in. Zero API keys.

Every road leads to the same 75 pay-per-call tools — start from the app you already use. MCP if you live in Claude, ChatGPT, Cursor, or any MCP client. The npm SDK if you're building with the Vercel AI SDK, LangChain, or AgentKit. Raw HTTP if you want the protocol itself. Every option starts free in quote mode — browse the whole catalog before you fund a wallet.

75 tools, one catalog from $0.001 / call USDC on Base quote mode free

Where does your agent live?

One URL, native tools everywhere.

A hosted, stateless streamable-HTTP MCP server — nothing to install, nothing to run. Point any remote-MCP client at the endpoint and all 75 tools appear, generated live from the API's OpenAPI spec so new endpoints show up automatically.

Best for · claude.ai connectors, Claude Code, Cursor, VS Code — zero install
Endpoint https://api.webbersites.com/mcp

Claude — claude.ai, Desktop & Claude Code

claude.ai & Claude Desktop: Settings → Connectors → Add custom connector, paste the endpoint URL above, done. In Claude Code it's one command:

Claude Code · terminal
claude mcp add --transport http webbersites https://api.webbersites.com/mcp

Claude Desktop also has a one-click .mcpb extension that runs the server locally — the wallet key stays in your OS keychain instead of a connection URL.

ChatGPT & the OpenAI Agents SDK

ChatGPT: connectors live behind developer mode — Settings → Apps & Connectors → Advanced settings → Developer mode, then Create connector with the endpoint URL above (paid plans; no authentication). In agentic code, the Agents SDK attaches the same server as a hosted tool:

agents-sdk.mjs
import { Agent, run, hostedMcpTool } from "@openai/agents";

const agent = new Agent({
  name: "data-agent",
  tools: [hostedMcpTool({
    serverLabel: "webbersites",
    serverUrl: "https://api.webbersites.com/mcp",
  })],
});

const result = await run(agent, "What does an SEO audit of example.com cost?");

Gemini CLI

~/.gemini/settings.json
{
  "mcpServers": {
    "webbersites": {
      "httpUrl": "https://api.webbersites.com/mcp"
    }
  }
}

Cursor

~/.cursor/mcp.json
{
  "mcpServers": {
    "webbersites": {
      "url": "https://api.webbersites.com/mcp"
    }
  }
}

VS Code

.vscode/mcp.json
{
  "servers": {
    "webbersites": {
      "type": "http",
      "url": "https://api.webbersites.com/mcp"
    }
  }
}

Making paying calls

With no configuration the server runs in quote mode — every tool answers with its live price and x402 payment requirements instead of data. To let tools actually pay, append a wallet key to the connection URL:

paying connection
https://api.webbersites.com/mcp?evmPrivateKey=0xYOUR_THROWAWAY_KEY&maxPrice=0.10

maxPrice is a hard USD ceiling per call — anything dearer is refused before payment. The key rides along with your connection config to our server, so use a dust wallet only; if you'd rather the key never leave your machine, use the local npx server instead. The full config schema is published at /mcp/.well-known/mcp-config.

One line, and your agent knows the catalog.

Published to ClawHub, the OpenClaw skill registry. Installing teaches your agent what's here, how to pay for it, and the conventions that make it stick — a scratchpad named index so it never forgets it has memory, and ping on a cron for monitoring.

Best for · OpenClaw agents with a funded wallet

Install

terminal
openclaw skills install x402-agent-tools

Paying for calls

The skill is client-agnostic — any x402 wallet works. If your agent already has the agentcash-wallet skill installed, it can discover prices and execute paid calls against api.webbersites.com with no extra setup: it handles the 402 challenge, signs the USDC payment on Base, and retries. Payments settle only on a 2xx, so failed requests cost nothing.

What your agent gains

Inference without a keyPOST /api/llm, $0.01.
Memory that survives restarts — a wallet-owned scratchpad and datastore.
Monitoring loops — $0.001 pings, escalating to a full TLS/timing report.
Exact math — the arithmetic LLMs get plausibly wrong.

Full walkthrough on the dedicated page: /connect/openclaw/

Search it

terminal
clawhub search "x402 agent tools"

Same tools, key stays home.

The webbersites-x402-mcp package runs the MCP server on your machine over stdio. Your wallet key lives in a local env var and never leaves the process — payments are signed locally and only the signed authorization travels. Tools are generated from the live OpenAPI spec at startup, so it never goes stale.

Best for · paying calls with the key kept on your machine

Claude Code

terminal
claude mcp add webbersites-x402 \
  -e EVM_PRIVATE_KEY=0xYOUR_KEY \
  -- npx -y webbersites-x402-mcp

Claude Desktop — one click

Download the extension, double-click it, and Claude Desktop installs the server with its own Node runtime — no terminal, no config file. The wallet key is entered in Settings → Extensions and stored in your OS keychain; leave it empty to browse in quote mode.

↓ Download webbersites-x402.mcpb

…or by hand, in claude_desktop_config.json:

claude_desktop_config.json
{
  "mcpServers": {
    "webbersites-x402": {
      "command": "npx",
      "args": ["-y", "webbersites-x402-mcp"],
      "env": { "EVM_PRIVATE_KEY": "0xYOUR_KEY" }
    }
  }
}

Windsurf · Cursor · any stdio client

mcp.json
{
  "mcpServers": {
    "webbersites-x402": {
      "command": "npx",
      "args": ["-y", "webbersites-x402-mcp"],
      "env": { "EVM_PRIVATE_KEY": "0xYOUR_KEY" }
    }
  }
}

Environment variables

EVM_PRIVATE_KEYPaying wallet (USDC on Base). Omit it and the server runs in free quote mode — every tool returns its price instead of data.
X402_MAX_PRICEPer-call USD ceiling, default 0.50. Calls above it are refused before any payment. Set 0.005 to restrict to the cheapest tools.
X402_FULL_OUTPUTSet 1 to disable truncation of large base64 payloads (cover art, icons, social cards).

Fund the wallet with a dollar of USDC on Base — that's roughly 1,000 of the cheapest calls.

One click, hosted for you.

The server is listed on Smithery, the MCP registry with a hosted gateway. Connect through Smithery's UI and it handles the plumbing for whatever client you use — no terminal, no config files.

Best for · trying it in 30 seconds, no terminal required
Install page smithery.ai/servers/service-tfij/webbersites-x402

How it works

Connect with zero config and you're in quote mode — browse all 75 tools and their live prices for free. When you're ready to make paying calls, set two fields in Smithery's connection settings:

evmPrivateKey0x… key of a dedicated throwaway hot wallet holding a little USDC on Base mainnet. Stored as a secret in your Smithery connection.
maxPriceHard USD ceiling per call, default 0.10 — more expensive tools are refused before any payment happens.

WebberSites x402 MCP server on Smithery

Tools as a package.

Building your own agent? webbersites-agent-tools hands you all 75 endpoints as ready-made tool objects — { name, description, parameters, execute } — with adapters for the Vercel AI SDK and LangChain, and a shape that maps 1:1 onto Coinbase AgentKit custom actions. Definitions are built at runtime from the live OpenAPI spec, so the package never goes stale.

Best for · Vercel AI SDK, LangChain JS, Coinbase AgentKit, custom loops
terminal
npm install webbersites-agent-tools

Quickstart

agent.mjs
import { createWebbersitesTools } from "webbersites-agent-tools";

const { tools, byName } = await createWebbersitesTools({
  privateKey: process.env.EVM_PRIVATE_KEY, // dust wallet with a little USDC on Base
});

const price = await byName.get_price_coin.execute({ coin: "bitcoin" });
// { coin: "bitcoin", usd: …, change_24h_pct: …, ts: "…" }  — cost: $0.001

Vercel AI SDK

vercel-ai.mjs
import { generateText, tool, jsonSchema } from "ai";
import { createWebbersitesTools, toVercelAI }
  from "webbersites-agent-tools";

const { tools } = await createWebbersitesTools({
  privateKey: process.env.EVM_PRIVATE_KEY,
});

const result = await generateText({
  model: yourModel,
  tools: toVercelAI(tools, { tool, jsonSchema }),
  prompt: "Audit example.com for SEO.",
});

LangChain JS

langchain.mjs
import { DynamicStructuredTool }
  from "@langchain/core/tools";
import { createWebbersitesTools, toLangchain }
  from "webbersites-agent-tools";

const { tools } = await createWebbersitesTools({
  privateKey: process.env.EVM_PRIVATE_KEY,
});
const lcTools = toLangchain(tools, { DynamicStructuredTool });

Quote mode & subsets

no wallet? no problem
// Omit privateKey — every tool returns its live price + payment
// requirements instead of data. Browse before you fund.
const { tools, quoteMode } = await createWebbersitesTools();

// Or hand your agent just the tools you want it spending on:
const { tools: lintOnly } = await createWebbersitesTools({
  privateKey,
  filter: (t) => t.path.startsWith("/api/lint/"),
});

No wrapper. Just the protocol.

Everything above is convenience — underneath, this is plain HTTP. Call any endpoint, get a 402 Payment Required quote, sign a USDC transfer authorization (EIP-3009, no gas from you), retry with the X-PAYMENT header. Any language, any runtime, no SDK required.

Best for · Python, Go, Rust, curl — anything that speaks HTTP
GET /api/price/bitcoin 402 quote sign USDC auth retry + X-PAYMENT 200 data

See the quote

curl · the raw flow
# 1 — call an endpoint, no payment yet
curl -i https://api.webbersites.com/api/price/bitcoin

# → the server answers with what it costs:
HTTP/1.1 402 Payment Required
{
  "x402Version": 1,
  "accepts": [{
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "USDC",
    "maxAmountRequired": "1000"  // $0.001
  }]
}

Let a client pay it

agent.mjs · @x402/fetch
import { wrapFetchWithPayment } from "@x402/fetch";
import { createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
import { base } from "viem/chains";

const account = privateKeyToAccount(process.env.AGENT_KEY);
const wallet  = createWalletClient({ account, chain: base, transport: http() });

// a fetch that pays 402s for you
const fetchPaid = wrapFetchWithPayment(fetch, wallet);

const res  = await fetchPaid("https://api.webbersites.com/api/report/ethereum");
const data = await res.json(); // 200 OK — you're done

Worth knowing

Rewards: any purchase over $0.001 opens a 24-hour window in which every $0.001 endpoint costs $0.0005 for your wallet — add an X-Wallet: 0xYourAddress header (or ?wallet=) and the 402 quote reflects the discount automatically. The full worked payment flow, with request and response examples for every endpoint, is in llms-full.txt.

Same 402. Three rails.

Every paid endpoint also speaks MPP — the Machine Payments Protocol, the Tempo/Stripe IETF draft that standardizes HTTP 402 into WWW-Authenticate: Payment challenges. Same USDC amount, same wallet, same on-chain settlement as x402 — only the wire format differs. If your agent's stack already carries an mppx client (Vercel AI SDK, Cloudflare Agents, the official MCP SDK, OpenClaw), it pays here with zero configuration: no listing to find, no key to register — the 402 itself is the integration.

Best for · agents already on the mppx / Tempo / Stripe stack — and Lightning wallets via L402
GET /api/price/bitcoin 402 + Payment challenge sign USDC auth retry + Authorization: Payment 200 + Payment-Receipt

See the challenge

curl · the MPP challenge
# any paid endpoint, no payment yet
curl -i https://api.webbersites.com/api/price/bitcoin

# → alongside the x402 quote, the same 402 carries:
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment id="…",
  method="evm", intent="charge",
  request="…"  // amount, USDC on Base, pay-to

Let mppx pay it

agent.mjs · mppx
// npm install mppx viem
import { Fetch, evm } from "mppx/client";
import { privateKeyToAccount } from "viem/accounts";

const fetchPaid = Fetch.from({
  methods: [evm.charge({
    account: privateKeyToAccount(process.env.AGENT_KEY),
    currencies: [evm.assets.base.USDC],
    maxAmount: "1.00",  // per-call ceiling
  })],
});

const res  = await fetchPaid("https://api.webbersites.com/api/report/ethereum");
const data = await res.json(); // 200 — receipt in Payment-Receipt header

Worth knowing

Discovery: MPP-aware agents find the full paid catalog at /.well-known/mpp.json; every API response also carries a Link: rel="payment-method" breadcrumb pointing there. Protocol spec: mpp.dev. Prefer Bitcoin? The same 402 also carries a Lightning rail — opt in with an X-Pay-With: l402 header for a BOLT11 invoice challenge. Full guide at l402.webbersites.com.

Built for machines to find.

Agents shouldn't need a docs page. Every endpoint, price, schema, and payment requirement is published at stable, machine-readable URLs — point your agent at any one of them and it can discover the rest itself. These are the source of truth; they update the moment the API does.

Best for · autonomous agents, crawlers, codegen, tool builders
api.webbersites.com/.well-known/x402 x402 discovery document — every endpoint with price, network, and pay-to address. The standard entry point for x402-aware agents.
api.webbersites.com/.well-known/mpp.json MPP rail discovery — every paid endpoint's 402 carries a WWW-Authenticate: Payment challenge (Machine Payments Protocol, USDC on Base); stock mppx clients pay it automatically.
api.webbersites.com/.well-known/l402.json L402 Lightning rail discovery — opt in per request with X-Pay-With: l402 for a BOLT11 invoice challenge, pay in sats at the live BTC rate.
api.webbersites.com/openapi.json OpenAPI 3.1 spec — parameters, request/response schemas, examples, and prices in x-payment-info. Ready for function-calling toolkits and codegen. Both MCP servers and the npm SDK are generated from this.
x402.webbersites.com/llms.txt The catalog in plain language — one line per endpoint with price and parameters. Fits in a context window.
x402.webbersites.com/llms-full.txt The full reference — request/response examples for every endpoint and a worked x402 payment flow.
api.webbersites.com/ The live menu — a free JSON index of every endpoint with current prices and example calls. What this site's endpoint list is rendered from.
api.webbersites.com/mcp/.well-known/mcp-config JSON Schema for the remote MCP server's connection config (evmPrivateKey, maxPrice).

Tell your agent one sentence: "Read https://api.webbersites.com/.well-known/x402 and use what you need." Prices, new endpoints, and payment details stay current with zero code changes on your side.

Wallet safety, whichever road you take: use a dedicated throwaway hot wallet funded with a few dollars of USDC on Base mainnet — never a key that controls meaningful funds. Every option here honors a per-call price ceiling, prices are read from the API's signed 402 requirements, and the x402 client only ever pays the amount the endpoint quoted. A dollar covers ~1,000 of the cheapest calls.