
Security News
US Government Forces Anthropic to Pull Claude Fable Days After Launch
Anthropic says the directive cited national security concerns over a narrow jailbreak, but offered no specific technical details.
mcp-blockchain-server
Advanced tools
A self-contained MCP server that lets AI assistants read blockchain data and prepare transactions, while users keep full custody of their keys and sign in their own wallet.
An MCP server that lets AI assistants read blockchain data and prepare transactions — while the user keeps full custody of their keys and signs every transaction in their own wallet.
It runs as a single, self-contained process. No database, no Redis, no API keys, no separate frontend to build. Point your MCP client at it and go.
┌──────────────┐ MCP (stdio) ┌─────────────────────┐ RPC ┌────────────┐
│ AI assistant │ ──────────────► │ mcp-blockchain │ ───────► │ Blockchain │
│ (Claude …) │ ◄────────────── │ server │ ◄─────── │ (EVM) │
└──────────────┘ │ + signing web page │ └────────────┘
└─────────┬───────────┘
│ opens link, signs in wallet
▼
┌───────────┐
│ User │ (MetaMask / Rabby / …)
└───────────┘
The hard problem in AI + blockchain is letting an assistant act without ever touching private keys. This server solves it by splitting the work:
Requirements: Node.js 18+. No clone, no build, no API keys.
Add the server to any MCP client that launches stdio servers. For Claude Desktop, open Settings → Developer → Edit Config and add:
{
"mcpServers": {
"blockchain": {
"command": "npx",
"args": ["-y", "mcp-blockchain-server"]
}
}
}
Restart the client. You can now ask things like "What's the ETH balance of vitalik.eth?" or "Send 0.01 test ETH to 0x… on Sepolia." For a send, the assistant returns a link — open it, review, and sign in your wallet.
No configuration is required: the server ships with free public RPC endpoints and defaults to the Sepolia testnet.
The same npx command works anywhere that runs an MCP stdio server — the config
shape is identical across clients:
{ "command": "npx", "args": ["-y", "mcp-blockchain-server"] }
This is the block to drop into Cursor (.cursor/mcp.json), Cline,
Windsurf, VS Code (.vscode/mcp.json), and others. To pass options, add
an "env" block (see Configuration).
git clone https://github.com/zhangzhongnan928/mcp-blockchain-server.git
cd mcp-blockchain-server
npm install # installs and builds (via the prepare script)
Then point the client at the build instead of npx:
{ "command": "node", "args": ["/absolute/path/to/mcp-blockchain-server/build/index.js"] }
For MCP clients that connect over HTTP instead of spawning a local process, run the server in HTTP mode. It then serves the MCP endpoint and the signing page on one port:
MCP_TRANSPORT=http PUBLIC_BASE_URL=https://your-host npx -y mcp-blockchain-server
https://your-host/mcphttps://your-host/tx/<id>Bind a public interface with HOST=0.0.0.0 (or keep the default 127.0.0.1 and
put it behind a reverse proxy). When exposed publicly, set MCP_ALLOWED_HOSTS
and/or MCP_ALLOWED_ORIGINS to enable DNS-rebinding protection, and front it
with HTTPS and access control.
To host it as a custom connector (Docker, one-click Render, or a quick tunnel for testing) and wire it into Claude's Add custom connector dialog, see the deployment guide.
| Tool | Purpose |
|---|---|
get-chains | List supported networks and their chain ids. |
get-balance | Native-token balance for an address on a chain. |
read-contract | Call a read-only contract method (pass an abi or set ETHERSCAN_API_KEY). |
prepare-transaction | Create an unsigned transaction and return a signing URL. |
get-transaction-status | Track a prepared transaction by id. |
read-contract is zero-config when you pass a human-readable ABI:
{
"chainId": "1",
"address": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"method": "balanceOf",
"args": ["0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"],
"abi": ["function balanceOf(address) view returns (uint256)"]
}
prepare-transaction. The server stores it and returns
http://localhost:3000/tx/<id>.eth_sendTransaction).get-transaction-status until it is CONFIRMED.The signing page is plain HTML + vanilla JS served by the same process — there is nothing extra to build or deploy.
Everything is optional. Copy .env.example to .env to override defaults.
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT | stdio | stdio for local clients, or http to serve MCP over Streamable HTTP at /mcp. |
PORT | 3000 | Port for the signing web server (and the /mcp endpoint in http mode). |
HOST | 127.0.0.1 | Interface to bind (localhost only by default). Set 0.0.0.0 to expose remotely. |
PUBLIC_BASE_URL | http://localhost:<PORT> | Base URL used in signing links and the /mcp URL (set when hosting remotely). |
DEFAULT_CHAIN_ID | 11155111 | Default chain (Sepolia testnet). |
LOG_LEVEL | info | error | warn | info | debug (logs go to stderr). |
MCP_DATA_DIR | ~/.mcp-blockchain | Where pending transactions are stored. |
RPC_URL_<chainId> | built-in public RPC | Override the RPC for a chain, e.g. RPC_URL_1=https://…. |
INFURA_API_KEY | — | If set, upgrades default RPCs to Infura. |
ETHERSCAN_API_KEY | — | If set, read-contract can auto-fetch verified ABIs. |
MCP_ALLOWED_HOSTS | — | Comma-separated Host allowlist for http mode (enables DNS-rebind protection). |
MCP_ALLOWED_ORIGINS | — | Comma-separated Origin allowlist for http mode (enables DNS-rebind protection). |
Ethereum (1), Sepolia (11155111), Polygon (137), Polygon Amoy (80002),
Base (8453), Base Sepolia (84532), Arbitrum One (42161), OP Mainnet
(10). Each has a built-in public RPC; override any with RPC_URL_<chainId>.
npm run dev # run from source with auto-reload (tsx)
npm run build # compile TypeScript to build/
npm start # run the compiled server
npm test # run the test suite (node:test)
npm run typecheck # type-check without emitting
CI (build + tests) runs on every push and PR. To publish a new version to npm:
NPM_TOKEN repository secret (an npm automation token) — once.npm version patch (or minor / major), then
git push --follow-tags.You can also publish manually: npm publish.
See docs/security.md for details.
MIT — see LICENSE.
FAQs
A self-contained MCP server that lets AI assistants read blockchain data and prepare transactions, while users keep full custody of their keys and sign in their own wallet.
We found that mcp-blockchain-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Anthropic says the directive cited national security concerns over a narrow jailbreak, but offered no specific technical details.

Security News
A network of 152 Chrome live wallpaper extensions hid ad tracking and made extension-driven traffic look like Google search clicks.

Company News
Socket’s first CISO brings deep experience securing high-growth SaaS companies as open source supply chain threats accelerate.