用 MCP 协议 + x402 微支付构建 47 端点 AI 工具聚合服务

背景

MCP(Model Context Protocol)是 Anthropic 提出的开放协议,让 AI 客户端(如 Claude Desktopï¼‰èƒ½æ ‡å‡†åŒ–åœ°è°ƒç”¨å¤–éƒ¨å·¥å
·ã€‚但实é™
用下来发现两个问题:

  1. å·¥å
    ·ç¢Žç‰‡åŒ–
    :OCR 要用 A 平台,TTS 要用 B 平台,LLM 要用 C 平台,每个都要单独管理 API Key 和计费
  2. 计费模式不友好:大多数 AI API 要么按月订é˜
    (低频用户浪费),要么按 Token 计费(透明度低)

我的思路是:把多个 AI 能力聚合到一个 MCP Server,用按次付费的方式结算——调一次付一次,不订é˜
不å

值。

架构设计

整体架构分三层:

┌─────────────────────────────────────────────┐ │ MCP 客户端层 │ │ (Claude Desktop / Cursor / 自定义客户端) │ └──────────────────┬──────────────────────────┘ │ SSE / stdio ┌──────────────────▼──────────────────────────┐ │ GoldBean MCP Server │ │ ┌─────────┐ ┌──────────┐ ┌────────────┐ │ │ │ å·¥å ·è·¯ç”± │ │ x402支付 │ │ 额度管理 │ │ │ │ 47端点 │ │ 中间件 │ │ free/paid │ │ │ └─────────┘ └──────────┘ └────────────┘ │ └──────┬───────────────┬──────────────────────┘ │ │ ┌──────▼──────┐ ┌──────▼──────────┐ │ 百度 AI API │ │ 支付结算层 │ │ OCR/TTS/ASR │ │ Base链/PayPal/ │ │ LLM/图像生成 │ │ 支付宝 │ └─────────────┘ └─────────────────┘

å·¥å
·è·¯ç”±å±‚
:47 个端点分为 21 个å
è´¹ï¼ˆå¤©æ°”ã€æœç´¢ã€ç¿»è¯‘ã€ä»£ç æ‰§è¡Œç­‰ï¼‰å’Œ 26 个付费(OCR、TTS、ASR、LLM、图像生成等)。客户端发起tools/callè¯·æ±‚æ—¶ï¼Œè·¯ç”±å±‚åˆ¤æ–­ç›®æ ‡å·¥å
·æ˜¯å¦éœ€è¦ä»˜è´¹ã€‚

**x402 支付中间件**:付费端点被调用时,中间件拦截请求并返回 HTTP 402,附带支付要求(金额、收款地址、链信息)。客户端通过 x402 SDK 签名一笔 EIP-3009 æ ¼å¼çš„ USDC 转账,服务器在 Base 链上验证签名有效性后放行请求。

额度管理:首次连接的用户自动获得 20 个å
è´¹ credits,调用付费端点时优å
ˆæ‰£å‡ã€‚

x402 支付流程详解

è¿™æ˜¯æ•´ä¸ªé¡¹ç›®æœ€æ ¸å¿ƒä¹Ÿæœ€æœ‰è¶£çš„éƒ¨åˆ†ã€‚x402 是一个基于 HTTP 402 çŠ¶æ€ç çš„å¾®æ”¯ä»˜æ ‡å‡†ï¼š

// 服务端:付费端点的中间件逻辑asyncfunctionpaymentMiddleware(req,res,next){consttoolName=req.params.tool;constprice=PRICE_MAP[toolName];// e.g. { amount: "0.01", currency: "USDC", chain: "base" }if(!price)returnnext();// åè´¹ç«¯ç‚¹ç›´æŽ¥æ”¾è¡Œ// 检查用户是否有åè´¹é¢åº¦constuserCredits=awaitgetCredits(req.clientId);if(userCredits>0){awaitdeductCredits(req.clientId,1);returnnext();}// 返回 402 支付要求returnres.status(402).set({'X-Payment':JSON.stringify({amount:price.amount,currency:'USDC',chain:'base',receiver:TREASURY_ADDRESS,scheme:'eip-3009'})}).json({error:'Payment Required',price});}

客户端侧使用@goldbean/x402-sdk处理 402 响应:

import{verifyOnChainTx}from'@goldbean/x402-sdk';// MCP 客户端收到 402 后的处理asyncfunctionhandlePayment(response,wallet){constpaymentReq=JSON.parse(response.headers['x-payment']);// 签名 EIP-3009 transferconstsignedTx=awaitwallet.signEIP3009Transfer({to:paymentReq.receiver,amount:paymentReq.amount,token:'USDC',chainId:8453// Base mainnet});// 携带支付凭证重试请求returnretry(originalRequest,{'X-Payment':signedTx.serialize()});}

这套流程的好处是:整个支付过程对 MCP 客户端透明。客户端只需要有一个支持 EIP-3009 的钱åŒ
,SDK 自动处理 402 拦截 → 签名 → é‡è¯•ï¼Œç”¨æˆ·æ— æ„ŸçŸ¥ã€‚

实é™

使用

在 Claude Desktop 中é
ç½®ï¼š

{"mcpServers":{"goldbean":{"command":"npx","args":["-y","goldbean-mcp"]}}}

é
ç½®åŽé‡å¯ Claude Desktop,工å
·æ ä¼šå‡ºçް 47 个工å
·ã€‚ä½ å¯ä»¥ç›´æŽ¥å¯¹è¯ï¼š

“å¸®æˆ‘æå–è¿™å¼ å›¾ç‰‡é‡Œçš„æ–‡å­—ï¼Œç¿»è¯‘æˆè‹±æ–‡ï¼Œç„¶åŽç”Ÿæˆä¸€æ®µä¸­æ–‡è¯­éŸ³æ‘˜è¦”

Claude 会依次调用 OCR → 翻译 → TTS,每次付费端点调用自动结算。

定价策略

| å·¥å

·ç±»åž‹å•价说明
通用 OCR$0.01通用文字识别
高精度 OCR$0.02å«è¡¨æ ¼/å
¬å¼è¯†åˆ«
TTS 语音合成$0.0215+ 语种
ASR 语音识别$0.02支持长音频
LLM 对话$0.03ERNIE 4.5
图像生成$0.08文生图
翻译/搜索/天气å
è´¹21 个å
è´¹ç«¯ç‚¹

首次连接送 50 次å
è´¹/天,覆盖大多数尝鲜场景。

æŠ€æœ¯æ ˆä¸Žéƒ¨ç½²

  • 运行环境:AlmaLinux 9,Node.js v20,1GB RAM VPS
  • 百度 AI SDK:bce-sdk-js,千帆大模型 SDK
  • x402 验证:ethers.js + EIP-3009 合约交互
  • 支付集成:PayPal REST API + 支付宝当面付
  • 进程管理:PM2,6 个进程分工(主服务、MCP HTTP、代理、监控等)

1GB å†
存跑 6 个 Node.js è¿›ç¨‹ç¡®å®žç´§å¼ ï¼Œå
³é”®æ˜¯æŽ§åˆ¶å¥½å†
存泄漏和定期重启。

一些思考

  1. x402 å’Œ MCP 是天然搭档:MCP 的工å
    ·è°ƒç”¨æœ¬è´¨ä¸Šæ˜¯"请求-响应"模式,402 拦截插å
    ¥æ”¯ä»˜çŽ¯èŠ‚éžå¸¸è‡ªç„¶ï¼Œä¸éœ€è¦æ”¹åè®®æœ¬èº«
  2. 百度 AI 被低估了:ERNIE 4.5 的中文理解能力、百度 OCR 对中英混排文档的识别精度,在国é™
    市场上认知度不高,但实é™
    效果很能打
  3. **按次付费的难点不在定价**:而在于异常处理——调用失败要不要扣费?部分结果怎么处理?我的策略是:服务端错误不扣费,成功才扣,å
    è´¹é¢åº¦ä¼˜å
    ˆæ¶ˆè€—

链接

  • 网站:https://goldbean-api.xyz
  • GitHub:https://github.com/wuzenghai616-lang/goldbean
  • MCP 端点:https://goldbean-api.xyz/sse
  • x402 SDK:npm install @goldbean/x402-sdk
  • npm:npx goldbean-mcp

å¦‚æžœä½ åœ¨åš AI Agent 或è€
MCP 相å
³çš„开发,欢迎交流。特别是支付层的设计,我觉得还有很多可以优化的空间。