lnd-mcp查询服务器
连接到闪电网络节点,启用针对通道信息的自然语言查询,通过模型上下文协议提供人类可读的响应和结构化的JSON数据。
服务介绍
Lightning Network MCP 服务器
Lightning Network MCP 服务器允许大型语言模型(LLM)代理——例如在 Goose 中运行的代理——使用自然语言查询 Lightning 节点数据。它实现了 Model Context Protocol (MCP) 规范版本 2025-03-26,并且完全兼容 MCP Inspector 1.7.0。
该服务器通过 gRPC 或 Lightning Node Connect (LNC) 连接到您的节点,并返回可读摘要和机器可读的 JSON 输出。它被设计为模块化、可测试和可扩展,以支持其他节点类型,如 Core Lightning 和 Eclair。
有关架构细节,请参阅 ARCHITECTURE.md。
功能
系统解释自然语言提示,确定用户意图,评估领域逻辑,并查询您的 Lightning 节点。响应以普通语言和结构化的 JSON 返回。目前它支持基本的通道查询,并且正在积极发展以涵盖更广泛的节点状态、发票和路由数据。
示例查询
用自然语言提问:
Show me my channels
获取人类可读的响应:
Your node has 5 channels with a total capacity of 0.05000000 BTC (5,000,000 sats).
4 channels are active and 1 is inactive.
Your channels:
1. ACINQ: 0.02000000 BTC (2,000,000 sats) (active)
2. Bitrefill: 0.01000000 BTC (1,000,000 sats) (active)
3. LightningTipBot: 0.00800000 BTC (800,000 sats) (active)
4. Wallet of Satoshi: 0.00700000 BTC (700,000 sats) (active)
5. LN+: 0.00500000 BTC (500,000 sats) (inactive)
加上供应用程序使用的结构化 JSON 数据:
{
"channels": [
{
"remote_alias": "ACINQ",
"capacity": 2000000,
"local_balance": 800000,
"active": true
},
...
],
"summary": {
"total_capacity": 5000000,
"active_channels": 4,
"inactive_channels": 1,
"largest_channel_alias": "ACINQ",
"average_local_balance": 750000
}
}
JSON 输出提供了相同数据的结构化版本,并针对 LLM 代理、UI 层或下游应用程序进行了优化。
支持的功能
目前,系统支持基本的通道查询:
- “显示我的通道”
以下领域的更强大的查询正在开发中:
-
通道
“我的通道健康状况如何?”
“我是否有任何不活跃的通道?” -
发票
“这周我收到了多少发票?”
“我的最后一笔付款是什么?” -
节点
“我连接最多的节点是哪个?”
“我最后一次转发付款给哪个节点?” -
路由
“过去 24 小时内我路由了多少金额?”
“哪些通道负责了大部分的路由?”
快速开始
这提供了一个使用真实节点的零配置开发体验。
使用真实节点运行(通过 gRPC 或 LNC 的 LND)
cp .env.example .env
# Configure .env with your LND credentials
npm run mcp:prod
通过 Tor 连接到 LND 节点
要连接到作为 Tor 隐藏服务运行的 LND 节点:
-
确保您的系统上安装并运行了 Tor:
# macOS (使用 Homebrew) brew install tor brew services start tor # Ubuntu/Debian sudo apt install tor sudo systemctl start tor -
在您的
.env文件中配置 Tor SOCKS 代理设置:CONNECTION_TYPE=lnd-direct LND_HOST=your-node-address.onion LND_PORT=10009 LND_TLS_CERT_PATH=/path/to/tls.pem # 使用 PEM 格式以获得更好的兼容性 LND_MACAROON_PATH=/path/to/admin.macaroon SOCKS_PROXY_HOST=localhost SOCKS_PROXY_PORT=9050 -
确保您的 TLS 证书是 PEM 格式(以
-----BEGIN CERTIFICATE-----开头)。
如果您有原始证书,可以使用 extract-credentials.js 脚本进行转换。
使用凭证提取工具
如果您有一个 lndconnect URL(通常在移动应用中使用),您可以使用以下命令提取凭证:
# Extract credentials from an lndconnect URL
node scripts/extract-credentials.js "lndconnect://your-node.onion:10009?cert=BASE64CERT&macaroon=BASE64MACAROON"
# Or set LNDCONNECT_URL in your .env file and run
node scripts/extract-credentials.js
此脚本将:
- 提取主机、端口、证书和 macaroon
- 将证书转换为 PEM 格式(正确连接所需)
- 将文件保存到 test/fixtures 目录
- 打印要添加到 .env 文件中的配置
使用 MCP 检查器测试
要使用官方的 MCP 检查器测试服务器:
npm install -g @modelcontextprotocol/inspector
npm run build
LOG_LEVEL=warn npx @modelcontextprotocol/inspector node scripts/inspect.js
兼容性
- MCP 规范版本
2025-03-26 - MCP 检查器版本
1.7.0 - MCP 代理兼容性(例如,Goose)
- gRPC 支持直接节点访问
- LNC 支持安全远程访问
- JSON 和自然语言输出格式
贡献
有关设置、样式和测试指南,请参阅 CONTRIBUTING.md。
许可证
Apache License 2.0。请参阅 LICENSE。