A Model Context Protocol (MCP) server that provides real-time Bitcoin blockchain data by querying the mempool.space API.
This MCP server offers five specialized tools for querying Bitcoin blockchain data:
Get basic statistics for any Bitcoin address.
Input:
address
(string): Bitcoin address to query
Output:
- Chain statistics (funded/spent amounts, transaction counts)
- Mempool statistics (pending transactions)
Example:
Address: 1wiz18xYmhRX6xStj2b9t1rwWX4GKUgpv
Chain Stats:
- Funded TXOs: 10
- Funded Sum: 150.07686949 BTC
- Spent TXOs: 5
- Spent Sum: 150.07599040 BTC
- Total Transactions: 12
Mempool Stats:
- Pending TXOs: 0
- Pending Sum: 0.00000000 BTC
- Pending Transactions: 0
Get transaction history for a Bitcoin address.
Input:
address
(string): Bitcoin address to querylimit
(optional, number): Number of transactions to return (1-50, default: 10)
Output:
- List of recent transactions with status, dates, fees, and sizes
Get current UTXOs (unspent transaction outputs) for a Bitcoin address.
Input:
address
(string): Bitcoin address to querylimit
(optional, number): Number of UTXOs to return (1-50, default: 10)
Output:
- List of current UTXOs with amounts, confirmation status, and dates
Get detailed information about a specific Bitcoin transaction.
Input:
txid
(string): Transaction ID (hash) to query
Output:
- Complete transaction details including:
- Basic info (version, size, weight, fee)
- Confirmation status and block information
- Input and output details with amounts and addresses
Get information about a specific Bitcoin block.
Input:
block_height
(number): Block height to query
Output:
- Block details including:
- Hash, version, merkle root
- Previous block hash and timestamp
- Size, weight, and transaction count
- Fee statistics
- Clone this repository:
git clone <repository-url>
cd bitcoin-mcp
- Install dependencies:
npm install
- Build the project:
npm run build
Start the MCP server:
npm start
The server runs on stdio and can be connected to any MCP-compatible client.
Here are some example queries you can make with this MCP server:
{
"tool": "get-address-stats",
"arguments": {
"address": "1wiz18xYmhRX6xStj2b9t1rwWX4GKUgpv"
}
}
{
"tool": "get-address-transactions",
"arguments": {
"address": "1wiz18xYmhRX6xStj2b9t1rwWX4GKUgpv",
"limit": 5
}
}
{
"tool": "get-transaction",
"arguments": {
"txid": "15e10745f15593a899cef391191bdd3d7c12412cc4696b7bcb669d0feadc8521"
}
}
{
"tool": "get-block",
"arguments": {
"block_height": 857808
}
}
This MCP server uses the following mempool.space API endpoints:
GET /api/address/{address}
- Address statisticsGET /api/address/{address}/txs
- Address transaction historyGET /api/address/{address}/utxo
- Address UTXOsGET /api/tx/{txid}
- Transaction detailsGET /api/block/{height}
- Block information
All amounts are displayed in BTC (converted from satoshis) for better readability. Timestamps are converted to ISO format for easy parsing.
The server includes comprehensive error handling:
- Network errors are caught and reported with descriptive messages
- Invalid addresses or transaction IDs return appropriate error messages
- Rate limiting and API errors are handled gracefully
@modelcontextprotocol/sdk
- MCP SDK for server implementationsuperagent
- HTTP client for API requestszod
- Schema validation for tool parameters
This project is licensed under the MIT License - see the LICENSE.md file for details.