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 的对接能力,涵盖支付、撤销、转账、确认等场景
- 安装与运行步骤
- 安装依赖并获取代码
- 直接在包含源码的环境中运行,无需额外安装自定义依赖,按照项目结构编译/执行即可。
- 配置 API Key(可选但推荐)
- 设置环境变量 LIGHTNING_WALLET_API_KEY(或通过运行时设置代理密钥),以便 MCP 服务器调用 Lightning Faucet API。
- 启动 MCP 服务器
- 使用标准 MCP 客户端要连接的方式启动服务器进程(本仓库提供的入口通过 stdio 传输启动,示例为 CLI/进程间通信)。
- 配置 MCP 客户端
- MCP 客户端(LLM 侧)需要知道服务器名称、启动命令与参数等信息,示例配置如下(不包含在代码块中展示,仅做文字描述):
- 服务器名称: lightning-wallet
- 启动命令: npx
- 启动参数: ["lightning-wallet-mcp"]
- 如有必要,环境变量: LIGHTNING_WALLET_API_KEY,用于认证调用 Lightning Faucet API 的密钥
- MCP 客户端(LLM 侧)需要知道服务器名称、启动命令与参数等信息,示例配置如下(不包含在代码块中展示,仅做文字描述):
- 安装依赖并获取代码
- 服务器配置示例(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 等策略。