Haru VPS MCP provides 13 tools with consistent naming (verb_noun pattern) and reasonable descriptions. All tools have input schemas with typed parameters. However, parameter descriptions are minimal (often single phrases), output schemas are undocumented, and error handling lacks recovery guidance. Tool descriptions average ~80 chars (below the 194-char baseline for A+ tools). The server handles workspace and shell operations well but lacks the depth of documentation and error classification expected for production-grade agent tools.
Return a static gateway health snapshot. Takes no arguments.
Run shell work as a managed job. wait_ms controls only synchronous waiting; if work is still running, a job ID is returned instead of killing it. timeout_ms is a compatibility alias for wait_ms.
Inspect a managed shell job. Status reads refresh the observation lease for running jobs.
Explicitly stop a managed shell job and its owned process group.
Probe the configured filesystem, shell, and file-transfer backends so a live proxy with a dead named backend is reported unhealthy.
Edit a file in the workspace with a list of edits
Parameter descriptions are minimal (single phrases like 'Directory path relative to workspace root'). LLMs need richer context: expected format, constraints, examples of valid values, and when to use each parameter. Current descriptions average ~30 chars vs. 72-char baseline.
Output schemas are not documented. Tools return results but LLMs cannot see what fields to expect (e.g., does workspace_list_directory return file sizes, timestamps, permissions?). This forces agents to guess and wastes tokens on trial-and-error.
Error handling lacks recovery guidance. Tools return generic error messages without actionable next steps. E.g., 'file not found' should suggest 'Try workspace_list_directory() to see available files' or 'Check the path, it must be relative to workspace root.'
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Export one regular file from the Haru workspace to the MCP client. Pass a path relative to the workspace root.
Get metadata about a file in the workspace
Import one file attached to or generated in the current ChatGPT conversation into the Haru workspace. Pass a relative destination path whose parent directory already exists. The ChatGPT host supplies the file reference automatically; do not construct download URLs manually.
List contents of a workspace directory
Move or rename a file in the workspace
Read a text file from the workspace
Write content to a file in the workspace
workspace_edit_file has an underdescribed 'edits' parameter. It is an array of objects but the schema does not specify what fields each edit object must contain (e.g., line_number, old_text, new_text?). LLMs cannot construct valid edits without this detail.
Tool descriptions do not clarify idempotency or side effects. shell_execute is IRREVERSIBLE but the description does not warn agents about retry risks. workspace_write_file and workspace_edit_file are WRITE operations but lack explicit 'this modifies state' language.