Labsco
MCP SERVER

CyberEdu MCP Server

by CyberEDU-Cyber-Range

Work a CTF from the conversation: find a challenge, start its service, download the files, submit the flag.

Education, Tutoring & Study Tools
Summary
The cookie is set once and persists, which is why this is usable across sessions.

Storing credentials to a permission-restricted file means you authenticate once rather than re-pasting a cookie at every restart, and tenant selection persists with it. The setup detail that catches people: the client is a git submodule, so a clone without --recursive installs a server with nothing behind it, and the client config must point at the virtual environment's Python by full path.

What it is

The official server for the CyberEdu CTF platform. Tools are discovered from the platform client by introspection, so a method added upstream becomes a tool without a code change here, and every name is prefixed `cyberedu_` to avoid collisions.

What you get
  • Session handling: `cyberedu_set_session_cookie` stores your cookie to disk once, `cyberedu_get_session_status` reports what is stored, `cyberedu_switch_tenant` moves between organisations and `cyberedu_clear_session` wipes it
  • Challenges: `cyberedu_list_challenges` with filters, `cyberedu_get_challenge`, `cyberedu_get_challenge_difficulties`, `cyberedu_get_challenge_tags`, `cyberedu_subscribe_to_challenge`
  • Working a challenge: `cyberedu_start_service`, `cyberedu_get_service_status`, `cyberedu_extend_service`, `cyberedu_restart_service`, and `cyberedu_download_file` with an optional save path
  • Flags: `cyberedu_get_flag` and `cyberedu_submit_flag`
  • Contests get the same set again — `cyberedu_list_contests`, `cyberedu_get_contest_ranks`, `cyberedu_get_contest_challenge`, `cyberedu_start_contest_service`, `cyberedu_submit_contest_flag` and the rest
  • Identity: `cyberedu_check_auth`, `cyberedu_get_user_info`, `cyberedu_list_tenants`, `cyberedu_get_current_tenant_info`
Requirements

A CyberEdu session cookie — the `cyberedu_session` value copied from your browser's developer tools after signing in at https://app.cyber-edu.co. Set it once through the tool and it persists to `~/.cyberedu-mcp/session.json` with owner-only permissions; `CYBEREDU_SESSION_COOKIE` and `CYBEREDU_TENANT` work as an alternative. Clone with `--recursive` because the platform client is a submodule, create a virtual environment and `pip install -e ".[local]"`, then point your client at the venv's Python with `-m cyberedu_mcp` — MCP clients run outside your activated environment. The Python package is `cyberedu-mcp`, version 0.1.0.