Bitcoin Mcp Lsn

Bitcoin Mcp Lsn

🚀 Bitcoin MCP 服务器

Bitcoin MCP 服务器是一个基于 Go 语言开发的服务,借助模型上下文协议(MCP),通过各类 RPC 命令提供统一接口,实现与比特币节点的交互。它将比特币 RPC 功能进行逻辑分类,为访问区块链数据和操作提供简洁且文档完备的 API。

🚀 快速开始

在使用 Bitcoin MCP 服务器之前,需要确保满足以下先决条件:

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

✨ 主要特性

  • 全面的比特币 RPC 接口:采用模型上下文协议,提供全面的比特币 RPC 接口。
  • 功能分类清晰
    • 区块链操作
    • 内存池操作
    • UTXO 操作
    • 区块链管理
  • 安全认证:具备安全认证机制,保障系统安全。
  • 全面错误处理:对各种错误情况进行全面处理,增强系统稳定性。
  • 简洁且有文档记录的 API:API 设计简洁,同时附带详细文档说明。

📦 安装指南

克隆仓库

git clone https://github.com/moncho/bitcoin-mcp.git
cd bitcoin-mcp

安装依赖项

go mod download

构建服务器

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"
}
}

运行服务器

启动比特币核心节点并启用 RPC

bitcoind -server -rpcuser=your_rpc_username -rpcpassword=your_rpc_password

启动 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 使用

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

获取区块链信息

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}'

获取内存池信息

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

开发

项目结构

bitcoin-mcp/
├── cmd/
│   └── server/          # 主服务器应用程序
├── pkg/
│   ├── bitcoin/         # 比特币 RPC 客户端
│   └── tools/           # RPC 命令实现
├── config.json          # 配置文件
└── README.md           # 本文件

添加新的 RPC 命令

  1. pkg/bitcoin/client.go 中添加方法到比特币 RPC 客户端。
  2. pkg/tools/ 目录下实现新的命令处理逻辑。
  3. 更新路由以处理新命令:
    • 添加新的路由到 server/main.go
    • 实现新的处理函数。

示例:添加区块浏览命令

创建新的工具文件
package tools

import (
"encoding/json"
"log"
"net/http"

"github.com/moncho/bitcoin-mcp/pkg/api"
)

func BlockExplorer(w http.ResponseWriter, r *http.Request) {
// 获取块哈希
blockHash := getBlockHashFromRequest(r)

// 获取块详细信息
blockData, err := api.GetBlockDetails(blockHash)
if err != nil {
log.Printf("无法获取块详细信息: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}

// 返回 JSON 响应
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(blockData)
}
更新主文件以添加路由
package main

import (
"log"

"github.com/moncho/bitcoin-mcp/pkg/tools"
)

func main() {
// 启动服务器并注册路由
http.HandleFunc("/api/v1/block/explorer", tools.BlockExplorer)
log.Fatal(http.ListenAndServe(":8080", nil))
}

安全考虑

  • 避免信息暴露:避免在日志或错误消息中暴露敏感信息,如 API 密钥。
  • 使用 HTTPS:使用 HTTPS 来保护 API 通信,默认启用 TLS 加密。
  • 定期轮换密钥和证书:定期轮换 API 密钥和证书,以减少未经授权访问的风险。
  • 配置安全机制:配置速率限制和身份验证机制,防止滥用和拒绝服务攻击。

贡献指南

  1. Fork 仓库:Bitcoin-MCP
  2. 创建功能分支:
git checkout -b feature/new-command
  1. 提交更改并创建拉取请求。
  2. 参与问题讨论和社区贡献。

📄 许可证

项目在 MIT License 下开源,欢迎自由使用和分发。

📞 联系方式

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-25 15:24

相似服务问题