# swiftnodes-mcp An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server for [SwiftNodes](https://swiftnodes.io) — multi-chain blockchain RPC, exposed to AI agents. One API key, 125+ chains, flat-rate pricing. This server gives Claude, ChatGPT, Cursor, and any MCP client live, factual answers about chains, pricing, and JSON-RPC method support — plus the ability to probe any EVM endpoint directly. ## Chains Works across all 128 SwiftNodes chains, including Ethereum, BNB Smart Chain (BSC), opBNB, Base, Arbitrum, Polygon, Solana and Bitcoin. Each chain has a slug used in tool arguments and endpoint URLs, for example: | Chain | Slug | Endpoint | |---|---|---| | BNB Smart Chain (BSC) | `bsc` | `https://rpc.swiftnodes.io/rpc/bsc?key=YOUR_API_KEY` | | opBNB | `opbnb` | `https://rpc.swiftnodes.io/rpc/opbnb?key=YOUR_API_KEY` | | Ethereum | `eth` | `https://rpc.swiftnodes.io/rpc/eth?key=YOUR_API_KEY` | | Base | `base` | `https://rpc.swiftnodes.io/rpc/base?key=YOUR_API_KEY` | Example prompts: "Which JSON-RPC methods does BNB Smart Chain support?", "What is the latest block on opBNB?", "Is trace_filter available on BSC?". `list_chains` returns the full list. ## Hosted server (recommended) SwiftNodes runs this server for you at **`https://rpc.swiftnodes.io/mcp`** (Streamable HTTP). Nothing to install. ```bash claude mcp add --transport http --scope user swiftnodes https://rpc.swiftnodes.io/mcp --header "Authorization: Bearer $SWIFTNODES_API_KEY" ``` Cursor and other clients (`~/.cursor/mcp.json`): ```json { "mcpServers": { "swiftnodes": { "url": "https://rpc.swiftnodes.io/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } } ``` The key is optional: without it the public tools below work. With it, two more tools are available: | Tool | What it does | |---|---| | `rpc_call` | Make a JSON-RPC call on any SwiftNodes chain with your key (counts against your plan like any request). | | `get_account` | Your plan, rate limits, requests used this month, and the IP/origin restrictions on the key. Never returns key values. | Listed in the [official MCP Registry](https://registry.modelcontextprotocol.io) as `io.swiftnodes/swiftnodes`. Docs: https://swiftnodes.io/docs/mcp ## Tools | Tool | What it does | |---|---| | `list_chains` | Every chain SwiftNodes serves — name, slug, chain ID, category, docs page. Filterable. | | `get_chain` | Full detail for one chain: IDs, block time, native currency, HTTP/WebSocket/archive endpoint templates, docs links. | | `get_pricing` | Live flat-rate plans from the public API — rate limits, included features, no compute units. | | `get_method_support` | Which JSON-RPC methods work on which chain — auto-probed weekly through the same path customer requests take. Overview or per-method detail. | | `probe_endpoint` | Diagnose any EVM JSON-RPC endpoint (ours or anyone's): chain identity, block height, archive capability, latency — or run a specific method call. | ## Run it locally (stdio) Zero dependencies, Node >= 18. **From this repo:** ```bash git clone https://github.com/swiftnodes/swiftnodes-mcp node swiftnodes-mcp/bin/server.js # speaks MCP over stdio ``` **Via npm** (once published): `npx -y swiftnodes-mcp` ### Claude Desktop ```json { "mcpServers": { "swiftnodes": { "command": "node", "args": ["/path/to/swiftnodes-mcp/bin/server.js"] } } } ``` ### Cursor / any MCP client Add a stdio server with command `node` and args `["/path/to/swiftnodes-mcp/bin/server.js"]`. ## Data sources - **Chains** — bundled snapshot generated from the SwiftNodes site source of truth (`scripts/generate-chains-data.mjs`; regenerate after chain changes). - **Pricing** — fetched live from `https://rpc.swiftnodes.io/api/plans` (bundled fallback if unreachable). - **Method support** — fetched live from `https://swiftnodes.io/method-matrix.json`, re-probed weekly. Support values reflect the real customer path, including failover. ## Notes `probe_endpoint` will call any http(s) URL you give it — the same ground our CLI diagnostic [rpc-doctor](https://github.com/swiftnodes/rpc-doctor) covers. Probe responsibly: one quick pass per endpoint, not a load test. Questions: [swiftnodes.io](https://swiftnodes.io) — free tier, no KYC. ## License MIT — see [LICENSE](LICENSE).