Skip to main content
Glama
swiftnodes

swiftnodes-mcp

Official
README.md
# 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).

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing chains, fetching one chain's details, getting pricing, checking method support, and probing arbitrary endpoints. No two tools overlap in a way that would cause an agent to select the wrong one.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: list_chains, get_pricing, get_chain, get_method_support, probe_endpoint. The verbs and nouns are predictable and match the action each tool performs.

Tool Count5/5

Five tools is well-scoped for this server's purpose: catalog discovery, detail lookup, pricing, capability checking, and endpoint diagnostic. Each tool earns its place and there is no bloat.

Completeness5/5

The domain is SwiftNodes' chain and RPC support surface, and the tools cover discovery, detail, pricing, method compatibility, and live diagnosis. There are no obvious dead ends or critical missing operations for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues