Cross-platform FastMCP server for authenticated remote Linux/macOS host administration
Server exposes 5 tools with basic schemas and descriptions. All tools have input schemas with type definitions and descriptions present. However, descriptions are minimal (10-50 chars) and lack LLM-optimized guidance on WHEN to use each tool or what happens next. Parameter descriptions are present but terse. No output schemas documented. Error handling is minimal, tools return raw exceptions rather than actionable recovery guidance. Security-critical tool (run_command) lacks confirmation/dry-run pattern despite IRREVERSIBLE risk classification. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels.
List a directory located inside the configured workspace.
Read a text file located inside the configured workspace.
Run an arbitrary shell command with WORKSPACE_ROOT as its working directory. Warning: the working directory is not an OS sandbox. Absolute paths, shell redirection and invoked programs may access anything permitted to the server's OS user.
Return disk, memory and top-process information for Linux or macOS.
Write UTF-8 text inside the configured workspace.
run_command lacks confirmation/dry-run pattern despite IRREVERSIBLE risk. No tool annotation (destructiveHint) to signal danger to LLM. Agents can execute arbitrary shell commands without safeguards.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data. E.g., system_metrics returns unspecified fields; read_file output format unclear.
Descriptions are 10-50 chars, below the 50-200 char LLM-optimized baseline. E.g., 'Return disk, memory and top-process information for Linux or macOS' (63 chars) lacks WHEN to call it or what fields are returned. Minimal descriptions force LLMs to guess intent.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | <=2025-11-25 | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. run_command is IRREVERSIBLE, read_file/list_dir are READ_ONLY, write_file is WRITE. LLM cannot infer safety properties.
Error handling returns raw exceptions. No recovery guidance. E.g., PermissionError on path traversal attempt gives no hint to try a different path or call list_dir first. Agents cannot self-correct.