使用说明

项目简介

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 进行交互。

信息

分类

开发者工具