Model Context Protocol (MCP) server wrapping the public CTFtime API - query CTF events, teams, rankings, and results
npm install mcp-ctftime

An MCP (Model Context Protocol) server that wraps the public CTFtime API, enabling AI assistants to query CTF events, teams, rankings, and results.
``bash`
npx mcp-ctftime
`bash`
npm install -g mcp-ctftime
mcp-ctftime
`bash`
git clone https://github.com/tomek7667/mcp-ctftime.git
cd mcp-ctftime
pnpm install
pnpm build
pnpm start
| Tool | Description |
| ----------------------------------------- | ---------------------------------------- |
| ctftime_events(limit?, start?, finish?) | List events in a UNIX timestamp window |ctftime_event(event_id)
| | Get event details by ID |ctftime_top_teams(year?, limit?)
| | Get top teams (current or specific year) |ctftime_top_by_country(country_code)
| | Get top teams by country (current year) |ctftime_team(team_id)
| | Get team details by ID |ctftime_results(year?)
| | Get event results for a year |ctftime_votes(year)
| | Get event votes for a year |
---
Claude Desktop supports MCP servers via a JSON configuration file.
Config file location:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json
- Windows:
Using npx (recommended):
`json`
{
"mcpServers": {
"ctftime": {
"command": "npx",
"args": ["-y", "mcp-ctftime"]
}
}
}
Using global install:
`json`
{
"mcpServers": {
"ctftime": {
"command": "mcp-ctftime"
}
}
}
Restart Claude Desktop after editing the config.
---
Codex CLI stores MCP configuration in ~/.codex/config.toml.
Using the CLI:
`bash`
codex mcp add ctftime -- npx -y mcp-ctftime
Or edit ~/.codex/config.toml directly:
`toml`
[mcp_servers.ctftime]
command = "npx"
args = ["-y", "mcp-ctftime"]
Using global install:
`toml`
[mcp_servers.ctftime]
command = "mcp-ctftime"
Use /mcp in the Codex TUI to verify the server is connected.
---
Amp supports MCP servers via the amp.mcpServers setting in VS Code settings.json or via CLI.
Config file location (VS Code):
- macOS: ~/Library/Application Support/Code/User/settings.json%APPDATA%\Code\User\settings.json
- Windows: ~/.config/Code/User/settings.json
- Linux:
Using npx (recommended):
`json`
{
"amp.mcpServers": {
"ctftime": {
"command": "npx",
"args": ["-y", "mcp-ctftime"]
}
}
}
Using global install:
`json`
{
"amp.mcpServers": {
"ctftime": {
"command": "mcp-ctftime"
}
}
}
Via CLI:
`bash`
amp mcp add ctftime npx -y mcp-ctftime
---
Gemini CLI stores MCP configuration in ~/.gemini/settings.json.
Using npx (recommended):
`json`
{
"mcpServers": {
"ctftime": {
"command": "npx",
"args": ["-y", "mcp-ctftime"]
}
}
}
Using global install:
`json`
{
"mcpServers": {
"ctftime": {
"command": "mcp-ctftime"
}
}
}
Via CLI:
`bash`
gemini mcp add ctftime npx -- -y mcp-ctftime
Use /mcp in Gemini CLI to verify server status.
---
`bash`
docker build -t mcp-ctftime .
docker run -i mcp-ctftime
For clients that support Docker-based MCP servers:
`json`
{
"mcpServers": {
"ctftime": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp-ctftime"]
}
}
}
---
| Feature | Supported |
| --------- | --------------------- |
| Transport | stdio |
| Node.js | >=18.0.0 |
| Platforms | macOS, Linux, Windows |
| Client | Status |
| ---------------- | ----------- |
| Claude Desktop | ✅ Verified |
| OpenAI Codex CLI | ✅ Verified |
| Amp | ✅ Verified |
| Gemini CLI | ✅ Verified |
---
Currently, this server does not require any environment variables. The CTFtime API is public and does not require authentication.
---
`bashClone and install
git clone https://github.com/tomek7667/mcp-ctftime.git
cd mcp-ctftime
pnpm install
---
API Reference
This server wraps the public CTFtime API: https://ctftime.org/api/
All timestamps use UNIX epoch seconds. Country codes use ISO 3166-1 alpha-2 format (lowercase, e.g.,
us, de, pl`).