MCP configuration to link AI agents with a CTFd instance.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add ctfd --env CTFD_BASE_URL='<CTFD_BASE_URL>' --env CTFD_ADMIN_TOKEN='<CTFD_ADMIN_TOKEN>' --env CTFD_SESSION_COOKIE='<CTFD_SESSION_COOKIE>' --env CTFD_PASSWORD='<CTFD_PASSWORD>' -- uvx ctfd-mcp-server~/.codex/config.toml
[mcp_servers.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>" }
# codex mcp add ctfd --env CTFD_BASE_URL='<CTFD_BASE_URL>' --env CTFD_ADMIN_TOKEN='<CTFD_ADMIN_TOKEN>' --env CTFD_SESSION_COOKIE='<CTFD_SESSION_COOKIE>' --env CTFD_PASSWORD='<CTFD_PASSWORD>' -- uvx ctfd-mcp-server~/.cursor/mcp.json
{
"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>"
}
}
}
}.vscode/mcp.json
{
"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>"
}
}
}
}~/.gemini/settings.json
{
"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>"
}
}
}
}claude_desktop_config.json
{
"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>"
}
}
}
}.trae/mcp.json
{
"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>"
}
}
}
}Environment variables
CTFD_BASE_URLCTFD_ADMIN_TOKENCTFD_SESSION_COOKIECTFD_PASSWORD
Replace the placeholders with your own credentials and keep them out of version control.