Bitcoin Node MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bitcoin Node MCP Serverwhat's the node's current block height and sync progress?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bitcoin Node MCP Server
Read-only MCP server that monitors a Bitcoin Core full node (Umbrel on a Raspberry Pi 5) over its JSON-RPC interface. Part of a small series of personal MCP servers — see nerdaxe-mcp.
Built with the official MCP Python SDK (mcp), served over stdio.
Tools
Four read-only views on a single whitelisted RPC helper:
get_node_status— chain, block height, headers, sync progress, initial block download, human-readable uptimeget_network_info— Core version, connection counts (total/in/out), active networksget_mempool_info— transaction count, memory usage, minimum feeget_peer_info— peer counts in/out and a latency range; no full peer dump
Related MCP server: dero-mcp-server
Security model
The interesting part of this server is what it refuses to do:
RPC whitelist. Exactly five read-only methods (
getblockchaininfo,getnetworkinfo,getmempoolinfo,getpeerinfo,uptime), hardcoded as a constant. Any other method is rejected before a request leaves the machine — no wallet RPCs, no parameters.Field allowlist per tool. Every tool returns explicitly chosen fields, never "everything except X". Fields added by a future Core version cannot leak through;
localaddresses(the node's own public address) is excluded by design.No addresses in output. Logs and error messages never contain the node URL or IP. The RPC URL is validated at startup; on failure the server aborts without echoing it.
Errors as messages, not tracebacks. A
safe_outputboundary catches failures at the tool edge and returns a plain explanation; details go to the server-side log only.
Live proof
tests/test_protocol.py run against the real node — all four tools with
live values, plus the whitelist rejecting an unregistered method:
> .venv\Scripts\python tests\test_protocol.py
ok get_node_status: Report the node's chain sync status.
ok get_network_info: Report the node's network and connection status.
ok get_mempool_info: Report the node's mempool status.
ok get_peer_info: Report a short summary of the node's peer connections.
PASS listing: exactly the four read-only tools, no parameters
ok get_mempool_info: Transactions: 37040
ok get_network_info: Version: 310000
ok get_node_status: Chain: main
ok get_peer_info: Peers: 70 (in: 60, out: 10)
PASS calls: all four tools returned well-formed text
ok breakout: unknown tool 'stop' rejected -> Unknown tool: stop
PASS breakout: only the four registered tools are reachable
ALL PROTOCOL CHECKS PASSEDSetup
Windows:
py -m venv .venv
.venv\Scripts\pip install -r requirements.txtLinux / macOS:
python3 -m venv .venv
.venv/bin/pip install -r requirements.txtThen copy .env.example to .env and fill in NODE_RPC_URL,
NODE_RPC_USER, NODE_RPC_PASSWORD (Umbrel: Bitcoin app → "Connect").
Usage
Run directly for local testing:
.venv\Scripts\python main.pyOr wire it into claude_desktop_config.json as bitcoin-node, using
the absolute path to the venv's Python and to main.py.
Testing
Verified on three levels against a live node:
Direct function calls, including forced error paths (node offline, wrong credentials, non-whitelisted method).
tests/test_protocol.py— a programmatic MCP client over stdio with asserts; the regression run after every change:.venv\Scripts\python tests\test_protocol.pyLive smoke test from Claude Desktop: all four tools, plus a whitelist-escape attempt that was correctly rejected.
Limits
Read-only. No wallet operations, no configuration changes, no transaction broadcasting.
Single node, no multi-node support.
No caching — every call hits the node live.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceAn MCP server that provides AI agents with real-time and historical Bitcoin network data by wrapping the mempool.space WebSocket and REST APIs. It enables tracking addresses, monitoring blocks, and retrieving transaction details or fee estimates through natural language.MIT
- AlicenseAqualityAmaintenanceRead-only MCP server for querying DERO blockchain — blocks, smart contracts, transactions, network info. Privacy-first, runs locally.332442MIT
- Alicense-qualityCmaintenanceMCP server for Bitcoin block explorer and mempool/fee statistics, providing tools to query fees, mempool stats, blocks, transactions, addresses, hashrate, and mining pools.9MIT
- Alicense-qualityDmaintenanceMCP server that provides live crypto portfolio data, token info, gas prices, swap offers, and Bitcoin balance via Zerion and Blockstream APIs.3MIT
Related MCP Connectors
Read-only MCP server for Robinhood Chain token discovery, research, and due diligence via GMGN.
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
MCP server for Blockscout
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/andy-builds-ai/bitcoin-node-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server