MCP server for controlling a Haiku OS VM via a daemon that listens for commands and executes them on Haiku
Haiku Control MCP has basic tool definitions with names and descriptions, but significant quality gaps. All 7 tools have descriptions (10-80 chars, mostly short), and input schemas are present with parameter types. However, descriptions are sparse and lack LLM-optimization guidance. Parameter descriptions are minimal or absent. No output schemas documented. No error handling guidance. No tool annotations (readOnlyHint/destructiveHint). The server targets a niche OS (Haiku) with shell command execution and file I/O, high-risk operations that need stronger validation and error recovery patterns.
Get the status of a background job including stdout, stderr, and completion state
Get system information about the Haiku OS machine
List the contents of a directory on Haiku
Read the contents of a file on Haiku
Run a shell command on Haiku and return stdout, stderr, and exit code
Run a shell command on Haiku in the background and return a job ID for tracking
Write contents to a file on Haiku, creating or overwriting as needed
Descriptions are too short (10-80 chars) and lack LLM-optimization guidance. Baseline for A+ tools is 194 chars avg. No descriptions explain WHEN to use each tool vs. alternatives, WHAT it returns, or prerequisites.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., run_command returns stdout/stderr/exit_code but this is not formally specified.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). run_command and write_file are destructive/write operations but lack annotations to signal this to agents.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No error handling guidance. Shell commands can fail in many ways (timeout, permission denied, command not found). No recovery patterns or actionable error messages documented.
Parameter descriptions are minimal or missing. E.g., 'timeout_seconds' has a description, but 'command' and 'path' lack detail on format, constraints, or validation rules. Baseline: 100% of A+ tools have param descriptions.