LND MCP Server

使用说明

项目简介

LND MCP Server 是一个开源的 Model Context Protocol (MCP) 服务器,旨在连接到 Lightning Network Daemon (LND) 节点,并通过自然语言查询提供节点信息的访问能力。该服务器作为 MVP 版本,目前主要支持闪电网络通道数据的查询,为需要了解 LND 节点状态(从运营商到技术人员)的用户提供清晰的洞察。它可以与任何支持 MCP 协议的 LLM 应用(如 Block Goose, Claude, OpenAI 应用)配合使用。

主要功能点

  • 自然语言查询接口: 支持使用简单的自然语言提问来查询 LND 节点信息,例如 "Show me all my channels"。
  • 安全 LND 节点集成: 通过 TLS 证书和 Macaroon 安全地连接到用户的 LND 节点。
  • 双格式响应: 提供人类可读的文本摘要和机器友好的 JSON 数据响应。
  • 模块化架构: 代码结构清晰,易于维护和扩展。
  • Mock LND 模式: 支持在没有真实 LND 节点的情况下进行开发和测试。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/pblittle/lnd-mcp-server.git
    cd lnd-mcp-server
  2. 安装依赖:

    npm install
  3. 构建项目:

    npm run build

服务器配置

MCP 服务器需要配置 LND 节点的连接信息以及服务器自身的运行参数。配置信息通过 '.env' 文件或环境变量进行设置。

以下是 MCP 客户端连接 LND MCP Server 时 需要配置的服务器启动命令 (command) 及其参数 (args),以 JSON 格式提供:

{
  "serverName": "lnd-mcp-server",
  "command": "node",
  "args": [
    "scripts/run-server.js"
  ],
  "env": {
    "LND_TLS_CERT_PATH": "/path/to/your/tls.cert",
    "LND_MACAROON_PATH": "/path/to/your/readonly.macaroon",
    "LND_HOST": "localhost",
    "LND_PORT": "10009",
    "PORT": "3000",
    "LOG_LEVEL": "info",
    "USE_MOCK_LND": "false"
  },
  "description": "LND MCP Server - 连接到真实LND节点的MCP服务器",
  "notes": "请替换 '/path/to/your/tls.cert' 和 '/path/to/your/readonly.macaroon' 为您实际的LND节点 TLS 证书和只读 macaroon 文件的路径。"
}

参数注释:

  • serverName: 服务器名称,可以自定义,用于在 MCP 客户端中标识服务器。
  • command: 启动服务器的命令,这里是 'node',表示使用 Node.js 运行时。
  • args: 启动命令的参数,这里是 'scripts/run-server.js',指向服务器的启动脚本。
  • env: 环境变量配置,用于配置 LND 节点连接和服务器运行参数。
    • LND_TLS_CERT_PATH: LND 节点的 TLS 证书文件路径。[必填,连接真实 LND 节点时]
    • LND_MACAROON_PATH: LND 节点的只读 macaroon 文件路径。[必填,连接真实 LND 节点时]
    • LND_HOST: LND 节点的主机地址,默认为 'localhost'。[必填,连接真实 LND 节点时]
    • LND_PORT: LND 节点的 gRPC 端口,默认为 '10009'。[必填,连接真实 LND 节点时]
    • PORT: MCP 服务器监听的端口,默认为 '3000'。 [可选,可以自定义服务器端口]
    • LOG_LEVEL: 日志级别,可选 'debug', 'info', 'warn', 'error', 'fatal',默认为 'info'。 [可选,可以调整日志输出级别]
    • USE_MOCK_LND: 是否使用 Mock LND 模式,设置为 'true' 则使用模拟 LND 节点,'false' 则连接真实 LND 节点。默认为 'false'。 [可选,开发测试时可以设置为 'true' 使用 Mock LND]
  • description: 服务器描述,用于在 MCP 客户端界面显示服务器的用途。
  • notes: 配置说明,提供额外的配置提示和注意事项。

注意:

  • 如果您需要连接到真实的 LND 节点,请确保 '.env' 文件中配置了正确的 'LND_TLS_CERT_PATH', 'LND_MACAROON_PATH', 'LND_HOST', 和 'LND_PORT' 环境变量,并且 'USE_MOCK_LND' 设置为 'false' 或不设置(默认为 'false')。
  • 如果您只是想测试 MCP 服务器功能,可以将 'USE_MOCK_LND' 设置为 'true',并使用 'npm run mcp:mock' 命令启动服务器,此时无需配置真实的 LND 节点信息。

基本使用方法

  1. 启动服务器: 根据您的需求选择启动模式:

    • 开发模式 (Mock LND): 'npm run mcp:dev' (使用模拟 LND 节点)
    • 生产模式 (真实 LND): 'npm run mcp:prod' (连接真实 LND 节点,需要配置正确的 LND 节点信息)
    • Mock 服务器模式: 'npm run mcp:mock' (仅启动 Mock MCP 服务器,用于测试)
  2. 使用 MCP 客户端连接: 配置您的 MCP 客户端(例如 Block Goose, MCP Inspector 或其他支持 MCP 协议的 LLM 应用),按照上述 服务器配置 中的 JSON 格式配置服务器连接信息。客户端需要使用 Stdio 传输协议与服务器进行通信。

  3. 发送自然语言查询: 在 MCP 客户端中,您可以向服务器发送自然语言查询,例如:

    • "Show me all my channels"
    • "What is the health of my channels?"
    • "How is my channel liquidity distributed?"

    服务器将解析您的查询,并返回包含文本摘要和 JSON 数据的响应。

使用 MCP Inspector 测试 (可选)

您可以使用 MCP Inspector 工具 (https://www.npmjs.com/package/@modelcontextprotocol/inspector) 来测试和探索 MCP-LND Server。

  1. 安装 MCP Inspector:

    npm install -g @modelcontextprotocol/inspector
  2. 启动 MCP 服务器 (例如 Mock 模式):

    npm run mcp:mock
  3. 启动 MCP Inspector:

    npx @modelcontextprotocol/inspector
  4. 在 Web 界面中连接:

    • 点击右上角的 "Connect"。
    • 设置传输类型为 "stdio"。
    • 在 "Path" 中输入 'scripts/mock-server.js' 文件的路径 (如果您启动的是 mock 服务器) 或者 'scripts/run-server.js' (如果您启动的是真实 LND 服务器)。
    • 点击 "Connect" 开始与 MCP 服务器交互。

通过 MCP Inspector,您可以列出可用的工具 (Tool),并尝试使用自然语言查询与 MCP-LND Server 进行交互。

服务器信息