README
🚀 CTFtime MCP Server
CTFtime MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,它提供了一种程序化的方式来访问 CTFtime.org 的数据。通过标准化接口,你可以获取 CTF 竞赛、团队排名、赛事详情以及竞赛结果等信息。
🚀 快速开始
CTFtime MCP Server 提供了便捷的方式来获取 CTFtime.org 的数据。你可以按照以下步骤进行安装和使用。
✨ 主要特性
工具
| 工具 | 描述 |
|------|-------------|
| 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 或更高版本
- uv(推荐)或 pip
使用 uv(推荐)
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 .
💻 使用示例
运行服务器
# 使用 uv
uv run server.py
# 直接使用 Python
python server.py
开发模式
# 使用 MCP Inspector 进行测试
uv run mcp dev server.py
客户端配置
要将 CTFtime MCP 服务器添加到 Claude Desktop,请运行以下命令:
uv run mcp install server.py --name "CTFtime"
Claude Desktop
将以下内容添加到你的 claude_desktop_config.json 文件中:
{
"mcpServers": {
"ctftime": {
"command": "uv",
"args": ["run", "--directory", "/path/to/ctf-times-mcp", "server.py"]
}
}
}
VS Code with Continue
将以下内容添加到你的 Continue 配置中:
{
"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 用于数据分析和应用开发。请实施适当的请求节流,以尊重服务器资源。
竞赛格式
| 格式 | 描述 | 技能水平 | |--------|-------------|-------------| | Jeopardy | 基于类别的挑战(Web、Crypto、Pwn、Rev、Forensics) | 所有级别 | | Attack-Defense | 实时攻防操作 | 高级 | | Mixed | Jeopardy 和 Attack-Defense 的组合 | 中级及以上 | | Hack Quest | 叙事驱动的渐进式挑战 | 学习阶段 |
挑战类别
| 类别 | 重点领域 | |----------|------------| | Web | Web 应用程序安全漏洞 | | Crypto | 密码分析与利用 | | Pwn | 二进制利用和内存破坏 | | Reverse | 静态和动态二进制分析 | | Forensics | 数字工件调查 | | OSINT | 开源情报收集 | | Misc | 编程、琐事、非常规挑战 |
🔧 技术细节
项目结构
ctf-times-mcp/
├── server.py # MCP 服务器实现
├── pyproject.toml # 项目配置和依赖项
└── README.md # 文档
开发
测试
# 使用 MCP Inspector 运行
uv run mcp dev server.py
# 执行测试
uv run pytest
代码风格
本项目遵循 PEP 8 规范,并在整个项目中使用类型注解。
📄 许可证
本项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE。
致谢
- CTFtime.org - 竞赛跟踪平台和 API
- Model Context Protocol - 协议规范
- MCP Python SDK - 服务器实现框架
免责声明
这是一个独立项目,与 CTFtime.org 没有关联或得到其认可。请查看并遵守 CTFtime.org 的服务条款和 API 使用指南。
Scan to join WeChat group