MCP server that provides sandbox management and command execution capabilities through Docker containers, with port forwarding and network utilities
NanoBox-MCP has critical definition gaps. All 5 tools have basic descriptions (10-80 chars) and explicit JSON schemas with required fields, but lack parameter descriptions for most inputs. create_sandbox has empty properties; exec_command, check_port, and open_ephemeral_port lack descriptions for sandboxId, command, port, and other parameters. No output schemas documented. Error handling returns raw HTTP responses without recovery guidance. Tool names are clear (verb_noun pattern), but parameter naming is inconsistent (sandboxId vs hostport vs sandboxport). No tool annotations (destructiveHint, readOnlyHint) despite clear risk levels (DESTRUCTIVE for delete_sandbox, WRITE for others). Descriptions are too brief to guide LLM selection, e.g., 'Runs a command inside a sandbox' doesn't explain timeout behavior, output format, or when to use it vs other tools.
Checks whether a host port is available
Creates a new sandbox (isolated Docker container) and returns its sandboxId
Deletes an existing sandbox by its sandboxId
Runs a command inside a sandbox and returns stdout, stderr and exit code
Opens an ephemeral host port that forwards traffic to a sandbox port
Missing parameter descriptions for critical inputs. sandboxId, command, port, hostport, sandboxport, and duration lack descriptions explaining their format, constraints, or valid ranges. LLMs cannot infer parameter meaning from names alone.
No output schemas documented. Tools return raw JSON responses (e.g., resp.json() as TextContent) without specifying field names, types, or structure. LLMs cannot plan downstream calls or extract required data.
Tool annotations missing. delete_sandbox is DESTRUCTIVE and exec_command is WRITE, but no destructiveHint or readOnlyHint annotations present. Agents cannot distinguish safe reads from irreversible operations.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | <=2025-11-25 | v2 |
Error handling returns raw HTTP status codes and response text without recovery guidance. 'Error 404: Not found' tells the LLM nothing; should be 'Sandbox not found. Check sandboxId or call create_sandbox() first.'
Inconsistent parameter naming. 'sandboxId' (camelCase) vs 'hostport' and 'sandboxport' (lowercase). Also, 'timeout' default is 30 in schema but code uses 60.0, mismatch invites confusion.