比特币钱包管理服务器

Alby Hub MCP Server是一个全面的模型上下文协议服务器,用于与Alby Hub交互,提供58种工具覆盖16个类别,实现对闪电网络操作、链上交易和通道管理的全面控制。

  • by krrish-sehgal
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 krrish-sehgal/hubmcp

使用说明

Alby Hub MCP 服务器

一个用于交互的综合模型上下文协议(MCP)服务器 Alby中心 - 您自主管理的闪电节点和比特币钱包。

这个MCP服务器提供 58个工具 涵盖16个类别,让AI代理完全掌控您的闪电网络操作、链上交易、通道管理等更多功能。

🚀 特点

  • ✅ 58种工具 横跨16个类别 - 完全覆盖Alby Hub API
  • ✅ STDIO传输 (默认)- 非常适合本地AI代理,如Goose、Claude Desktop
  • ✅ HTTP流式传输 - 对于远程/托管场景
  • ✅ 携带者认证 基于API令牌的安全认证
  • ✅ TypeScript - 完整的类型安全性和出色的集成开发环境(IDE)支持
  • ✅ 有组织的结构 - 按功能分类的工具
  • ✅ 全面的文档 - 每个类别的README文件,附有示例

📦 工具分类

  • 系统 (2种工具) - 集线器信息,健康检查
  • 钱包 (8种工具) - 平衡管理、地址处理、签名、链上操作
  • 交易 (3个工具) - 光速交易和链上交易历史
  • 付款 (3种工具) - 发送支付、路由探测
  • 发票 (2个工具) - 创建BOLT11/BOLT12发票
  • 频道 (6个工具) - 打开、关闭、重新平衡闪电网络通道
  • 同龄人 (3个工具) - 连接到闪电网络对等节点
  • 应用程序(NWC) (7个工具)- Nostr Wallet Connect 应用管理
  • 闪电地址 (2种工具)- 光速地址管理
  • 互换(或掉期) (5种工具) - 潜艇交换(链上 ↔ 雷电网络)
  • 自动交换 (3种工具) - 自动平衡管理
  • 节点 (3个工具)- 节点状态和网络图
  • 日志 (1个工具) - 应用程序日志
  • 设置 (2个工具) - 集线器配置
  • 管理员 (4个工具) - 集线器管理

📖 完整工具参考: 看 src/tools/README.md 翻译为中文是:src/tools/README文件(或:源代码中的tools目录下的README文件) 以获取完整文档

快速入门

先决条件

  • Node.js 18+ 或兼容的运行时环境
  • 一个Alby Hub实例(本地或托管)
  • 来自您Alby Hub的API令牌

安装

npm install
npm run build

配置

复制 .env.example to .env 并进行配置:

cp .env.example .env

编辑 .env:

ALBY_HUB_URL=http://localhost:8080
ALBY_HUB_API_TOKEN=your_api_token_here

# Optional for hosted hub:
# ALBY_HUB_NAME=your_hub_name
# ALBY_HUB_REGION=your_region

# Optional:
# REQUEST_TIMEOUT=30000
# MODE=stdio

获取您的API令牌

  1. 打开您的Alby Hub
  2. 进入设置 → 开发者选项
  3. 创建一个新的API令牌
  4. 选择“仅只读”以查看余额,或选择“完全访问”以创建/支付发票
  5. 将令牌复制到您的 .env 文件

用法

使用Goose CLI

  1. 跑 goose configure
  2. 选择“添加扩展”→“命令行扩展”
  3. 姓名: alby-hub
  4. 命令: node /path/to/hubmcp/build/index.js
  5. 超时时间:30
  6. 添加环境变量:
    • ALBY_HUB_URL您的中心网址
    • ALBY_HUB_API_TOKEN你的API令牌

现在你可以向Goose发出自然语言指令,比如:

  • “查看我的Alby Hub余额”
  • “创建一个价值1000聪(比特币的最小单位)的咖啡发票”
  • “支付此发票:lnbc...”
  • “向这个节点打开一个500k聪的通道”
  • “将闪电网络(Lightning)资产兑换到链上(on-chain)的费用是多少?”
  • “给我看看我最近的交易记录”

使用 Claude Desktop

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "alby-hub": {
      "command": "node",
      "args": ["/absolute/path/to/hubmcp/build/index.js"],
      "env": {
        "ALBY_HUB_URL": "http://localhost:8080",
        "ALBY_HUB_API_TOKEN": "your_token_here"
      }
    }
  }
}

HTTP模式(用于远程访问)

设置 MODE=http 在你的 .env:

MODE=http
PORT=3000

然后运行:

npm start

服务器将在 http://localhost:3000/mcp

安全提示当使用HTTP模式时,请实现您自己的认证层。不要仅凭API令牌就直接将此暴露给互联网。

📚 文档

工具类别及示例

💰 钱包与余额

  • 获取余额(闪电网络 + 链上)
  • 生成新的地址
  • 签名消息
  • 发送链上比特币

⚡ 闪电行动(或:闪电突击)

  • 创建发票(BOLT11/BOLT12)
  • 支付发票款项
  • 发送即时支付(keysend)
  • 试验支付渠道

🔌 频道管理

  • 列出频道
  • 与同行开拓新渠道
  • 关闭通道
  • 重新平衡通道
  • 获取频道推荐

🔄 交换与自动交换

  • 闪电网络 ↔ 链上交易切换
  • 获取交换费用和限制
  • 配置自动交换
  • 启用/禁用自动切换

👥 应用与连接

  • 管理Nostr Wallet Connect应用程序
  • 创建闪电地址
  • 连接到对等节点
  • 在应用程序之间转账资金

⚙️ 管理

  • 查看视图集信息和设置
  • 更新货币偏好设置
  • 访问日志
  • 管理中心服务

完整的API参考: src/tools/README.md(可译为:“源代码/tools/目录下的README.md文件”)

错误处理

服务器提供了明确的错误信息:

  • 401 未授权API令牌无效或缺失
  • 403 禁止访问操作需要完整的访问令牌(当前仅提供只读令牌)
  • **400 请求错误(或 请求无效)**无效输入(例如,零金额发票缺少金额)
  • 500 内部服务器错误服务器端问题
  • 超时请求超过了配置的超时时间

发展

# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run dev

# Inspect tools (test without an LLM)
npm run inspect

交通

STDIO(默认)

最适合本地AI代理和编辑使用。无需网络连接。

HTTP 可流式传输

对于远程/托管场景。生产环境中需要额外的认证层。

要使用HTTP传输,请设置 MODE=http 在环境变量中。

🧪 测试

使用只读令牌进行测试:

  1. 在(某处)设置一个只读令牌 .env
  2. 只读工具应正常工作(余额查询、信息查看、列表展示)
  3. 写操作应返回403禁止访问

使用完整访问令牌进行测试:

  1. 设置一个完整访问令牌 .env
  2. 所有58个工具都应能正常工作
  3. 逐步测试(从安全的读取操作开始)
  4. 使用测试网/回归测试网进行学习

🔒 安全

  • ⚠️ 永远不要承诺 .env - 包含敏感的API令牌
  • 🔑 翻译为中文是“钥匙”。 令牌权限 - 尽可能使用只读令牌
  • 🌐(表示互联网或世界连接的符号,可意译为“连接世界”或根据上下文具体翻译) HTTP模式 - 为生产环境添加认证层
  • 🚫 禁止 不要公开曝光 - 建议本地使用
  • 🧪 表示“实验器材”或“科学实验”的符号。 在regtest上进行测试 - 在没有真实资金的情况下安全学习
  • 📝 翻译成中文是:📝(这个符号本身没有直接对应的中文翻译,但可以理解为“记事”或“笔记”的意思,具体翻译取决于上下文。如果单独看这个符号,可以保留原样或用“记事本符号”等描述性语言来表达。) 小心谨慎 - 工具可以发送真实比特币并触发交换

⚡ 什么是Alby Hub?

阿尔比中心(或译为“阿尔比枢纽”) 这是您自主管理的闪电网络节点和比特币钱包:

  • 🏠 表示“家”或“房屋”的意思。 自主管理(的资产/账户) - 你掌控你的钥匙
  • ⚡ 闪电符号(在中文语境中,该符号常被用来表示快速、闪电般的速度或能量等,但无直接对应的文字翻译,故保留原符号) 闪电网络 - 发送/接收即时支付
  • 🔗(这个符号在中文里通常没有直接的对应翻译,它是一个链接或网络连接的象征,可以简单地表示为“链接”或“网络连接”,但在这里为了保持原样,可以翻译为“🔗(链接)”或者直接保留原符号,具体根据上下文来判断如何表达最合适。) 多个后端 - LND(Lightning Network Daemon,闪电网络守护进程),Core Lightning(核心闪电网络),Phoenixd,Breez SDK(软件开发工具包)
  • 🌐 表示“互联网”或“世界万维网”。 Nostr钱包连接 - 连接到Nostr应用程序
  • 💼 代表“西装/职业装”或“办公室/工作场所”(根据上下文可能有所不同) 多应用支持 - 隔离的预算和权限
  • 🔄 旋转符号(或表示循环、重复) 海底互换(或称为“隐蔽互换”,但“submarine swaps”在金融领域通常指的是一种特定类型的互换交易,直译为“海底”可能不够准确,具体翻译需结合上下文,此处提供一种较为中性的翻译) - 光速交换 ↔ 无缝链上交易

📖 资源

🤝 支持与贡献

  • 🐛 蚜虫(或小飞虫) 问题在GitHub上为错误或功能请求提交一个议题
  • 💡 灯泡(或表示“想法”的灯泡图标) 想法分享您的建议和使用案例

📄 许可证

麻省理工学院许可证


专为闪电网络(Lightning Network)打造