CTFd MCP server
io.github.MrJamescot/ctfd-mcp-server·v1.0.4·7 starsMCP server for CTFd v3: list challenges, submit flags, and query scoreboards via AI agents.
7 stars68 downloads/wk
Reviews
Write oneNobody has reviewed CTFd yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
CTFd tools (14, 1 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
auth_statusReport whether the current session is authenticated and which auth mode is active.
challengeGet the full detail of a single challenge by numeric id or name.
challengesList challenges with optional filters and pagination.
download_fileDownload a challenge attachment to the local machine.
healthPerform a health check: CTFd reachability, API status and authentication state.
instance_infoReturn safe, public metadata about the configured CTFd instance.
loginLog in to CTFd with a username and password (kept in memory only).
progressReturn the authenticated user's progress (score and solved challenges).
scoreboardReturn the public CTFd scoreboard (top standings).
set_base_urlConfigure the CTFd instance this server talks to.
set_cookieUse a session cookie for authentication (memory only, never logged).
set_tokenUse an API token for authentication (stored in memory only, never logged).
submit_flagwrite actionSubmit a flag for a challenge.
unlock_hintUnlock a challenge hint and return its content.
Public scan report
scanner v0.1.10 · 2026-10-16 · same rubric, same numbers if you re-run it
- Code scan14 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 25 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How CTFd compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 65% of 48,243 servers
- Tools
- 14
- the typical server has 7
- Tools that change things
- 7%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 7
- more than 86% of 28,706 servers
- Downloads a week
- 68
- more than 52% of 12,306 servers with a package
What its tools let an agent do: 10 read · 4 change
Release history: 2 versions in the registry since 2026-09-20, latest 2026-09-21, typically one every 1 day.
Install CTFd in Claude Code, Cursor or VS Code
claude mcp add ctfd-mcp-server -- uvx ctfd-mcp-server
What the publisher says
From the CTFd repository's README, as published. We do not edit it. Read it on GitHub
CTFd MCP Server
<!-- mcp-name: io.github.MrJamescot/ctfd-mcp-server -->
A Model Context Protocol (MCP) server for interacting with any CTFd v3 instance. It lets AI tools (Claude Desktop, Cursor, custom agents, ...) authenticate, list and inspect challenges, submit flags, and query instance state through a stable, type-safe interface.
The project ships two interfaces built on the same client library:
debugging, and Docker deployments.
- MCP tools (primary) — ctfdmcpserver.py, used over stdio or sse.
- REST API (optional) — server/main.py, a FastAPI mirror for scripting,
┌──────────────────────────────────────────────┐
AI agent / MCP │ FastMCP (MCP tools) │
client ────────►│ set_token · login · challenges · submit_flag │
└──────────────────┬───────────────────────────┘
│ shared client
┌──────────────────▼───────────────────────────┐
curl / scripts ─►│ FastAPI REST (/api/v1/...) (optional) │
└──────────────────┬───────────────────────────┘
│
┌──────────────────▼───────────────────────────┐
│ server.ctfd_client.CTFdClient │
│ └─ gateway.py (HTTP, auth, timeouts) │
└──────────────────┬───────────────────────────┘
│ HTTPS / HTTP
┌─────▼─────┐
│ CTFd │
└───────────┘Credentials (token / cookie / password) live in memory only and are never echoed in tool output, written to server_state.json, or logged.
Features
form login (with CSRF handling).
- Multiple authentication modes — API token, session cookie, or username/password
and solved/unsolved filters, plus per-challenge detail retrieval.
- Rich challenge queries — paginated listing with category, search (name),
success/failure, and surfaces rate-limit errors. Flags are never logged.
- Safe flag submission — requires an explicit confirm=True, returns clear
authentication-status tool that reveal no secrets.
- Instance introspection — public instance info, health check, and an
ChallengeNotFoundError, SubmissionError, ValidationError, ConfigurationError.
- Consistent structured errors — AuthenticationError, CTFdAPIError,
full-dump downloads.
- Pagination by default — one page of challenges per call; no accidental
no retries for POSTs (no duplicate submissions), strict JSON/content parsing.
- Hardened HTTP — configurable timeouts, one safe retry for idempotent GETs,
and at runtime.
- REST + MCP from one codebase — identical behaviour on both interfaces.
- No hardcoded instance — BASE_URL is validated and configurable at startup
Installation
Requires Python 3.10+.
The fastest way is to install from PyPI:
pip install ctfd-mcp-server
# MCP stdio server with env config:
CTFD_BASE_URL=https://ctf.example.com CTFD_ADMIN_TOKEN=ctfd_... ctfd-mcp
# optional REST interface:
ctfd-restFor MCP clients, point your config at the packaged entry point:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
CTFd: common questions
- Is CTFd MCP server safe?
- Mostly: it is graded B (83/100). Read the CTFd safety report
- How do I install CTFd?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does CTFd need an API key?
- Yes. The registry entry asks for
CTFD_ADMIN_TOKEN,CTFD_SESSION_COOKIE,CTFD_PASSWORD. - Is CTFd maintained?
- The last commit was 46 days ago (2026-09-21). The latest release is v1.0.4.
- How does CTFd compare with other MCP servers?
- safety score 83/100 (higher than 65% of 48,243 servers); tools 14 (the typical server has 7); tools that change things 7% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.