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 客户端和服务器之间的通信协议。

安装步骤

  1. 克隆仓库

    git clone https://github.com/AbdelStark/lightning-mcp
    cd lightning-mcp
  2. 安装依赖

    npm install
  3. 配置环境变量 复制 '.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 协议进行通信。

基本使用方法

  1. 启动服务器 在仓库根目录下,根据需要选择启动模式:

    • 开发模式 (推荐调试使用): 启动命令 'npm run dev',此模式支持热重载,方便开发调试。
    • 生产模式: 启动命令 'npm start',此模式用于生产环境,需要先使用 'npm run build' 构建。
  2. 配置 MCP 客户端 将上面提供的服务器配置 JSON 添加到你的 MCP 客户端中。具体的配置方法请参考你使用的 MCP 客户端的文档。

  3. 使用 '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 钱包有足够的余额来支付发票。

信息

分类

商业系统