MCP server for CTFd v3: list challenges, submit flags, and query scoreboards via AI agents.
registry version 1.0.4
Python
uvx ctfd-mcp-serverPython
uvx ctfd-mcp-server@1.0.4
Pick your client — the config below is generated for this server (local stdio). Copy respects the “Pin version” switch above.
claude_desktop_config.json
{
"mcpServers": {
"ctfd-mcp-server": {
"command": "uvx",
"args": [
"ctfd-mcp-server"
],
"env": {
"CTFD_BASE_URL": "<YOUR_CTFD_BASE_URL>",
"CTFD_ADMIN_TOKEN": "<YOUR_CTFD_ADMIN_TOKEN>",
"CTFD_SESSION_COOKIE": "<YOUR_CTFD_SESSION_COOKIE>",
"CTFD_PASSWORD": "<YOUR_CTFD_PASSWORD>"
}
}
}
}{
"mcpServers": {
"ctfd-mcp-server": {
"command": "uvx",
"args": [
"ctfd-mcp-server@1.0.4"
],
"env": {
"CTFD_BASE_URL": "<YOUR_CTFD_BASE_URL>",
"CTFD_ADMIN_TOKEN": "<YOUR_CTFD_ADMIN_TOKEN>",
"CTFD_SESSION_COOKIE": "<YOUR_CTFD_SESSION_COOKIE>",
"CTFD_PASSWORD": "<YOUR_CTFD_PASSWORD>"
}
}
}
}Format verified against the official Claude Desktop docs ↗.
terminal
claude mcp add --env CTFD_BASE_URL=<YOUR_CTFD_BASE_URL> --env CTFD_ADMIN_TOKEN=<YOUR_CTFD_ADMIN_TOKEN> --env CTFD_SESSION_COOKIE=<YOUR_CTFD_SESSION_COOKIE> --env CTFD_PASSWORD=<YOUR_CTFD_PASSWORD> ctfd-mcp-server -- uvx ctfd-mcp-server
claude mcp add --env CTFD_BASE_URL=<YOUR_CTFD_BASE_URL> --env CTFD_ADMIN_TOKEN=<YOUR_CTFD_ADMIN_TOKEN> --env CTFD_SESSION_COOKIE=<YOUR_CTFD_SESSION_COOKIE> --env CTFD_PASSWORD=<YOUR_CTFD_PASSWORD> ctfd-mcp-server -- uvx ctfd-mcp-server@1.0.4
Format verified against the official Claude Code docs ↗.
.cursor/mcp.json
{
"mcpServers": {
"ctfd-mcp-server": {
"command": "uvx",
"args": [
"ctfd-mcp-server"
],
"env": {
"CTFD_BASE_URL": "<YOUR_CTFD_BASE_URL>",
"CTFD_ADMIN_TOKEN": "<YOUR_CTFD_ADMIN_TOKEN>",
"CTFD_SESSION_COOKIE": "<YOUR_CTFD_SESSION_COOKIE>",
"CTFD_PASSWORD": "<YOUR_CTFD_PASSWORD>"
}
}
}
}{
"mcpServers": {
"ctfd-mcp-server": {
"command": "uvx",
"args": [
"ctfd-mcp-server@1.0.4"
],
"env": {
"CTFD_BASE_URL": "<YOUR_CTFD_BASE_URL>",
"CTFD_ADMIN_TOKEN": "<YOUR_CTFD_ADMIN_TOKEN>",
"CTFD_SESSION_COOKIE": "<YOUR_CTFD_SESSION_COOKIE>",
"CTFD_PASSWORD": "<YOUR_CTFD_PASSWORD>"
}
}
}
}Format verified against the official Cursor docs ↗.
.vscode/mcp.json
{
"servers": {
"ctfd-mcp-server": {
"command": "uvx",
"args": [
"ctfd-mcp-server"
],
"env": {
"CTFD_BASE_URL": "<YOUR_CTFD_BASE_URL>",
"CTFD_ADMIN_TOKEN": "<YOUR_CTFD_ADMIN_TOKEN>",
"CTFD_SESSION_COOKIE": "<YOUR_CTFD_SESSION_COOKIE>",
"CTFD_PASSWORD": "<YOUR_CTFD_PASSWORD>"
}
}
}
}{
"servers": {
"ctfd-mcp-server": {
"command": "uvx",
"args": [
"ctfd-mcp-server@1.0.4"
],
"env": {
"CTFD_BASE_URL": "<YOUR_CTFD_BASE_URL>",
"CTFD_ADMIN_TOKEN": "<YOUR_CTFD_ADMIN_TOKEN>",
"CTFD_SESSION_COOKIE": "<YOUR_CTFD_SESSION_COOKIE>",
"CTFD_PASSWORD": "<YOUR_CTFD_PASSWORD>"
}
}
}
}Format verified against the official VS Code docs ↗.
mcp_config.json
{
"mcpServers": {
"ctfd-mcp-server": {
"command": "uvx",
"args": [
"ctfd-mcp-server"
],
"env": {
"CTFD_BASE_URL": "<YOUR_CTFD_BASE_URL>",
"CTFD_ADMIN_TOKEN": "<YOUR_CTFD_ADMIN_TOKEN>",
"CTFD_SESSION_COOKIE": "<YOUR_CTFD_SESSION_COOKIE>",
"CTFD_PASSWORD": "<YOUR_CTFD_PASSWORD>"
}
}
}
}{
"mcpServers": {
"ctfd-mcp-server": {
"command": "uvx",
"args": [
"ctfd-mcp-server@1.0.4"
],
"env": {
"CTFD_BASE_URL": "<YOUR_CTFD_BASE_URL>",
"CTFD_ADMIN_TOKEN": "<YOUR_CTFD_ADMIN_TOKEN>",
"CTFD_SESSION_COOKIE": "<YOUR_CTFD_SESSION_COOKIE>",
"CTFD_PASSWORD": "<YOUR_CTFD_PASSWORD>"
}
}
}
}Format verified against the official Windsurf docs ↗.
Defined in the server's official registry manifest. Required secrets are shown as <YOUR_…> placeholders in the configs above.
CTFD_BASE_URL required — Root URL of the CTFd v3 instance, e.g. https://ctf.example.com (without /api/v1)CTFD_ADMIN_TOKEN secret — CTFd API access token (preferred authentication method)CTFD_SESSION_COOKIE secret — Full CTFd session cookie, e.g. session=abc...CTFD_USERNAME — Username for CTFd form loginCTFD_PASSWORD secret — Password for CTFd form loginCTFD_HTTP_TIMEOUT — Per-request HTTP timeout in seconds (default 15)⭐ 7 stars · 最近更新于 52 天前 · MIT license
Distributed as Python, listed under Developer Tools. Review our MCP security guide before granting access to real data.
Run the install command shown above, then paste the config for your client (Claude Desktop, Claude Code, Cursor, VS Code or Windsurf) into its MCP settings and restart the client.
The MCP server itself is free to install. The source is public on https://github.com/MrJamescot/ctfd-mcp-server. Any third-party service it calls may require its own API key and account.
Any MCP-compatible client can use it, including Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and custom agents.
Publish this server? Link back with a badge on your README or site — copy either snippet.
Markdown
[](https://mcpnav.net/server/ctfd-mcp-server/)
HTML
<a href="https://mcpnav.net/server/ctfd-mcp-server/"><img src="https://mcpnav.net/badge/ctfd-mcp-server.svg" alt="Listed on MCPNav" height="20"></a>