比特币RPC接口服务

一个基于Go的比特币节点交互服务,通过Model Context Protocol (MCP)提供统一的RPC命令接口,用于访问区块链数据和管理操作。

  • by moncho
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 moncho/bitcoin-mcp

使用说明

比特币MCP服务器

一种基于Go的服务,它提供了一个统一的接口,通过使用模型上下文协议(MCP)的各种RPC命令与比特币节点进行交互。该服务器将比特币RPC功能组织为逻辑类别,并提供一个干净、文档齐全的API,用于访问区块链数据和操作。

特性

  • 使用模型上下文协议的全面比特币RPC接口
  • 按功能类别组织:
    • 区块链操作
    • Mempool运营
    • UTXO操作
    • 区块链管理
  • 安全认证
  • 全面的错误处理
  • 清洁并记录API

先决条件

  • 转到1.24或更高版本
  • 启用 RPC 的 Bitcoin 核心节点
  • 比特币RPC命令的基本理解

安装

  1. 克隆存储库:
git clone https://github.com/moncho/bitcoin-mcp.git
cd bitcoin-mcp
  1. 安装依赖项:
go mod download
  1. 构建服务器:
go build -o bitcoin-mcp

配置

创建配置文件(config.json)具有以下结构:

{
    "bitcoin": {
        "rpc_url": "http://localhost:8332",
        "username": "your_rpc_username",
        "password": "your_rpc_password"
    },
    "server": {
        "port": 8080,
        "host": "localhost"
    }
}

运行服务器

  1. 启动启用RPC的Bitcoin Core节点:
bitcoind -server -rpcuser=your_rpc_username -rpcpassword=your_rpc_password
  1. 启动MCP服务器:
./bitcoin-mcp -config config.json

或者使用环境变量:

BITCOIN_RPC_URL=http://localhost:8332 \
BITCOIN_RPC_USER=your_rpc_username \
BITCOIN_RPC_PASS=your_rpc_password \
./bitcoin-mcp

API使用

服务器提供了一个RESTful API,用于访问比特币RPC命令。以下是一些示例:

获取区块链信息

curl -X POST http://localhost:8080/api/v1/blockchain/info

获取块数据

curl -X POST http://localhost:8080/api/v1/blockchain/block \
  -H "Content-Type: application/json" \
  -d '{"blockhash": "0000000000000000000123456789abcdef", "verbose": true}'

获取Mempool信息

curl -X POST http://localhost:8080/api/v1/mempool/info

发展

项目结构

bitcoin-mcp/
├── cmd/
│   └── server/          # Main server application
├── pkg/
│   ├── bitcoin/         # Bitcoin RPC client
│   └── tools/           # RPC command implementations
├── config.json          # Configuration file
└── README.md           # This file

添加新的RPC命令

  1. 将该方法添加到 Bitcoin 客户端 pkg/bitcoin/client.go
  2. 在中创建或更新相应的工具 pkg/tools/
  3. 在相应的类别中注册该工具
  4. 为新功能添加测试

测试

运行测试套件:

go test ./...

安全考虑

  • 永远不要在公共存储库中公开RPC凭据
  • 使用安全密码进行RPC访问
  • 考虑对公共API进行速率限制
  • 验证所有输入参数
  • 清除错误消息

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 提交您的更改
  4. 推到分支
  5. 创建拉取请求

请遵循 贡献指南 提交更改时。

文档

有关API文件和规范的详细信息,请参阅:

许可证

[指定许可证信息]

支持

如需支持,请:

  1. 检查 文档
  2. 搜索现有问题
  3. 如果需要,创建新问题

致谢

  • 比特币核心开发者
  • 围棋界
  • 此项目的所有贡献者