Lightning Wallet MCP 服务器实现

使用说明

  • 项目简介
    • 这是一个完整的 MCP 服务器实现,遵循 MCP 协议规范,提供工具调用、资源管理、会话上下文以及促发通知等能力,主要聚焦于通过 MCP 为 AI 模型/代理提供对 Lightning Network 的访问、支付和账户管理等功能。
  • 主要功能点
    • 实现 MCP 核心接口:列表工具、调用工具、返回 MCP 风格的请求/响应结构
    • 提供多种工具集合,覆盖余额查询、L402 API 调用、发票创建/支付、交易记录、Webhook 管理、预算与代理/运营商管理、LNURL、Keysend 等
    • 支持 Operator/Agent 两种身份模式,支持通过环境变量或 API Key 在运行时切换身份
    • 内置了完整的服务器端实现(仅示例的客户端调用并非服务器本身,服务器端实际处理 MCP 请求并返回 JSON-RPC 风格的响应)
    • 采用标准的 Stdio 传输作为默认传输通道,便于在本地或容器中直接通过进程输入输出进行通信
    • 提供完整的工具元信息、输入校验和错误处理,健壮性较高
    • 通过 API 提供对 Lightning Faucet / Lightning Wallet 的对接能力,涵盖支付、撤销、转账、确认等场景
  • 安装与运行步骤
    1. 安装依赖并获取代码
      • 直接在包含源码的环境中运行,无需额外安装自定义依赖,按照项目结构编译/执行即可。
    2. 配置 API Key(可选但推荐)
      • 设置环境变量 LIGHTNING_WALLET_API_KEY(或通过运行时设置代理密钥),以便 MCP 服务器调用 Lightning Faucet API。
    3. 启动 MCP 服务器
      • 使用标准 MCP 客户端要连接的方式启动服务器进程(本仓库提供的入口通过 stdio 传输启动,示例为 CLI/进程间通信)。
    4. 配置 MCP 客户端
      • MCP 客户端(LLM 侧)需要知道服务器名称、启动命令与参数等信息,示例配置如下(不包含在代码块中展示,仅做文字描述):
        • 服务器名称: lightning-wallet
        • 启动命令: npx
        • 启动参数: ["lightning-wallet-mcp"]
        • 如有必要,环境变量: LIGHTNING_WALLET_API_KEY,用于认证调用 Lightning Faucet API 的密钥
  • 服务器配置示例(MCP 客户端需要的最小信息,以 JSON 形式描述,不是代码) { "mcpServers": { "lightning-wallet": { "command": "npx", "args": ["lightning-wallet-mcp"] } } } 说明:若有需要,也可在同一配置中通过 env 指定 LIGHTNING_WALLET_API_KEY,用于直接在服务端持有并传递给后续请求。
  • 基本使用方法
    • 启动后,LLM 客户端可通过 MCP 调用工具,例如查询余额、创建发票、支付 L402 API、以及运营商/代理的管理操作等。服务器端会对传入的工具调用参数进行校验,返回统一的 JSON 结果,或错误信息,方便集成到多轮对话中。
    • 在对话中通过工具名称进行调用,例如 check_balance、create_invoice、fund_agent 等,服务器将执行相应的后端逻辑并返回结果。
    • 如需切换身份(运营商 vs. 代理),可通过 set_operator_key 或 set_agent_credentials 工具进行密钥切换,所有后续请求都会使用新的密钥。若需要恢复原状,可再次切换或通过环境变量初始化。
    • 安全性要点:请务必妥善管理 API Key,使用 Webhook 的签名验证来确保通知的真伪,按系统要求设置预算与撤销 cooldown 等策略。

服务器信息