{
  "markdown": "# @walletbureau/mcp\n\n**Check who you are about to pay.** An MCP server that gives your agent one tool: score the\nbehavioral risk of a wallet on Base before sending it money.\n\nThe score comes from the full history of x402 / EIP-3009 USDC payments on Base — how long the\naddress has existed, who pays it, how concentrated its inflows are, whether its activity just\nspiked. You get a number from 0 to 100, a verdict (`ok` / `caution` / `avoid`) and the risk flags\nthat produced them, each with a reason in plain language.\n\nThese are risk signals, not accusations. Methodology: <https://walletbureau.com/methodology>\n\n## Install\n\n```bash\nnpm i @walletbureau/mcp --ignore-scripts\n```\n\nThe package ships ready-to-run JavaScript. There are no install scripts, no native modules and\nno build step on your machine — `--ignore-scripts` changes nothing here, and that is on purpose.\n\n### Claude Code\n\n```bash\nclaude mcp add walletbureau -- npx -y @walletbureau/mcp\n```\n\n### Claude Desktop / Cursor / any MCP client\n\nAdd this to your MCP configuration (`claude_desktop_config.json` for Claude Desktop):\n\n```json\n{\n  \"mcpServers\": {\n    \"walletbureau\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@walletbureau/mcp\"]\n    }\n  }\n}\n```\n\nThat is the whole setup. With no credentials the server runs on the public free quota — a few\nchecks per day — which is enough to try it. To keep going, pick a payment mode below.\n\n## Paying for checks\n\nA full check costs **$0.01**. The server picks its mode from the environment:\n\n| Mode | Set this | What happens |\n|---|---|---|\n| **Free demo** | nothing | Uses the public demo quota (a few checks per day per IP). |\n| **Prepaid key** | `WALLETBUREAU_API_KEY=atk_…` | Each check is debited from the key's balance. No crypto involved. |\n| **Wallet (x402)** | `X402_PRIVATE_KEY=0x…` | The server pays $0.01 in USDC on Base per check, automatically, over [x402](https://x402.org). |\n\nIf both are set, the prepaid key wins — its balance is already paid for, and an on-chain payment\nwould be a second charge.\n\n```json\n{\n  \"mcpServers\": {\n    \"walletbureau\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@walletbureau/mcp\"],\n      \"env\": { \"WALLETBUREAU_API_KEY\": \"atk_your_key_here\" }\n    }\n  }\n}\n```\n\n### If you pay from a wallet\n\n`X402_PRIVATE_KEY` is a real spending key. Treat it like one:\n\n- Use a **dedicated wallet** funded with a small amount of USDC — not your main account.\n- The key never leaves your machine. It is used to sign x402 payments and is never logged, never\n  sent to the service and never included in tool output. The service only ever sees the payment.\n- `X402_MAX_PRICE_USD` (default `0.10`) caps what a single call may cost. The price is quoted by\n  the remote server, so this check lives in code next to the signing step — not in a prompt.\n\n## Tools\n\n### `check_counterparty` — paid\n\nInput: `{ \"address\": \"0x…\" }` — a wallet address on Base.\n\nReturns the full report: score, verdict, risk flags with reasons, and the aggregate statistics\nbehind them. Its price is visible to your client before the call, both in the tool description and\nin the tool's `_meta` under `walletbureau/pricing`.\n\n```json\n{\n  \"address\": \"0x…\",\n  \"score\": 74,\n  \"verdict\": \"ok\",\n  \"flags\": [\n    { \"code\": \"activity_spike\", \"severity\": \"low\",\n      \"reason\": \"Volume over the last 24 h is 12× the median of the last 30 days\" }\n  ],\n  \"stats\": {\n    \"first_seen\": \"2025-11-02T…Z\", \"tx_in\": 1204, \"tx_out\": 17,\n    \"volume_in_usd\": \"604.31\", \"volume_out_usd\": \"12.05\",\n    \"distinct_payers\": 311, \"confidence_basis\": \"confirmed+probable\"\n  },\n  \"meta\": { \"computed_at\": \"…\", \"cache_age_seconds\": 312, \"api_version\": \"v1\", \"disclaimer\": \"…\" }\n}\n```\n\nThe response schema is a stable contract: fields are only ever added, and a rename or removal\nmeans a new API version. Published as JSON Schema alongside the API.\n\n### `get_service_stats` — free\n\nNo input. Public counters of the index: addresses indexed, transfers ingested, scores served.\n\n## Configuration\n\n| Variable | Default | Meaning |\n|---|---|---|\n| `API_BASE_URL` | `https://walletbureau.com` | Where the service lives. Change it only to point at your own deployment. |\n| `WALLETBUREAU_API_KEY` | — | Prepaid API key, `atk_…`. |\n| `X402_PRIVATE_KEY` | — | Private key that pays per call over x402. |\n| `X402_MAX_PRICE_USD` | `0.10` | Hard cap on the price of a single paid call. |\n| `REQUEST_TIMEOUT_MS` | `5000` | Timeout for an unpaid request to the service. |\n| `PAYMENT_TIMEOUT_MS` | `60000` | Budget for a paid call, including signing and on-chain settlement. |\n\nThe server logs to stderr only — stdout belongs to the MCP protocol.\n\n## What this server does not do\n\nNo scoring logic and no data of its own: it is a thin wrapper over the public HTTP API, so a fix\nto the methodology reaches you without a package upgrade. No local cache either — the service\ncaches, and a second copy would only drift from it.\n\n## License\n\nApache-2.0\n",
  "bytes": 4922,
  "sha": "0e445982a806e75d4264e5f3c5fd3a1ed8fa99df38270ffb11a6ba7453867ce9",
  "repo_slug": "walletbureau/mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_walletbureau_mcp_deac469a/readme"
}