₿itcoin 和闪电网络 MCP 服务器
概述
模型上下文协议 (MCP) 服务器使 AI 模型能够与比特币和闪电网络交互,从而允许它们生成密钥、验证地址、解码交易、查询区块链等。
🎮 演示
💼 目录
🔧 功能
- 密钥生成:创建新的比特币密钥对——包括地址、公钥和私钥(WIF)。
- 地址验证:验证比特币地址的正确性。
- 交易解码:解析原始比特币交易并以人类可读的格式显示其详细信息。
- 区块链查询:
- 最新区块:检索有关最新区块的详细信息(哈希值、高度、时间戳、交易计数等)。
- 交易详情:使用 TXID 获取有关交易的详细信息。
- 闪电网络:
- 发票解码:解析 BOLT11 Lightning 发票并显示人类可读的信息。
- 付款:直接从您的 LNBits 钱包支付 Lightning 发票。
🔑 Claude 桌面集成
要将比特币 MCP 服务器与 Claude Desktop(Anthropic 为 Claude 开发的桌面应用程序)一起使用,请按照以下步骤操作:
- **下载并安装 Claude Desktop:**访问 Claude Desktop 官方下载页面,获取适用于您操作系统(macOS 或 Windows)的应用程序( 安装 Claude Desktop | Anthropic 帮助中心)。安装应用程序并确保您使用的是最新版本(您可以在应用程序菜单中检查更新)。
- **配置 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 服务器的条目。例如:
在上面的代码片段中,
"bitcoin-mcp"
是服务器的标识符(您可以随意命名)。command
设置为运行npx
命令,args
指向您的比特币 MCP 服务器脚本的路径或运行服务器的命令。 - macOS:
- 重启 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 并再次测试。
- macOS:
🦆 Goose 集成
Goose 是由 Block 开发的开源 AI 代理框架,支持通过模型上下文协议 (MCP) 进行扩展。您可以将比特币 MCP 服务器集成为 Goose 扩展,以便 Goose 与比特币区块链进行交互。Goose 支持两种 MCP 服务器集成模式:将服务器作为本地进程 (STDIO) 运行,或通过服务器发送事件 (SSE) 将其作为远程服务连接。以下是两种方法的说明:
使用 STDIO(本地扩展)
该方法在本地运行比特币 MCP 服务器作为 Goose 的子进程,通过标准输入/输出进行通信。
- 在 Goose 中添加新扩展:打开 Goose 的配置界面。您可以通过命令行运行
goose configure
来执行此操作,或者在 Goose 桌面应用中前往“设置”>“扩展”。从菜单中选择**“添加扩展”。** ( 使用扩展 | goose ) - 选择扩展类型 - 命令行扩展:当提示输入扩展类型时,选择命令行扩展(在 CLI 菜单或 UI 中),以便 Goose 知道它应该启动本地命令( 使用扩展 | goose )(而不是内置或远程扩展)。
- **输入扩展详细信息:**提供比特币 MCP 服务器的名称和命令:
- **名称:**您可以将其称为“比特币”,或任何标识符(这将是您引用扩展的方式)。
- **命令:**指定如何运行 MCP 服务器。例如,如果您有 Python 脚本,请输入运行该脚本的命令。在 CLI 配置器中,系统可能会询问“应该运行什么命令?”,您可以输入:这告诉 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 )。)
- 完成并启用:完成扩展添加。Goose 会将此新扩展添加到其配置中(通常为
~/.config/goose/config.yaml
)。确保扩展已启用(如果使用 CLI 向导,则添加后应默认启用;在 Goose Desktop 应用中,您可以检查扩展列表,如果尚未启用,请将其切换为启用状态( 使用扩展 | goose )( 使用扩展 | goose ))。 - **使用新扩展启动 Goose 会话:**您现在可以在 Goose 中使用该扩展。如果您通过 CLI 运行 Goose,请运行以下命令启动包含该扩展的会话:
将“bitcoin”替换为您为扩展程序指定的任何名称( 使用扩展程序 | goose )。 (这可确保会话加载扩展程序。或者,如果扩展程序已全局启用,则 Goose Desktop 或 CLI 将自动在所有会话中提供该扩展程序。)
使用 SSE(远程扩展)
此方法通过 HTTP SSE 流将 Goose 连接到已运行的 MCP 服务器。如果您想将比特币 MCP 服务器作为独立服务运行(可能在另一台机器上,或者独立于 Goose),请使用此方法。
- **将 MCP 服务器作为独立服务启动:**运行比特币 MCP 服务器,使其监听连接。实际上,这意味着服务器需要以服务于 MCP HTTP 端点的模式启动。例如,您可以使用特定命令或选项运行服务器以监听端口(例如,使用 MCP 库的内置 Web 服务器功能或在 Web 框架下运行)。确保服务器可以通过已知 URL(例如
http://localhost:9000
)访问,并支持基于 SSE 的 MCP 协议。 - 在 Goose 中添加新扩展(远程):像以前一样,运行
goose configure
或使用 Goose UI添加扩展( 使用扩展 | goose )。这次,当系统询问扩展类型时,选择**“远程扩展”** ( 使用扩展 | goose )。这会告诉 Goose 它将通过 SSE 连接到外部服务器。 - 输入远程扩展的详细信息:为扩展命名(例如,“bitcoin”)并提供服务器的 URL。对于URL ,请输入 MCP 服务器运行的基址。例如,如果您的服务器在本地计算机上监听的是 9000 端口,您可以输入
http://localhost:9000
。Goose 将尝试连接到该地址的 MCP 服务器的 SSE 端点。(Goose 使用标准的 MCP SSE 路径,按照惯例位于服务器上的/mcp/sse
路由下,您通常只需提供主机名和端口号,Goose 会处理其余部分。) - **启用扩展:**添加远程扩展后,请确保在 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 连接详细信息。这些配置是可选的,仅当您计划使用闪电网络工具时才需要。
您可以通过以下方式获取这些值:
- 在LNBits创建账户
- 创建新钱包
- 前往 API 信息查找您的 API 密钥
📦可用工具
在API 参考指南中查找可用的工具。
🚨错误处理
服务器使用自定义错误类型来处理比特币操作和区块链查询。详细的错误消息使用 Pino 记录,并包含在客户端响应中,以便于调试。
🤝 贡献
欢迎贡献代码和提出功能请求!欢迎在 GitHub 上提交 Pull 请求或提出问题。
📝 许可证
该项目已获得MIT 许可。
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
通过模型上下文协议促进与比特币网络的交互,实现密钥生成、地址验证、交易解码和区块链数据检索。
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that provides read-only access to Bybit's cryptocurrency exchange API, allowing users to query real-time cryptocurrency data using natural language.Last updated -9312TypeScriptMIT License
- -securityFlicense-qualityA Model Context Protocol server providing tools for querying Bitcoin blockchain data via Blockchain Data and Query APIs, supporting various BTC information retrieval functions.Last updated -Python
- AsecurityFlicenseAqualityImplements the Model Context Protocol to allow AI models to access and interact with blockchain data, including reading contract states, retrieving events, and accessing transaction information across various networks.Last updated -1057054TypeScript
Satstream MCP Serverofficial
AsecurityAlicenseAqualityA Model Context Protocol server that enables querying Bitcoin blockchain data, including address information, transaction details, mempool statistics, and ordinals/runes data through the Satstream API.Last updated -37TypeScriptMIT License