支付网关服务

Cronos402 MCP网关是一种支付执行层服务,允许开发者在不修改现有MCP服务器代码的情况下添加支付要求,支持多种支付方式和配置。

  • by Cronos402
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Cronos402/mcp-gateway

使用说明

Cronos402 MCP网关

支付执行代理,将任何现有的MCP服务器包装为x402支付要求。

生产URL:https://gateway.cronos402.dev

概述

MCP网关充当支付执行层,允许您在不修改其代码的情况下将任何现有的MCP服务器货币化。它拦截工具调用,使用x402协议验证支付,并仅在成功验证支付后将请求转发给上游MCP服务器。这使开发人员能够向自己的服务器和第三方MCP服务添加支付要求。

建筑

  • 框架:使用TypeScript的Express.js
  • 支付协议:x402,配备Cronos协调员
  • 代理模式:透明的请求/响应转发
  • 区块链:支持Cronos测试网和主网
  • 数据库:Drizzle ORM用于付款跟踪
  • 运输:带背压处理的HTTP流

特性

  • 用付款要求包裹任何MCP服务器
  • 透明代理-无需修改上游服务器
  • 通过Cronos协调员进行USDC.e无气支付
  • 本地CRO直接支付支持
  • 可按工具配置定价
  • 自动支付验证和结算
  • 请求日志记录和分析
  • 错误处理和重试逻辑
  • 与所有MCP客户端兼容

快速开始

发展

pnpm install
pnpm dev

服务器在上运行 http://localhost:3006

构建

pnpm build
pnpm start

环境变量

DATABASE_URL=postgresql://user:password@localhost:5432/cronos402
UPSTREAM_MCP_URL=https://upstream-server.com/mcp
CRONOS_NETWORK=cronos-testnet
RECIPIENT_ADDRESS=0xYourAddress
FACILITATOR_URL=https://facilitator.cronoslabs.org/v2/x402

配置

工具定价

在您的环境或数据库中配置按工具定价:

const toolPricing = {
  'get_weather': '0.01',      // $0.01 per call
  'premium_data': '0.10',     // $0.10 per call
  'ai_analysis': '0.50'       // $0.50 per call
};

上游服务器

指向任何MCP服务器:

UPSTREAM_MCP_URL=https://api.example.com/mcp

网关将在支付验证后将所有MCP操作代理到此服务器。

运作原理

付款流程

  1. 客户端向网关发送MCP工具调用请求
  2. 网关检查付款 _meta['x402/payment']
  3. 如果没有付款:
    • 返回402需要付款
    • 包括价格、收件人、主持人URL
  4. 如果提供付款:
    • 验证付款签名和金额
    • 与Cronos主持人确认
    • 将请求转发到上游MCP服务器
    • 向客户端返回上游响应
  5. 主持人在链上结算付款

请求转发

Client → Gateway → Upstream MCP Server
         ↓
    Payment Check
         ↓
    Facilitator

用法示例

包装现有服务器

import { createMcpGateway } from '@cronos402/mcp-gateway';

const gateway = createMcpGateway({
  upstreamUrl: 'https://api.example.com/mcp',
  recipient: '0xYourAddress',
  network: 'cronos-testnet',
  pricing: {
    'tool_name': '0.01'
  }
});

gateway.listen(3006);

客户端集成

客户端使用网关URL而不是上游服务器:

# Instead of connecting to upstream directly
npx cronos402 connect --urls https://api.example.com/mcp

# Connect through payment gateway
npx cronos402 connect --urls https://gateway.cronos402.dev/proxy/api.example.com

Claude桌面配置

{
  "mcpServers": {
    "Paid Service": {
      "command": "npx",
      "args": [
        "cronos402",
        "connect",
        "--urls",
        "https://gateway.cronos402.dev/proxy/upstream",
        "--private-key",
        "0x...",
        "--network",
        "cronos-testnet"
      ]
    }
  }
}

API终点

POST/mcp

网关MCP端点。付款验证后代理上游。

GET/健康

健康检查端点。

GET/定价

返回当前工具定价配置。

POST/管理员/定价

更新工具定价(需要管理员身份验证)。

数据库模式

表格

  • gateway_requests -所有代理请求
  • payment_validations -付款验证记录
  • tool_usage -按工具使用统计
  • upstream_servers -已注册的上游服务器

迁移

pnpm drizzle-kit generate
pnpm drizzle-kit migrate

部署

生产建设

pnpm build
NODE_ENV=production pnpm start

码头工人

FROM node:20-alpine
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN npm install -g pnpm && pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
EXPOSE 3006
CMD ["pnpm", "start"]

环境要求

  • PostgreSQL数据库用于跟踪
  • 生产环境中的HTTPS端点
  • 有效的Cronos收件人地址
  • 访问上游MCP服务器
  • 主持人连接性

测试

# Run all tests
pnpm test

# Watch mode
pnpm test:watch

# Coverage
pnpm test:coverage

监控

  • GET /health -服务器运行状况
  • GET /metrics -普罗米修斯指标
  • 请求记录到stdout
  • 付款验证跟踪

安全

  • 在链上验证付款签名
  • 代理前请求验证
  • 每位客户的费率限制
  • 上游超时保护
  • 输入净化

故障排除

付款验证失败

  • 确保主持人URL正确
  • 检查收件人地址是否符合要求
  • 验证付款金额是否足够

上游超时

  • 增加超时配置
  • 检查上游服务器运行状况
  • 检查网络连接

未找到工具

  • 验证上游服务器是否公开该工具
  • 检查工具名称拼写
  • 查看代理日志是否有错误

资源

  • 文档:https://docs.cronos402.dev/gateway
  • SDK:https://github.com/Cronos402/sdk
  • github:https://github.com/Cronos402/mcp-gateway

许可证

麻省理工学院