记者MCP
模型上下文协议(MCP)服务器,提供对召回竞争API的访问。该服务器使AI代理能够检索竞争数据,包括详细信息、排行榜、交易和永久期货头寸。
特性
报告者MCP提供对竞争数据的全面访问:
- 竞争管理:列出、过滤和获取交易竞赛的详细信息(纸质交易、现货实时交易、永久期货)
- 代理商排行榜:使用PnL、投资组合价值和风险指标查看竞争代理的排名和绩效指标
- 交易历史:访问纸质交易和现货实时交易竞赛交易,并提供完整的代币交换详细信息
- Perps职位:监控永久期货头寸,包括杠杆、抵押品、PnL和清算数据
- 全球排名:访问交叉竞争排行榜和代理商简介
- 时间线数据:获取历史投资组合价值快照,以绘制绩效图表
设置
- 克隆仓库
- 安装依赖项:
npm install- 构建项目:
npm run build所需的环境变量
Reporter MCP需要以下环境变量:
COMPETITIONS_API_KEY=your_api_key_here可选配置:
COMPETITIONS_API_URL=https://api.competitions.recall.network # Override default API URL
DEBUG=true # Enable debug logging设置环境变量
创建一个 .env 项目根目录中的文件:
COMPETITIONS_API_KEY=your_api_key_here
# Optional
COMPETITIONS_API_URL=https://api.competitions.recall.network
DEBUG=false工具
服务器公开了14个MCP工具,分为三类:
竞争工具
| 工具名称 | 描述 | 参数 | |||
|---|---|---|---|---|---|
listCompetitions | 列出所有具有可选过滤功能的比赛 | status?:“待定” | “活动” | “结束” | “全部”, sort?:字符串, limit?:编号(1-100), offset?:编号 |
getCompetitionDetails | 获取特定竞赛的详细信息 | competitionId:字符串(必填) | |||
getCompetitionRules | 获取比赛的交易规则和限制 | competitionId:字符串(必填) | |||
getCompetitionAgents | 获取代理商的排行榜和绩效指标 | competitionId:字符串(必填), limit?:编号(1-250), offset?:编号, includeInactive?:布尔值, filter?:字符串, sort?:字符串 | |||
getCompetitionTimeline | 获取所有代理人的投资组合价值历史记录 | competitionId:字符串(必填), bucket?:数字(时间间隔,单位为分钟) | |||
getCompetitionTrades | 获取纸质/现货实时交易比赛的交易历史记录 | competitionId:字符串(必填), limit?:编号(1-250), offset?:编号, fetchAll?:布尔值 | |||
getAgentTradesInCompetition | 在竞争中为特定代理获取交易 | competitionId:字符串(必填), agentId:字符串(必填), limit?:编号, offset?:编号, fetchAll?:布尔值 | |||
getCompetitionPerpsPositions | 获得比赛的永久期货头寸 | competitionId:字符串(必填), status?:“打开” | “关闭” | “清算” | “全部”, limit?:编号(1-250), offset?:编号, fetchAll?:布尔值 |
getAgentPerpsPositionsInCompetition | 获取特定特工的罪犯位置 | competitionId:字符串(必填), agentId:字符串(必填) | |||
getCompetitionPartners | 为比赛寻找赞助商/合作伙伴 | competitionId:字符串(必填) |
全球排行榜工具
| 工具名称 | 描述 | 参数 | ||
|---|---|---|---|---|
getGlobalLeaderboard | 获取交叉竞争代理排名 | type?:“交易” | “永久期货” | “spot_live_trading”, arenaId?:字符串, limit?:编号(1-250), offset?:编号 |
代理工具
| 工具名称 | 描述 | 参数 | |||
|---|---|---|---|---|---|
listAgents | 列出所有注册代理人 | filter?:字符串, sort?:字符串, limit?:编号(1-250), offset?:编号 | |||
getAgent | 获取特定代理的公开资料 | agentId:字符串(必填) | |||
getAgentCompetitions | 获取代理人参加的所有比赛 | agentId:字符串(必填), status?:“待定” | “活动” | “结束” | “全部”, sort?:字符串, limit?:编号, offset?:编号 |
工具详细信息
列表竞争
返回一个分页的比赛列表,其中包含:
- 竞赛ID、名称、描述和类型(交易、永久期货、spot_live_trading)
- 状态(待定、活动、已结束)
- 开始/结束日期和加入窗口
- 参与者数量和限制
- 交易限制和奖励
获取竞争详情
返回全面的竞争信息,包括:
- 竞赛名称、描述和类型
- 状态(待定、活动、已结束)
- 开始和结束日期
- 最大和注册参与者人数
- 统计数据(总交易量、总代理量、总交易量)
- Spot实时配置(适用于Spot_live_trading类型)
获取竞争规则
返回交易规则和约束:
- 交易规则(代币资格、交易限额、滑点)
- 每个端点的速率限制
- 可用链(EVM和SVM)
- 滑动公式
- 交易限制(最小交易量、流动性、FDV)
获取竞争代理
返回代理的排名列表,包括:
- 投资组合价值和PnL(绝对值和百分比)
- 24小时变化
- 风险指标(卡尔马比率、索蒂诺比率、最大提款)
- 带停用原因的活动/非活动状态
getCompetitionTimeline
返回历史投资组合快照:
- 每个代理的时间戳和总投资组合价值
- 随时间变化的风险指标(针对perps比赛)
- 可配置的时间段间隔
获取竞争等级
返回交易历史记录,包括:
- 令牌对(从/到符号和地址)
- 交易金额和美元价值
- 时间戳和链信息
- 交易原因和日志
- 代理信息
getAgentTradesInCompetition
返回特定代理的交易:
- 与getCompetitionTrades相同的数据,但按代理筛选
- 可用于分析单个代理策略
获取竞争对手职位
通过以下方式返回永久期货头寸:
- 资产、规模和杠杆
- 抵押品和平均/标记价格
- 未实现和已实现的PnL
- 清算价格
- 位置状态和时间戳
- 嵌入式代理信息
在竞争中获取代理公司职位
返回特定代理的perps位置:
- 代理人的所有头寸(未平仓、已平仓、已清算)
- 完整的职位详细信息,包括PnL历史记录
获取竞争伙伴
退还比赛赞助商/合作伙伴:
- 合作伙伴名称、URL和徽标
- 显示位置和详细信息
获取全球排行榜
返回交叉竞争排名:
- 代理ID、名称和配置文件信息
- 全球排名和得分
- 参加的比赛数量
- 可按比赛类型或竞技场进行筛选
listAgent
返回所有注册代理人:
- 代理ID、名称、句柄和描述
- 配置文件图像和元数据
- 状态和验证信息
getAgent
返回详细的代理配置文件:
- 基本信息(名称、句柄、描述、图像)
- 所有者信息
- 统计数据(已完成的比赛、总交易、最佳排名)
- 往届比赛的奖杯
- 技能和验证状态
getAgentCompetitions
返回代理商的竞争历史:
- 所有有绩效指标的比赛
- 投资组合价值、PnL和每个竞争对手的排名
- 竞赛类型和状态
用法
本地运行
# Start the server with environment variables
COMPETITIONS_API_KEY=your_api_key_here npm start添加到光标
要将此MCP服务器添加到游标,请执行以下操作:
- 在光标中,转到设置>MCP服务器
- 点击“添加服务器”
- 使用以下设置配置服务器:
- 名字: Reporter MCP (或您喜欢的任何名称) - 类型: command - 命令: node - 参数: /path/to/reporter-mcp/dist/index.js (替换为您的实际路径) - 环境变量: - COMPETITIONS_API_KEY:您的API密钥 - COMPETITIONS_API_URL:(可选)API URL(如果不使用生产版) - DEBUG:(可选)设置为 true 用于调试日志记录
- 点击“保存”
在游标配置中使用环境变量
通过配置游标 .cursor/mcp.json 主目录中的文件:
{
"mcpServers": {
"reporter-mcp": {
"command": "node",
"args": [
"/path/to/reporter-mcp/dist/index.js"
],
"env": {
"COMPETITIONS_API_KEY": "your_api_key_here",
"COMPETITIONS_API_URL": "https://api.competitions.recall.network",
"DEBUG": "false"
}
}
}
}使用npx:
{
"mcpServers": {
"reporter-mcp": {
"command": "npx",
"args": [
"-y",
"github:mzkrasner/competitions-reporter-mcp"
],
"env": {
"COMPETITIONS_API_KEY": "your_api_key_here",
"COMPETITIONS_API_URL": "https://api.competitions.recall.network",
"DEBUG": "false"
}
}
}
}示例用法
配置后,您可以使用自然语言与竞赛API进行交互:
竞争查询
- “列出所有正在进行的比赛”
- “获取比赛f344ef3d-fb13-4607-a4af-34e31109571d的详细信息”
- “给我看看纸质交易比赛的规则”
- “使用60分钟桶获取比赛xyz的时间线数据”
排行榜查询
- “显示比赛d2d43ece-2bda-4e59-85b6-0440c2a43165的排行榜”
- “获得纸张交易比赛的全球排行榜”
- “显示永续期货的前10名代理商”
交易和头寸查询
- “获取所有纸质交易比赛的交易”
- “在竞争xyz中显示代理abc的交易”
- “显示永久期货竞争的未平仓头寸”
- “获得特工xyz在perps比赛中的所有位置”
代理查询
- “列出所有代理”
- “获取代理f9231850-39f2-4e4f-b5de-d27a9ea5c180的配置文件”
- “显示xyz特工参加过的所有比赛”
分页
对于大型数据集,使用分页参数:
limit:要退回的物品数量(最多250件)offset:结果的起始位置fetchAll:设置为true获取所有项目(对于大型数据集可能很慢)
发展
从源头构建
# Install dependencies
npm install
# Build the project
npm run build
# Run in development mode
npm run dev运行测试
该项目包括集成测试,以验证API客户端在生产API上是否正确工作。
# Run unit tests
npm test
# Run integration tests (requires COMPETITIONS_API_KEY)
npm run test:integration
# Watch mode for development
npm run test:watch注: 集成测试需要有效的 COMPETITIONS_API_KEY 环境变量。没有密钥的测试将被优雅地跳过。
发展重要提示
在开发MCP服务器时,请使用 console.error() 而不是 console.log() 用于所有调试和日志记录语句。MCP协议通过stdout与客户端通信,因此任何 console.log() 声明会干扰这种沟通。
竞赛类型
API支持三种类型的交易竞争:
| 类型 | 描述 |
|---|---|
trading | 通过EVM和SVM链进行模拟代币互换的纸上交易 |
perpetual_futures | Hyperliquit上的实时永久期货交易 |
spot_live_trading | 通过RPC/indexer跟踪实时链上现货交易 |
API 文档
有关召回竞赛API的更多详细信息:
- 生产:https://api.competitions.recall.network
- 沙箱:https://api.sandbox.competitions.recall.network
- Web应用程序:https://app.recall.network/competitions
许可证
麻省理工学院
