Lightning Nostr MCP Server 使用说明
项目简介
Lightning Nostr MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,旨在让 AI 模型能够与比特币闪电网络互动。它通过 MCP 协议提供了一个 'pay_invoice' 工具,允许 AI 模型调用该工具来支付闪电网络发票。
主要功能点
- 支付闪电网络发票: 提供 'pay_invoice' 工具,AI 模型可以调用此工具支付指定的闪电网络发票。
- MCP 协议兼容: 遵循 Model Context Protocol 协议,易于与各种 MCP 客户端集成。
- 基于 LNbits: 使用 LNbits 作为闪电网络后端,简化了闪电网络功能的集成。
- SSE 传输: 默认使用 SSE (Server-Sent Events) 作为 MCP 客户端和服务器之间的通信协议。
安装步骤
-
克隆仓库
git clone https://github.com/AbdelStark/lightning-mcp cd lightning-mcp -
安装依赖
npm install -
配置环境变量 复制 '.env.example' 文件并重命名为 '.env',然后根据你的 LNbits 服务配置填写以下环境变量:
BITCOIN_LNBITS_NODE_URL="你的 LNbits 服务 URL (例如: https://demo.lnbits.com)" BITCOIN_LNBITS_ADMIN_KEY="你的 LNbits 管理员密钥" BITCOIN_LNBITS_READ_KEY="你的 LNbits 读取密钥"请务必替换为你的真实 LNbits 服务信息。
服务器配置 (MCP 客户端配置)
为了让 MCP 客户端连接到 Lightning Nostr MCP Server,你需要提供以下配置信息给你的 MCP 客户端。通常在客户端的服务器配置中填写,例如 Claude Desktop 的 Smithery 配置:
{ "serverName": "Lightning Nostr", "command": "npm", "args": ["run", "dev"], "transports": [ { "type": "sse", "url": "http://localhost:3000/sse", "contentType": "application/json-rpc" } ] }
配置参数说明:
- 'serverName': 服务器名称,可以自定义,用于在 MCP 客户端中标识该服务器。例如 "Lightning Nostr"。
- 'command': 启动 MCP 服务器的命令。这里使用 'npm' 命令。
- 'args': 启动命令的参数。'["run", "dev"]' 表示执行 'npm run dev' 命令,用于启动开发模式的服务器。 如果需要生产模式,可以修改为 '["start"]',并确保你已经使用 'npm run build' 构建了生产版本。
- 'transports': 定义了服务器使用的传输协议。
- 'type': 传输类型,这里设置为 'sse',表示使用 Server-Sent Events 协议。
- 'url': SSE 连接的 URL 地址。默认情况下,服务器运行在本地 '3000' 端口,SSE 端点为 '/sse'。如果你的服务器部署在不同的地址或端口,请相应修改此 URL。
- 'contentType': 内容类型,固定为 'application/json-rpc',表明使用 JSON-RPC 协议进行通信。
基本使用方法
-
启动服务器 在仓库根目录下,根据需要选择启动模式:
- 开发模式 (推荐调试使用): 启动命令 'npm run dev',此模式支持热重载,方便开发调试。
- 生产模式: 启动命令 'npm start',此模式用于生产环境,需要先使用 'npm run build' 构建。
-
配置 MCP 客户端 将上面提供的服务器配置 JSON 添加到你的 MCP 客户端中。具体的配置方法请参考你使用的 MCP 客户端的文档。
-
使用 'pay_invoice' 工具 一旦客户端成功连接到 Lightning Nostr MCP Server,你就可以在 AI 模型中使用 'pay_invoice' 工具了。 当 AI 模型需要支付闪电网络发票时,它会调用 'pay_invoice' 工具,并需要提供一个包含 'invoice' 字段的 JSON 对象作为参数,其中 'invoice' 字段的值为要支付的闪电网络 invoice 字符串。
例如,AI 模型可能会生成如下的工具调用请求:
{ "tool_calls": [ { "id": "tool_call_id_1", "type": "function", "function": { "name": "pay_invoice", "arguments": "{\"invoice\": \"lnbc...\"}" } } ] }服务器收到请求后,会解析参数,调用 LNbits API 支付 invoice,并将支付结果返回给 MCP 客户端,最终传递给 AI 模型。
注意: 请确保你的 LNbits 服务配置正确,并且 LNbits 钱包有足够的余额来支付发票。
信息
分类
商业系统