LabscoMCP early access ↗
CyberEDU-Cyber-RangeMCP SERVER · OFFICIAL PROJECT

CyberEdu MCP Server

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

by CyberEDU-Cyber-Range ↗Education, Tutoring & Study Tools✓ Official

LABSCO 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.

Setup effort

Build from source — git clone --recursive https://github.com/CyberEDU-Cyber-Range/cyberedu-mcp.git