A local, kernel-isolated code-execution sandbox for AI agents, exposed as an MCP server.
Vestibule defines 2 tools with complete input schemas and detailed descriptions (194 - 250 chars each). Both tools have proper enum constraints, timeout bounds, and path validation. Naming is clear (run_code, read_workspace). However, output schemas are not documented, LLMs cannot predict return structure. Error handling is present but generic ('Internal error'). No tool annotations (readOnlyHint, destructiveHint). Security is strong (no secrets in params, path traversal prevention), but composition is minimal (only 2 tools, no batch variants). Descriptions are LLM-optimized and include prerequisites and constraints, meeting the 50 - 200 char baseline.
Read a file or list a directory inside the persistent workspace — the same directory that run_code mounts at /workspace. Paths are relative to the workspace root; '.' (the default) lists the root. Paths outside the workspace are refused, and symlinks are refused rather than followed. Note: while guest code is running it can modify the workspace concurrently with this tool.
Execute code in an isolated sandbox and return its output. The sandbox has NO network access. The directory /workspace is the persistent workspace: files written there survive the run, and code may create, modify, or delete files in it. Everything else is ephemeral and discarded after the run. It is resource-limited: code exceeding the memory/CPU/time limits is terminated. Use this to run and test code safely; do not expect internet access.
Output schemas not documented. LLMs cannot predict return structure (TextContent type, text field format, error vs success distinction). Agents must infer from trial.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). run_code is destructive (WRITE risk) but unmarked; read_workspace is read-only but unmarked. Agents cannot reason about side effects.
Error responses are generic ('Internal error', 'Blocked: <msg>'). No recovery guidance. E.g., if run_code times out, LLM does not know whether to retry, reduce timeout, or simplify code.
No pagination or result limits documented for read_workspace directory listing. Large directories could return thousands of entries, exhausting context window.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
run_code description does not clarify what 'output' means (stdout, stderr, return value, exception message). Agents cannot predict response format.