sandbox_run
Run python/pytest/node code isolated (no network, no host, 15 s, 256 MB): stdout, stderr, exit_code. For cube tests and snippets. 10 runs/min.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| files | No | ||
| language | No | python |
Run python/pytest/node code isolated (no network, no host, 15 s, 256 MB): stdout, stderr, exit_code. For cube tests and snippets. 10 runs/min.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| files | No | ||
| language | No | python |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses the isolation model (no network, no host), execution limits (15 s, 256 MB), and rate limit (10 runs/min), all of which an agent needs before invoking. It omits what happens on timeout/limit breach and whether the sandbox state persists across calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense line with everything front-loaded: action, constraints, return fields, purpose, rate limit. No sentence is wasted and the most decision-relevant facts come first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description names the return fields (stdout, stderr, exit_code), and no annotations exist, yet it covers isolation and limits. The one real hole is the undocumented `files` parameter, which is not offset anywhere else.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implicitly enumerates the valid `language` values (python/pytest/node) and `code` is self-evident, but the `files` parameter is never mentioned at all — an agent cannot tell whether it writes files into the sandbox, mounts them, or returns them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: run python/pytest/node code in an isolated sandbox, with the isolation constraints spelled out inline. It is unmistakable against all siblings (cube/board/memory tools), though it never explicitly names an alternative it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"For cube tests and snippets" implies the intended context, but there is no explicit when-not guidance, no statement about what to do if the code needs network access, and no alternative tool suggested when the sandbox is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.