<a href="https://github.com/AbdelStark/bitcoin-mcp/actions/workflows/ci.yml"><img alt="GitHub 工作流状态" 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="比特币" 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>这是一个模型上下文协议(MCP)服务器,它使AI模型能够与比特币和闪电网络进行交互,允许它们生成密钥、验证地址、解码交易、查询区块链等。
| Claude 示例 视频 | Goose 示例 视频 |
|---|---|
| <img src="docs/static/img/bitcoin-mcp-claude-desktop-screenshot.png" alt="Claude Desktop 示例" width="400"/> | <img src="docs/static/img/bitcoin-mcp-goose-screenshot.png" alt="Goose 示例" width="400"/> |
要使用比特币MCP服务器与Claude Desktop(Anthropic的Claude桌面应用),请按照以下步骤操作:
下载并安装Claude Desktop:访问官方Claude Desktop下载页面,并获取适用于您操作系统的应用程序(macOS或Windows)(在桌面安装Claude | Anthropic帮助中心)。安装应用程序并确保您使用的是最新版本(您可以在应用程序菜单中检查更新)。
配置Claude Desktop以使用比特币MCP服务器:打开Claude Desktop配置文件(首次编辑Claude Desktop设置时会创建该文件):
~/Library/Application Support/Claude/claude_desktop_config.json%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服务器脚本路径或运行服务器的命令。
重启Claude Desktop:保存claude_desktop_config.json文件,然后关闭并重新打开Claude Desktop。下次启动时,Claude将自动启动已配置的比特币MCP服务器。如果Claude Desktop正在运行,则需要重启以使更改生效。
一旦Claude Desktop重启,您可以测试比特币MCP服务器是否正常工作:
向Claude询问一个与比特币相关的示例问题。例如,尝试提问:“比特币网络上的最新区块是什么?” 如果集成成功,Claude的回答应包含通过MCP服务器获取的最新区块,而不是“我不知道”或通用答案。您还可以尝试其他查询,如“给我关于TXID为abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890的交易的信息。” Claude应使用MCP服务器的工具来检索数据并回答您的查询。
验证响应:Claude应返回详细的答案(例如比特币网络上的最新区块)且无错误。如果您收到错误消息或没有有用的响应,可能是因为MCP服务器连接不正确。
检查Claude的日志(如有必要):Claude Desktop提供了可以帮助调试MCP集成的日志文件。如果工具没有响应,请检查日志文件:
~/Library/Logs/Claude/%APPDATA%\Claude\logs\
查找mcp.log以获取一般MCP连接消息,以及名为mcp-server-bitcoin-mcp.log(或您使用的任何名称)的MCP服务器输出/错误文件。这些日志将显示服务器是否启动或是否有任何错误(如错误路径或服务器中的异常)。如果看到错误,请根据需要修复配置或环境,然后重新启动Claude Desktop并再次测试。Goose是由Block开发的一个开源AI代理框架,支持通过模型上下文协议(MCP)进行扩展。您可以将比特币MCP服务器作为Goose扩展,让Goose能够与比特币区块链进行交互。Goose支持两种MCP服务器集成模式:作为本地进程运行服务器(STDIO)或通过服务端发送事件(SSE)连接到远程服务。以下是两种方法的说明:
此方法在Goose本地作为子进程运行比特币MCP服务器,通过标准输入/输出进行通信。
在Goose中添加新扩展:打开Goose的配置界面。您可以通过命令行运行goose configure,或在Goose Desktop应用中进入设置 > 扩展。从菜单中选择**“添加扩展。”** (使用扩展 | goose)
选择扩展类型 – 命令行扩展:当提示选择扩展类型时,选择命令行扩展(在CLI菜单或UI中),这样Goose就知道应该启动本地命令(使用扩展 | goose)(而不是内置或远程扩展)。
输入扩展详情:提供比特币MCP服务器的名称和命令:
名称:您可以将其命名为“bitcoin”,或任何标识符(这将是您引用扩展的方式)。
命令:指定如何运行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)。
完成并启用:完成扩展添加。Goose将把这个新扩展添加到其配置中(通常是~/.config/goose/config.yaml)。确保扩展是启用的(如果使用CLI向导,默认情况下添加后就会启用;在Goose Desktop应用中,您可以检查扩展列表并切换它,如果尚未启用)。
使用新扩展启动Goose会话:现在您可以在Goose中使用这个扩展了。如果您通过CLI运行Goose,可以启动一个包含扩展的会话,运行:
goose session --with-extension "bitcoin"
将“bitcoin”替换为您给扩展的名称(使用扩展 | goose)。这确保会话加载了扩展。或者,如果扩展全局启用,Goose Desktop或CLI将在所有会话中自动拥有它。
此方法通过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工具来满足您的请求。例如:
当您提出这些问题时,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", // 支付所需
"lnbitsReadKey": "your_read_key" // 钱包信息所需
}
您可以按照以下步骤获得这些值:
请参阅API参考指南中的可用工具。
服务器采用自定义错误类型来处理比特币操作和区块链查询。详细的错误消息使用Pino记录,并包含在客户端响应中,便于调试。
欢迎贡献和功能请求!请随意提交拉取请求或在GitHub上打开问题。
本项目采用MIT许可证。