Ludus

Un servidor del Protocolo de Contexto de Modelo (MCP) para automatizar entornos de ciberrango Ludus v1 y v2 a través de asistentes de IA. Más de 190 herramientas para gestión de rangos, planos, grupos, plantillas, escenarios e integración con SIEM.

Documentación

Ludus FastMCP

Version Python Ludus License

Un servidor de Model Context Protocol (MCP) para automatizar entornos de cyber range de Ludus mediante asistentes de IA escritos en Python.

Descripción general

Ludus FastMCP permite la gestión impulsada por IA de cyber ranges de Ludus mediante comandos en lenguaje natural. El servidor expone 231 herramientas en 23 módulos para la gestión del ciclo de vida del range, despliegue de escenarios, creación de plantillas, gestión de roles de Ansible e integración con monitoreo de seguridad.

Requiere Ludus 2.0 o posterior. Esta versión está dirigida únicamente a la API de Ludus 2.x, que es la que hace disponibles blueprints, grupos, fuentes de contenido, acceso a consola de VM, cuotas y diagnósticos. Se eliminó el soporte para la API de Ludus 1.x; fija ludus-fastmcp a una versión 1.x si aún ejecutas un servidor Ludus 1.x.

El cliente cubre cada endpoint de la API de Ludus, validado contra un servidor Ludus 2.3.0 en vivo.

Capacidades clave

CategoríaDescripción
Gestión de RangesCrear, configurar, desplegar y gestionar entornos de laboratorio virtual
BlueprintsCrear, exportar, importar, compartir y aplicar configuraciones de range reutilizables
Fuentes de ContenidoAñadir catálogos git o archivo de plantillas, roles y laboratorios preconstruidos como GOAD
GruposOrganizar usuarios y ranges con control de acceso basado en grupos
Despliegue de EscenariosEscenarios preconstruidos para AD, equipos rojo/azul/morado y análisis de malware
Constructor de PlantillasPlantillas de SO personalizadas, configuraciones esqueleto y generación de YAML
Gestión de RolesIntegración con Ansible Galaxy, roles personalizados, roles de suscripción y control de alcance
Integración SIEMSoporte para Wazuh, Splunk, Elastic Stack y Security Onion
Configuración de IAConversión de lenguaje natural a configuración YAML
DiagnósticosSalud del sistema, información de licencia, historial de registros de despliegue y herramientas de migración
Cuotas y LímitesCuotas de recursos por usuario y por grupo, más apagado automático de ranges (plugin)

Plataformas compatibles

Funciona con cualquier cliente compatible con MCP, incluyendo Claude Desktop, VS Code (Cline), OpenWebUI y AnythingLLM.

Inicio rápido

Requisitos

  • Python 3.11+
  • FastMCP 3.x (se instala automáticamente)
  • Un servidor Ludus ejecutando 2.0 o posterior
  • Clave de API de Ludus, o un token JWT para despliegues Pro/SSO

Instalación

# Using pipx (recommended)
pipx install git+https://github.com/tjnull/Ludus-FastMCP

# From source
git clone https://github.com/tjnull/Ludus-FastMCP
cd Ludus-FastMCP
pip install -e .

Configuración

Ejecuta el asistente de configuración interactivo:

ludus-fastmcp --setup

El asistente configura las credenciales de API, prueba la conectividad y genera archivos de configuración del cliente MCP.

Para opciones de configuración manual, consulta la Guía de Configuración.

Uso

Servidor MCP (ludus-fastmcp)

ludus-fastmcp --setup          # Interactive setup wizard
ludus-fastmcp --list-tools     # List all 231 available tools
ludus-fastmcp --version        # Display version information
ludus-fastmcp                  # Start MCP server
ludus-fastmcp --daemon         # Run as background service

CLI de cliente (ludus-ai)

ludus-ai setup-llm                    # Configure local LLM (Ollama)
ludus-ai install anythingllm          # Install AnythingLLM interface
ludus-ai tool list-tools              # List available tools
ludus-ai tool call-tool <name>        # Execute tools directly

Ejemplos de interacción

Una vez conectado a un cliente MCP, interactúa con tu entorno Ludus:

Show my current range status
Deploy an Active Directory lab with Wazuh monitoring
Create a snapshot named "pre-attack" for all VMs
Build a lab with 2 domain controllers and 5 workstations
Create a blueprint from my current range and share it with the red-team group
Show system diagnostics and storage usage
List all groups and their members

Ejemplos de uso de Ludus-FastMCP con grok code a través de Opencode.

img

img

img

img

Documentación

DocumentoDescripción
Primeros PasosInstalación, configuración y primer despliegue
ConfiguraciónVariables de entorno y configuración del cliente MCP
Referencia de HerramientasDocumentación completa de las 231 herramientas
EscenariosEscenarios de despliegue preconstruidos
Solución de ProblemasProblemas comunes y soluciones
SeguridadFunciones de seguridad y mejores prácticas

Requisitos del servidor Ludus

Esta versión habla únicamente la API de Ludus 2.x. Cada solicitud va a /api/v2; no queda ninguna ruta de código v1 a la que recurrir.

En la primera llamada, el cliente solicita al servidor su versión y se niega a continuar si no responde como un servidor 2.x, de modo que un desajuste aparece una vez, al inicio, en lugar de como un 404 desconcertante de la herramienta que hayas ejecutado:

https://ludus.example:8080 does not serve the Ludus 2.x API
(GET /api/v2/ returned HTTP 404). This release requires Ludus 2.0 or later;
upgrade the server, or pin ludus-fastmcp to a 1.x release for a Ludus 1.x server.

Establece LUDUS_API_VERSION=v2 para afirmar la versión tú mismo y omitir esa comprobación (ahorra una solicitud por sesión). LUDUS_API_VERSION=v1 se rechaza al inicio en lugar de ignorarse silenciosamente.

¿Aún en Ludus 1.x?

Fija una versión anterior:

pipx install "git+https://github.com/tjnull/Ludus-FastMCP@v1.0.0"

Actualizar el servidor es el mejor camino: blueprints, fuentes de contenido, grupos, cuotas, historial de registros de despliegue y acceso a consola de VM no existen en absoluto en la API 1.x.

Funciones limitadas por plugins

Algunas capacidades de Ludus se distribuyen como plugins del servidor que pueden no estar cargados en una instalación determinada. Cuotas y apagado automático son los ejemplos comunes. Cuando un plugin está ausente, la API de Ludus responde con HTTP 404 incluso si la solicitud era correcta.

En lugar de informar eso como un endpoint faltante, esas herramientas devuelven un resultado claro para que un asistente de IA no vaya buscando un error inexistente:

{
  "available": false,
  "feature": "Quotas",
  "error": "Quotas is not available on this Ludus server.",
  "reason": "This capability is provided by a Ludus plugin that is not loaded on the server.",
  "hint": "The request was well-formed. Do not retry or try alternative endpoints."
}

Los endpoints que un servidor no implementa en absoluto (HTTP 501, como /range/sshconfig en algunas compilaciones) se informan de la misma manera, con una nota explícita de que reintentar no ayudará.

Recursos

RecursoEnlace
Documentación de Ludusdocs.ludus.cloud
Referencia de API de Ludusapi-docs.ludus.cloud
Ludus GitHubgithub.com/badsectorlabs/ludus
Framework FastMCPgofastmcp.com
Especificación MCPmodelcontextprotocol.io

Soporte

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Consulta LICENSE para más detalles.

Aviso legal

Este software está destinado a pruebas de seguridad autorizadas, fines educativos e investigación en entornos controlados. Los usuarios son responsables del cumplimiento de las leyes aplicables y las políticas organizacionales. Los autores no ofrecen garantías y no asumen responsabilidad por el uso o mal uso de este software.

Agradecimientos

  • Ludus por Bad Sector Labs
  • FastMCP, y la comunidad de Model Context Protocol.

Créditos

  • @LouDeter - Middleware de registro de solicitudes/respuestas MCP y soporte de archivos de registro (PR #8)