使用说明
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' }
});
付款验证流程
- 客户端发送工具调用请求
- 服务器检查付款
_meta['x402/payment'] - 如果没有付款:
- 返回402付款要求及付款详细信息
- 包括价格、收件人地址和主持人URL
- 如果提供付款:
- 验证签名和授权
- 检查付款金额是否与价格匹配
- 呼叫协调员
/verify端点 - 验证成功后执行工具
- 协调人在链上结算付款(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
许可证
麻省理工学院