MCP server for infrastructure discovery and remote management with web UI dashboard
Server has 7 tools with complete input schemas and descriptions, but quality is inconsistent. Tool names follow verb_noun convention (get_, execute_, add_) which is good. However, descriptions lack LLM-optimization guidance (e.g., 'when to use this vs similar tools', dependency hints). Parameters are typed but many lack detailed constraints or format guidance. Output schemas are not documented. Error handling is present but generic. Security concerns: execute_ssh and scp_file expose command/path parameters without clear injection safeguards or validation guidance. No tool annotations (readOnlyHint/destructiveHint). Average description length ~150 chars (within baseline 194), but lacks actionable context for LLM selection.
Register a new machine or LXC container in the database. Stores hostname, IP, OS, SSH username, and the path to its private key so the agent can connect to it later.
Register a microservice running on a machine. Associates the service with a machine by its numeric ID.
SSH into a machine and execute a shell command. Uses the machine's registered SSH key. Returns exit code, signal, and combined stdout+stderr output. Results are automatically logged to the database. Commands are validated against an allowlist (set ALLOWLIST_ENABLED=false in .env to disable).
Retrieve all managed servers and LXC containers with their full configuration details and any microservices running on them.
Retrieve a specific machine or LXC container by its numeric ID, including its full configuration and any microservices running on it.
Transfer files between the local host and a remote machine via SFTP. Direction "to" uploads a local file to the remote machine; direction "from" downloads a remote file to the local machine.
execute_ssh and scp_file lack injection safeguards and validation guidance. Descriptions do not warn about command/path injection risks or explain allowlist validation. LLMs may pass unsanitized user input directly.
No output schemas documented. LLMs cannot predict response structure for downstream tool chaining. E.g., get_all_machines returns 'full configuration details' but structure is opaque.
Descriptions lack LLM-optimization guidance. Missing 'when to use this vs similar tools' (e.g., get_all_machines vs get_machine_by_id), dependency hints, and prerequisites. Descriptions are factual but not prompt-engineered.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2026-07-28+ | v2 |
Tail the last N lines of a log file on a remote machine. Returns the file path, lines requested vs returned, and the log content.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes without explicit hints. execute_ssh, scp_file, add_machine, add_service should be marked destructive.
Parameter constraints under-specified. 'id' is numeric but no range (min/max). 'command' accepts arbitrary shell but allowlist validation is optional (.env flag). 'path_to_key' is a filesystem path but no validation guidance. LLMs may pass invalid values.