x402station.io: independent risk-signal layer for x402 endpoints before agents pay.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
npx -y x402station-mcp
MCP client config
{
"mcpServers": {
"x402station": {
"command": "npx",
"args": [
"-y",
"x402station-mcp"
]
}
}
}MCP adapter for x402station.io, the independent risk-signal layer for x402 agentic commerce. Exposes Preflight by x402station.io plus Forensics, Catalog Decoys, Alternatives, Credits, Watch, and Whats New. Any agent speaking the Model Context Protocol gets endpoint evidence before signing PAYMENT-SIGNATURE — decoy, zombie, price-trap, never-paid, latency, signature/settlement checks — before paying.
x402station.io independently probes every endpoint listed on agentic.market every 10 minutes and merges probe history with CDP settlement data. Policy engines decide and enforce; x402station.io measures and reports. We do not route, take custody, or endorse.
# Claude Code / Cursor / Windsurf / Continue — works anywhere with MCP
npm install -g x402station-mcp
# or use npx in the config, no global install needed:
The adapter charges real USDC per paid call through x402 itself. You need a wallet private key that holds Base mainnet USDC.
Add to ~/.claude/claude_desktop_config.json (or wherever your MCP servers live):
{
"mcpServers": {
"x402station": {
"command": "npx",
"args": ["-y", "x402station-mcp"],
"env": {
"AGENT_PRIVATE_KEY": "0xYOUR_PRIVATE_KEY_HERE"
}
}
}
}
Same shape — every MCP host understands command / args / env. See your tool's MCP docs.
| Variable | Required | Default | Purpose |
|---|---|---|---|
AGENT_PRIVATE_KEY | yes for any paid tool call | — | 0x-prefixed 64-hex-char private key. Account must hold Base mainnet USDC. |
X402STATION_BASE_URL | no | https://x402station.io | Override for dev / testing. |
preflight(url) — $0.001 USDCAsk whether it's safe to pay this x402 URL. Returns:
{
"ok": true,
"warnings": [],
"metadata": {
"service": "...",
"price_usdc": "0.01",
"uptime_1h_pct": 100,
"avg_latency_ms": 412
}
}
ok is true only when no critical warning fires. Warnings include unknown_endpoint, no_history, dead, zombie, decoy_price_extreme, never_paid_zombie, proxy_markup, wildcard_402, spa_fallback, suspicious_high_price, slow, and new_provider.
forensics(url) — $0.001 USDCDeep 7-day report. Superset of preflight. Returns hourly uptime, latency p50/p90/p99, status-code distribution, concentration-group stats, decoy probability. Extra warnings: dead_7d, mostly_dead, slow_p99, price_outlier_high, high_concentration.
catalog_decoys() — $0.005 USDCFull blacklist. Returns every active endpoint currently flagged critical, plus per-reason counts. Pull periodically and cache locally — cheaper than preflighting every URL.
agent wants data from some_endpoint.com
│
├─ preflight("https://some_endpoint.com/data") ← $0.001
│ ok: false, warnings: ["decoy_price_extreme"]
│
└─ skip; try the next candidate
For bulk discovery, do catalog_decoys() once per day and treat the result as a set-difference against any URLs you're about to hit.
x402station checks whether the endpoint is safe (decoy / zombie / price-trap / never-paid) before an agent pays. It pairs naturally with a payload safety check — screening the payment metadata for PII before signing:
agent intent: pay some_endpoint.com
├─ x402station preflight(url) ← is the ENDPOINT safe?
├─ presidio-x402 screen_payment_metadata() ← is the PAYLOAD safe?
└─ pay()
presidio-hardened-x402-mcp screens payment metadata for PII before signing. The two servers are developed independently, on purpose — keeping the signals uncorrelated is the point. This is a composition pointer, not an endorsement; see their repo for the screening tool's behaviour and limits.
MIT