CTFd MCP Server
by mrjamescotio.github.MrJamescot/ctfd-mcp-serverv1.0.4
MCP server for CTFd v3: list challenges, submit flags, and query scoreboards via AI agents.
context tax
queued
security
queued
cold start
queued
freshness
Active18d ago
Install CTFd MCP server
Install in Claude Code
claude mcp add ctfd -e CTFD_BASE_URL='<ctfd-base-url>' -e CTFD_ADMIN_TOKEN='<ctfd-admin-token>' -e CTFD_SESSION_COOKIE='<ctfd-session-cookie>' -e CTFD_PASSWORD='<ctfd-password>' -- uvx ctfd-mcp-serverInstall in Cursor
{
"mcpServers": {
"ctfd": {
"command": "uvx",
"args": [
"ctfd-mcp-server"
],
"env": {
"CTFD_BASE_URL": "<ctfd-base-url>",
"CTFD_ADMIN_TOKEN": "<ctfd-admin-token>",
"CTFD_SESSION_COOKIE": "<ctfd-session-cookie>",
"CTFD_PASSWORD": "<ctfd-password>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"ctfd": {
"command": "uvx",
"args": [
"ctfd-mcp-server"
],
"env": {
"CTFD_BASE_URL": "<ctfd-base-url>",
"CTFD_ADMIN_TOKEN": "<ctfd-admin-token>",
"CTFD_SESSION_COOKIE": "<ctfd-session-cookie>",
"CTFD_PASSWORD": "<ctfd-password>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"ctfd": {
"type": "stdio",
"command": "uvx",
"args": [
"ctfd-mcp-server"
],
"env": {
"CTFD_BASE_URL": "<ctfd-base-url>",
"CTFD_ADMIN_TOKEN": "<ctfd-admin-token>",
"CTFD_SESSION_COOKIE": "<ctfd-session-cookie>",
"CTFD_PASSWORD": "<ctfd-password>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"ctfd": {
"command": "uvx",
"args": [
"ctfd-mcp-server"
],
"env": {
"CTFD_BASE_URL": "<ctfd-base-url>",
"CTFD_ADMIN_TOKEN": "<ctfd-admin-token>",
"CTFD_SESSION_COOKIE": "<ctfd-session-cookie>",
"CTFD_PASSWORD": "<ctfd-password>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| CTFD_BASE_URL | yes | — | Root URL of the CTFd v3 instance, e.g. https://ctf.example.com (without /api/v1) |
| CTFD_ADMIN_TOKEN | — | yes | CTFd API access token (preferred authentication method) |
| CTFD_SESSION_COOKIE | — | yes | Full CTFd session cookie, e.g. session=abc... |
| CTFD_USERNAME | — | — | Username for CTFd form login |
| CTFD_PASSWORD | — | yes | Password for CTFd form login |
| CTFD_HTTP_TIMEOUT | — | — | Per-request HTTP timeout in seconds (default 15) |
Freshness
Active — last maintenance signal 18d ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-09-21 · 19d ago · GitHub
Latest release
2026-09-21 · 19d ago · GitHub · v1.0.4
Package published
no data · npm/PyPI
Registry entry updated
2026-09-21 · 18d ago · official registry · v1.0.4
FAQ
›How do I install the CTFd MCP server in Claude Code?
Run: claude mcp add ctfd -e CTFD_BASE_URL='<ctfd-base-url>' -e CTFD_ADMIN_TOKEN='<ctfd-admin-token>' -e CTFD_SESSION_COOKIE='<ctfd-session-cookie>' -e CTFD_PASSWORD='<ctfd-password>' -- uvx ctfd-mcp-server. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does CTFd require an API key?
Yes. It expects CTFD_BASE_URL, CTFD_ADMIN_TOKEN, CTFD_SESSION_COOKIE, CTFD_PASSWORD, of which 3 are secrets.
›Can I use CTFd as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is CTFd in the official MCP registry?
Yes, as io.github.MrJamescot/ctfd-mcp-server.