Skip to main content
Glama

start_run

Run Python code in a locked-down throwaway container with no network or host access; returns a run_id for polling output.

Instructions

Run Python code in a locked-down, throwaway container.

The container has no network access, no access to any host directory, and does not run as root. It is deleted when the run ends.

Returns a run_id immediately; the code is still running. Poll get_result with that id to collect the output.

code: the program to execute, placed at main.py in the workspace. files: optional extra input files, as relative paths and contents. limits: optional memory_mb, timeout_seconds and cpus. Defaults are {default_mem} MB and {default_timeout} seconds; the ceilings are {max_mem} MB and {max_timeout} seconds. Asking for more than a ceiling is rejected rather than silently reduced.

Input Schema

NameRequiredDescriptionDefault
codeYes
filesNo
limitsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: no network, no host directory access, non-root, container deleted at run end, and ceilings are rejected rather than silently clamped. The weakness is the unfilled template placeholders ("{default_mem} MB", "{default_timeout} seconds", "{max_mem}"), which void the most decision-relevant numbers an agent needs before choosing limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the sandbox contract, then the async return, then per-parameter notes in a clean parallel structure. Each sentence adds information; the only waste is the placeholder tokens, which occupy space without conveying the values they were meant to carry.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async 3-parameter job-submission tool with no output schema, the description covers isolation, lifetime, resource caps and the polling handoff. It does not say how long results remain retrievable or whether stdout/stderr and exit status are surfaced, which matters given no output schema documents the return shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it largely does: code is placed at main.py, files are relative paths plus contents, and limits enumerates memory_mb, timeout_seconds and cpus with the over-ceiling rejection rule that the schema does not express. The unresolved placeholder values for defaults and ceilings leave the limits semantics partially undetermined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Run Python code") and immediately bounds the environment (locked-down, throwaway container). It also distinguishes its own async semantics from the sibling get_result by explaining the run_id/poll handoff, so an agent can tell it apart from get_result and stop_run without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context for use: submit code, receive a run_id, then poll get_result to collect output. It does not, however, name stop_run as the alternative when a run must be cancelled, nor state any when-not conditions, so the routing is complete only for the happy path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools