Ludus FastMCP (tjnull/Ludus-FastMCP) is an MCP server listed on the M8ven Trust Index. It scores 54 out of 100, grade D. It declares 201 tools. No publisher has claimed this listing.

D
Caution
54/100

Ludus FastMCP

Enables AI-powered management of Ludus cyber range environments through natural language commands. Provides 157 tools for range lifecycle management, scenario deployment, template creation, Ansible role management, and SIEM integration for security testing and research.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

tjnull

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
⚠️
Tool descriptions don’t match what handlers do
1 tool describes read intent but its handler mutates — health_check (line 569: result = subprocess.run()
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
🔐
You'll be asked for 1 credential: LUDUS_SSH_PASSWORD
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes201 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

generate_config_from_description

Generate a complete Ludus range configuration from natural language description.

explain_range_design_decisions

Explain the design decisions and best practices for a range configuration request.

suggest_range_enhancements

Suggest enhancements to improve a range configuration.

create_deployment_pipeline

Create a deployment pipeline with multiple stages.

schedule_range_tasks

Schedule recurring tasks for the range.

auto_scaling

Configure auto-scaling for the range.

schedule_snapshots

Schedule automatic snapshots for VMs.

clone_range

Clone the current range to another user.

export_range_backup

Export range backup.

import_range_backup

Import and restore range from backup.

bulk_vm_operations

Perform bulk operations on multiple VMs.

delete_range

Delete the entire range.

abort_and_remove_range

Abort any active deployment and then remove the range. This is a convenience function that combines abort_range_deployment() and delete_range(). Equivalent to running: 1. `ludus range abort` 2. `ludus rm` (with confirmation) Args: confirm: Confirmation flag (must be True to proceed) user_id: Optiona

get_recovery_recommendation

Get recovery recommendations for failed deployments.

batch_snapshot_hosts

Create snapshots for multiple VMs in parallel.

batch_rollback_snapshots

Rollback multiple VMs to a snapshot in parallel.

batch_remove_snapshots

Remove snapshots from multiple VMs in parallel.

batch_power_on_hosts

Power on multiple VMs in parallel.

batch_power_off_hosts

Power off multiple VMs in parallel.

batch_get_vm_status

Get status of multiple VMs in parallel.

list_blueprints

List all available blueprints.

create_blueprint_from_range

Create a reusable blueprint from an existing range.

apply_blueprint_to_range

Apply a blueprint to a range.

copy_blueprint

Copy a blueprint.

delete_blueprint

Delete a blueprint.

get_blueprint_config

Get blueprint configuration.

update_blueprint_config

Update blueprint configuration.

share_blueprint_with_users

Share a blueprint with users.

unshare_blueprint_with_users

Unshare a blueprint from users.

share_blueprint_with_groups

Share a blueprint with groups.

unshare_blueprint_with_groups

Unshare a blueprint from groups.

list_blueprint_access_users

List users with access to a blueprint.

list_blueprint_access_groups

List groups with access to a blueprint.

share_range_config

Share range configuration with other users.

import_community_scenario

Import a scenario from the community repository.

publish_scenario

Publish a scenario to the community repository.

list_range_templates

List available range templates from the community.

get_range_template

Get a specific range template configuration.

get_resource_quotas

Get resource quotas and current usage.

optimize_resource_allocation

Optimize resource allocation for the range.

schedule_maintenance_window

Schedule a maintenance window for the range.

interactive_build_range

Interactively build a range using natural language prompts.

build_range_from_prompt

Build a range configuration from a natural language prompt.

list_ranges

List all ranges (admin only).

get_range

Get current user's range information.

get_range_config

Get range configuration.

update_range_config

Update range configuration.

deploy_range

Deploy a range from configuration with optional filters for resuming.

get_range_tags

Get available Ansible tags for the current range.

abort_range_deployment

Abort a range deployment.

snapshot_host

Create a snapshot of a host.

list_snapshots

List all snapshots for the range.

rollback_snapshot

Rollback to a snapshot.

remove_snapshot

Remove a snapshot.

power_on_range

Power on all VMs in the range.

power_off_range

Power off all VMs in the range.

list_templates

List available templates.

list_hosts

List all hosts in range.

list_networks

List all networks in a range.

start_testing

Start testing state for the range.

stop_testing

Stop testing state for the range.

health_check

Check health of Ludus MCP server and Ludus API connectivity.

create_custom_os_template

Create a custom OS template with specific packages and configuration.

create_kali_weekly_template

Create a Kali Linux weekly template with automatic latest ISO detection. Automatically fetches the latest Kali Linux weekly ISO and checksum from https://cdimage.kali.org/kali-weekly/. The ISO URL and checksum change weekly, so this tool always uses the most recent version. Args: name: Template name

get_common_iso_urls

Get common ISO download URLs for popular operating systems. Returns a reference of ISO download URLs for various operating systems that can be used with create_custom_os_template. Returns: Dictionary of OS names to ISO download information Example: # Get common ISO URLs isos = await get_common_iso_u

build_container_based_template

Build a custom container-based template for applications.

get_common_container_configs

Get pre-configured container definitions for common applications.

create_custom_range_from_scenario

Create a custom range configuration based on an existing scenario.

build_range_from_scratch

Build a completely custom range configuration from scratch.

export_range_config_to_yaml

Export a range configuration to a YAML file for download.

get_current_range_config_for_download

Get the current range configuration and prepare it for download.

clone_and_modify_scenario

Clone an existing scenario and modify it to create a new custom scenario.

build_range_from_description

Build a custom range configuration from a natural language description.

list_vm_skeletons

List all available VM skeleton templates.

get_vm_skeleton

Get a specific VM skeleton template configuration.

list_range_skeletons

List all available range skeleton templates.

get_range_skeleton

Get a complete range skeleton configuration.

list_yaml_examples

List all available YAML configuration examples.

get_yaml_example

Get a ready-to-use YAML configuration example.

build_range_from_skeleton

Build a complete range configuration starting from a skeleton.

list_scenarios

List all available scenarios.

deploy_scenario

Deploy a scenario with optional SIEM integration and customization.

get_scenario_config

Get scenario configuration.

get_scenario_yaml

Get scenario configuration as YAML.

preview_scenario

Preview a scenario before deployment with detailed information.

quick_status

Get one-line deployment status with emoji indicators.

get_deployment_status

Get current deployment status with detailed information.

get_range_logs

Get deployment logs for the range.

smart_deploy

Smart deployment with validation, optional snapshot, and auto-monitoring. RECOMMENDED: This is the preferred method for deploying scenarios as it includes validation, error checking, and monitoring guidance. NO FILE UPLOAD REQUIRED: This tool automatically generates the configuration from the scenar

monitor_deployment

Monitor deployment progress with periodic updates.

deployment_timeline

Get deployment timeline with progress tracking.

validate_config

Validate range configuration before deployment.

handle_adws_recovery

Handle Active Directory Web Services (ADWS) recovery for stuck deployments.

get_diagnostics

Get system diagnostics.

whoami

Test authentication and get user info.

get_license

Get license information.

migrate_sqlite_to_pocketbase

Migrate from SQLite to PocketBase.

get_sdn_migration_status

Get SDN migration status.

migrate_to_sdn

Migrate to SDN networking.

setup_sdn

Setup SDN infrastructure.

101 further tools are not listed here. The complete surface is in the source.

// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configLUDUS_SSH_HOST
configLUDUS_SSH_USER
configLUDUS_SSH_KEY_PATH
🔐 secretLUDUS_SSH_PASSWORD
configLUDUS_ALLOW_SSH_INSTALL
// quality suggestions

Tool annotations

No tools have read-only/destructive annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

201/201 tools missing one or more hints — generate_config_from_description (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); explain_range_design_decisions (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); suggest_range_enhancements (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +198 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Descriptions match behaviour

1 tool describes read intent but its handler mutates — health_check (line 569: result = subprocess.run()

Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.

Tool inputs are validated

174/201 tool handlers declare input schemas (87%)

Declare an inputSchema with zod/joi/yup on every tool definition.

Tool handlers catch errors

Only 29/201 tool handlers wrap calls in try/catch (14%)

Wrap each tool handler body in try/catch and return a structured error response.

Tests exist

No test files found

Add tests that exercise each declared tool.

Tool description accuracy

health_check: description implies read-only but handler writes/deletes/executes

Update tool descriptions to accurately reflect all capabilities — especially write, delete, or execute operations.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 7 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/tjnull/ludus-fastmcp?variant=verified)](https://m8ven.ai/mcp/tjnull/ludus-fastmcp)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 57e4207431164e0d1ac72fb5ea9b89ba28a42f1a
code hash: 8ff8d690badb1c965f1eacae8e973308b43887126e788518d619c7179c9b7b7e
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client