使用说明
MCP收益服务器
一个生产就绪的模型上下文协议(MCP)服务器,为AI助手提供从StakeKit/yield.xyz访问全面的DeFi产量数据的权限。通过实时APY数据和风险指标,发现并比较50多个网络中的质押、贷款和保险库机会。
特性
- 14种专用工具 用于查询收益机会、网络、令牌和协议
- 5个引导提示 用于常见的工作流程(收益率比较、网络尽职调查等)
- 动态资源 为增强的AI响应提供上下文数据
- 类型安全API集成 具有全面的错误处理功能
- 多种运输方式:stdio(用于Claude Desktop)和HTTP(用于远程访问)
- 生产级测井 通过Pino进行结构化输出
快速开始
先决条件
- Node.js 18或更新版本
- npm 9+
- 来自的StakeKit API密钥 api.stakek.it
安装
# Clone and install dependencies
git clone <repository-url>
cd mcp-yield
npm install
# Configure your API key
cp .env.example .env
# Edit .env and set: STAKEKIT_API_KEY=your_api_key_here
构建
npm run build
用法
选项1:克劳德桌面集成(推荐)
将此服务器添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"yield": {
"command": "node",
"args": [
"/absolute/path/to/mcp-yield/dist/index.js"
],
"env": {
"STAKEKIT_API_KEY": "your_api_key_here"
}
}
}
}
替换 /absolute/path/to/mcp-yield 安装的实际路径。
重新启动Claude Desktop,您的对话中将提供收益工具。
选项2:标准模式(手动测试)
# Start the server in stdio mode
STAKEKIT_API_KEY=your_key npm run start:stdio
# Test with JSON-RPC commands via stdin
echo '{"jsonrpc":"2.0","method":"tools/list","id":1,"params":{}}' | \
STAKEKIT_API_KEY=your_key node dist/index.js
选项3:HTTP模式(远程访问)
# Start HTTP server on port 3000
STAKEKIT_API_KEY=your_key PORT=3000 npm run start:http
# The server exposes:
# - POST /mcp - JSON-RPC endpoint
# - GET /health - Health check endpoint
可用工具
该服务器提供14个工具,分为三类:
产量发现(8个工具)
get-yield-opportunities-所有收益机会的分页列表get-yield-details-特定产量的详细明细get-yields-by-network-按区块链网络过滤收益get-yields-by-token-查找支持特定代币的收益get-staking-yields-质押和流动质押机会get-lending-yields-具有抵押品指标的贷款市场get-vault-yields-包含费用数据的保险库策略get-top-yields-使用过滤器获得最高APY机会
网络和令牌目录(4个工具)
list-supported-chains-所有支持的区块链网络get-chain-details-网络元数据和最高收益list-supported-tokens-具有网络覆盖范围的令牌目录get-token-details-代币元数据和支持收益
协议分析(2个工具)
list-protocols-带度量的DeFi协议目录get-protocol-details-协议深度挖掘和APY统计
引导提示
服务器包括5个智能提示,用于指导常见的工作流程:
compare-yields-并排比较多个收益机会find-optimal-yield-找到符合特定标准的最佳收益network-due-diligence-为网络生成风险评估protocol-risk-review-分析协议安全性和收益率token-yield-availability-发现代币的所有收益选项
配置
可以在中设置环境变量 .env 或直接传递:
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
STAKEKIT_API_KEY |
是 | - | 您的StakeKit API密钥 |
STAKEKIT_BASE_URL |
没有 | https://api.stakek.it/v2 |
API主要终点 |
STAKEKIT_FALLBACK_URL |
没有 | https://api.yield.xyz/v1 |
回退端点 |
LOG_LEVEL |
没有 | info |
日志记录级别(调试、信息、警告、错误) |
PORT |
没有 | 3000 |
HTTP服务器端口 |
测试
# Run all tests
npm test
# Run tests in watch mode
npm test -- --watch
# Type checking
npm run lint
# Run with live API (requires STAKEKIT_API_KEY)
RUN_LIVE_TESTS=1 npm test
测试覆盖范围包括:
- 所有工具和实用程序的单元测试
- 带有模拟API响应的集成测试
- 型式安全验证
- 错误处理场景
示例用法
通过克劳德桌面
配置后,您可以询问Claude:
“向我展示以太坊上至少有100万美元TVL的前5个质押收益率”
“比较Aave和Compound的USDC贷款收益率”
“在丽都下注ETH有什么风险?”
通过Stdio(手动)
# Get top yields
echo '{
"jsonrpc":"2.0",
"method":"tools/call",
"id":2,
"params":{
"name":"get-top-yields",
"arguments":{"limit":5,"minTvlUsd":1000000}
}
}' | STAKEKIT_API_KEY=your_key node dist/index.js
# Get chain details
echo '{
"jsonrpc":"2.0",
"method":"tools/call",
"id":3,
"params":{
"name":"get-chain-details",
"arguments":{"networkId":"ethereum"}
}
}' | STAKEKIT_API_KEY=your_key node dist/index.js
Docker部署
# Build the Docker image
docker build -t mcp-yield .
# Run in stdio mode
docker run --rm -e STAKEKIT_API_KEY=your_key mcp-yield
# Run in HTTP mode
docker run --rm -p 3000:3000 \
-e STAKEKIT_API_KEY=your_key \
-e PORT=3000 \
mcp-yield npm run start:http
故障排除
| 问题 | 解决方案 |
|---|---|
| “身份验证失败”错误 | 验证 STAKEKIT_API_KEY 在中设置正确 .env 或环境 |
| Claude中“找不到工具” | 更新配置后重新启动Claude Desktop |
| 速率限制(429个错误) | 等待几秒钟;客户端自动重试瞬态错误 |
| 类型验证错误 | 更新到最新版本;API架构可能已更改 |
| 空工具响应 | 检查API密钥权限和网络连接 |
发展
项目结构
mcp-yield/
├── src/
│ ├── tools/ # Tool implementations (yields, chains)
│ ├── resources/ # Dynamic resources
│ ├── prompts/ # Guided prompts
│ ├── client/ # StakeKit API client
│ ├── types/ # TypeScript types and Zod schemas
│ ├── services/ # Business logic
│ └── utils/ # Shared utilities
├── tests/ # Test suites
├── docs/ # Planning and documentation
│ └── archive/ # Historical test reports
└── dist/ # Compiled output
开发流程
- 从以下位置创建特征分支
main - 先写测试(TDD方法)
- 实施具有类型安全的功能
- 跑
npm run lint && npm test在承诺之前 - 在代码更改的同时更新文档
重要技术说明
- 严格的TypeScript:没有
any类型;全面型安全贯穿始终 - 错误处理:所有API错误都被捕获并格式化为MCP兼容错误
- 架构验证:Zod架构验证所有API响应
- 过滤:错误格式的API数据被正常筛选出
- 重试逻辑:针对瞬态故障,采用指数回退自动重试
文档
- 规划文件:参见
docs/详细的规划和实施说明 - 测试档案:历史测试报告
docs/archive/ - 开发日志:
DEVELOPMENT.md包含TDD方法和进展 - 修复摘要:技术细节见
CODE_REVIEW_FIX_PLAN.md,PARALLEL_FIX_SUMMARY.md等等。
资源
许可证
麻省理工学院
贡献
欢迎投稿!拜托:
- 复刻仓库
- 创建要素分支
- 添加新功能的测试
- 确保所有测试通过,类型检查成功
- 提交一个带有明确描述的拉取请求
支持
对于问题或疑问:
- GitHub问题:报告错误或请求功能
- 文件:检查
docs/获取详细的技术信息
