你写了个MCP工具,调用一次就要扣一次API费用。问题是,任何拿到服务器地址的代理都能免费狂刷——真人用户和刚注册一小时的机器人付一样的钱,也就是零元。这篇文章展示如何用L402闪电网络协议和身份深度评分,在10分钟内搭建一个带付费墙和信誉系统的网关。
最终你会得到一个运行中的MCP服务器,暴露一个bitcoin_data工具,从mempool.space获取BTC/USD价格和内存池手续费。第一次调用返回402状态码和bolt11发票,支付后重试即可获得数据。但这只是第一层。第二层是深度身份(Depth-of-Identity,DoI)评分检查:调用者必须付费并且其公钥信誉值超过你设定的阈值。
![]()
L402本身只能证明对方付了几聪比特币。加上DoI评分后,你证明的是:他们付了钱,而且拥有跨会话持续、伪造成本极高的声誉。这正是大多数MCP计费工具跳过的一环。
![]()
开始前需要准备:Node 18或更高版本、一个能开具发票的LNBits实例(公开测试网即可测试)、大约5分钟时间。
第一步,克隆示例仓库并配置环境变量:
git clone https://github.com/zekebuilds-lab/mcp-l402-gate-examplecd mcp-l402-gate-examplecp .env.example .env
打开.env填入三个值:GATE_HMAC_SECRET用于签名L402 macaroon,用openssl rand -hex 32生成并定期轮换;LNBITS_URL是你的LNBits钱包基础地址;LNBITS_INVOICE_KEY是发票/只读密钥——admin密钥也能用,但不应该用,请坚持用invoice key。PORT默认3100,ORACLE_URL默认指向PowForge的公开预言机https://identity.powforge.dev,除非有特定需求否则保持默认。
第二步,安装依赖并启动:
npm installnpm start
正常启动后应看到:mcp-l402-gate-example listening on :3100、预言机地址、以及工具端点POST http://localhost:3100/tools/bitcoin_data。如果报错LNBITS_URL相关错误,检查.env是否在仓库根目录且键值未加引号。
第三步,测试付费网关。首次调用不带认证,网关返回402并在正文和标准WWW-Authenticate头中附带bolt11发票:
curl -i -X POST http://localhost:3100/tools/bitcoin_data \-H 'Content-Type: application/json' \-H 'X-Caller-Pubkey: 02a1b2c3...your-hex-pubkey' \-d '{}'
![]()
预期响应:HTTP/1.1 402 Payment Required,WWW-Authenticate: L402 macaroon="...", invoice="lnbc1...",JSON正文包含error、macaroon、invoice和payment_hash字段。
用任意闪电网络钱包支付该发票,获取preimage,然后在重试请求中加入L402 Authorization头:
curl -i -X POST http://localhost:3100/tools/bitcoin_data \-H 'Content-Type: application/json' \-H 'X-Caller-Pubkey: 02a1b2c3...your-hex-pubkey' \-H 'Authorization: L402 macaroon="...", preimage="..."' \-d '{}'
支付验证通过后,网关查询PowForge预言机获取该公钥的DoI评分。评分低于阈值返回403;高于阈值则放行,返回比特币数据和内存池手续费信息。
这套机制的核心设计在于分层验证:L402解决"是否付费"的问题,DoI评分解决"这是谁"的问题。付费可以匿名完成,但建立足够高的信誉分数需要长期、可验证的链上或社交图谱行为,攻击者无法批量伪造。对于API提供方,这意味着可以区分真实用户和羊毛党,实施差异化定价或速率限制。
代码结构足够简洁,核心逻辑集中在网关中间件:拦截请求→检查L402头→无头则生成发票→有头则验证preimage→查询DoI评分→综合判断是否放行。这种设计允许你快速适配到其他MCP工具,只需替换工具实现和评分阈值配置。
LNBits的invoice key设计是个值得注意的安全细节。它只能创建和查询发票,无法动用钱包资金,即使泄露也不会造成资产损失。这与要求admin key的方案形成对比,后者在服务器被入侵时风险敞口更大。
测试阶段建议使用比特币测试网,发票金额可设为1聪级别,验证完整流程后再切回主网。PowForge的DoI评分基于Nostr协议的公钥活动历史,包括发布频率、互动质量、关联图谱密度等指标,具体算法未公开但可通过预言机响应中的score字段观察效果。
这个10分钟的搭建过程揭示了一个更广泛的命题:AI代理经济的计费基础设施仍处于早期。大多数方案要么完全开放承受滥用,要么依赖传统的API key体系无法区分人机。闪电网络的微支付能力叠加去中心化身份评分,提供了一条中间道路——足够开放让任何人接入,足够精细让优质用户获得更好体验。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.