KAMIYO x402 MCP服务器
x402Resolve的生产就绪模型上下文协议服务器,具有完整的Solana/Anchor集成。使Claude等人工智能代理能够通过自动质量评估和争议解决进行受保护的API支付。
特性
- 真实的Solana交易:与交易签名和提交完全集成web3
- 锚点程序集成:原生支持x402Resolve Anchor程序(
E5EiaJhbg6Bav1v3P211LNv1tAqa4fHVeuGgRBHsEu6n) - MCP协议:实现用于AI代理集成的Anthropic模型上下文协议
- 8生产工具:自主支付和争议解决的完整工具包
- TypeScript:具有完整IDE支持的类型安全实现
- 质量评价:链下质量评分和链上争议解决
快速开始
1.安装
git clone https://github.com/tanaka-kamiyo/kamiyo-mcp.git
cd kamiyo-mcp
npm install
npm run build2.配置
创建一个 .env 项目根目录中的文件:
# Solana RPC endpoint (devnet recommended for testing)
SOLANA_RPC_URL=https://api.devnet.solana.com
# x402Resolve program ID (deployed on Solana devnet)
X402_PROGRAM_ID=E5EiaJhbg6Bav1v3P211LNv1tAqa4fHVeuGgRBHsEu6n
# Agent wallet private key (base58 encoded)
# Generate one with: solana-keygen new --no-bip39-passphrase
AGENT_PRIVATE_KEY=3.生成一个密钥对(如果你没有)
# Install Solana CLI if not already installed
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"
# Generate a new keypair
solana-keygen new --no-bip39-passphrase -o agent-keypair.json
# Get the public key
solana-keygen pubkey agent-keypair.json
# Get base58 private key for .env
# (Read the JSON file and base58 encode the array)或者使用此Node.js脚本生成密钥对:
import { Keypair } from '@solana/web3.js';
import bs58 from 'bs58';
const keypair = Keypair.generate();
console.log('Public Key:', keypair.publicKey.toBase58());
console.log('Private Key (base58):', bs58.encode(keypair.secretKey));4.为您的钱包充值(Devnet)
# Request airdrop
solana airdrop 2 --url devnet5.运行MCP服务器
npm start使用Claude Desktop
在Claude Desktop的配置文件中配置MCP服务器:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"kamiyo-x402": {
"command": "node",
"args": ["/absolute/path/to/kamiyo-mcp/dist/index.js"],
"env": {
"SOLANA_RPC_URL": "https://api.devnet.solana.com",
"X402_PROGRAM_ID": "E5EiaJhbg6Bav1v3P211LNv1tAqa4fHVeuGgRBHsEu6n",
"AGENT_PRIVATE_KEY": ""
}
}
}
}重新启动Claude Desktop,x402工具将可用。
可用工具
1. create_escrow
为API呼叫创建具有质量保证的付款托管。
参数:
api(字符串):API提供商钱包地址amount(数字):SOL支付金额(最低0.001 SOL)timeLock(数字,可选):托管到期时间(秒)(默认值:3600,最大值:2592000)
例子:
{
"api": "7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU",
"amount": 0.1,
"timeLock": 7200
}2. check_escrow_status
检查托管账户的状态和详细信息。
参数:
escrowAddress或transactionId(string):托管PDA或交易ID
退货: 托管状态(有效/有争议/已解决/已发布)、金额、时间戳、质量分数
3. verify_payment
验证是否已收到付款,以及托管是否处于活动状态。
参数:
transactionId(string):托管的交易ID
4. assess_data_quality
评估API响应数据的质量(链外)。
参数:
apiResponse(对象):API响应JSONexpectedCriteria(数组):预期字段(例如,\[“data.name”,“data.price”\])
退货: 质量分数(0-100)、退款百分比、完整性、新鲜度、模式合规性
5. estimate_refund
根据质量分数估算退款金额。
参数:
amount(编号):原始SOL付款qualityScore(数字):质量分数(0-100)
6. file_dispute
就API数据质量差提出争议。
参数:
transactionId(string):交易IDqualityScore(数字):质量评估得分refundPercentage(数字):要求退款(0-100)evidence(对象):支持性证据
7. get_api_reputation
获取API提供商的信誉评分和历史记录。
参数:
apiProvider(字符串):API提供商钱包地址
退货: 声誉评分(0-1000)、交易计数、争议历史、推荐
8. call_api_with_escrow (推荐)
统一工作流程:创建托管→ 调用API→ 评估质量→ 如有需要,自动争议。
参数:
apiUrl(字符串):API端点URLapiProvider(字符串):API提供商钱包amount(编号):SOL付款expectedCriteria(数组,可选):预期响应字段autoDispute(布尔值,可选):如果质量低,则自动文件争议(默认值:true)qualityThreshold(数字,可选):自动争议的质量阈值(默认值:50)
Claude中的示例用法:
Can you call the API at https://api.example.com/data with escrow payment of 0.05 SOL to provider 7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU?建筑
src/
├── index.ts # Main MCP server implementation
├── cli.ts # CLI entry point
├── idl/
│ └── x402_escrow.json # Anchor program IDL
├── solana/
│ ├── client.ts # Solana RPC client wrapper
│ ├── anchor.ts # Anchor program interaction
│ ├── transactions.ts # Transaction builders
│ └── pdas.ts # PDA derivation utilities
└── tools/
├── escrow.ts # Escrow management tools
├── quality.ts # Quality assessment tools
├── dispute.ts # Dispute filing tools
├── reputation.ts # Reputation queries
├── unified.ts # Unified workflow tool
└── index.ts # Tool exports发展
# Install dependencies
npm install
# Build TypeScript to JavaScript
npm run build
# Run in development mode with hot reload
npm run dev
# Lint code
npm run lint
# Format code
npm run format测试
# Run tests
npm test
# Test MCP protocol compliance
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | node dist/index.js故障排除
“无法解析AGENT_PRIVATE_KEY”
- 确保您的私钥是base58编码的
- 使用Solana密钥对中的完整88个字符的base58字符串
“资金不足”
- 请求devnet空投:
solana airdrop 2 --url devnet - 检查余额:
solana balance --url devnet
“程序E5Eia…未找到”
- 确保您已连接到Solana devnet
- 验证.env中的X402_PROGRAM_ID是否匹配:
E5EiaJhbg6Bav1v3P211LNv1tAqa4fHVeuGgRBHsEu6n
“帐户不存在”
- 首先使用初始化信誉帐户
init_reputation(提交争议时自动完成) - 在检查状态之前,确保已成功创建托管
安全考虑
- 私钥:从不承诺
.env到版本控制 - 仅限Devnet:当前的实现使用Solana devnet。对于主网,审计所有代码并增加安全措施
- 争议费用:提起争议的成本随着滥用模式的增加而增加(见声誉系统)
贡献
欢迎投稿!请在GitHub上打开问题或拉取请求。
资源
许可证
麻省理工学院|卡米约
