CTFd Server
FreeNot checkedA lightweight MCP server for interacting with CTFd instances, enabling AI tools to authenticate, retrieve challenges, and submit flags.
About
A lightweight MCP server for interacting with CTFd instances, enabling AI tools to authenticate, retrieve challenges, and submit flags.
README
A lightweight and extensible Model Context Protocol (MCP) server for interacting with any CTFd instance. This project enables AI tools and automation to authenticate, retrieve challenges, and submit flags through a stable API layer.
Overview
This project acts as a bridge between CTFd and AI-driven systems by providing a unified interface. It supports multiple authentication modes, dynamic base URL control, and FastAPI endpoints for debugging and integration.
The server is validated using the official demo instance at https://demo.ctfd.io.
Features
- Dynamic BASE_URL configuration
- Token and cookie authentication
- Username/password login
- List challenges with optional filtering
- Submit flags programmatically
- Compatible with MCP-based AI tools
- Clean and extensible Python codebase
Installation
Install the MCP server using Python:
git clone https://github.com/YourUser/ctfd-mcp-server.git
cd ctfd-mcp-server
pip install -r requirements.txt
Create your environment configuration:
cp .env.example .env
Edit .env as needed:
BASE_URL=https://demo.ctfd.id
CTFD_TOKEN=
CTFD_COOKIE=
Running the MCP Server
Start the server with Python:
python mcp_server.py
The default FastAPI server runs at:
http://127.0.0.1:8000
Example MCP Configuration
If you are using a client such as Claude Desktop or a compatible MCP host, configure it as follows:
{
"mcpServers": {
"ctfd-mcp": {
"command": "python",
"args": ["mcp_server.py"],
"env": {
"BASE_URL": "https://demo.ctfd.io"
}
}
}
}
Usage/Examples
Set Token
{
"method": "set_token",
"params": { "token": "your_token_here" }
}
Get Challanges
{
"method": "challenges",
"params": {}
}
Sumbit Flag
{
"method": "submit_flag",
"params": {
"challenge_id": 3,
"flag": "flag{example_payload}"
}
}
API Endpoints (FastAPI)
| Method | Path | Description |
|---|---|---|
| POST | /set_token | Set authentication token |
| POST | /set_cookie | Set session cookie |
| POST | /login | Login with credentials |
| GET | /api/v1/challenges | Retrieve challenges |
| POST | /api/v1/flags | Submit a flag |
Support
For support, email [email protected] or open an issue through the GitHub repository. Community contributions and improvements are always welcome.
License
Installing CTFd Server
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/MrJamescot/ctfd-mcp-serverFAQ
Is CTFd Server MCP free?
Yes, CTFd Server MCP is free — one-click install via Unyly at no cost.
Does CTFd Server need an API key?
No, CTFd Server runs without API keys or environment variables.
Is CTFd Server hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install CTFd Server in Claude Desktop, Claude Code or Cursor?
Open CTFd Server on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare CTFd Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
