Codeforces MCP服务器
一种模型上下文协议(MCP)服务器,通过标准化接口提供对Codeforce数据的访问。此服务器允许您从Codeforces平台查询用户信息、竞赛数据、问题提交等。
特性
- 用户信息:获取有关Codeforce用户的详细信息,包括评级、排名和个人资料
- 提交:检索任何用户最近提交的详细判决和性能数据
- 评级历史:访问用户的完整评级更改历史记录
- 竞赛数据:获取比赛信息,包括排名和参赛者数据
- 问题集:来自具有过滤功能的Codeforces问题集中的查询问题
- 实时数据:所有数据直接从官方Codeforces API获取
安装
先决条件
- Node.js(版本14或更高)
- npm或yarn包管理器
设置
- 克隆存储库:
git clone https://github.com/yourusername/codeforces-mcp-server.git
cd codeforces-mcp-server- 安装依赖项:
npm install- 使脚本可执行:
chmod +x index.js用法
运行服务器
服务器在stdio传输上运行,可以通过以下方式启动:
./index.js或者直接使用Node.js:
node index.js可用工具
服务器通过MCP接口提供以下工具:
1.获取用户信息
{
"name": "get_user_info",
"arguments": {
"handles": ["tourist", "jiangly", "Benq"]
}
}2.获取用户提交
{
"name": "get_user_submissions",
"arguments": {
"handle": "tourist",
"count": 20
}
}3.获取用户评分历史记录
{
"name": "get_user_rating",
"arguments": {
"handle": "tourist"
}
}4.获取竞赛列表
{
"name": "get_contest_list",
"arguments": {
"gym": false
}
}5.获得比赛排名
{
"name": "get_contest_standings",
"arguments": {
"contest_id": 1234,
"count": 50
}
}6.遇到问题
{
"name": "get_problems",
"arguments": {
"tags": ["dp", "graphs", "implementation"]
}
}可用资源
服务器公开了三种主要资源:
codeforces://users-用户相关操作codeforces://contests-竞赛相关操作codeforces://problems-与问题相关的操作
api参考
用户操作
- 获取用户信息:检索一个或多个用户的详细信息
- 获取用户提交:获取最近提交的判决和绩效指标
- 获取用户评分:访问完整的评级更改历史记录
竞赛运营
- 获取竞赛列表:列出所有比赛(带可选健身房过滤器)
- 获得比赛排名:检索特定比赛的排名
问题操作
- 遇到问题:使用可选标记筛选从问题集中查询问题
配置
服务器包括内置配置:
- 超时:API请求为10秒
- 速率限制:遵守Codeforces API速率限制
- 错误处理:通过有意义的消息进行全面的错误处理
- 响应限制:自动限制大响应以防止超时
错误处理
该服务器包括强大的错误处理功能,用于:
- 网络连接问题
- API响应无效
- 缺少必要参数
- 请求频率超限
- 用户句柄或比赛ID无效
例子
获取用户信息
# Example response for user info
{
"handle": "tourist",
"rating": 3821,
"maxRating": 4229,
"rank": "legendary grandmaster",
"maxRank": "legendary grandmaster",
"country": "Belarus",
"contribution": 118,
"friendOfCount": 25234
}获取最近提交的内容
# Example response for submissions
{
"id": 123456789,
"contestId": 1234,
"problem": {
"name": "Problem A",
"index": "A",
"rating": 800,
"tags": ["implementation", "math"]
},
"verdict": "OK",
"programmingLanguage": "GNU C++17",
"timeConsumedMillis": 31,
"memoryConsumedBytes": 1024000
}依赖项
@modelcontextprotocol/sdk:用于服务器实现的MCP SDKaxios:API请求的HTTP客户端
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
支持
对于问题和疑问:
更新日志
v1.0.0
- 首次发布,完全集成Codeforces API
- 支持用户、竞赛和问题数据
- 全面的错误处理和速率限制
