CTF竞赛数据接口服务

提供对CTFtime.org数据的程序化访问,包括CTF竞赛信息、团队排名、赛事详情和比赛结果的一站式标准化接口服务。

  • by 0x-Professor
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 0x-Professor/CTF-time-mcp

使用说明

CTFtime MCP服务器

一种模型上下文协议(MCP)服务器,提供对 CTFtime.org 数据。通过标准化界面检索有关CTF比赛、球队排名、赛事详情和比赛结果的信息。

特性

工具

工具 说明
get_upcoming_ctfs 使用可配置的时间范围检索即将发生的CTF事件
get_past_ctfs 检索历史CTF事件
get_event_details 获取有关特定事件的全面信息
get_top_teams 查询全球CTF团队排名
get_top_teams_by_country 按国家代码查询区域团队排名
get_team_info 检索详细的团队信息和统计数据
get_event_results 获取比赛结果和分数
search_events 按名称、描述或组织者搜索事件
get_ctf_calendar 查看CTF活动的月历

提示

提示 描述
analyze_ctf_event 生成特定CTF事件的分析
find_beginner_ctfs 确定适合初学者的比赛
team_performance_analysis 分析团队绩效指标
weekly_ctf_briefing 生成每周比赛总结
country_ctf_scene 分析区域CTF社区

资源

资源URI 描述
ctftime://info 服务器和平台文档
ctftime://formats CTF竞赛格式参考
ctftime://categories 挑战类别文档

安装

先决条件

  • Python 3.13或更高版本
  • 紫外线 (推荐)或pip

使用紫外线(推荐)

git clone https://github.com/0x-Professor/CTF-time-mcp.git
cd ctf-times-mcp
uv sync

使用pip

git clone https://github.com/yourusername/ctf-times-mcp.git
cd ctf-times-mcp
pip install -e .

用法

运行服务器

# Using uv
uv run server.py

# Using Python directly
python server.py

开发模式

# Launch with MCP Inspector for testing
uv run mcp dev server.py

客户端配置

要将CTFtime MCP服务器添加到Claude Desktop,请运行以下命令:

uv run mcp install server.py --name "CTFtime"

克劳德桌面版

将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "ctftime": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/ctf-times-mcp", "server.py"]
    }
  }
}

VS代码并继续

添加到“继续”配置中:

{
  "mcpServers": [
    {
      "name": "ctftime",
      "command": "uv",
      "args": ["run", "server.py"],
      "cwd": "/path/to/ctf-times-mcp"
    }
  ]
}

查询示例

连接到MCP兼容客户端后:

  • “列出未来两周即将举行的CTF比赛”
  • “获取CTF事件ID 2345的详细信息”
  • “展示全球排名前20的CTF团队”
  • “查找来自德国的CTF团队”
  • “搜索与DEF CON相关的CTF事件”
  • “显示2026年3月的CTF日历”

API 参考

此服务器与 CTFtime.org API.

使用的端点

终点 目的
/api/v1/events/ 带有日期过滤器的事件列表
/api/v1/events/{id}/ 个人活动详情
/api/v1/top/ 全球团队排名
/api/v1/top/{year}/ 年度排名
/api/v1/top-by-country/{code}/ 国别排名
/api/v1/teams/{id}/ 团队信息
/api/v1/results/ 竞赛结果

速率限制

提供CTFtime.org API用于数据分析和应用程序开发。实施适当的请求限制以尊重服务器资源。

竞赛形式

格式 描述 技能等级
危险 基于类别的挑战(Web、加密、Pwn、Rev、取证) 所有级别
攻击防御 实时攻防作战 高级
混合 危险与攻防结合 中级+
Hack Quest 叙事驱动的渐进式挑战 学习

挑战类别

类别 重点领域
Web Web应用程序安全漏洞
Crypto 密码分析和利用
Pwn 二进制漏洞利用和内存损坏
反向 静态和动态二元分析
取证 数字文物调查
OSINT 开源情报收集
杂项 编程、琐事、非传统挑战

项目结构

ctf-times-mcp/
├── server.py          # MCP server implementation
├── pyproject.toml     # Project configuration and dependencies
└── README.md          # Documentation

发展

测试

# Run with MCP Inspector
uv run mcp dev server.py

# Execute tests
uv run pytest

代码风格

本项目遵循PEP 8规范,并全程使用类型注释。

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/enhancement)
  3. 提交更改(git commit -m 'Add enhancement')
  4. 推送到分支(git push origin feature/enhancement)
  5. 打开拉取请求

许可证

该项目根据MIT许可证获得许可。看 许可证 了解详情。

致谢

免责声明

这是一个独立的项目,不隶属于CTFtime.org或由其认可。请查看并遵守CTFtime.com的服务条款和API使用指南。