AbdelStark/bitcoin-mcp
简介
核心亮点
- 实时查询比特币链上数据,消除 AI 知识滞后
- 支持地址验证与交易解码,快速分析资金流向
- 可直接生成密钥对,简化比特币开发调试流程
- 标准 MCP 协议接入,适配多种 AI 客户端
完整文档

<div align="center">
<a href="https://github.com/AbdelStark/bitcoin-mcp/actions/workflows/ci.yml"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/actions/workflow/status/AbdelStark/bitcoin-mcp/ci.yml?style=for-the-badge" height=30></a>
<a href="https://bitcoin.org/"> <img alt="Bitcoin" src="https://img.shields.io/badge/Bitcoin-000?style=for-the-badge&logo=bitcoin&logoColor=white" height=30></a>
<a href="https://modelcontextprotocol.com/"> <img alt="MCP" src="https://img.shields.io/badge/MCP-000?style=for-the-badge&logo=modelcontextprotocol&logoColor=white" height=30></a>
</div>
₿itcoin & Lightning Network MCP Server
<div align="center">
<h3>
<a href="abdelstark.github.io/bitcoin-mcp/">
Documentation
</a>
<span> | </span>
<a href="https://abdelstark.github.io/bitcoin-mcp/docs/integration/claude-desktop">
Try with Claude
</a>
<span> | </span>
<a href="https://abdelstark.github.io/bitcoin-mcp/docs/integration/goose">
Try with Goose
</a>
</h3>
</div>
<div align="center">
<a href="https://smithery.ai/server/@AbdelStark/bitcoin-mcp"><img alt="Smithery Badge" src="https://smithery.ai/badge/@AbdelStark/bitcoin-mcp"></a>
<a href="https://www.npmjs.com/package/bitcoin-mcp"><img alt="NPM Version" src="https://img.shields.io/npm/v/bitcoin-mcp"></a>
</div>
概览一个 Model Context Protocol (MCP) 服务器,使 AI 模型能够与 Bitcoin 和 Lightning Network 交互,允许它们生成密钥、验证地址、解码交易、查询区块链等。
🎮 Demo
| Claude Demo Video | Goose Demo Video |
| ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------- |
| <img src="docs/static/img/bitcoin-mcp-claude-desktop-screenshot.png" alt="Claude Desktop Demo" width="400"/> | <img src="docs/static/img/bitcoin-mcp-goose-screenshot.png" alt="Goose Demo" width="400"/> |
💼 Table of Contents- ₿itcoin \& Lightning Network MCP Server
- 概述 - 🎮 Demo - 💼 目录 - 🔧 功能特性 - 🔑 Claude Desktop 集成 - 测试 Claude Desktop 集成 - 🦆 Goose 集成 - 使用 STDIO (本地扩展) - 使用 SSE (远程扩展) - 📦 开发环境搭建 - Lightning Network 配置 (可选) - 📦 可用工具 - 🚨 错误处理 - 🤝 贡献 - 📝 许可证🔧 功能特性- Key Generation: 创建新的 Bitcoin 密钥对 —— 包括 address、public key 和 private key (WIF)。
- Address Validation: 验证 Bitcoin address 的正确性。
- Transaction Decoding: 解析 raw Bitcoin transaction 并以易读格式显示其详情。
- Blockchain Queries:
- Lightning Network:
🔑 Claude Desktop Integration
要在 Claude Desktop(Anthropic 的 Claude 桌面应用)中使用 Bitcoin MCP server,请遵循以下步骤:
1. 下载并安装 Claude Desktop:访问 Claude Desktop 官方下载页面,获取适用于你操作系统的应用(macOS 或 Windows)(Installing Claude for Desktop | Anthropic Help Center)。安装应用并确保使用的是最新版本(你可以在应用菜单中检查更新)。
2. 配置 Claude Desktop 以使用 Bitcoin MCP Server:打开 Claude Desktop 配置文件(该文件在你首次编辑 Claude Desktop 设置时创建):- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%\Claude\claude_desktop_config.json
在此 JSON 配置文件的 "mcpServers" 部分为 Bitcoin MCP server 添加一项。例如:
{
"mcpServers": {
"bitcoin-mcp": {
"command": "npx",
"args": ["-y", "bitcoin-mcp@latest"]
}
}
}"bitcoin-mcp" 是服务器的标识符(你可以随意命名)。command 设置为运行 npx 命令,而 args 指向你的 Bitcoin MCP 服务器脚本路径或运行服务器的命令。
3. 重启 Claude Desktop: 保存 claude_desktop_config.json 文件,然后关闭并重新打开 Claude Desktop。在下次启动时,Claude 将根据配置自动启动 Bitcoin MCP 服务器。如果 Claude Desktop 正在运行,你需要重启它才能使更改生效。
测试 Claude Desktop 集成
Claude Desktop 重启后,你可以测试 Bitcoin MCP 服务器是否正常工作:
- 向 Claude 提出一个与 Bitcoin 相关的示例问题。 例如,尝试询问:_"What's the latest block on the Bitcoin network?"_ 如果集成成功,Claude 的回答应包含通过 MCP 服务器获取的最新区块,而不是回答“我不知道”或给出通用答案。你也可以尝试其他查询,例如 _"Give me information about the transaction with TXID abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890."_ Claude 应当使用 MCP 服务器的工具来检索数据并回答你的问题。
- 验证响应: Claude 应当返回详细的答案(例如 Bitcoin 网络上的最新区块)且无错误。如果你收到错误消息或没有有用的响应,则 MCP 服务器可能未正确连接。- 检查 Claude 日志(如果需要): Claude Desktop 提供的日志文件可帮助调试 MCP 集成。如果工具没有响应,请检查以下路径的日志文件:
~/Library/Logs/Claude/
- Windows: %APPDATA%\Claude\logs\
查找 mcp.log 以获取通用 MCP 连接消息,以及名为 mcp-server-bitcoin-mcp.log(或你使用的其他名称)的文件以获取 MCP server 的输出/错误。这些日志将显示 server 是否启动或是否存在任何错误(例如路径错误或 server 内部异常)。如果发现错误,请根据需要修复配置或环境,然后重启 Claude Desktop 并再次测试。
🦆 Goose 集成
Goose 是由 Block 开发的开源 AI agent 框架,支持通过 Model Context Protocol 扩展。你可以将 Bitcoin MCP server 集成为 Goose 扩展,使 Goose 能够与 Bitcoin 区块链交互。Goose 支持两种 MCP server 集成模式:将 server 作为本地进程运行 (STDIO),或通过 Server-Sent Events (SSE) 连接到远程服务。以下是两种方法的说明:
使用 STDIO(本地扩展)
此方法将 Bitcoin MCP server 作为 Goose 的子进程在本地运行,通过标准输入/输出进行通信。1. 在 Goose 中添加新扩展: 打开 Goose 的配置界面。你可以通过在命令行运行 goose configure,或在 Goose Desktop 应用中前往 Settings > Extensions 来完成。从菜单中选择 "Add Extension"。(Using Extensions | goose)
2. 选择扩展类型 – Command-Line Extension: 当提示选择扩展类型时,选择 Command-Line Extension(在 CLI 菜单或 UI 中),以便 Goose 知道应启动本地命令 (Using Extensions | goose)(而非内置或远程扩展)。
3. 输入扩展详情: 为 Bitcoin MCP server 提供名称和命令:
- Name: 你可以将其命名为 "bitcoin" 或任何标识符(这将是你引用该扩展的方式)。
- Command: 指定如何运行 MCP server。例如,如果你有 Python 脚本,请输入运行它的命令。在 CLI 配置器中,它可能会询问 "What command should be run?" – 你应输入:
npx -y bitcoin-mcp@latest- 通常除了脚本路径外,不需要添加任何参数(除非你的 server 需要特殊 flag)。上述命令使用默认的 STDIO transport,这是 Goose 对命令行扩展的预期方式。(在 Goose 配置文件中,这对应于一个 cmd: "npx" 且 args: ["-y", "bitcoin-mcp@latest"] 的条目,其中 type: stdio 表示标准 I/O 模式 (Using Extensions | goose)。)4. 完成并启用: 完成扩展添加。Goose 会将此新扩展添加到其配置中(通常为 ~/.config/goose/config.yaml)。确保扩展已启用(如果使用 CLI wizard,添加后默认应为启用状态;在 Goose Desktop 应用中,您可以在 Extensions 列表中检查并将其开启 (Using Extensions | goose) (Using Extensions | goose))。
5. 使用新扩展启动 Goose 会话: 您现在可以在 Goose 中使用该扩展。如果您通过 CLI 运行 Goose,请运行以下命令启动包含该扩展的会话:
goose session --with-extension "bitcoin"#### 使用 SSE (远程扩展)
此方法通过 HTTP SSE 流将 Goose 连接到一个已经在运行的 MCP server。如果你想将 Bitcoin MCP server 作为独立服务运行(可能在另一台机器上,或者仅独立于 Goose 运行),请使用此方法。
1. 将 MCP server 作为独立服务启动: 运行 Bitcoin MCP server 使其监听连接。在实践中,这意味着 server 需要在提供 MCP HTTP 端点的模式下启动。例如,你可能会使用特定的命令或选项运行 server 以监听某个端口(例如使用 MCP 库内置的 Web server 功能或在 Web 框架下运行)。确保 server 在已知 URL(如 http://localhost:9000)可访问,并支持基于 SSE 的 MCP 协议。2. 在 Goose (Remote) 中添加新扩展: 与之前一样,运行 goose configure 或使用 Goose UI 选择 Add Extension (Using Extensions | goose)。这一次,在询问扩展类型时选择 Remote Extension (Using Extensions | goose)。这将告知 Goose 它将通过 SSE 连接到外部服务器。
3. 输入远程扩展详情: 为扩展命名(例如 "bitcoin")并提供服务器的 URL。在 URL 栏中,输入 MCP server 运行的基础地址。例如,如果你的服务器在本地机器的 9000 端口监听,你可以输入 http://localhost:9000。Goose 将尝试连接到该地址的 MCP server SSE 端点。(Goose 使用标准的 MCP SSE 路径,按惯例位于服务器的 /mcp/sse 路由下,你通常只需提供主机名和端口,Goose 会处理其余部分。)
4. 启用扩展: 添加远程扩展后,确保它在 Goose 的设置中已启用(与 STDIO 情况相同)。对于具有相同工具的 STDIO 或 SSE 扩展,只需启用其中一个即可——如果你不小心同时启用了同一个服务器的本地和远程版本,建议禁用其中一个以避免混淆。在 Goose 中使用 Bitcoin MCP 扩展: 扩展设置完成(通过上述任一方法)并启用后,您就可以通过它与 Goose 交互并查询 Bitcoin 数据。在新的 Goose 聊天或会话中,像平常一样提问即可。Goose 会在需要时自动识别并使用 Bitcoin MCP 工具来完成您的请求。例如:
- _“最新的 Bitcoin 区块是什么?”_
- _“给我关于 TXID 为 abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890 的交易信息。”_
当您提出这些问题时,Goose 将调用 MCP server 的工具并返回答案(例如最新的 Bitcoin 区块信息)。您将看到 Goose 通过 MCP server 从 Bitcoin 区块链中获取并响应最新的信息。
如果 Goose 似乎没有使用该扩展(例如,它回答无法找到相关信息),请确保扩展已启用且 server 正在运行(远程模式下为 SSE 模式)。您还可以运行带有 verbose 日志的 Goose CLI,以查看它是否尝试调用该扩展。通常情况下,只要配置正确,Goose 会自动发现 MCP server 的能力并在相关时使用它们。更多资源: 有关 Goose 扩展和 MCP 的更多详情,请参考 Goose 官方文档 (Using Extensions | goose)。文档中包含内置和社区扩展列表,并解释了 MCP server 如何集成到 Goose 中。您还可以在 Goose 文档和 Model Context Protocol 文档中找到可用 MCP server 的目录及额外的配置技巧。如果您想探索更多扩展或开发自己的扩展,这些资源将非常有帮助。
📦 Development Setup
请在 Development Setup 指南中查看安装说明。
Lightning Network Configuration (可选)
要使用 Lightning Network 功能,您需要配置 LNBits 连接详情。这些是可选的,仅在您计划使用 Lightning Network 工具时才需要。
{
"lnbitsUrl": "https://demo.lnbits.com",
"lnbitsAdminKey": "your_admin_key", // Required for making payments
"lnbitsReadKey": "your_read_key" // Required for wallet information
}1. 在 LNBits 创建账户
2. 创建一个新钱包
3. 前往 API info 查找您的 API keys
📦 Available Tools
请在 API Reference 指南中查看可用工具。
🚨 Error Handling
服务器采用自定义错误类型来处理 Bitcoin 操作和区块链查询。详细的错误信息通过 Pino 记录,并包含在客户端响应中以方便调试。
🤝 Contributing
欢迎贡献和功能请求!请随时在 GitHub 上提交 pull requests 或 open issues。
📝 License
本项目采用 MIT License 许可。