CTFd — MCP-сервер для Claude Code: функции и установка
Подключает AI-агента к CTFd v3: он ищет задания, проверяет детали, отправляет флаги и показывает состояние инстанса.
claude mcp add --env CTFD_BASE_URL=<CTFD_BASE_URL> --env CTFD_ADMIN_TOKEN=<CTFD_ADMIN_TOKEN> --env CTFD_SESSION_COOKIE=<CTFD_SESSION_COOKIE> --env CTFD_USERNAME=<CTFD_USERNAME> --env CTFD_PASSWORD=<CTFD_PASSWORD> --transport stdio ctfd -- uvx ctfd-mcp-serverЧто делает CTFd
CTFd даёт агенту доступ к инстансу CTFd v3 через MCP. Он умеет получать список заданий с фильтрами по категории, поиску и решённости, открывать детали, проверять состояние инстанса и отправлять флаги. Для отправки требуется явное подтверждение confirm=True.
Сервер использует MCP-инструменты и общий клиент для запросов к CTFd. Доступны авторизация по API-токену, cookie сессии или логину и паролю; учётные данные хранятся только в памяти. Есть транспорт stdio, а также необязательный REST-интерфейс FastAPI.
Нужен Python 3.10+. Переменная CTFD_BASE_URL должна указывать на корень инстанса CTFd, без /api/v1, а токен или другие данные входа задаются через переменные окружения. Без Python 3.10+ сервер не запустится.
Какие задачи решает
- получить список заданий CTFd с фильтрами
- открыть детали конкретного задания
- отправить найденный флаг с подтверждением
- проверить состояние и доступность инстанса
- посмотреть таблицу результатов
Примеры запросов агенту
- Подключись к CTFd и покажи нерешённые задания в категории
web. - Открой детали задания с именем
SQL Injectionи объясни, какие данные доступны агенту. - Проверь флаг и отправь его в CTFd только после явного подтверждения
confirm=True.
Как установить CTFd
Командой платформы
claude mcp add --env CTFD_BASE_URL=<CTFD_BASE_URL> --env CTFD_ADMIN_TOKEN=<CTFD_ADMIN_TOKEN> --env CTFD_SESSION_COOKIE=<CTFD_SESSION_COOKIE> --env CTFD_USERNAME=<CTFD_USERNAME> --env CTFD_PASSWORD=<CTFD_PASSWORD> --transport stdio ctfd -- uvx ctfd-mcp-serverВместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from ctfd-mcp-server <команда>
Командой платформы
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_USERNAME=<CTFD_USERNAME> --env CTFD_PASSWORD=<CTFD_PASSWORD> -- uvx ctfd-mcp-serverВместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from ctfd-mcp-server <команда>
Файл настроек
{
"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_USERNAME": "<CTFD_USERNAME>",
"CTFD_PASSWORD": "<CTFD_PASSWORD>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from ctfd-mcp-server <команда>
Файл настроек
{
"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_USERNAME": "<CTFD_USERNAME>",
"CTFD_PASSWORD": "<CTFD_PASSWORD>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from ctfd-mcp-server <команда>
Командой платформы
gemini mcp add -e CTFD_BASE_URL=<CTFD_BASE_URL> -e CTFD_ADMIN_TOKEN=<CTFD_ADMIN_TOKEN> -e CTFD_SESSION_COOKIE=<CTFD_SESSION_COOKIE> -e CTFD_USERNAME=<CTFD_USERNAME> -e CTFD_PASSWORD=<CTFD_PASSWORD> ctfd uvx ctfd-mcp-serverВместо <…> подставьте свои значения. Ещё 1 переменная окружения — в README сервера. uvx запускает команду с именем пакета; если в README она другая — uvx --from ctfd-mcp-server <команда>
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о CTFd
Как установить CTFd в Claude Code?
Выполните `claude mcp add ctfd-mcp-server -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`. Переменные окружения передают адрес инстанса и данные авторизации.
Что делает CTFd?
MCP-сервер подключает AI-агента к CTFd v3: позволяет просматривать задания, получать их детали, отправлять флаги и запрашивать состояние инстанса.
Какие способы авторизации поддерживает CTFd?
Доступны API-токен, cookie сессии и вход по имени пользователя и паролю с обработкой CSRF.