mcpField
M
mcp-pay-gate

mcp-pay-gate

本地服务
powforge.dev金融数据024 周前更新

关于 mcp-pay-gate

mcp-pay-gate 是供 MCP 服务运营者使用的 Express 中间件,可通过 L402 或 x402 bip122/exact 接受 Lightning 付款。两种支付路径共用一个 LNBits 后端。

主要功能

  1. 01接受 L402 和 x402 bip122/exact
  2. 02在付款挑战中公布两种支付方式
  3. 03验证 BOLT11 发票和精确金额
  4. 04通过内存缓存防止重放
  5. 05通过 LNBits 确认付款

适用场景

  1. 01接受 L402 客户端的付款
  2. 02支持 x402 Lightning 付款客户端
  3. 03将两种支付方式接入同一个 LNBits 钱包

MCP 相关

提供 Express 中间件,通过 L402 或 x402 付款验证保护 MCP 服务路由。请求验证成功后会继续进入工具处理程序,并附带付款信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"zekebuilds-lab-mcp-pay-gate": {
"command": "npx",
"args": [
"-y",
"@powforge/mcp-pay-gate"
],
"env": {
"POW_GATE_URL": "<POW_GATE_URL>"
}
}
}
}
启动命令npx -y @powforge/mcp-pay-gate
需要配置的环境变量
POW_GATE_URLPowForge L402 gate base URL used by the default verifyL402Fn. Override for self-hosted deployments.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@powforge/mcp-pay-gate0.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

@powforge/mcp-pay-gate

npm license node

适用于 MCP 服务的 Express 即插即用中间件。支持 L402 Lightning(旧版客户端)和 x402 bip122/exact(向前兼容的客户端),并在两种支付轨道背后提供真实的 10 步验证器。两者共用一个 LNBits 后端。v0.2.0 提供完整的 x402 验证(BOLT11 解码、防重放、LNBits 付款检查),不含占位实现。

为什么采用双轨

按次付费的 MCP 领域正在趋于统一。Coinbase 的 x402 规范有一个开放 PR(coinbase/x402 #2258),计划加入 bip122/exact,将 Bitcoin Lightning 结算纳入 x402。这意味着,在未来 30 到 60 天内,付费 MCP 端点的支付轨道选择将取决于钱包支持能力。

如果你现在上线却只选择一种支付轨道,未来一半的客户端都会无法使用。如果你部署两种服务,则要为相同的收入承担双倍的运维负担。

这个中间件提供了第三种选择。它会在 402 挑战中公布两种支付轨道,接受调用方发送的任意一种,并将两者都结算到同一个 LNBits Lightning 钱包。现有的 L402 客户端可以继续使用。新的 x402 客户端也能使用。只需部署一次。

状态

截至 v0.2.0,两种支付轨道均已启用。

  • L402 轨道:默认将验证请求转发到 ${POW_GATE_URL}/v1/verify。为确保完整兼容性,建议通过 @powforge/mcp-l402-gate 在进程内执行生产级验证(本软件包不会重复实现 macaroon 铸造或 HMAC 代码)。
  • x402 轨道:根据 x402-foundation/x402 PR #1311 规范实现完整的 10 步 bip122/exact 验证器,并通过 PR #1873 中的 Python 参考实现交叉校验。通过配置的 LNBits 后端铸造真实的 BOLT11 发票,使用 light-bolt11-decoder 对其解码,验证 scheme / network / asset / payTo / paymentMethod / 发票一致性 / 过期时间 / 精确的 msat 金额,通过内存结算缓存拦截重放,并通过 LNBits 付款检查确认付款。成功后,在 PAYMENT-RESPONSE 标头中返回 base64 SettlementResponse。29 项测试通过(12 项中间件测试 + 17 项验证器单元测试)。

延后至 v0.3.0:进行中的 HTLC 检测、BOLT12 offers、多实例结算缓存(Redis 后端)。

如果你现在需要仅支持 L402 的支付门控,专注于此功能的产品是 @powforge/mcp-l402-gate——提供完整的 L402 验证、防重放和 DoI 评分门控。本软件包则是双轨选项,适用于通过一个 LNBits 钱包同时服务旧版 L402 和向前兼容的 x402 客户端的运营方。

要求

  • Node >= 18
  • 一个 LNBits 钱包(URL + 发票/读取 API 密钥),用于实际结算
  • 如果使用默认的 L402 验证转发器,则需要一个可访问的 POW_GATE_URL

五行集成(Express)

const express = require('express');
const { mcpPayGateMiddleware } = require('@powforge/mcp-pay-gate');

const app = express();
app.use('/tools/expensive', mcpPayGateMiddleware({
  satsAmount: 10,
}));

app.post('/tools/expensive', (req, res) => {
  // Reached only when the caller settled via L402 or x402.
  res.json({ ok: true, rail: req.payAuth.rail });
});

行为

调用方发送中间件行为
无 Authorization 标头返回 402,包含两个 WWW-Authenticate 标头(一个 L402,一个 x402),并在 JSON 正文中列出两种支付轨道
Authorization: L402 <token>调用 verifyL402Fn(token)。成功时:req.payAuth = { rail: 'l402', payload },然后调用 next()。失败时:返回 401
Authorization: x402 <payload> 或 X-PAYMENT: <payload>解码 base64 PaymentPayload,运行 10 步 bip122/exact 验证器(scheme / network / asset / payTo / paymentMethod / 发票一致性 / BOLT11 解码 / 过期时间 / 精确的 msat 金额 / 重放缓存 + LNBits 付款检查)。成功时:req.payAuth = { rail: 'x402-bip122-exact', paymentHash, amountMsat, payload },设置 PAYMENT-RESPONSE 标头,然后调用 next()。失败时:返回 402 和两种挑战,供调用方重试或回退
未知 scheme返回 402 和两种挑战

配置参考

字段默认值说明
gateUrlprocess.env.POW_GATE_URL 或 https://gate.powforge.dev默认用于 L402 验证转发器
priceMsat3000(3 sats)在 x402 PaymentRequirements 中公布的精确毫聪金额
networkbip122:000000000019d6689c085ae165831e93(mainnet CAIP-2)x402 挑战网络
schemeexactx402 挑战方案(依据 PR #1311)
payToanonymousx402 PaymentRequirements 的 payTo(发起挑战时,Lightning 没有链上目标地址)
lnbits.url、lnbits.apiKey无默认 x402 发票生成和付款检查所必需;可通过传入自定义 invoiceFn 和 checkPaidFn 接口替换
verifyL402Fn转发至网关 /v1/verify可覆盖此项,以接入 @powforge/mcp-l402-gate 的进程内验证
verifyX402Fn完整的 10 步 bip122/exact 验证器(BOLT11 解码 + 重放缓存 + LNBits 付款检查)仅在需要替换非 LNBits 后端时覆盖
settlementCache带 24 小时 TTL 和机会式清理的内存 Map多实例部署时可替换为 Redis 后端缓存(推迟至 v0.3.0)

本项目不是什么

  • 这不是 macaroon 生成器。如果你希望 PowForge 在进程内生成并验证 L402,请搭配使用 @powforge/mcp-l402-gate。
  • 这不是 LNBits 客户端。它不会自行创建发票或检查付款状态;这些工作由验证函数负责。
  • 这不是 DoI 评分门控。如果你希望在付款之外添加基于身份评分的访问控制,请将其与 @powforge/mcp-l402-gate 或 @powforge/mcp-identity 组合使用。

此软件包的作用是提供双轨挑战响应和请求路由结构。接入你自己的实际验证功能即可。

路线图

  • v0.1(已发布):脚手架。双轨挑战、L402 验证转发器、x402 存根。
  • v0.2(当前):依据 PR #1311 规范,完整支持 x402 bip122/exact 验证。实际 LNBits 发票生成、BOLT11 解码、内存重放缓存、10 步验证器、29 项测试。
  • v0.3(计划中):正在处理的 HTLC 检测(Retry-After)、BOLT12 offers、多实例部署用的 Redis 后端结算缓存。

许可证

MIT。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。