内容
# bitcoin-mcp
bitcoin-mcp 扩展了 AI 工具,提供基于 [MCP](https://modelcontextprotocol.io/) 的准确 Bitcoin 区块链数据。bitcoin-mcp 是一个简化的模型上下文协议 (Model Context Protocol, MCP) 服务器实现,通过 `bitcoin-cli` 与 Bitcoin Core(全节点)进行接口。这个 bitcoin-mcp 服务器为 Claude Desktop(或其他 mcp 客户端)提供对 Bitcoin 区块链数据的读取权限 **不包含钱包功能**。

## 特性
AI 代理满足最安全的数据账本 - Bitcoin。
- 查询实时的 Bitcoin 区块链信息(通过 `bitcoin-cli`,但不进行任何钱包调用)
- 访问内存池(mempool)、区块和交易数据
- 根据 TX 输出值和 BitFeed 表示生成自定义的 BTC 区块 3D 可视化(即那些在 [mempool.space](https://mempool.space/) 上美丽的矩形)

## 先决条件
- Claude Desktop(或其他 mcp 客户端)
- Python 3.10+
- **比特币全节点**(带 `bitcoin-cli`)
- (Windows)
## 安装
1. 将代码库克隆到您的最新 btc 全节点机器上(这是 bitcoin-mcp 工作所必需的)
2. 安装依赖项:
```bash
pip install -r requirements.txt
```
3. 确保 Bitcoin Core 是最新的并且正在运行。配置 `.env` 文件并添加 `BITCOIN_CLI_PATH`,以便 MCP 服务器可以找到 `bitcoin-cli`
- 在 `.env` 文件中添加这一行 `BITCOIN_CLI_PATH=C:\\Program Files\\Bitcoin\\daemon\\bitcoin-cli`
4. Claude Desktop 配置(任何 mcp 服务器的标准设置)
- 将 `path\\to\\` 更新为您的本地 `bitcoin-mcp` 文件夹
```
{
"mcpServers": {
"bitcoin-mcp": {
"command": "python",
"args": ["path\\to\\bitcoin-mcp\\bitcoin_mcp_server.py"],
"env": {}
}
}
}
```
## 测试服务器:
您可以测试 Python 服务器,以查看它是否加载了您的 BTC 全节点。
```bash
python bitcoin_mcp_server.py
```
## 可用工具
主要用于像 Claude Desktop 这样的 mcp 客户端利用比特币区块链信息,因此不包含钱包功能。
### 区块链信息
| 工具 | 描述 |
|------|-------------|
| `get_blockchain_info` | 获取当前区块链状态 |
| `get_block_hash` | 获取特定高度的区块哈希 |
| `get_block` | 根据哈希获取区块数据 |
| `get_block_stats` | 获取区块统计信息 |
| `get_chain_tips` | 获取链尖信息 |
| `get_chain_tx_stats` | 获取链交易统计信息 |
| `get_difficulty` | 获取当前难度 |
| `get_network_info` | 获取网络信息 |
| `get_blockchain_status` | 获取全面的区块链状态 |
| `get_detailed_block_info` | 获取详细的区块信息 |
| `search_blocks` | 搜索符合条件的区块 |
| `get_bitfeed_3d_representation` | 获取基于交易数据的BTC区块的3D表示 |
### 交易信息
| 工具 | 描述 |
|------|-------------|
| `get_mempool_info` | 获取内存池信息 |
| `get_tx_out` | 获取未花费交易输出(UTXO)信息 |
| `get_tx_out_set_info` | 获取未花费交易输出集统计信息 |
| `get_raw_transaction` | 获取原始交易数据 |
| `decode_raw_transaction` | 解码原始交易 |
| `estimate_smart_fee` | 估算交易费用 |
| `analyze_transaction` | 分析交易细节 |
### 分析
| 工具 | 描述 |
|------|-------------|
| `get_difficulty_history` | 获取难度调整历史 |
| `get_fee_history` | 获取交易费用历史 |
| `get_hashrate_estimate` | 估算网络哈希率 |
| `get_block_time_distribution` | 分析区块时间分布 |
| `analyze_blockchain` | 综合区块链分析 |
### 配置
| 工具 | 描述 |
|------|-------------|
| `configure_bitcoin_cli` | 配置 bitcoin-cli 设置 |
| `get_config_info` | 获取当前服务器配置 |
| `update_server_config` | 更新服务器配置 |
## 代码结构
- `bitcoin_mcp_server.py`: 主服务器入口点
- `bitcoin_connection.py`: Bitcoin Core 连接工具
- `bitcoin_config.py`: 配置管理
- `bitcoin_transactions.py`: 交易分析工具
- `bitcoin_utils.py`: 区块链工具
- `bitcoin_analytics.py`: 高级区块链分析
- `bitfeed.py`: BTC 区块的 3D 表示
## 安全注意事项
- 该 mcp server **不** 包含 Bitcoin Core 的钱包功能(你可以自行添加这些功能)
- 默认情况下,服务器仅绑定到本地主机(127.0.0.1)
- 允许对区块链数据的只读访问
## 示例用法
获取当前区块链信息:
```
告诉我关于比特币区块链当前状态的信息
```
分析特定区块:
```
给我关于区块800000的详细信息
```
获取交易费用历史:
```
过去24小时的交易费用情况如何?
```
估算哈希率:
```
比特币网络当前估计的哈希率是多少?
```
生成3D表示(请注意,上下文长度可能无法适应所有交易,尝试交易数量少于20的区块):
```
为比特币区块111111构建一个react threejs查看器
```
## 许可证
MIT 许可证