关于 Lightning Enable MCP Server
Lightning Enable MCP Server 为 AI Agent 提供 Lightning 支付和代理间商务工具,适用于支付发票、访问付费 API 和管理预算。它还支持通过 L402 出售 API 服务,以及在 Nostr 上发现和结算代理服务。
主要功能
- 01支付 Lightning 发票和 L402 挑战
- 02发现付费 API 并读取其清单
- 03设置预算并记录支出
- 04创建收款发票及执行钱包操作
- 05通过 L402 销售 API 服务
- 06在 Nostr 上发现和结算代理服务
适用场景
- 01让 Agent 按请求支付 API 费用
- 02查找带价格和端点信息的 API
- 03限制 Agent 支出并核对收据
- 04向其他 Agent 提供并结算服务
MCP 相关
该 MCP 服务向 AI Agent 暴露钱包、发票、L402 支付、预算和 API 发现工具。生产者及 Agent Service Agreement 工具用于出售服务,以及在 Nostr 上发现、请求和结算代理间服务。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
17收录的工具列表 · 更新于 5 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| nwc_connection_string | string | 否 | NWC 连接字符串(nostr+walletconnect://...)。仅报告时省略。 |
详细介绍
Lightning Enable 的一部分——为 Lightning 上的 Agent 商务提供基础设施。
Lightning Enable MCP 服务
将你自己的 API 变现——30 天免费试用
Agent 通过 Lightning 按请求向你的 API 付费——每月 49 美元的固定订阅费,所有 sat 都归你所有。
也可以留在你的 Agent 中直接注册:调用 create_lightning_enable_account 工具。
这是一个开源 MCP(Model Context Protocol)服务,可让 AI Agent 进行 Lightning Network 支付并参与 Agent 间商务。只需一个钱包,即可开箱使用钱包、发票、L402、预算和 API 发现工具。生产者工具(通过 L402 销售访问权限)和 Agent Service Agreement(ASA)工具(通过 Nostr 进行 Agent 间发现、请求、结算和证明)则需订阅 Agentic Commerce 才能使用。请参阅完整工具列表。
提供 .NET 和 Python 版本。
功能
为你的 AI Agent 提供 Lightning 钱包,它就能:
- 支付发票 — 通过 Lightning 向任何 BOLT11 发票发送比特币
- 访问 L402 API — 自动支付 L402 挑战,实现无缝 API 访问
- 发现 API — 按关键词或类别搜索 L402 API 注册表,查找付费 API;也可以获取指定 API 的清单,查看完整端点详情和定价
- 跟踪支出 — 设置预算限额、查看持久化收据日志并检查余额
- 创建发票 — 生成发票以接收付款
- 执行钱包操作 — BTC 价格、货币兑换和链上转账(Strike;链上转账也支持 LND)
- 自行创建 Lightning Enable 账户 —
create_lightning_enable_account通过 L402 支付约 100 sat 的激活费用,并返回商家 API 密钥:这个从免费到付费的注册表单本身就是协议,无需浏览器或结账页面即可解锁生产者和 ASA 工具。 - 销售服务(L402 Producer) — 设置卖家账户、将 API 接入 L402、为其路由定价、公开列出、生成付款挑战并验证付款方令牌——全部通过一个工具完成,让 Agent 无需接触 REST,就能从 API 密钥直接创建付费端点
- Agent 商务(ASA) — 通过 Nostr 发现、请求、结算并评价 Agent 间服务
快速开始
1. 安装
# .NET
dotnet tool install -g LightningEnable.Mcp
# Python
pip install lightning-enable-mcp
# Python (no install)
uvx lightning-enable-mcp
# Docker
docker pull refinedelement/lightning-enable-mcp:latest
2. 首次运行 — setup_wallet
没有钱包,其他功能都无法使用,所以先从这里开始。让你的 Agent:
Run setup_wallet
不带参数运行时,它会报告当前配置的钱包以及凭据的来源——包括提供方和来源,但绝不会显示凭据本身。如果没有钱包,它会返回设置步骤。
最快的方式是使用 NWC。 在钱包应用(Alby Hub、CoinOS 或任何 NIP-47 钱包)中创建一个 Nostr Wallet Connect 连接,复制 nostr+walletconnect:// 字符串,然后将其提供给 Agent:
Run setup_wallet with this connection string: nostr+walletconnect://...
setup_wallet 会验证字符串,连接到钱包以确认其能够响应,然后将其写入 ~/.lightning-enable/config.json,并将文件权限限制为仅你的用户可访问。它会报告钱包声明支持的方法和余额。之后重启服务,以便加载新钱包。
或者设置环境变量(例如在下面的 Claude Desktop 配置中)。L402——本服务的核心用途——需要钱包能够返回支付原像:
- Strike —
STRIKE_API_KEY,获取地址:https://dashboard.strike.me - NWC —
NWC_CONNECTION_STRING,来自 CoinOS / CLINK / Alby Hub - LND(你自己的节点——始终会返回原像)—
LND_REST_HOST+LND_MACAROON_HEX- 节点证书为自签名证书?将
LND_TLS_CERT_PATH设置为节点的tls.cert(将 TLS 固定到该证书)。LND_SKIP_TLS_VERIFY=true是应急选项,并不推荐。可选项:LND_FEE_LIMIT_SATS、LND_PAYMENT_TIMEOUT_SECONDS。
- 节点证书为自签名证书?将
⚠️ OpenNode(
OPENNODE_API_KEY)仅适用于开具发票/直接支付——它永远不会返回原像,因此无法支付 L402 挑战。 如果你需要使用 L402(核心用途),请勿将它作为唯一钱包。
如果设置了多个钱包,优先级为:LND > NWC > Strike > OpenNode;并且环境变量优先于配置文件——如果环境变量会覆盖连接字符串,setup_wallet 会拒绝写入,并告知你要取消设置哪个变量。完整的兼容性矩阵请参阅支持的钱包。
3. 验证整个流程正常运行 — test_l402_payment
让你的 Agent:
Run test_l402_payment
此操作会端到端支付一个公开的 1-sat L402 端点,以验证你的钱包已连接、会返回原像,并且能够完成真实的 L402 支付。这是回答“我的钱包到底能不能用?”的最简方式——成本约为 1 聪。
4. 接下来体验一下 — 买件 T 恤
整个流程正常后,可以试试 Lightning Enable Store,这是一个使用 L402 的在线商店。让 Claude:
Buy me a Lightning Enable t-shirt from store.lightningenable.com
(此操作需要已充值的钱包和收货地址,所以 test_l402_payment 更适合作为首次验证——只需 1 聪,也不需要收货。)
Claude Desktop 手动安装(MCPB 捆绑包)
如需一键安装而无需编辑配置文件,请从 mcpb/ 目录获取打包好的 MCPB 捆绑包,而不是手动编辑 JSON:在本地运行 npx -y @anthropic-ai/mcpb pack mcpb lightning-enable-mcp.mcpb 进行构建(或从 mcpb.yml CI 运行中下载 .mcpb 构件),然后双击生成的 .mcpb 文件,或将其拖入 Claude Desktop 的 Settings → Extensions。Claude Desktop 会通过自身的设置界面提示你输入钱包凭据(Strike、NWC 或 LND)和可选的 Lightning Enable API 密钥,无需使用文本配置文件。有关捆绑包内容,请参阅 mcpb/README.md;有关其 Anthropic MCP Directory 提交状态,请参阅 mcpb/SUBMISSION.md。
Claude Desktop 配置
添加到 claude_desktop_config.json:
.NET:
{
"mcpServers": {
"lightning-enable": {
"command": "lightning-enable-mcp",
"env": {
"STRIKE_API_KEY": "your-strike-api-key"
}
}
}
}
dotnet tool install -g LightningEnable.Mcp 会将 lightning-enable-mcp 命令添加到你的 PATH。如果 Claude Desktop 找不到它,请将 command 设置为完整路径:Windows 上为 "C:\\Users\\<you>\\.dotnet\\tools\\lightning-enable-mcp.exe"(JSON 中需要将反斜杠加倍),macOS 上为 /Users/<you>/.dotnet/tools/lightning-enable-mcp,Linux 上为 /home/<you>/.dotnet/tools/lightning-enable-mcp。配置文件不会展开 %USERPROFILE% 或 $HOME 等环境变量。
Python:
{
"mcpServers": {
"lightning-enable": {
"command": "uvx",
"args": ["lightning-enable-mcp"],
"env": {
"STRIKE_API_KEY": "your-strike-api-key"
}
}
}
}
配置文件位置:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/claude/claude_desktop_config.json
部署到托管环境
超过自动批准额度的付款需要人工批准:服务会生成一个简短的确认码并发送给你,只有你读出确认码后,Agent 才能继续。确认码永远不会出现在工具结果中,因此,受到提示词注入的 Agent 无法通过读取结果来批准自己的支出。
请将此机制视为可信本地主机上的操作员确认辅助方式,而不是独立的审批边界:如果 Agent 所在的主机可以读取服务的控制台、日志流、审批文件或 Webhook 目标,它也能读取确认码。
这只有在确认码能送达人工时才有效。在笔记本电脑上,确认码会输出到服务的控制台(stderr),由你在那里读取。在托管服务上——例如 claude.ai 连接器、Docker 容器或服务器集群——没有人会查看 stderr;在共享主机上,Agent 可能会自己读取。因此,你需要选择审批渠道。
| 渠道 | 超过额度时会发生什么 | 适用场景 |
|---|---|---|
stderr(默认) | 确认码会打印到服务控制台。 | 你在本地运行服务并查看其输出。 |
refuse | 付款会被拒绝,不会生成确认码。 | 你在托管环境中运行,且无人能接收确认码。 |
webhook | 待处理的确认请求会以 HMAC 签名后通过 POST 发送到你的 URL。你再将确认码转发给 Agent。 | 你有运维渠道,例如聊天工具、寻呼机或审批应用。 |
file | 同一条 JSON 行会追加到你正在监控的文件中。 | 你通过日志收集审批请求。 |
无论使用哪种渠道,都有两条规则:确认码永远不会返回给 Agent;如果通知发送失败,付款绝不会获批——投递失败会导致付款被拒绝并撤销确认码。
确认码为 6 个字符,只能使用一次,并且绑定到确切的金额、工具和目标。任何时候最多可有 3 个未完成的确认码;连续 5 次输入无效确认码会撤销所有待处理的确认码。确认码默认有效期为 120 秒;设置 confirmation.ttlSeconds(或 LIGHTNING_ENABLE_CONFIRMATION_TTL_SECONDS)即可更改,范围限制在 30 至 900 秒。对于异步的 webhook 和 file 渠道,300–600 秒是较实用的设置。
选择渠道
优先级:环境变量,然后是配置文件,最后是自动选择。
{
"confirmation": {
"channel": "webhook",
"webhookUrl": "https://ops.example.com/lightning-approvals",
"webhookSecret": "<shared secret>",
"filePath": "/var/log/lightning-enable/confirmations.jsonl",
"ttlSeconds": 600
}
}
| 环境变量 | 覆盖项 |
|---|---|
LIGHTNING_ENABLE_CONFIRMATION_CHANNEL | confirmation.channel(stderr | refuse | webhook | file) |
LIGHTNING_ENABLE_CONFIRMATION_WEBHOOK_URL | confirmation.webhookUrl |
LIGHTNING_ENABLE_CONFIRMATION_WEBHOOK_SECRET | confirmation.webhookSecret |
LIGHTNING_ENABLE_CONFIRMATION_FILE | confirmation.filePath(默认值为 ~/.lightning-enable/confirmations.jsonl) |
LIGHTNING_ENABLE_HOSTED | 设为 1,表示这是托管部署(见下文) |
如果未设置渠道,服务会自行决定:
| stdin | LIGHTNING_ENABLE_HOSTED | 渠道 | 启动警告 |
|---|---|---|---|
| TTY | 任意值 | stderr | 无 |
| 非 TTY | 未设置或为 0 | stderr | 有——可能没人会读取 |
| 非 TTY | 1 | refuse | 有——超出限额的付款会被拒绝 |
stdio MCP 服务的 stdin 始终通过管道连接,因此这条警告只是提醒,并非诊断结论:
如果确实有人在查看控制台,可以忽略它。LIGHTNING_ENABLE_HOSTED=1 是明确启用安全模式的选项——服务不会自动改变行为。
如果服务无法解析渠道名称,会默认拒绝(refuse)并在启动时说明,因此拼写错误不会悄悄恢复到无人读取的代码。
Webhook 负载
发送 POST 请求,设置 Content-Type: application/json,并使用 {timestamp}.{body} 计算 HMAC-SHA256 签名,与 Lightning Enable API 为商家 Webhook 签名所用的机制相同:
X-LightningEnable-Signature: t=1757203200,v1=9f86d081...
{
"type": "payment.confirmation_required",
"nonce": "AB12CD",
"tool": "pay_invoice",
"amountSats": 50000,
"amountUsd": 12.34,
"destination": "lnbc500u1pj9npjpp5abcdefghijklmnopqr...",
"description": "lnbc500u1pj9npjpp5...",
"summary": "pay_invoice — $12.34 (50,000 sats), invoice lnbc500u1pj9npjpp5...",
"createdAt": "2026-09-07T12:00:00Z",
"expiresAt": "2026-09-07T12:02:00Z",
"expiresInSeconds": 120
}
file 渠道会按原样写入此对象,每次确认占一行 JSON;在 POSIX 系统上还会将文件权限固定为 0600——该文件中保存着有效的批准码。
关于 Webhook,有两点需要注意:
- URL 必须是公开的。它会经过与 Agent 提供的 URL 相同的连接时 SSRF 防护,因此私有地址、回环地址或元数据地址会在启动时被拒绝。
- 永远不会跟随重定向。
3xx响应会被视为投递失败,因此签名批准只会发送到你配置的 URL。
批准码在 120 秒后过期,并且仅适用于获批时指定的金额、工具和目的地。
支持的钱包
| 钱包 | 设置方式 | L402 支持 |
|---|---|---|
| Strike | API 密钥 | 是 |
| LND | REST + macaroon | 是(保证支持) |
| NWC(CoinOS) | 连接字符串 | 是 |
| NWC(CLINK) | 连接字符串 | 是 |
| NWC(Alby Hub) | 连接字符串 | 是 |
| OpenNode | API 密钥 | 否(无 preimage) |
支出限额
限额保存在 ~/.lightning-enable/config.json 中,运行时为只读——Agent 可以收紧自己的限额,但不能提高限额。你可以用 USD、satoshi 或两者同时设置。
{
"limits": {
"maxPerPayment": 500.00,
"maxPerSession": 100.00,
"maxPerPaymentSats": 5000,
"maxPerSessionSats": 50000,
"autoApproveSats": 100
}
}
| 键 | 环境变量 | 含义 |
|---|---|---|
maxPerPayment | — | 单笔付款的 USD 上限 |
maxPerSession | — | 单个会话的 USD 上限 |
maxPerPaymentSats | LIGHTNING_ENABLE_MAX_PER_PAYMENT_SATS | 单笔付款的 satoshi 上限 |
maxPerSessionSats | LIGHTNING_ENABLE_MAX_PER_SESSION_SATS | 单个会话的 satoshi 上限 |
autoApproveSats | LIGHTNING_ENABLE_AUTO_APPROVE_SATS | BTC 价格不可用时,付款可在无需确认的情况下支出的 satoshi 数量 |
为何要设置 satoshi 限额。 USD 限额必须根据当前 BTC 价格进行换算,因此当所有价格来源都不可用时,系统无法检查付款并会拒绝付款——这是正确的做法,但会让 Agent 停止工作。satoshi 限额无需换算,因此按 satoshi 预算的 Agent 在价格服务中断期间仍可继续工作。设置 maxPer…Sats 两个键,即可消除所有缺口。
如果同时设置了两种计价单位,每次检查都会采用更严格的限额。budget(action="status") 会报告当前生效的限额单位(bindingDenomination)、以 sats 表示的有效限额、价格是否可用,以及是否启用了中断模式。
价格服务中断期间会发生什么
聪仍会限制支出上限。但上限的含义是 “绝不会超过这个数”,而不是 “无人值守时支付这么多没有问题”;而通常用来判断后一种情况的 USD 分级无法在没有价格数据时计算。因此,审批会默认拒绝:
- 设置了
autoApproveSats— 金额不超过该值的付款会自动批准;超过该值的付款则进入正常确认流程(Agent 会要求用户提供打印在服务端控制台中的验证码)。 - 未设置
autoApproveSats— 在价格来源恢复之前,每笔付款都需要确认。
autoApproveSats 是一个档位,而不是上限:它绝不会放宽 maxPerPaymentSats 或 maxPerSessionSats,这两个限额会优先检查。只要价格数据可用,它就会被完全忽略 — 此时仍按常规由 USD 档位决定。
自动付款路径(L402 自动付款、
send_onchain、agent_services action=settle)遇到需要确认的付款时会直接拒绝,而不会提示用户确认。价格服务中断期间,这意味着只有在autoApproveSats的范围内才会继续处理。
工具
规范工具清单:17 个工具——14 个免费工具(开箱即用,只需一个钱包)+ 3 个需要 LIGHTNING_ENABLE_API_KEY 的工具(需要 Agentic Commerce 订阅)。此表是所有公开工具数量的唯一事实来源——两个端口中的工具清单守护测试会将其与代码绑定(一旦不一致,CI 就会失败)。
其中 5 个是操作工具:传入 action(或为 receipts 传入 source)以选择操作。它们取代了 16 个用途单一的工具;这些旧工具的架构以前会在每次会话中加载到 Agent 的上下文里——请参阅工具配置与旧工具名称。所有旧名称仍然有效。
ASA 可用性说明。 使用托管的 Lightning Enable API 时,
agent_services的discover、request、settle、publish、unpublish和reputation操作可用。attest会被拒绝,因为托管 API 没有接受评价的路由,因此你无法通过它留下评价。请参阅Agent 服务协议。
| 工具 | 访问权限 | 功能 |
|---|---|---|
setup_wallet | 免费 | 报告已配置的钱包,或粘贴 NWC 连接字符串来连接钱包 |
pay_invoice | 免费 | 直接支付 BOLT11 Lightning 发票,并获取 preimage |
pay_l402_challenge | 免费 | 支付 L402 挑战(发票 + macaroon),并获取令牌 |
access_l402_resource | 免费 | 获取 URL,并自动支付任何 L402 挑战 |
test_l402_payment | 免费 | 使用公开的 1-sat L402 端点对钱包进行自检 |
discover_api | 免费 | 搜索 L402 API 注册表/获取 API 清单 |
create_invoice | 免费 | 创建 BOLT11 发票以接收付款 |
check_invoice_status | 免费 | 检查已创建的发票是否已付款 |
get_balance | 免费 | 钱包余额:聪、所有货币(Strike)和钱包信息 |
budget | 免费 | action:status(读取限额和会话支出)或 tighten(降低运行时上限) |
receipts | 免费 | source:durable(仅追加的收据日志)或 session(本次会话的付款记录) |
wallet_ops | 免费 | action:price、exchange 或 send_onchain(Strike;send_onchain 也支持 LND)。send_onchain 接受 address、amountSats、confirmationNonce 和可选的 intentId(只有在再次向同一地址支付相同金额时,才提供新的 ID;重复请求只会报告状态,不会重新发送) |
verify_confirmation_code | 免费 | 验证带外付款确认码(仅验证——绝不会付款) |
create_lightning_enable_account | 免费 | 自助注册:支付约 100 聪,获取商户 API 密钥 |
l402_producer | Agentic Commerce | action:configure_receive、status、create_proxy、add_endpoint、publish、list_challenges、create、verify——涵盖卖方端的全部操作 |
agent_services | Agentic Commerce | action:discover、request、settle、publish、unpublish、attest、reputation |
renew_lightning_enable_subscription | Agentic Commerce | 支付由服务端定价的 L402 发票,为已配置的 API 密钥购买或续订 30 天的 Agentic Commerce(maxSats 默认值为 50,000) |
create_lightning_enable_account 免费,并可自助开通 3 个受限工具所需的 API 密钥——拥有钱包的 Agent 支付约 100 聪的激活费用后,即可立即解锁这些工具。
每个工具都带有 MCP 注解:易于理解的标题和明确的 readOnlyHint;任何可能花费钱包资金的工具还带有 destructiveHint。操作工具的注解根据其范围最广的操作设置,因此 budget 不是只读工具(因为 tighten 会写入数据),而 wallet_ops 具有破坏性(因为 send_onchain 会发送付款)。
资源
持久化收据日志也会作为 MCP 资源公开,因此客户端可以附加或显示它,而无需模型花一轮调用工具:
| URI | 内容 |
|---|---|
lightning-enable://receipts | 最近 200 条收据,格式为 JSONL(application/x-ndjson),按时间从早到晚排列 |
lightning-enable://receipts/{paymentHash} | 为一个支付哈希记录的所有收据 |
两者都通过与 receipts 工具相同的路径读取,并在读取边界处对凭据形式的字段进行脱敏——原像永远不会离开进程。支付哈希是安全的引用;原像是支付凭证,不属于收据字段。资源不受工具配置影响:它们不会占用模型上下文中的架构字节。
工具配置与旧工具名称
每次会话开始时,所有已公开工具的 JSON 架构都会加载到 Agent 的上下文中,因此每轮对话都会为工具接口付出 Token 成本。使用 LIGHTNING_ENABLE_TOOL_PROFILE 选择要公开多少工具:
| 配置 | 工具 | 适用场景 |
|---|---|---|
lite | 6 个 — setup_wallet、pay_invoice、access_l402_resource、get_balance、budget、receipts | Agent 只需获取钱包、消费并遵守预算 |
standard (默认) | 17 个 — 上表中的工具 | 满足所有需求,架构比旧接口减少约 40% |
full | 33 个 — standard 加上所有合并前的名称 | 你有使用旧工具名称编写的提示词或脚本 |
{
"mcpServers": {
"lightning-enable": {
"command": "uvx",
"args": ["lightning-enable-mcp"],
"env": {
"STRIKE_API_KEY": "your-strike-api-key",
"LIGHTNING_ENABLE_TOOL_PROFILE": "lite"
}
}
}
}
配置仅影响列表。 配置未公开的工具仍可按名称调用,且所有旧名称在任何配置下仍会分发。缩小配置会减少推送到模型上下文中的架构;它不会移除任何功能。
旧名称 → 新调用
旧名称仍可使用,但不会公开(full 除外)。每个旧名称都会转发到新工具,且其结果会带有指明替代工具的 deprecated 标记。将在 v3.0.0 中移除——请迁移到新名称。
| 旧工具 | 新调用 |
|---|---|
| get_budget_status | budget(action="status") |
| configure_budget | budget(action="tighten") |
| get_receipts | receipts(source="durable") |
| get_payment_history | receipts(source="session") |
| get_btc_price | wallet_ops(action="price") |
| exchange_currency | wallet_ops(action="exchange") |
| send_onchain | wallet_ops(action="send_onchain") |
| create_l402_challenge | l402_producer(action="create") |
| verify_l402_payment | l402_producer(action="verify") |
| discover_agent_services | agent_services(action="discover") |
| request_agent_service | agent_services(action="request") |
| settle_agent_service | agent_services(action="settle") |
| publish_agent_capability | agent_services(action="publish") |
| unpublish_agent_capability | agent_services(action="unpublish") |
| publish_agent_attestation | agent_services(action="attest") |
| get_agent_reputation | agent_services(action="reputation") |
| confirm_payment | verify_confirmation_code |
| check_wallet_balance | get_balance |
| get_all_balances | get_balance |
最后三个名称早于此次合并,在所有配置中都会隐藏,包括 full。
文档
- .NET README — 完整的 .NET 文档
- Python README — 完整的 Python 文档
- 完整文档 — 所有工具的完整指南
- AI 支出安全 — 预算控制与安全
仓库结构
lightning-enable-mcp/
├── dotnet/
│ ├── src/LightningEnable.Mcp/ # .NET MCP server
│ ├── tests/LightningEnable.Mcp.Tests/ # .NET tests
│ └── LightningEnable.Mcp.sln # Solution file
├── python/
│ └── lightning-enable-mcp/ # Python MCP server
├── .github/workflows/publish-mcp.yml # CI/CD
├── LICENSE # MIT
└── README.md # This file
使用 L402 销售(l402_producer 工具)
卖家端的所有功能都集成在一个工具中。传入 action 来选择操作。每项操作
都需要 LIGHTNING_ENABLE_API_KEY(Agentic Commerce 订阅);
所有操作都不会花费你钱包中的资金。
API 版本。
create、verify、create_proxy、add_endpoint和publish适用于 所有 Lightning Enable API 构建版本。configure_receive需要 NWC 收款通道,list_challenges需要挑战列表路由,这两项功能都随此版本所面向的 API 版本一同发布。请先运行l402_producer(action="status")——它会优雅降级,并告知你所连接的部署支持哪些功能。
| 操作 | 参数 | 功能 |
|---|---|---|
configure_receive | nwc_connection_string (可选) | 将 L402 收款指向你控制的钱包 |
status | limit | 套餐、收款钱包、入门清单、近期铸造记录 (只读) |
create_proxy | name、target_base_url、description、default_price_sats | 将现有 API 接入 L402 |
add_endpoint | proxy_id、endpoint_id、path、http_method、summary、price_sats | 为单个路由定价 |
publish | proxy_id、service_name、service_description、categories | 列出服务,方便其他 Agent 查找 |
list_challenges | challenge_status、limit、offset | 查看已铸造的内容 (只读) |
create | resource、price_sats、description | 铸造一次性发票和 macaroon 挑战 |
verify | macaroon、preimage | 在授予访问权限前检查付款方的令牌 |
从 API 密钥到付费端点
无需控制面板、REST 客户端,也无需人工参与。每一步只需调用一次工具:
- 获取 API 密钥。
create_lightning_enable_account——从你的钱包支付约 100 sat 的激活费, 并将密钥写入~/.lightning-enable/config.json。重启服务以解锁受限工具。 (如果你已有密钥,可跳过此步。) - 将收款指向自己的钱包。
l402_producer(action="configure_receive")——不传参数时会复用此服务已用于付款的 NWC 钱包; 传入nwc_connection_string可使用其他钱包。该字符串绝不会回显,只会显示<set>。 - 查看当前状态。
l402_producer(action="status")——查看套餐、收款钱包和 入门清单,让 Agent 了解还缺少哪些内容。 - 将 API 接入 L402。
l402_producer(action="create_proxy", name="Weather API", target_base_url="https://api.example.com", default_price_sats=25)——返回proxy_id和公开基础 URL。此后,该 URL 下的所有请求都会返回402, 直到完成付款。 - 为各个路由定价。
l402_producer(action="add_endpoint", proxy_id="weather-api", endpoint_id="forecast", path="/forecast", http_method="GET", price_sats=10)——对每个路由重复此操作。 - 列出服务。
l402_producer(action="publish", proxy_id="weather-api", service_description="Five-day forecasts for agents", categories=["weather"])——返回 OpenAPI 和 manifest 的 URL。其他 Agent 可通过discover_api找到它。 - 查看收款情况。
l402_producer(action="list_challenges", challenge_status="paid")——查看付款哈希、 资源、金额和状态。绝不返回 macaroon,也不返回 preimage。
对于不通过代理提供的资源——例如文件、报告或一次性答复——跳过第 4–6 步,
直接使用 create / verify。
收款会结算到你自己的钱包。Lightning Enable 不会托管资金。
Agent 服务协议(agent_services 工具)
通过一个工具,在 Nostr 上实现 Agent 间商务。传入 action 来选择操作。
agent_services 需要 LIGHTNING_ENABLE_API_KEY(Agentic Commerce 订阅);action="settle" 还会从你的钱包余额中扣款,且受预算限制。
托管的 Lightning Enable API 会拒绝 attest,因为它没有接受证明的路由,因此你无法通过它提交评价;discover、request、settle、publish、unpublish 和 reputation 均可使用。
| 操作 | 描述 |
|---|---|
| discover | 按类别、主题标签或关键词搜索 Agent 能力 |
| publish | 将你的 Agent 服务发布到 Nostr 网络(kind 38400)。发布一次:每次调用都会创建新的列表和 L402 代理。若要更改列表,请先执行 unpublish,再执行 publish;也可以在 Lightning Enable 控制面板中编辑 |
| unpublish | 下架已发布的列表:停用 L402 代理并发出 NIP-09 移除事件 |
| request | 请求其他 Agent 提供服务(kind 38401) |
| settle | 通过 L402 Lightning 结算支付 Agent 服务费用 |
| attest | 服务完成后为 Agent 留下评价/评分(kind 38403) |
| reputation | 根据协议内的证明查看 Agent 的声誉评分 |
Agent 商务如何运作
- 发现 —
agent_services(action="discover", category="translation")会查找提供翻译服务的 Agent - 请求 —
agent_services(action="request", capability_event_id=..., budget_sats=100)会发送服务请求 - 结算 —
agent_services(action="settle", l402_endpoint=...)会通过 Lightning 付款并接收结果 - 评价 —
agent_services(action="attest", subject_pubkey=..., agreement_id=..., rating=5)会建立协议内声誉(托管 API 会拒绝此操作)
对于动态定价,服务提供方使用 l402_producer(action="create") 按约定价格生成发票。请求方付款后,服务提供方使用 l402_producer(action="verify") 进行验证。
七个旧工具名称(discover_agent_services、settle_agent_service、…)仍然有效 — 请参阅旧名称 → 新调用。
相关项目
- le-agent-sdk (Python) —
pip install le-agent-sdk - le-agent-sdk (TypeScript) —
npm install le-agent-sdk - le-agent-sdk (.NET) —
dotnet add package LightningEnable.AgentSdk
隐私
Lightning Enable 不持有资金 — 资金由已连接的钱包或支付服务提供方(Strike、OpenNode、LND 或 NWC 钱包)持有。MCP 服务在本地运行,并与您配置的钱包/服务提供方通信;对于 L402 发现,还会与 L402 API 注册表通信。您提供的钱包凭据会保留在您的设备上(对于托管 API,则会以静态加密方式保存)。关于收集的数据、涉及的第三方、数据保留期限和联系方式([email protected]),请参阅完整的隐私政策。
支持
如果遇到故障或无法正常使用,请发送邮件至 [email protected] — 会有真人阅读。一般问题请加入 Discord:https://discord.gg/rX7NxHY8vx。 错误报告和功能请求:请在此仓库中提交 issue。
许可证
MIT — 请参阅 LICENSE。
链接
- Lightning Enable — 支付接入中间件
- 文档 — 完整文档
- 商店 — L402 在线演示
- NuGet — .NET 包
- PyPI — Python 包
- Docker Hub — Docker 镜像
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。