MCP Server for blockchain interactions with Web DApp for secure transaction signing
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"mcp-blockchain-server": {
"args": [
"-y",
"modelcontextprotocol"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A secure system enabling AI assistants to interact with blockchain smart contracts while ensuring users maintain complete control over their private keys and transaction signing.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'modelcontextprotocol' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked modelcontextprotocol against OSV.dev.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in finance
Let AI agents create, discover, and track tokens across chains via Printr.
Real-time financial market data: stocks, forex, crypto, commodities, and economic indicators
Swiss accounting integration for Bexio. 310 tools for invoices, contacts, projects.
Brazilian public procurement (PNCP) and Federal Revenue CNPJ data — 16 tools, 4 prompts.
MCP Security Weekly
Get CVE alerts and security updates for Mcp Blockchain Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
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 (one-click Render, Vercel, Docker, or a quick tunnel for testing) and wire it into Claude's Add custom connector dialog, see