Labsco
MCP SERVER

Ludus

by tjnull

Deploy a Ludus cyber range, snapshot it before a detonation, roll it back after, and read the packer build log that failed — without leaving the session.

Cloud Resources & Infrastructure as CodeVerified
Summary
The round trips between the Ludus CLI, the Proxmox console and a packer log you have to go find.

The failures that usually cost an afternoon have their own tools rather than a workaround: handle_adws_recovery for the Active Directory stall, get_vm_console_ticket for a VM that never got a working NIC, list_range_log_history for the log a newer deployment already overwrote. The surface is the trade — 231 tools is more than most clients will hold in context at once, and several of them (delete_range, regenerate_user_apikey, cleanup_old_ranges) do their damage on the first call.

What it is

A full-surface client for a Ludus server: 231 tools covering range deployment, VM snapshots, packer template builds, Ansible roles, scenarios and blueprints, SIEM readouts, and the user, group and quota administration behind them.

What you get
  • The range lifecycle end to end: validate a config, deploy it, watch the deployment, abort it, and delete the range or the range object
  • Snapshots one VM at a time or across a list in parallel, with rollback and scheduled snapshot retention
  • Testing mode, which cuts a VM's internet access so a detonation stays contained, plus per-domain and per-IP holes you open and re-close
  • Packer template builds on the Ludus server — including a Kali template that resolves the current weekly ISO and checksum — with build status and archived build logs
  • Scenarios and blueprints you can preview, clone, customise, share with users or groups, export as a .tar.gz and import elsewhere
  • SIEM alerts, agents and detection summaries for the deployed range, and Wazuh information alongside them
  • Server administration: per-user and per-group quotas, an idle auto-shutdown timeout, range access grants, and the archived deployment logs of earlier runs
Requirements

A reachable Ludus server and LUDUS_API_KEY. LUDUS_JWT_TOKEN and UV_PYTHON are the other two environment variables it reads, and uvx on your PATH.

Setup effort

One command plus a key — pipx install git+https://github.com/tjnull/Ludus-FastMCP, then supply credentials