区块链支付验证服务器

Cronos402 MCP服务器是一个提供身份验证和x402支付验证的中心服务,支持Cronos区块链的开发者工具访问和支付结算。

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

使用说明

Cronos402 MCP服务器

核心模型上下文协议(MCP)服务器,用于Cronos区块链的身份验证和x402支付验证。

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

概述

Cronos402 MCP服务器是中央服务,提供对MCP工具的身份验证访问,并集成支付验证。它将用于用户管理的Better Auth与用于将工具访问货币化的x402支付协议相结合。开发者可以注册、生成API密钥,并在服务器处理支付验证和区块链集成时使用工具。

建筑

  • 框架:使用TypeScript的Express.js
  • 认证:通过会话管理更好地进行身份验证
  • 数据库:用PostgreSQL喷洒ORM
  • 支付:x402协议与Cronos协调器集成
  • 协议:通过HTTP传输的模型上下文协议(MCP)
  • 区块链:支持Cronos测试网和主网

特性

  • 用户身份验证和会话管理
  • API密钥生成和管理
  • x402支付门控工具执行
  • 通过Cronos协调员(EIP-3009)进行USDC.e无气支付
  • 本地CRO直接支付支持
  • 自动支付验证和结算
  • 工具使用分析和跟踪
  • 与Claude Desktop、Cursor和其他MCP客户端兼容
  • 用于服务器管理的RESTful API

快速开始

发展

pnpm install
pnpm dev

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

构建

pnpm build
pnpm start

环境变量

DATABASE_URL=postgresql://user:password@localhost:5432/cronos402
BETTER_AUTH_SECRET=your-secret-key
BETTER_AUTH_URL=http://localhost:3005

# Cronos Network
CRONOS_NETWORK=cronos-testnet
RECIPIENT_ADDRESS=0xYourAddress

# Facilitator
FACILITATOR_URL=https://facilitator.cronoslabs.org/v2/x402

API终点

认证

POST/api/auth/register

注册一个新的用户帐户。

{
  "email": "user@example.com",
  "password": "secure_password",
  "name": "User Name"
}

发布/API/验证/登录

验证并创建会话。

{
  "email": "user@example.com",
  "password": "secure_password"
}

POST/api/认证/注销

结束当前会话。

API密钥管理

GET/api/密钥

列出已通过身份验证的用户的所有API密钥。

POST/api/密钥

生成新的API密钥。

{
  "name": "My API Key",
  "permissions": ["tools:call"]
}

DELETE/api/keys/:keyId

吊销API密钥。

MCP协议

POST/mcp

用于工具调用和服务器操作的MCP协议端点。

支持标准MCP操作:

  • initialize -初始化MCP连接
  • listTools -列出可用工具
  • callTool -执行工具(需要付款)
  • listResources -列出可用资源

支付工具调用示例:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "callTool",
  "params": {
    "name": "get_weather",
    "arguments": {
      "city": "Tokyo"
    },
    "_meta": {
      "x402/payment": {
        "type": "transfer_with_authorization",
        "signature": "0x...",
        "from": "0x...",
        "validBefore": 1234567890
      }
    }
  }
}

集成示例

Claude桌面配置

{
  "mcpServers": {
    "Cronos402": {
      "command": "npx",
      "args": [
        "cronos402",
        "connect",
        "--urls",
        "https://mcp.cronos402.dev/mcp",
        "--api-key",
        "your_api_key_here"
      ]
    }
  }
}

编程访问

import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
import { withX402Client } from 'cronos402/client';
import { createSigner } from 'x402/types';

const cronosSigner = await createSigner('cronos-testnet', '0x...');
const transport = new StreamableHTTPClientTransport(
  new URL('https://mcp.cronos402.dev/mcp')
);

const client = new Client(
  { name: 'my-app', version: '1.0.0' },
  { capabilities: {} }
);

await client.connect(transport);

const paymentClient = withX402Client(client, {
  wallet: { evm: cronosSigner },
  maxPaymentValue: BigInt(1000000)
});

const result = await paymentClient.callTool({
  name: 'premium_tool',
  arguments: { query: 'data' }
});

付款验证流程

  1. 客户端发送工具调用请求
  2. 服务器检查付款 _meta['x402/payment']
  3. 如果没有付款:
    • 返回402付款要求及付款详细信息
    • 包括价格、收件人地址和主持人URL
  4. 如果提供付款:
    • 验证签名和授权
    • 检查付款金额是否与价格匹配
    • 呼叫协调员 /verify 端点
    • 验证成功后执行工具
  5. 协调人在链上结算付款(USDC.e无气)

测试

# Run all tests
pnpm test

# Watch mode
pnpm test:watch

# Coverage report
pnpm test:coverage

数据库模式

服务器使用Drizzle ORM和以下核心表:

  • users -用户帐户和身份验证
  • sessions -活跃用户会话
  • api_keys -API密钥管理
  • tool_calls -工具使用跟踪
  • payments -付款交易记录

迁移

# Generate migration
pnpm drizzle-kit generate

# Run migrations
pnpm drizzle-kit migrate

# Studio (database UI)
pnpm drizzle-kit studio

部署

生产建设

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 3005
CMD ["pnpm", "start"]

环境配置

生产环境要求:

  • PostgreSQL数据库
  • HTTPS端点
  • 安全身份验证密钥
  • 有效收件人地址
  • 主持人访问权限

监控

服务器提供健康检查和指标端点:

  • GET /health -服务器运行状况
  • GET /metrics -Prometheus兼容指标

安全

  • API密钥在存储前进行散列
  • 会话仅使用安全的HTTP Cookie
  • 在链上验证付款签名
  • 工具调用的速率限制
  • 在所有端点上进行输入验证

资源

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

许可证

麻省理工学院