Bitcoin Node MCP Server
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
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: mcp-mempool-space
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 deployed
Maintenance
Related MCP Connectors
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Read-only MCP server checks and quote verification, free and keyless; results signed and publicly lo
Read-only MCP server: verify credentials and browse escrows on the Stellar testnet contract.
Read-only educational MCP for CryptoDecentral Sovereign. No auth, trading, custody, or advice.
Related MCP Servers
- AlicenseAqualityAmaintenanceRead-only MCP server for querying DERO blockchain — blocks, smart contracts, transactions, network info. Privacy-first, runs locally.33168 npm2MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for Bitcoin block explorer and mempool/fee statistics, providing tools to query fees, mempool stats, blocks, transactions, addresses, hashrate, and mining pools.387 npmMIT
- AlicenseNot gradedqualityDmaintenanceA read-only MCP server that monitors a Nerdaxe Gamma solo miner over its local REST API, providing tools for miner status, pool and shares, hardware health, and device info.MIT
- AlicenseAqualityCmaintenanceMCP server for querying live Bitcoin data from mempool.space, including recommended fees, mempool stats, blocks, transactions, addresses, and price. No API key required.7MIT