Bitcoin MCP Server

by AbdelStark
Verified
MIT License
103
18
  • Apple

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Enables interaction with the Bitcoin blockchain, providing tools for generating keys, validating addresses, decoding transactions, querying latest blocks, and retrieving transaction details.

₿itcoin 和闪电网络 MCP 服务器

概述

模型上下文协议 (MCP) 服务器使 AI 模型能够与比特币和闪电网络交互,从而允许它们生成密钥、验证地址、解码交易、查询区块链等。

🎮 演示

克劳德演示视频鹅演示视频

💼 目录

🔧 功能

  • 密钥生成:创建新的比特币密钥对——包括地址、公钥和私钥(WIF)。
  • 地址验证:验证比特币地址的正确性。
  • 交易解码:解析原始比特币交易并以人类可读的格式显示其详细信息。
  • 区块链查询
    • 最新区块:检索有关最新区块的详细信息(哈希值、高度、时间戳、交易计数等)。
    • 交易详情:使用 TXID 获取有关交易的详细信息。
  • 闪电网络
    • 发票解码:解析 BOLT11 Lightning 发票并显示人类可读的信息。
    • 付款:直接从您的 LNBits 钱包支付 Lightning 发票。

🔑 Claude 桌面集成

要将比特币 MCP 服务器与 Claude Desktop(Anthropic 为 Claude 开发的桌面应用程序)一起使用,请按照以下步骤操作:

  1. **下载并安装 Claude Desktop:**访问 Claude Desktop 官方下载页面,获取适用于您操作系统(macOS 或 Windows)的应用程序( 安装 Claude Desktop | Anthropic 帮助中心)。安装应用程序并确保您使用的是最新版本(您可以在应用程序菜单中检查更新)。
  2. **配置 Claude Desktop 以使用比特币 MCP 服务器:**打开 Claude Desktop 配置文件(它是在您第一次在 Claude Desktop 中编辑设置时创建的):
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
      在此 JSON 配置的"mcpServers"部分下添加比特币 MCP 服务器的条目。例如:
    { "mcpServers": { "bitcoin-mcp": { "command": "npx", "args": ["-y", "bitcoin-mcp@latest"] } } }

    在上面的代码片段中, "bitcoin-mcp"是服务器的标识符(您可以随意命名)。 command设置为运行npx命令, args指向您的比特币 MCP 服务器脚本的路径或运行服务器的命令。

  3. 重启 Claude Desktop:保存claude_desktop_config.json文件,然后关闭并重新打开 Claude Desktop 。下次启动时,Claude 将自动按照配置启动比特币 MCP 服务器。如果 Claude Desktop 正在运行,则需要重启它以使更改生效。

测试 Claude 桌面集成

一旦 Claude Desktop 重新启动,您就可以测试比特币 MCP 服务器是否正常工作:

  • **向 Claude 询问一个与比特币相关的示例问题。**例如,尝试询问: “比特币网络上的最新区块是什么?”如果集成成功,Claude 的回复应该包含通过 MCP 服务器获取的最新区块,而不是“我不知道”或泛泛而谈。您还可以尝试其他查询,例如“请提供 TXID 为 abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890 的交易信息”。Claude应该使用 MCP 服务器的工具来检索数据并回答您的查询。
  • 验证响应: Claude 应该返回一个详细的答案(例如,比特币网络上的最新区块),并且没有错误。如果您收到错误消息或没有有用的响应,则 MCP 服务器可能未正确连接。
  • 检查 Claude 的日志(如有需要): Claude Desktop 提供了日志文件,可帮助调试 MCP 集成。如果该工具没有响应,请检查以下日志文件:
    • macOS: ~/Library/Logs/Claude/
    • Windows: %APPDATA%\Claude\logs\
      查找mcp.log以获取常规 MCP 连接消息,以及名为mcp-server-bitcoin-mcp.log (或您使用的任何名称)的文件以获取 MCP 服务器的输出/错误。这些日志将显示服务器是否启动或是否存在任何错误(例如路径错误或服务器异常)。如果您发现错误,请根据需要修复配置或环境,然后重新启动 Claude Desktop 并再次测试。

🦆 Goose 集成

Goose 是由 Block 开发的开源 AI 代理框架,支持通过模型上下文协议 (MCP) 进行扩展。您可以将比特币 MCP 服务器集成为 Goose 扩展,以便 Goose 与比特币区块链进行交互。Goose 支持两种 MCP 服务器集成模式:将服务器作为本地进程 (STDIO) 运行,或通过服务器发送事件 (SSE) 将其作为远程服务连接。以下是两种方法的说明:

使用 STDIO(本地扩展)

该方法在本地运行比特币 MCP 服务器作为 Goose 的子进程,通过标准输入/输出进行通信。

  1. 在 Goose 中添加新扩展:打开 Goose 的配置界面。您可以通过命令行运行goose configure来执行此操作,或者在 Goose 桌面应用中前往“设置”>“扩展”。从菜单中选择**“添加扩展”。**使用扩展 | goose
  2. 选择扩展类型 - 命令行扩展:当提示输入扩展类型时,选择命令行扩展(在 CLI 菜单或 UI 中),以便 Goose 知道它应该启动本地命令( 使用扩展 | goose )(而不是内置或远程扩展)。
  3. **输入扩展详细信息:**提供比特币 MCP 服务器的名称和命令:
    • **名称:**您可以将其称为“比特币”,或任何标识符(这将是您引用扩展的方式)。
    • **命令:**指定如何运行 MCP 服务器。例如,如果您有 Python 脚本,请输入运行该脚本的命令。在 CLI 配置器中,系统可能会询问“应该运行什么命令?”,您可以输入:
      npx -y bitcoin-mcp@latest
      这告诉 Goose 启动比特币 MCP 服务器 ( GitHub - AbdelStark/bitcoin-mcp: Bitcoin MCP Server )。(请确保使用正确的服务器脚本路径或正确的命令来运行服务器,就像在 Claude 配置中一样。)
    • 通常,除了脚本路径之外,您无需添加任何参数(除非您的服务器需要特殊标志)。上述命令使用默认的 STDIO 传输,Goose 期望该传输方式用于命令行扩展。(在 Goose 配置文件中,这对应于一个包含cmd: "npx"args: ["-y", "bitcoin-mcp@latest"]条目,其中type: stdio表示标准 I/O 模式( 使用扩展 | goose )。)
  4. 完成并启用:完成扩展添加。Goose 会将此新扩展添加到其配置中(通常为~/.config/goose/config.yaml )。确保扩展已启用(如果使用 CLI 向导,则添加后应默认启用;在 Goose Desktop 应用中,您可以检查扩展列表,如果尚未启用,请将其切换为启用状态( 使用扩展 | goose )( 使用扩展 | goose ))。
  5. **使用新扩展启动 Goose 会话:**您现在可以在 Goose 中使用该扩展。如果您通过 CLI 运行 Goose,请运行以下命令启动包含该扩展的会话:
    goose session --with-extension "bitcoin"

将“bitcoin”替换为您为扩展程序指定的任何名称( 使用扩展程序 | goose )。 (这可确保会话加载扩展程序。或者,如果扩展程序已全局启用,则 Goose Desktop 或 CLI 将自动在所有会话中提供该扩展程序。)

使用 SSE(远程扩展)

此方法通过 HTTP SSE 流将 Goose 连接到已运行的 MCP 服务器。如果您想将比特币 MCP 服务器作为独立服务运行(可能在另一台机器上,或者独立于 Goose),请使用此方法。

  1. **将 MCP 服务器作为独立服务启动:**运行比特币 MCP 服务器,使其监听连接。实际上,这意味着服务器需要以服务于 MCP HTTP 端点的模式启动。例如,您可以使用特定命令或选项运行服务器以监听端口(例如,使用 MCP 库的内置 Web 服务器功能或在 Web 框架下运行)。确保服务器可以通过已知 URL(例如http://localhost:9000 )访问,并支持基于 SSE 的 MCP 协议。
  2. 在 Goose 中添加新扩展(远程):像以前一样,运行goose configure或使用 Goose UI添加扩展使用扩展 | goose )。这次,当系统询问扩展类型时,选择**“远程扩展”**使用扩展 | goose )。这会告诉 Goose 它将通过 SSE 连接到外部服务器。
  3. 输入远程扩展的详细信息:为扩展命名(例如,“bitcoin”)并提供服务器的 URL。对于URL ,请输入 MCP 服务器运行的基址。例如,如果您的服务器在本地计算机上监听的是 9000 端口,您可以输入http://localhost:9000 。Goose 将尝试连接到该地址的 MCP 服务器的 SSE 端点。(Goose 使用标准的 MCP SSE 路径,按照惯例位于服务器上的/mcp/sse路由下,您通常只需提供主机名和端口号,Goose 会处理其余部分。)
  4. **启用扩展:**添加远程扩展后,请确保在 Goose 的设置中启用该扩展(与 STDIO 的情况类似)。STDIO 或 SSE 扩展(使用相同的工具)只需启用其中一个即可——如果您不小心同时启用了同一服务器的本地版本和远程版本,则可能需要禁用其中一个以避免混淆。

**在 Goose 中使用比特币 MCP 扩展:**设置扩展程序(通过上述任一方法)并启用后,您就可以与 Goose 交互并通过它查询比特币数据。在新的 Goose 聊天或会话中,您可以像平常一样提问。Goose 会识别何时使用比特币 MCP 工具来满足您的请求。例如:

  • “最新的比特币区块是多少?”
  • “请向我提供有关 TXID 为 abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890 的交易的信息。”

当你提出这些问题时,Goose 会调用 MCP 服务器的工具并返回答案(例如,最新的比特币区块信息)。你应该会看到 Goose 通过 MCP 服务器从比特币区块链中提取最新信息进行响应。

如果 Goose 似乎未使用该扩展程序(例如,它响应说找不到信息),请确保该扩展程序已启用且服务器正在运行(远程服务器处于 SSE 模式)。您还可以运行 Goose 的 CLI 并设置详细日志记录,以查看它是否尝试调用该扩展程序。通常,如果配置正确,Goose 会自动发现 MCP 服务器的功能并在需要时使用它们。

**更多资源:**有关 Goose 扩展和 MCP 的更多详细信息,请参阅 Goose 官方文档( 使用扩展 | goose )。该文档包含内置扩展和社区扩展的列表,并解释了 MCP 服务器如何集成到 Goose 中。您还可以在 Goose 文档和模型上下文协议文档中找到可用 MCP 服务器的目录和其他配置技巧。如果您想探索更多扩展或开发自己的扩展,这些文档会对您有所帮助。

📦开发设置

开发设置指南中查找设置说明。

闪电网络配置(可选)

要使用闪电网络功能,您需要配置 LNBits 连接详细信息。这些配置是可选的,仅当您计划使用闪电网络工具时才需要。

{ "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 信息查找您的 API 密钥

📦可用工具

API 参考指南中查找可用的工具。

🚨错误处理

服务器使用自定义错误类型来处理比特币操作和区块链查询。详细的错误消息使用 Pino 记录,并包含在客户端响应中,以便于调试。

🤝 贡献

欢迎贡献代码和提出功能请求!欢迎在 GitHub 上提交 Pull 请求或提出问题。

📝 许可证

该项目已获得MIT 许可

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

通过模型上下文协议促进与比特币网络的交互,实现密钥生成、地址验证、交易解码和区块链数据检索。

  1. Overview
    1. 🎮 Demo
      1. 💼 Table of Contents
        1. 🔧 Features
          1. 🔑 Claude Desktop Integration
            1. Testing the Claude Desktop Integration
          2. 🦆 Goose Integration
            1. Using STDIO (Local Extension)
          3. 📦 Development Setup
            1. Lightning Network Configuration (Optional)
          4. 📦 Available Tools
            1. 🚨 Error Handling
              1. 🤝 Contributing
                1. 📝 License
                  ID: y42jsc8cig