关于 albyhub-admin-mcp
albyhub-admin-mcp 是供 Agent 检查或管理 Alby Hub Lightning 节点的 MCP 服务,提供节点与通道读取工具,以及可限制或要求确认写入的通用 HTTP 代理。
主要功能
- 01读取节点身份、网络和版本
- 02查看链上与 Lightning 余额
- 03列出 NWC 连接和通道
- 04代理任意 API 路径请求
- 05限制写入并记录请求
适用场景
- 01检查节点和通道状态
- 02查看 Hub 余额及子钱包
- 03探测不同 Hub 版本的 API 路径
MCP 相关
向 MCP 客户端提供 Alby Hub 节点信息、余额、NWC 连接和通道等工具。通用代理可访问其他 API 路径,并可对写入启用只读限制或确认步骤。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y albyhub-admin-mcpALBYHUB_URLBase URL of the Alby Hub instanceALBYHUB_TOKEN密钥Alby Hub API bearer tokenALBYHUB_READ_ONLYSet true to block all write operations (recommended for first-time setup)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
6收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| body | any | 否 | 请求正文——对象将作为 JSON 传递,字符串则按原始内容传递。GET/HEAD/OPTIONS 请求会忽略此项。 |
| path | string | 是 | Hub 上的路径,例如 `/api/info` 或 `/api/channels`。与 ALBYHUB_URL 组合使用。 |
| query | object | 否 | 查询字符串参数(string → string)。 |
| method | enum | 是 | HTTP 方法。GET/HEAD/OPTIONS 始终允许;其他方法受 READ_ONLY + REQUIRE_CONFIRM 控制。GET | POST | PUT | PATCH | DELETE | HEAD | OPTIONS |
| timeout_ms | integer | 否 | 请求超时时间,单位为 ms(默认值 15000,最大值 60000)。 |
| extra_headers | object | 否 | 要合并的额外 HTTP 标头。如果 Hub 要求使用 `X-API-Key` 而不是 `Authorization: Bearer`,此项会很有用。 |
详细介绍
albyhub-admin-mcp
向 LLM Agent 提供 Alby Hub 上的节点管理操作。 一个封装 Alby Hub HTTP API 的 MCP 服务,可读取节点信息、余额、通道和 NWC 子钱包。NWC(nwc-mcp)的功能范围仅限钱包,而本服务可进一步提供 Hub 级链上余额、通道状态和子钱包清单。
v0.1 — 防御性设计。 Alby Hub 的管理 API 在不同版本间不断演变,且没有稳定的公开版本规范。因此,v0.1 提供了一个通用代理工具,可访问任意路径(作为备用方案),并为少数成熟的端点提供类型化封装。如果类型化封装猜测的端点在你的 Hub 版本中不可用,代理可以帮你找到正确路径,无需重新发布。v0.2 将在针对真实 Hub 完成冒烟测试后,进一步完善类型化封装。
六个工具
| 工具 | 方法 | 路径 | 用途 |
|---|---|---|---|
albyhub_proxy_request | * | * | 通用 HTTP 代理——尚未封装的任意端点的备用方案。 |
albyhub_confirm_request | * | * | 用于 proxy_request 的两步确认分发器。 |
albyhub_get_node_info | GET | /api/info | 节点身份、网络和版本。 |
albyhub_get_balances | GET | /api/balances | 链上与 Lightning 的汇总余额。 |
albyhub_list_apps | GET | /api/apps | 在此 Hub 上配置的 NWC 连接(子钱包)。 |
albyhub_list_channels | GET | /api/channels | 带状态和容量信息的 Lightning 通道。 |
所有类型化封装都是安全的 GET 请求。非 GET 请求通过 albyhub_proxy_request 处理,并受 ALBYHUB_READ_ONLY 和 ALBYHUB_REQUIRE_CONFIRM 限制。
要求
- Node 20+
- 正在运行的 Alby Hub 实例(运行于
http://localhost:8080的桌面应用,或部署在某处的可自托管实例) - Alby Hub API 令牌(在 Hub UI 中选择 Settings → Developer / Apps)
安装
npx -y albyhub-admin-mcp
配置
cp .env.example .env
# edit .env: set ALBYHUB_URL (default http://localhost:8080) + ALBYHUB_TOKEN
必填
| 变量 | 用途 |
|---|---|
ALBYHUB_URL | Hub 的基础 URL。默认值为 http://localhost:8080。如果远程访问,请使用 HTTPS。 |
ALBYHUB_TOKEN | API 访问令牌。完整权限的令牌可能会耗尽 Hub 的链上余额——如果你在意使用者的安全,请缩小令牌权限范围,或设置 ALBYHUB_READ_ONLY=true。 |
可选安全设置
| 变量 | 默认值 | 用途 |
|---|---|---|
ALBYHUB_READ_ONLY | false | 通过 proxy_request 拒绝所有非 GET 请求。首次设置时强烈建议启用。 |
ALBYHUB_REQUIRE_CONFIRM | false | 对非 GET 请求启用两步确认。 |
ALBYHUB_MAX_REQUESTS_PER_MINUTE | 30 | 滚动 60 秒速率限制。 |
ALBYHUB_LOG_PATH | ./albyhub-admin-mcp.log | 服务日志。 |
ALBYHUB_AUDIT_PATH | ./albyhub-admin-mcp-audit.log | 仅追加的 JSON 行审计日志。 |
如果我的 Hub 对类型化封装返回 404,该怎么办?
你的 Hub 版本可能使用了不同的端点路径。使用 albyhub_proxy_request 探查——尝试 /api/node、/info、/api/v1/info 等路径。找到正确路径后,可在使用时固定该路径(并联系维护者,在 v0.2 中修复类型化封装)。
agent: albyhub_proxy_request({ method: "GET", path: "/api/v1/info" })
→ { status: 200, body: { ... } } // found it
安全模型
代理工具的处理流程:
ALBYHUB_READ_ONLY限制——直接阻止非 GET 请求。- 速率限制——对
requests计数桶应用滚动 60 秒窗口。 ALBYHUB_REQUIRE_CONFIRM限制——非 GET 请求会返回令牌;由albyhub_confirm_request执行请求。- HTTP 请求——使用 Bearer 身份验证,超时时间为 15 秒(可通过
timeout_ms覆盖)。 - 审计日志——将每次尝试(成功/已阻止/错误)记录为一行结构化 JSON。
仅支持 GET 的便捷封装会跳过第 1 和第 3 步(其设计本身就是安全的),但仍受速率限制并写入审计日志。
配套服务
nwc-mcp— 通过 NIP-47 执行钱包操作。按子钱包支出时使用此工具;执行整个 Hub 或节点级操作时使用albyhub-admin-mcp。nostr-ops-mcp— NOSTR 身份与发布。marketplace-mcp— NIP-15 市场店面。
许可证
MIT — 请参阅 LICENSE。
联系方式 / 问题反馈
由 LLMOps.Pro 构建。
- NOSTR:
npub1hdg932jvwc3jdvkqywgqv0ue4nn60exrf92asy8mtazt3hjg7d2s2yw0nw— 关注、私信、打赏。 - Lightning 地址:
[email protected]— 用于支持打赏,以及“这很有用”的小费。 - 错误报告 / 功能请求: 创建 GitHub issue(链接即将提供)。
- 安全问题: 请先通过 NOSTR 私信私下披露,再创建公开 issue。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。