Skip to main content
Glama

Colab MCP

Give Codex, Grok, Claude, and other MCP clients access to general-purpose Google Colab CPU/GPU runtimes from Windows, macOS, or Linux. The server uses standard MCP over stdio and does not require WSL, SSH, an open Colab browser tab, or Colab Enterprise.

Quick setup for Codex

Prerequisites: Git and uv.

macOS or Linux

git clone https://github.com/anluin/colab-mcp.git
cd colab-mcp
sh scripts/install.sh

Windows PowerShell

git clone https://github.com/anluin/colab-mcp.git
cd colab-mcp
.\scripts\install.ps1

The installer runs colab-mcp setup codex: it creates an isolated environment from the lockfile, completes the one-time Google OAuth flow, and registers the stdio server through Codex's supported codex mcp add command.

Restart Codex after setup, open /mcp, and call colab_health. The ChatGPT desktop app, Codex CLI, and IDE extension share MCP configuration on the same Codex host.

Then give the agent this exact smoke task:

Use Google Colab to start a T4 session named gpu-probe, call colab_inspect, run nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv,noheader with colab_run_command, and call colab_stop in a cleanup step even if the probe fails.

Expected evidence is a non-empty gpu list, a zero command exit code, and a final stopped session.

Related MCP server: Colab MCP

Quick setup for Grok

Prerequisites: Git, uv, and the Grok CLI (grok on PATH).

git clone https://github.com/anluin/colab-mcp.git
cd colab-mcp
uv run colab-mcp setup grok

This authenticates with Google Colab once (if needed) and registers the stdio server through grok mcp add into ~/.grok/config.toml. Grok uses an isolated uv environment so it does not share the repository environment with a long-running Codex or other client session—important on Windows, where a locked console-script entry point can prevent a second uv run from starting.

Restart Grok after setup, open /mcps, and call colab_health (tools appear as colab__colab_health after namespacing). Confirm connectivity with grok mcp doctor colab.

The same CLI can configure multiple clients in one human-run step:

uv run colab-mcp setup codex grok claude-desktop

Or run the steps separately:

uv run colab-mcp auth
uv run colab-mcp install codex
uv run colab-mcp install grok
uv run colab-mcp install claude
uv run colab-mcp install claude-desktop
uv run colab-mcp doctor
uv run colab-mcp doctor --live

Claude Desktop and Grok are registered with an isolated uv environment, so they can update or restart while Codex continues using the repository environment for a long-running session. On Windows, Claude Desktop setup detects both the conventional %APPDATA% configuration and Microsoft Store's virtualized Claude configuration, preferring the active packaged configuration when present.

Only auth and setup may prompt for Google authorization. serve is strictly non-interactive: if credentials expire and cannot refresh, it instructs the human to rerun colab-mcp auth and never launches OAuth inside an agent session. doctor --live performs a read-only assignments API check and reports only the count, never endpoint URLs or tokens.

An existing registration is left untouched. Add --force to an install or setup command to replace it deliberately.

Other MCP clients

Use mcp.example.json as a template, or print ready-to-paste JSON with uv run colab-mcp install json. Run uv run colab-mcp auth once, then configure this server command:

uv --directory /absolute/path/to/colab-mcp run --locked colab-mcp serve

Capabilities

  • Create local Colab-ready notebooks.

  • Allocate CPU runtimes or T4, L4, G4, H100, and A100 GPUs, subject to account entitlement and availability.

  • Execute Python or complete notebooks and preserve Jupyter outputs.

  • Run arbitrary programs from argument arrays with a working directory, environment overrides, timeouts, exit codes, separate stdout/stderr, and bounded output.

  • Start long-running processes without blocking an MCP request; list, inspect, incrementally read, interrupt, terminate, or kill them in later requests.

  • Synchronize complete project and artifact folders within a runtime-owned /content boundary.

  • Inspect OS, Python, CPU, RAM, disk, GPU/VRAM, CUDA/driver, requested tools, and a bounded process snapshot without assuming any workload or framework.

  • Transfer files or directory trees in bounded chunks with SHA-256 verification, incremental sync skips, staged partials, atomic publication, cleanup, and explicit overwrite limits.

  • Upload datasets and download artifacts.

  • Pause by checkpointing a notebook and releasing its GPU.

  • Resume on a fresh runtime with the same accelerator preference and optionally rerun the notebook.

  • Keep active runtimes alive while the MCP server runs.

  • Release runtimes explicitly after experiments or errors.

Tools: colab_health, colab_create_notebook, colab_start, colab_sessions, colab_keepalive, colab_run_command, colab_process_start, colab_process_status, colab_process_list, colab_process_output, colab_process_signal, colab_process_export, colab_execute, colab_execute_notebook, colab_allocation_probe, colab_workspace_sync, colab_transfer_cleanup, colab_pause_notebook, colab_resume_notebook, colab_paused_notebooks, colab_reconcile, and colab_stop. Use colab_inspect after allocation to discover the actual runtime rather than assuming that a requested accelerator, executable, or CUDA version is present.

Idle keep-alive

Each tracked assignment gets the upstream CLI's authenticated Tunnel Frontend keep-alive every 60 seconds. The task continues across transient errors, persists its last success/error and consecutive failure count, and is restored from session state when the MCP server restarts. Use colab_keepalive(refresh=true) to send an immediate ping and inspect heartbeat health before an agent begins a long reasoning-only interval.

This refreshes Colab's idle timer; it does not execute synthetic workloads, bypass policy, extend a maximum VM lifetime, reserve an accelerator, or guarantee persistence. Google states that personal Colab idle timeouts and maximum lifetimes vary and runtimes may still be terminated. See the official Colab FAQ and the upstream CLI session-management design.

General command example

{
  "argv": ["python", "-c", "import platform; print(platform.platform())"],
  "session": "compute",
  "cwd": "/content",
  "timeout": 60
}

No shell parses argv. Remote working directories must remain under /content. Each stdout and stderr result is limited to 100 KB by default (1 MB maximum). For longer work, use colab_process_start, then poll status and consume output using the returned next_offset. Process records belong to one runtime and disappear when that ephemeral runtime is released. Each session records a random runtime-incarnation fingerprint both locally and under /content. Every process, filesystem, transfer, and introspection call verifies it before accessing remote state. If Colab recycles an endpoint onto a fresh backend, the call fails explicitly with runtime_replaced instead of reporting Unknown process_id or an apparently empty filesystem; stop the stale session record and start a new runtime. Managed-process metadata is also journaled locally. If its remote record vanishes, process tools return status="lost", the last known argv/cwd/PID/status, and a probable-cause diagnostic such as runtime recycling or OOM. After the first fingerprint mismatch, later file and process calls fail locally without reconnecting to the replacement backend.

colab_process_start can also persist export_on_exit rules. Each rule names one runtime path, one local destination, the matching exit_codes (null means every code; omitted means [0]), whether an existing destination file may be replaced, and bounded transfer limits. A rule may also set compression, compression_min_bytes, and compression_min_savings. A local background watcher polls the owned process independently of agent requests, atomically downloads matching artifacts as soon as the process exits, retries interrupted exports with backoff, and resumes from the process journal after MCP restart. Automatic export never releases the runtime. Inspect auto_export in process status/list results for watching, degraded, completed, or held and per-rule outcomes.

{
  "argv": ["python", "job.py"],
  "session": "compute",
  "export_on_exit": [
    {
      "remote_path": "/content/result.tar.gz",
      "local_path": "./artifacts/result.tar.gz",
      "exit_codes": [0],
      "overwrite": false,
      "compression": "auto"
    },
    {
      "remote_path": "/content/failure.log",
      "local_path": "./artifacts/failure.log",
      "exit_codes": null,
      "overwrite": true
    }
  ]
}

All public MCP input properties carry schema descriptions. Optional fields state their default, units, bounds, selection behavior, or destructive effect directly in tools/list; agents should treat that generated schema as authoritative rather than guessing from parameter names.

In-task worker reload

colab-mcp serve is a stable stdio supervisor. The public colab_connector tool reports the currently loaded worker fingerprint and can replace that worker without closing the MCP connection owned by Codex or Claude. After editing worker code, call action="status", copy available_source_fingerprint, then call action="reload" with it as expected_source_fingerprint. Reload waits for submitted MCP calls, starts a candidate from the fixed source root, completes MCP initialization, verifies the required lifecycle tools and colab_health, and only then switches traffic. Failure leaves the prior worker active.

Reload closes only the old worker's local kernel channels and heartbeat tasks. Persisted assignment, process, and export ownership remains available to the replacement, and remotely durable processes continue. Added or removed MCP tools trigger notifications/tools/list_changed; implementations of existing tools are available immediately. Changes to supervisor.py, dependencies/uv.lock, plugin skills, or the plugin manifest require the normal client/plugin refresh. The supervisor never watches partially written files. Its root is fixed at startup through the installed project or COLAB_MCP_HOT_RELOAD_ROOT. A plugin worker initially installed through uvx may explicitly bind an agent-supplied checkout with source_root; that path is accepted only when local Git identifies its origin as anluin/colab-mcp, and the binding occurs only after candidate validation succeeds.

colab_execute is operation-lease guarded and returns outputs, lease, and timings. Timings separate assignment lookup, kernel connection, kernel preflight, local output processing, retries, and total duration. The upstream kernel client combines request submission, remote execution, and output retrieval into one synchronous interval, which is reported honestly as a combined phase. The remote fingerprint/lease guard duration is measured inside the same request. Kernel channels are cached per runtime and reused across tool calls; timing attempts expose kernel_connection_reused. A harmless preflight validates a cached channel before caller code is sent. Confirmed pre-submission connection failures reconnect and retry once without consuming the operation lease, including for process start. Unknown post-submission outcomes are never retried. Every command is runtime-owned and receives a process_id. The timeout is only how long the MCP call waits: if it expires, process_continues=true and the command remains alive for later status/output/signal calls. Termination is always explicit. Python/Jupyter output is bounded to 100 KB by default (1 MB maximum) and ends with an explicit truncation marker. Detached processes retain at most 10 MB per output stream by default (configurable up to 1 GB with output_limit). They continue draining excess output so the child cannot deadlock; output reads return truncated=true when retained output was capped. While a process is running, stored_bytes and total_bytes reflect the durable spool currently available to readers; total_bytes_final=false marks that live lower bound. After exit, total_bytes is the complete byte count, including discarded bytes, and total_bytes_final=true. The handoff deadline is best-effort because each Colab kernel status/output round-trip has latency; it is not a hard real-time deadline.

colab_workspace_sync is the only public general file-transfer tool. It accepts purposeful local and remote directory roots with direction="push" or direction="pull". Agents should build a temporary staging directory containing only the run's required files—never naively select a whole repository, home directory, environment, cache, or mixed output tree. Push computes one remote manifest, packs only changed files into a deterministic bundle, transfers that bundle in bounded resumable chunks, verifies every declared path, size, and SHA-256 value before publication, and atomically replaces each changed file. A no-change push needs one remote round trip. Destination-only files are never deleted. Pull retains the bounded per-file recovery path. The underlying transfer engines remain private so agents cannot shuttle individual bytes or mutate arbitrary runtime files through MCP. Transfers use gzip when the measured bundle or file is at least 10% smaller. Set compression="gzip" to force gzip or compression="none" to send original bytes. Original and wire SHA-256 values are verified, and results distinguish logical total_bytes from wire_bytes. In auto mode, already-compressed image, audio, video, and archive formats bypass the expensive gzip trial pass. colab_workspace_sync is the single supported upload/download API; its direction selects push or pull while process export remains a lifecycle-specific operation. Explicit diagnostics can use an end-to-end encrypted WebRTC data channel after the guarded kernel connection installs a pinned, checksum-verified endpoint script in the owned runtime. ICE signaling remains inside the authenticated kernel channel; file bytes then travel directly between peers, or through an explicitly configured TURN relay. The endpoint revalidates the runtime incarnation and operation lease before and after transfer. SHA-256 verification, resumable staging, size/file-count bounds, and atomic publication are identical for every transport.

transport="auto" is the default reliable path. Uploads use native binary kernel-websocket buffers; bulk downloads use concurrent authenticated HTTP byte ranges, with per-range bounds and a final SHA-256 check before publication. It does not first attempt a topology-dependent transport or silently fall back. Use transport="webrtc" only to require and diagnose the peer path; transport="kernel" is an explicit alias for the authenticated path. Results report data_transport and per-file transport values.

The default ICE configuration uses public STUN for discovery only. Production TURN requires your own short-lived authenticated credentials; no open relay credentials are embedded. Configure a bounded JSON list in COLAB_MCP_WEBRTC_ICE_SERVERS, for example:

[
  {
    "urls": ["turns:turn.example.com:5349?transport=tcp"],
    "username": "temporary-user",
    "credential": "temporary-password"
  }
]

COLAB_MCP_WEBRTC_MIN_BYTES changes the auto threshold (default 4194304). COLAB_MCP_WEBRTC_LANES enables 1-16 parallel peer associations (default 1); extra lanes should be benchmarked because they can reduce throughput on small or CPU-constrained runtimes. TURN credentials cross only the authenticated kernel signaling channel, are handed to the endpoint in an owner-readable launch file that is removed on startup, and are never returned or logged.

Run the opt-in end-to-end acceptance outside MCP with a dedicated runtime:

uv run python scripts/live_p2p_acceptance.py --size-mib 32 --transport webrtc --lanes 1

The harness reports allocation, push, pull, hash verification, and release phases. It uses an isolated session/state root and releases the runtime in finally; after interruption, audit account assignments before deleting recovery state.

An optional positive include list selects relative POSIX-glob paths after mandatory exclusions for VCS data, environments, caches, and common secret-key files. Each sync computes the verified content-hash delta internally and transfers only changed files in a single call.

colab_allocation_probe returns an opaque, one-hour lease_token bound to the tracked endpoint and runtime fingerprint both locally and inside that runtime. Pass it to a transfer or process start to avoid a new probe. Critical remote requests validate the token and fingerprint in the same Python request before mutation, so the operation cannot follow a replacement runtime. Omitting the token performs a fresh probe. Assignment lookup is bounded to five seconds and reports assignment_no_longer_exists or assignment_lookup_timed_out separately. Probe observations do not wait for Colab's slow Tunnel Frontend heartbeat endpoint; the existing background keepalive continues independently and the result reports heartbeat="background".

Uploads emit MCP progress after every durable chunk with phase, bytes, total, chunk number, and elapsed time. A failed upload reports its transfer_id, deterministic staging_path, known staged offset, submission state, and whether same-incarnation resume is safe. Retry with the same transfer_id; the server verifies the staged prefix before continuing. Successful publication removes staging. Failed staging is retained for resume and can be explicitly removed with colab_transfer_cleanup.

After an owned process exits, colab_process_export downloads one file or directory into a hidden sibling staging path and publishes it locally with one filesystem rename. Any status, lease, transfer, checksum, publication, or release failure returns disposition="held" and leaves the runtime tracked. release_on_success=false is the safe default; setting it to true releases compute only after publication succeeds. Atomic overwrite of an existing directory is intentionally unsupported across platforms—export to a new destination instead.

The sibling stage is deterministic for the process, remote path, and local destination. A retry reuses it and checksum-skips files already completed, so multi-file exports resume at file granularity across MCP restarts. Failed results include a recoverable_export record and preserve the stage; successful publication removes it. colab_process_export_cleanup explicitly discards a stage that will not be resumed.

Crash recovery and orphan cleanup

Allocated endpoints are persisted before runtime preflight, so even a double failure during startup remains recoverable. colab_reconcile compares persisted sessions with the account's live Colab assignments. Its default is read-only: it reports stale local records and live orphan endpoints. Pass forget_stale=true to remove records whose runtime is already gone. Pass release_orphans=true only when you intend to release every live assignment not owned by this colab-mcp state directory. Failures are returned per endpoint for safe retry. colab_stop is idempotent when a tracked runtime has already disappeared.

  1. Check colab_health.

  2. Start with a T4 unless another accelerator is required.

  3. Build a temporary local source snapshot containing only required tracked source, configuration, and private inputs; fetch public datasets and model weights directly on Colab. Never sync the repository root, VCS metadata, caches, environments, or historical outputs.

  4. Sync the focused source snapshot in one call. Push to /content/workspaces/<task>/source and write results only under the sibling /content/workspaces/<task>/artifacts directory.

  5. Create or execute a notebook or durable process.

  6. Pull only the artifact folder with colab_workspace_sync.

  7. Pause to checkpoint and release compute, or stop when finished.

  8. Always stop a runtime after an error if it was not already released.

Pause and resume semantics

Colab does not expose a supported suspended-VM or runtime-snapshot operation. Pause records the local notebook checkpoint and accelerator preference, then releases the runtime. Resume allocates a new runtime and can rerun the notebook.

RAM variables, ad-hoc package installs, and files left only in /content do not survive. Put installation commands in the notebook and download checkpoints before pausing.

Agent workflows and self-repair

The Codex plugin includes focused skills for short/durable runtime operation, whole-folder sync, and connector repair. The repair workflow targets https://github.com/anluin/colab-mcp and uses GitHub CLI exclusively for GitHub network access. If gh is absent, the agent must stop and ask whether the user wants it installed; it must not silently substitute another downloader or API client.

Free, Pro, Pro+, and Pay As You Go personal accounts are supported. Actual GPU models, runtime length, and compute usage remain controlled by Google Colab.

Security

This MCP executes arbitrary Python and can consume the authenticated account's quota. Keep it as a local stdio server and connect only trusted clients. OAuth and runtime proxy tokens are never returned through MCP tools.

Session state defaults to ~/.config/colab-mcp. Override it with COLAB_MCP_STATE_DIR. Set COLAB_MCP_AUTH=adc only if you deliberately configured Google Application Default Credentials with the required Colab scopes.

Operational logs are single-line JSON on stderr so MCP stdout framing remains clean. Configure the threshold with COLAB_MCP_LOG_LEVEL. Graceful server shutdown cancels only local keep-alive tasks; it deliberately preserves owned assignments/processes for restart recovery. Use colab_stop or colab_reconcile for explicit quota release.

Development and validation

uv sync --locked --dev
uv run ruff format --check .
uv run ruff check .
uv run mypy src
uv run pytest -q
uv run --with bandit bandit -q -lll -r src scripts
uv run --with pip-audit pip-audit
uv build
uv run twine check dist/*

CI runs on Ubuntu, macOS, and Windows with Python 3.12. The live integration has also been verified against a real Tesla T4: allocation, CUDA execution, notebook execution, pause/release, fresh-runtime resume, rerun, and cleanup with zero assignments remaining.

The public workspace-sync probe exercises nested multi-file push, incremental changed/new/unchanged selection, multi-chunk binary transfer, destination-only preservation, mandatory VCS exclusion, pull-back SHA-256 verification, and runtime cleanup:

uv run python scripts/live_workspace_probe.py

The opt-in durability acceptance harness reproduces the large Windows/Codex workload with either accelerator. Defaults deliberately consume about five minutes of runtime and transfer two verified copies of twenty 1.9 MB checkpoint files, so run it only when that quota use is intended:

uv run python scripts/live_acceptance.py --accelerator T4
uv run python scripts/live_acceptance.py --accelerator L4

It performs a three-observation lease probe, guarded CUDA check, 63 KiB and incompressible 1.9 MB uploads with progress, durable process start, manager/server-lifespan restart, watcher recovery, automatic export, SHA-256 verification, and a second atomic export with release_on_success=true. Every phase is a named --fail-after injection boundary; cleanup in finally reacquires persisted ownership after the simulated server stop before releasing the assignment.

The Google Colab integration version is pinned to the live-tested release. This project imports its portable client components; it does not invoke the platform-limited CLI executable.

Further documentation: architecture, security model, error contract, troubleshooting, contributing, and release procedure. Version history and readiness evidence live in Git tags, commits, and GitHub release notes rather than duplicated version-specific repository files.

Upstream projects

Codex registration follows OpenAI's documented MCP flow: https://learn.chatgpt.com/docs/extend/mcp

Available Tools

35 tools
colab_allocation_probeC

Issue an operation lease. Pass it immediately; if expired/mismatched, probe again, never follow replacement.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNoTracked session name. Null is allowed only when exactly one session exists.
intervalNoSeconds between observations; defaults to 0.25.
observationsNoAssignment observations; 2-5, defaults to 2.

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It discloses that leases can expire or mismatch and that replacements should not be followed, which are behavioral traits, but it doesn't explain what the lease is for, what 'pass it' means, or what side effects/return values to expect. The guidance is too cryptic to be useful.

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?

The description is only two sentences and front-loads the core action ('Issue an operation lease'). Every word is purposeful, though the extreme brevity contributes to the overall lack of clarity.

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

Completeness2/5

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

The tool appears to involve a time-sensitive lease mechanism, but the description does not explain what 'pass it immediately' entails, what lease expiry/mismatch means, or what 'replacement' refers to. With no annotations and no output schema, the description is insufficient for an agent to invoke the tool correctly and interpret its result.

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

Parameters3/5

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

The input schema provides descriptions for all three parameters (session, interval, observations) with 100% coverage, so the description adds no parameter-specific meaning. With high schema coverage, the baseline of 3 is appropriate.

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

Purpose3/5

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

The description states 'Issue an operation lease,' which is a specific verb and resource, but the concept of an operation lease is left undefined and the connection to allocation is not made explicit. It does not distinguish itself from sibling tools, as 'operation lease' is never contextualized within the colab toolset.

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

Usage Guidelines3/5

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

The description gives conditional instructions ('if expired/mismatched, probe again, never follow replacement') that imply a usage pattern, but it does not explain when to use this tool versus alternatives or what qualifies as expired/mismatched. Usage is implied through the protocol rather than explicitly stated.

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

colab_compute_unitsA

Explain compute-unit visibility and return Google's official account-management URL.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It transparently discloses that the tool performs an explain-and-return-URL operation, implying read-only behavior with no side effects. It does not explicitly state 'no modifications are made,' but the phrasing strongly suggests an informational tool, which is sufficient for a zero-parameter utility.

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

Conciseness5/5

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

The description is a single concise sentence that covers both the explanation aspect and the return value. It is front-loaded with the primary purpose (explain) and the specific outcome (URL). Every word earns its place with no redundancy or filler.

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 a tool with no parameters, no output schema, and a simple informational purpose, the description is complete. It tells the agent what the tool does and what it returns. It could optionally mention that it requires no arguments, but the schema already makes this clear, so no significant gap exists.

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?

The tool has zero parameters, and the schema already reflects this with 100% coverage. According to the rubric, a baseline of 4 is appropriate when there are no parameters to describe. The description adds no parameter information because none exists.

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?

The description clearly states two specific actions: explain compute-unit visibility and return Google's official account-management URL. This is a specific verb+resource combination that distinguishes it from sibling tools, which are all focused on file operations, process management, or notebook execution rather than compute-unit information.

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

Usage Guidelines3/5

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

The description implies this tool should be used when a user needs information about compute-unit visibility or the account-management URL. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions. Usage context is mostly inferred from the tool name and description.

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

colab_create_notebookA

Create a new local Colab-ready .ipynb notebook without consuming GPU quota.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesNew local .ipynb path; existing files are never replaced.
code_cellsNoOptional ordered Python source cells; null creates none.

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the non-obvious fact that the operation doesn't consume GPU quota and is local, but it doesn't mention file-overwrite behavior, directory creation, or return values. Schema adds the 'never replaced' detail, but the description itself is thin.

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

Conciseness5/5

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

Single sentence, front-loaded with the verb and resource, no wasted words. It conveys the core purpose and a key side-effect efficiently.

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 a 2-parameter create tool, the description covers the core purpose and a key side-effect (no GPU quota). It doesn't specify return behavior or prerequisites, but the simplicity mitigates that; it's reasonably complete.

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

Parameters3/5

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

Schema covers 100% of parameters with descriptions. The tool description adds no parameter-specific detail; it relies on the schema. Therefore baseline score of 3 applies.

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?

The description uses a specific verb ('Create') and resource ('new local Colab-ready .ipynb notebook') and adds a distinguishing behavioral qualifier ('without consuming GPU quota'), clearly separating it from sibling tools like colab_upload or colab_execute_notebook.

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

Usage Guidelines3/5

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

The description implies usage (when you want a new local notebook) but provides no explicit guidance on alternatives or exclusions. Given the sibling list includes upload/download/execute, a sentence clarifying when to use this over other tools would improve clarity.

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

colab_downloadC

Compatibility alias for bounded, checksummed colab_transfer_download.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNoTracked session name. Null is allowed only when exactly one session exists.
local_pathYesPath on the MCP host, resolved under the host user's permissions.
remote_pathYesRuntime path confined to /content; relative paths resolve under /content.

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for disclosing behavior. It mentions 'bounded, checksummed' which hints at transfer limits and integrity checks, but does not elaborate on what these mean operationally, nor does it mention permissions, side effects, failure modes, or return behavior. This is minimal disclosure at best.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently communicates the tool's identity as an alias. It contains no redundant or filler content, and every word contributes to the message, making it highly concise and well-structured.

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

Completeness1/5

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

The tool has no annotations, no output schema, and a minimal description. The description fails to explain what the tool actually does, when to use it, its behavior, or any constraints. For a tool with only a name and a pointer to another tool, this is completely inadequate for an agent to understand its functionality and use it correctly.

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

Parameters3/5

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

The input schema provides 100% description coverage for all three parameters, so the baseline is 3. The description adds no additional parameter information beyond what the schema already includes, so it neither enhances nor detracts from the schema's clarity.

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

Purpose3/5

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

The description identifies the tool as a compatibility alias for colab_transfer_download, which suggests it performs the same function, but it never explicitly states that it downloads files. It's more than a tautology as it references a specific canonical tool and adds 'bounded, checksummed' characteristics, but the purpose remains vague without prior knowledge of colab_transfer_download.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus colab_transfer_download or other download-related tools. It only states it is a compatibility alias, leaving the agent to infer that it should be used as a drop-in replacement, but there is no explicit context, exclusions, or alternative recommendations.

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

colab_executeB

Execute guarded Python. Timeout may be ambiguous; use durable process_start for long work.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesPython source executed through the runtime kernel.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
timeoutNoMaximum wait in seconds; defaults to 900.
lease_tokenNoOpaque operation-bound lease from colab_allocation_probe. Null performs a fresh probe.
output_limitNoMaximum returned output bytes; defaults to 100,000.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It discloses that execution is 'guarded' and that the timeout may be ambiguous, but lacks details on side effects, permission requirements, return behavior, or failure modes. This is insufficient for a code execution tool.

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?

The description is a single concise sentence with information front-loaded: the primary purpose first, followed by a usage caveat. Every word serves a purpose, though it is quite terse for the complexity of the tool.

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

Completeness2/5

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

With 5 parameters, no annotations, and no output schema, the description needs to provide more operational context. It fails to explain session management, lease tokens, or expected output, making it incomplete for a tool of this complexity.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described. The description adds a caveat about timeout ambiguity, which provides extra context for the timeout parameter, but it does not elaborate on session, lease_token, or output_limit beyond what the schema already provides.

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

Purpose4/5

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

The description specifies 'Execute guarded Python', clearly identifying the tool as a code execution operation with a resource (Python). It is specific enough to understand the core function, though it does not differentiate from similar siblings like colab_run_command or colab_execute_notebook.

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?

The description explicitly recommends using durable process_start for long work, providing a clear exclusion criterion. It implies this tool is for shorter or interactive executions, but does not cover other alternative tools or specific conditions beyond timeout.

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

colab_execute_notebookB

Execute notebook cells. On failure keep the input/output checkpoint; reacquire and rerun deliberately.

ParametersJSON Schema
NameRequiredDescriptionDefault
outputYesLocal output .ipynb path to create or replace.
sourceYesExisting local .ipynb input path.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
cell_timeoutNoMaximum seconds per code cell.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It mentions a failure-handling behavior (keep checkpoint, rerun) but does not disclose other impacts such as file overwriting, session management, or resource/rate limitations.

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?

Two short sentences convey the core action and a failure-handling trait. However, the second sentence uses cryptic phrasing ('reacquire and rerun deliberately') that might confuse, though it remains concise.

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

Completeness2/5

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

The description is minimal for a tool with 4 parameters and no output schema. It does not explain the return value, the relationship between source and output paths, or session semantics beyond what the schema already provides. Missing context that an agent needs to use it correctly.

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

Parameters3/5

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

The schema descriptions cover 100% of parameters. The tool description adds no additional semantic detail about the parameters, so it meets the baseline expected for high schema coverage.

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?

The description clearly identifies the action (execute) and the resource (notebook cells), and the tool name 'notebook' distinguishes it from generic 'colab_execute' or 'colab_run_command'.

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

Usage Guidelines3/5

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

The description implies usage for executing notebook cells but provides no explicit guidance on when to prefer this over sibling tools like colab_execute, nor does it state exclusions or prerequisites such as session requirements.

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

colab_fs_listB

List runtime paths. On runtime_replaced/missing, reacquire; old /content is unrecoverable.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoRuntime directory under /content; defaults to /content./content
limitNoMaximum entries returned.
sessionNoTracked session name. Null is allowed only when exactly one session exists.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It adds the behavioral warning about runtime replacement and unrecoverable old /content, which is useful context. However, it does not disclose what the tool actually returns (e.g., file names, full paths, pagination) or any potential side effects beyond the implied read-only nature.

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

Conciseness5/5

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

The description is extremely concise: two short sentences with no fluff. The primary purpose is front-loaded in the first sentence, and the second adds a critical caveat. Every word earns its place.

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

Completeness3/5

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

For a simple list tool with fully documented parameters and no output schema, the description provides adequate purpose and a relevant runtime lifecycle warning. However, it lacks clarity about the return format and could more explicitly state that it lists files/directories under the given path. The caveat about reacquisition is contextually relevant but somewhat cryptic.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific information beyond what the schema already provides. It only references /content in the caveat, which is already the default value in the schema.

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

Purpose4/5

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

The description 'List runtime paths' clearly identifies the action (list) and the resource (runtime paths), and it distinguishes this tool from siblings like colab_fs_read, colab_fs_write, and colab_fs_stat. However, 'runtime paths' is slightly ambiguous and could be more explicit about listing directory contents.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It mentions a runtime_replaced/missing caveat, but this is more of a behavioral warning than usage guidance. No alternatives are referenced, and no conditions for use are stated.

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

colab_fs_mkdirB

Create a runtime directory. Use exist_ok for idempotent retry on ambiguous responses.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRuntime path confined to /content; relative paths resolve under /content.
parentsNoTrue creates missing ancestors; defaults to true.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
exist_okNoTrue accepts an existing directory; defaults to true.

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It does not mention that the tool may create missing ancestors (parents defaults true), that an existing directory is accepted by default (exist_ok true), or any error scenarios. It only hints at idempotency with exist_ok but fails to explain default behavior or side effects, making it inadequate for a mutation tool.

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

Conciseness5/5

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

The description is exceptionally concise with two sentences that are front-loaded with the core purpose and then a focused usage tip. Every word earns its place; no filler or redundancy.

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

Completeness2/5

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

Despite the schema covering all parameters, the tool is a mutation with no annotations and no output schema. The description does not provide a complete behavioral picture—missing the recursive creation behavior (parents), default tolerance for existing paths (exist_ok), and the /content confinement context. The hint about ambiguous responses suggests complexity that is not adequately addressed.

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 description coverage is 100%, so baseline is 3. The description adds value by connecting exist_ok to 'idempotent retry on ambiguous responses', giving a practical usage rationale that goes beyond the schema's simple 'True accepts an existing directory'. This is a meaningful semantic addition for a parameter.

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?

The description clearly states the action ('Create') and the resource ('a runtime directory'), which is specific and immediately distinguishes it from sibling FS operations like read, write, remove, and list. The verb-object form is unambiguous and accurately reflects the tool's function.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The mention of exist_ok for idempotent retry is a parameter-level hint, not a tool-selection guideline. No context is provided about preferred scenarios, prerequisites, or cases where a different sibling tool should be used.

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

colab_fs_moveA

Move a path. After response loss, stat source/destination before retrying.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesExisting source path under /content.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
overwriteNoWhen true, explicitly permit replacement of an existing destination.
destinationYesDestination path under /content.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It adds a valuable note about checking source/destination after response loss before retrying, implying non-idempotency and a need for verification. However, it doesn't mention other behavioral traits like permissions, atomicity, or whether the operation is destructive to the source (beyond what 'move' implies).

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

Conciseness5/5

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

The description is extremely concise: two short sentences. The first states the core action, and the second provides a targeted safety tip. No wasted words, front-loaded purpose.

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

Completeness3/5

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

For a simple move operation with fully described parameters, the description is minimally viable. It doesn't explain return values (no output schema exists), but the schema covers paths and overwrite behavior. The retry note adds helpful context, yet the description could be more complete by explicitly stating the effect (e.g., source is removed) or typical use cases.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters (source, destination, session, overwrite) with clear descriptions. The tool description adds nothing beyond the schema, so the baseline score of 3 applies.

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?

The description clearly states the action ('Move a path') with a specific verb and resource, distinguishing it from sibling filesystem tools like colab_fs_list, colab_fs_stat, and colab_fs_remove. No other tool in the list performs a move, so the purpose is unambiguous.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives (e.g., when to use move instead of read/write or transfer tools). The only usage-related note is about verifying state after response loss, which is a safety tip, not a comparison with alternatives.

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

colab_fs_readA

Read a chunk. Keep next_offset; after incarnation change restart from restored source.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRuntime path confined to /content; relative paths resolve under /content.
limitNoMaximum bytes returned as base64.
offsetNoByte offset; defaults to zero.
sessionNoTracked session name. Null is allowed only when exactly one session exists.

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description must disclose behavior, but it only mentions offset and incarnation handling. It does not explain return format (e.g., base64, next_offset), error behavior, or session concurrency rules, leaving significant behavioral gaps.

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

Conciseness5/5

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

The description is extremely concise at two sentences, with the purpose front-loaded and the usage guidance following. Every word contributes meaning, with no redundancy or filler.

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

Completeness3/5

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

Given the lack of annotations and output schema, the description leaves out important context like the base64 return encoding, the presence of next_offset in responses, and detailed session behavior. It is minimally complete with the schema filling in parameter details, but not fully self-sufficient.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already fully describes all parameters (path, limit, offset, session). The description adds no extra parameter semantics beyond implying a chunked read, which is adequate given the high schema coverage.

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

Purpose4/5

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

The description states 'Read a chunk,' which clearly indicates a read operation on a file resource, supported by the 'path' parameter. It differentiates from sibling tools like colab_fs_write and colab_fs_list by specifying a chunked read, though it does not explicitly name the resource as 'file'.

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?

The instruction 'Keep next_offset; after incarnation change restart from restored source' provides clear guidance on how to use the tool for sequential reads and how to handle session changes. It does not explicitly compare to alternatives, but the context is sufficient for a read operation.

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

colab_fs_removeA

Remove explicitly. After response loss, stat first; use missing_ok for idempotent cleanup.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRuntime path confined to /content; relative paths resolve under /content.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
recursiveNoRequired to remove a non-empty directory; default false.
missing_okNoTrue treats an absent path as success; default false.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of disclosing destructive behavior. It implies permanence by instructing to stat after response loss, but does not explicitly state that the operation is irreversible or what side effects occur (e.g., non-empty directory requires recursive flag). The guidance is useful but not a complete disclosure of behavioral traits.

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

Conciseness5/5

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

Two short sentences deliver essential operational guidance without any filler. Every word contributes to the intended usage, making it highly concise and well-structured.

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

Completeness3/5

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

The tool is a destructive operation with no output schema, so the description should explain what the user can expect on success/failure. It omits return value information and does not mention that recursive is needed for directories (though schema covers that). The stat-first advice helps, but the description leaves gaps about error handling and outcome confirmation.

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?

The schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds value by explicitly tying missing_ok to idempotent cleanup and suggesting stat-first behavior, which enhances understanding of when to set that parameter beyond the mere schema text.

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

Purpose3/5

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

The description 'Remove explicitly' clearly indicates the core action (remove) and resource (file system), but is vague about what exactly can be removed (files, directories, both). It does not distinguish itself from sibling tools like colab_fs_move or colab_fs_mkdir, relying on the tool name for specificity.

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?

Provides clear context on when to use missing_ok for idempotent cleanup and advises running stat first after response loss, which is a safety check. However, it does not explicitly state when this tool should be chosen over alternatives or when not to use it, so it misses the full exclusion guidance.

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

colab_fs_statA

Stat/checksum a path. Missing may mean reclamation; verify the session fingerprint first.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRuntime path confined to /content; relative paths resolve under /content.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
checksumNoTrue computes SHA-256 for a file; default false.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It adds a valuable non-obvious trait: a missing path may be due to reclamation, not just non-existence, and recommends verifying the session fingerprint first. This goes beyond what the schema states and helps the agent avoid misinterpreting results. It does not describe return format or side effects, but the tool is clearly read-only in nature from the name.

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

Conciseness5/5

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

The description is two sentences long, with the primary purpose front-loaded. Every word adds value: the first sentence states the action, the second provides a critical caution. There is no fluff or repetition.

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?

Given the tool's simplicity and the absence of an output schema, the description is nearly complete. It names the operation and warns about a key edge case (reclamation). It does not explicitly state the return format (e.g., metadata fields), but the term 'stat' conventionally implies metadata. The warning about session fingerprint adds essential operational context that compensates for the missing output schema.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter (path, session, checksum) has a clear description. The tool description adds no additional parameter-level detail, so the baseline score of 3 is appropriate. The schema already explains path confinement, session rules, and the checksum boolean.

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?

The description clearly states the tool's function with a specific verb and resource: 'Stat/checksum a path.' This distinguishes it from siblings like colab_fs_list (which lists directory contents) and colab_fs_read (which reads file content). The use of 'stat' and 'checksum' unambiguously signals metadata retrieval and integrity checking.

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?

The second sentence provides important context: 'Missing may mean reclamation; verify the session fingerprint first.' This advises the agent on how to interpret a missing path and emphasizes verifying session identity before concluding. However, it does not explicitly mention alternative tools or when not to use this tool, so it falls short of a 5.

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

colab_fs_writeB

Write a small chunk. Append retries are not idempotent; stat before retrying ambiguous writes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRuntime path confined to /content; relative paths resolve under /content.
appendNoTrue appends; false atomically replaces the file. Default false.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
data_base64YesBase64-encoded bytes; decoded payload is limited to 1,000,000 bytes.
create_parentsNoTrue creates missing parent directories; default false.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the burden of disclosure. It does provide a non-obvious behavioral caveat about append retries not being idempotent and advising a stat before retry. However, it omits other relevant traits like atomicity details (though schema covers replace/append) and does not mention permission requirements or failure behavior.

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

Conciseness5/5

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

Extremely concise: two sentences with no filler. The key action is front-loaded, and the retry warning is an efficient addition that earns its place.

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

Completeness3/5

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

Given the moderate complexity (5 params, no output schema, no annotations), the description is minimal but not fully complete. It provides a useful retry caution, yet lacks usage guidance and fails to mention what happens on success/failure, leaving the agent to infer from schema and sibling context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all five parameters. The description adds minimal parameter meaning beyond the schema; 'small chunk' hints at size limits, but the schema already states the 1,000,000-byte cap for data_base64.

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

Purpose4/5

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

The description states the action ('Write') and resource ('a small chunk'), clearly indicating a file write operation. It distinguishes from siblings like colab_fs_read and colab_fs_list by focusing on writing, though 'chunk' is slightly vague and could imply partial writes.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as colab_upload or colab_fs_move. The retry warning implies a write scenario, but there is no mention of preferred use cases or exclusions.

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

colab_healthA

Report authentication readiness without starting a runtime.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It explicitly discloses the key behavioral trait that no runtime is started, which is useful. However, it does not explain what 'report' returns, whether it has side effects, or how authentication readiness is determined, leaving some behavioral ambiguity.

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

Conciseness5/5

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

The description is a single, tightly worded sentence that immediately states the action and key constraint. No filler or redundant phrasing is present.

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

Completeness3/5

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

The tool is simple (no parameters, no output schema), but because there is no output schema, the description should ideally indicate what the report contains (e.g., boolean, status object). It does not, leaving the agent unaware of the return format. Still, the core purpose and non-invasive nature are covered.

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?

The tool has zero parameters, so the baseline is 4. The description correctly adds no parameter-specific information, and there is no schema to complement. It is appropriately silent on parameters.

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?

The description uses the specific verb 'Report' and identifies the resource as 'authentication readiness', clearly distinguishing this from sibling tools like colab_start or colab_process_start. The qualifier 'without starting a runtime' adds a distinguishing scope that makes the tool's purpose unambiguous.

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?

The phrase 'without starting a runtime' implies this is a safe, lightweight pre-flight check that can be used before heavier operations like colab_start or colab_process_start. However, it does not explicitly name alternatives or state when not to use it, so it falls just short of full explicit guidance.

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

colab_inspectC

Inspect runtime resources. On incarnation error, discard results and reacquire.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolsNoExecutable names to locate; null uses the documented default tool set.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
process_limitNoMaximum OS process rows returned; defaults to 100.

TDQS

C2.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses a specific behavioral trait: 'On incarnation error, discard results and reacquire,' which gives some insight into error recovery. However, it does not explain the return value, side effects, or any resource requirements, leaving significant gaps.

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?

The description is brief and front-loaded with no wasted words. However, the second sentence is cryptic and might sacrifice clarity for brevity, but it remains efficient in length.

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

Completeness2/5

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

Given the absence of an output schema and annotations, the description is insufficiently complete. It does not explain what 'runtime resources' includes, the format of results, or how the parameters affect the inspection. The error-handling note is present but lacks context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add any meaning to the parameters (tools, session, process_limit) beyond what the schema already provides, so it neither enhances nor detracts from parameter understanding.

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

Purpose3/5

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

The description states 'Inspect runtime resources' with a clear verb and resource, but 'runtime resources' is broad and ambiguous, especially given sibling tools like colab_process_list, colab_sessions, and colab_health. It does not specify what exactly is inspected or how it differs from related tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It only gives a high-level action and an error-handling note, with no mention of use cases, prerequisites, or situations where this tool is preferred.

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

colab_keepaliveA

Report/refresh heartbeat. It cannot prevent reclamation; on loss, start and restore.

ParametersJSON Schema
NameRequiredDescriptionDefault
refreshNoTrue sends a ping now; false only reports persisted/task state.
sessionNoTracked session name. Null is allowed only when exactly one session exists.

TDQS

A4.2/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 of behavioral disclosure. It states a critical limitation (cannot prevent reclamation) and advises to 'start and restore' on loss, which is useful context. It omits details like response format or side effects, but for a simple heartbeat tool this is solid.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action, zero waste. The second sentence adds an important caveat and recovery hint without verbosity.

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 a simple 2-param tool with no output schema, the description covers purpose, limitation, and a recovery hint. It does not explicitly tie parameters to behavior, but the schema handles that, and the phrase 'start and restore' is slightly ambiguous, preventing a 5.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters already have clear descriptions. The tool description adds no parameter-specific semantics, so the baseline score of 3 is appropriate.

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?

The description uses a specific verb 'Report/refresh' and resource 'heartbeat', clearly distinguishing it from sibling tools like colab_health and colab_sessions. The caveat 'cannot prevent reclamation' adds further purpose specificity by stating what the tool does not do.

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?

Provides clear context for when to use the tool (to report or refresh a heartbeat) and a key exclusion ('cannot prevent reclamation'). It does not explicitly name alternative tools, but the limitation helps the agent understand this is not a reclamation-prevention tool, offering implicit guidance.

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

colab_paused_notebooksA

List notebook checkpoints whose GPU runtimes were released.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read-only listing operation, but does not explicitly state it is safe, mention authentication needs, rate limits, or what 'checkpoints' entails. The description is too terse to fully inform the agent about the tool's behavior.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. Every part contributes to meaning, making it highly efficient.

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?

Given the tool's simple nature (zero parameters, output schema present), the description is adequately complete for identifying what the tool returns. It could add a bit more context about what a 'checkpoint' is, but the output schema likely covers return values.

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?

There are zero parameters, so the baseline is 4. The description needs no parameter information, and the input schema is already empty, providing full coverage.

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?

The description 'List notebook checkpoints whose GPU runtimes were released' uses the specific verb 'List' with a clear resource ('notebook checkpoints') and a distinguishing qualifier ('GPU runtimes were released'). This clearly separates it from sibling tools like colab_sessions or colab_process_list.

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?

The description clearly implies the intended use case: to find notebooks that were paused due to GPU runtime release. It does not explicitly name alternatives or exclusions, but the context is sufficiently clear among the sibling tools.

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

colab_pause_notebookA

Checkpoint locally then release. Transfer non-notebook artifacts first; /content is lost.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionYesUnique local name of a tracked Colab assignment.
notebook_pathYesExisting local .ipynb checkpoint path.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden. It discloses a key destructive behavior: '/content is lost.' It also indicates the sequence of actions ('checkpoint locally then release'). But it does not mention whether the session is terminated, if it can be resumed, or any permission or rate-limit implications.

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

Conciseness5/5

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

The description is extremely concise—just two short sentences. Both carry meaningful information: the action and a critical data-loss warning. No filler or redundancy.

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

Completeness3/5

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

The description provides the essential purpose and a critical caution, but omits details such as what 'checkpoint locally' concretely saves, whether the session is destroyed or simply paused, and how it differs from colab_stop. Given the absence of output schema and annotations, the description is minimally viable but not fully complete.

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

Parameters3/5

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

The input schema provides descriptions for both parameters (session and notebook_path) with 100% coverage. The description does not add additional parameter-level details beyond what the schema already states, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description states a clear action: 'Checkpoint locally then release.' This indicates a pause/save-and-release behavior, and the warning about /content loss provides scope. However, it does not explicitly name the tool's action as 'pause', relying on the name itself.

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

Usage Guidelines3/5

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

The description gives a usage prerequisite: 'Transfer non-notebook artifacts first; /content is lost.' This implies when to use the tool (before losing data) and warns about the consequence. However, it does not explicitly compare to alternatives like colab_stop or colab_keepalive, or state when to choose this over those.

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

colab_process_exportC

Export atomically. Failure holds runtime/stage; retry same call from recoverable_export.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNoTracked session name. Null is allowed only when exactly one session exists.
max_filesNoHard file-count limit for a directory transfer.
overwriteNoWhen true, explicitly permit replacement of an existing destination.
chunk_sizeNoTransfer chunk size in bytes; 1-2,000,000. Defaults to 524,288.
local_pathYesPath on the MCP host, resolved under the host user's permissions.
process_idYesOpaque process_id returned by colab_process_start or colab_run_command.
compressionNoWire compression: auto uses gzip only when worthwhile; gzip forces it; none disables it.auto
remote_pathYesRuntime path confined to /content; relative paths resolve under /content.
max_total_bytesNoHard total transfer limit in bytes; checked before publication.
release_on_successNoTrue releases the runtime only after verified publication; default false.
compression_min_bytesNoAuto mode only considers files at least this many content bytes; defaults to 1 MiB.
compression_min_savingsNoMinimum fractional wire-byte saving required by auto mode; defaults to 0.10.

TDQS

C2.4/5.0
Behavior3/5

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

In the absence of annotations, the description does disclose some behavioral traits: atomicity and failure behavior (holding runtime/stage and retry capability). However, it omits side effects, permissions, or what happens on success, so it only partially carries the transparency burden.

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

Conciseness3/5

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

The description is very short (two sentences), which is concise but at the expense of clarity. It is front-loaded with 'Export', but the first sentence is vague and the overall structure lacks essential context.

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

Completeness2/5

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

Given the tool's complexity (12 parameters, no output schema, no annotations), the description is incomplete. It does not explain what is exported, how remote_path/local_path relate, or what the result/return is. The sparse description is insufficient for a tool of this scope.

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

Parameters3/5

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

Schema description coverage is 100%, so all 12 parameters are documented in the input schema. The description adds nothing about parameters, but this is acceptable because the schema already provides thorough meaning.

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

Purpose2/5

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

The description says 'Export atomically' but never states what resource is being exported or what operation it performs beyond the name. It does not distinguish from sibling tools like colab_process_export_cleanup or colab_transfer_download, making the purpose vague and close to a tautology.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The only usage-related note is about failure recovery ('retry same call from recoverable_export'), but it does not explain use cases, prerequisites, or when not to use it.

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

colab_process_export_cleanupA

Discard failed export stage. Use only after abandoning retry; remote artifacts are unchanged.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNoTracked session name. Null is allowed only when exactly one session exists.
local_pathYesPath on the MCP host, resolved under the host user's permissions.
process_idYesOpaque process_id returned by colab_process_start or colab_run_command.
remote_pathYesRuntime path confined to /content; relative paths resolve under /content.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that 'remote artifacts are unchanged,' which is helpful behavioral insight. However, it does not explain what 'discard' means in terms of local state or whether this operation is destructive to local files/processes, leaving some ambiguity.

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

Conciseness5/5

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

The description is extremely concise: two short sentences that front-load the core purpose and usage condition. Every word earns its place, with no fluff or redundancy.

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 a simple cleanup tool, the description covers the essential context: when to use it and that remote artifacts are untouched. It doesn't detail return values or exact local effects, but given the lack of output schema and the tool's likely simple nature, it is reasonably complete.

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

Parameters3/5

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

The schema description coverage is 100%, so the baseline is 3. The description adds no parameter-specific meaning beyond what the schema already provides. It references the 'failed export stage' but doesn't clarify how the parameters (process_id, remote_path, local_path, session) relate to this discard operation.

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?

The description uses a specific verb ('Discard') and identifies the exact resource ('failed export stage'). It clearly communicates the tool's purpose and distinguishes it from sibling tools like colab_process_export or colab_transfer_cleanup by focusing on the failed export scenario.

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?

It provides an explicit condition: 'Use only after abandoning retry'. This clearly states when the tool is appropriate. It doesn't name alternative tools explicitly, but the condition implies that this is for a specific failure state, which is sufficient guidance for an agent.

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

colab_process_listA

List persisted owned processes. After restart, use this to recover IDs and export state.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNoTracked session name. Null is allowed only when exactly one session exists.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It explicitly states the read-only nature via the verb 'list' and adds context about persistence and ownership. It does not disclose edge cases like session disambiguation, but that is subtle and covered by the schema, making this a sufficiently transparent description for a list operation.

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

Conciseness5/5

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

The description is only two sentences: one stating the core action and resource, the other explaining when it is useful. Every word contributes meaning, with no redundancy or filler.

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

Completeness5/5

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

Given the low complexity (single optional parameter, existing output schema), the description provides sufficient context for an agent to understand when and why to invoke the tool. It explicitly ties the operation to the restart recovery workflow and indicates the kind of information obtainable (IDs and export state).

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

Parameters3/5

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

The input schema fully describes the single parameter 'session,' including the null behavior when exactly one session exists. The tool description adds no parameter-specific information beyond the schema, so the baseline score of 3 applies per the rubric for high schema coverage.

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?

The description opens with the specific verb 'List' and clearly identifies the resource as 'persisted owned processes,' which distinguishes it from sibling tools that act on individual processes (e.g., colab_process_status, colab_process_output). The added context about recovering IDs and export state further clarifies its purpose.

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?

The description provides an explicit use case: 'After restart, use this to recover IDs and export state.' This gives clear context for when to use the tool. However, it does not explicitly mention when not to use it or name alternatives, so it falls short of a 5.

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

colab_process_outputA

Read retained output. Keep next_offset; on runtime loss, the local spool remains readable.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum bytes returned; defaults to 65,536.
offsetNoByte offset in the retained spool; use prior next_offset.
streamNoOutput stream to read; defaults to stdout.stdout
sessionNoTracked session name. Null is allowed only when exactly one session exists.
process_idYesOpaque process_id returned by colab_process_start or colab_run_command.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the disclosure burden. It adds useful behavioral context: output is retained in a local spool, pagination via next_offset is required, and the spool survives runtime loss. It does not mention side effects (though 'read' implies non-destructive) or error cases, but the key durability and pagination behaviors are disclosed.

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

Conciseness5/5

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

Two short, front-loaded sentences. The first gives the core action; the second provides essential stateful guidance. No wasted words, efficient and clear.

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

Completeness3/5

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

Given no output schema, the description should explain return values. It hints at next_offset being returned but does not describe the content format, stream handling nuances, or how errors manifest. For a paginated read with five parameters, more detail would improve completeness, though the schema covers parameter meanings.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description reinforces the offset behavior with 'Keep next_offset' but does not add new details beyond the schema, which already explains the offset semantics and process_id requirement.

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

Purpose4/5

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

The description clearly states the tool reads retained output, with a specific verb (read) and resource (retained output). It distinguishes the operation from process management tools like colab_process_status or colab_process_export, though it does not explicitly name alternatives. The purpose is unambiguous and aligned with the tool name.

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

Usage Guidelines3/5

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

The use case is implied: reading retained process output. The note about runtime loss provides a specific scenario where the tool remains useful, giving some contextual guidance. However, it does not explicitly contrast with alternatives like colab_process_export or when not to use this tool, so guidance is limited.

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

colab_process_signalA

Signal an owned process. If already exited/lost, inspect status; never signal a replacement.

ParametersJSON Schema
NameRequiredDescriptionDefault
signalNoExplicit process-group signal; TERM default, KILL is immediate.TERM
sessionNoTracked session name. Null is allowed only when exactly one session exists.
process_idYesOpaque process_id returned by colab_process_start or colab_run_command.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the burden of disclosing behavioral traits. It does disclose key safety behavior: never signaling a replacement and falling back to status inspection for exited/lost processes. However, it does not mention the destructive nature of KILL, process-group signaling, or ownership verification beyond the word 'owned.' The schema adds some of this, but the description could better disclose error handling and side effects.

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

Conciseness5/5

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

The description is extremely concise: two sentences, 17 words, with the main action front-loaded ('Signal an owned process'). The second sentence adds a critical conditional and warning without redundancy. Every word contributes meaningful information, and it is well-structured for quick parsing.

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 a destructive/process-control tool with no output schema, the description covers essential context: ownership, the no-replacement safety rule, and the exit/lost fallback. Combined with the comprehensive schema, this is sufficient for safe selection. However, it does not explicitly mention session constraints or process-group behavior, which are left to the schema, so it is not fully comprehensive on its own.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema itself documents each parameter thoroughly (e.g., signal enum, session null restriction, process_id provenance). The description adds no additional parameter meaning beyond what the schema already provides, matching the baseline score of 3 for high schema coverage.

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?

The description clearly states the tool's purpose: 'Signal an owned process.' This is a specific verb+resource construction that distinguishes it from sibling tools like colab_process_status (inspect) and colab_process_list. It also adds a critical scope restriction ('owned') and a safety condition ('never signal a replacement'), which uniquely identifies the tool's role.

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?

The description provides explicit when-to-use guidance: 'If already exited/lost, inspect status; never signal a replacement.' This tells the agent not to signal dead or replaced processes and to instead inspect status. It could be improved by naming the specific status tool (colab_process_status) or listing alternatives, but the conditional instruction is clear and actionable.

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

colab_process_startB

Start durably under a lease. On connection loss retry only if request_not_submitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoExisting runtime directory under /content. Defaults to /content./content
argvYesNon-empty executable and argument array; no shell parsing, expansion, or pipes.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
environmentNoOptional environment overrides. Values are never returned or journaled.
lease_tokenNoOpaque operation-bound lease from colab_allocation_probe. Null performs a fresh probe.
output_limitNoDurable byte cap for each output stream; defaults to 10,000,000.
export_on_exitNoOptional durable auto-export rules. They poll in the MCP background, survive server restart, and never release the runtime.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full transparency burden. It discloses only the retry condition, which is cryptic ('request_not_submitted') and omits side effects, return value, or error behavior. This is insufficient for an operation that starts a potentially long-running process.

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?

The description is extremely compact—two short sentences—with no filler words. It front-loads the key concept of durable lease-based start, though the terse phrasing introduces ambiguity that reduces clarity.

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

Completeness2/5

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

For a 7-parameter process-start tool with no output schema and no annotations, the description is far from complete. It omits return value, lifecycle context, concrete retry semantics, and prerequisites beyond 'under a lease,' leaving substantial gaps for an agent.

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

Parameters3/5

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

The input schema provides descriptions for all 7 parameters, achieving 100% coverage. The description adds only a contextual tie to the lease_token parameter, but parameter semantics are largely handled by the schema, matching the baseline.

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

Purpose4/5

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

The description uses a specific verb 'Start' and specifies a durable, lease-based process start, which distinguishes it from less durable alternatives like colab_run_command. However, it does not explicitly name sibling tools, leaving some differentiation implicit.

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

Usage Guidelines3/5

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

The description implies a lease prerequisite and gives a conditional retry rule ('retry only if request_not_submitted'), but it does not clearly state when to use this tool versus alternatives or specify exclusions. The context is minimally helpful but not explicit.

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

colab_process_statusA

Inspect owned process. If runtime vanished, use preserved metadata and restore artifacts.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNoTracked session name. Null is allowed only when exactly one session exists.
process_idYesOpaque process_id returned by colab_process_start or colab_run_command.

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the fallback behavior ('use preserved metadata and restore artifacts') but does not state whether the operation has side effects or what the response contains. Some behavioral context is present, but gaps remain.

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

Conciseness5/5

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

Two sentences, no wasted words. The main purpose is front-loaded, and the conditional behavior is presented efficiently. Every sentence earns its place.

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

Completeness2/5

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

There is no output schema, and the description does not describe what a status inspection returns or what 'restore artifacts' means. The purpose is clear, but operational details needed for an agent to invoke and interpret the tool are missing.

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

Parameters3/5

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

The input schema covers both parameters with descriptions (100% coverage), and the tool description adds no parameter-specific information. Baseline of 3 applies because the schema already handles parameter semantics.

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?

The description clearly states 'Inspect owned process' with a specific verb and resource, and the conditional about runtime vanishing adds behavioral scope that distinguishes it from sibling process tools like colab_process_list or colab_process_output.

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

Usage Guidelines3/5

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

Provides a conditional ('if runtime vanished') that hints at a use case, but does not explicitly mention when to use this tool over alternatives like colab_process_list or colab_process_output. No exclusionary guidance is given.

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

colab_reconcileB

Audit ownership. Forget confirmed stale records; release orphans only if intentional.

ParametersJSON Schema
NameRequiredDescriptionDefault
forget_staleNoDelete local records for assignments confirmed absent; default false.
release_orphansNoRelease every live account assignment not owned here; destructive, default false.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavior. It hints at destructive actions ('release orphans only if intentional') but does not explain what 'release' or 'forget' actually do to the underlying data, whether operations are reversible, or what side effects occur. The lack of detail is concerning for a tool that can delete or release resources.

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?

The description is extremely concise, using only two sentences to convey the core actions and a cautionary note. It is front-loaded and avoids unnecessary words. However, its brevity borders on under-specification, though for a simple two-parameter tool it remains appropriately sized.

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

Completeness2/5

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

The description lacks important context: what constitutes a 'stale record' or an 'orphan', how confirmation occurs, the consequences of releasing orphans beyond the action itself, and whether any output or report is provided. With no output schema and no annotations, the description does not fully equip an agent to use the tool safely and correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters (forget_stale and release_orphans) having clear descriptions. The tool description adds little beyond the schema, merely restating the concepts of forgetting and releasing. Since the schema already provides adequate semantics, a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly indicates the tool audits ownership and performs two specific actions: forgetting stale records and releasing orphans. While 'Audit ownership' is somewhat vague, the additional explanation makes the purpose clear and differentiates it from sibling tools, which focus on file operations, process management, and notebook execution.

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

Usage Guidelines3/5

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

The description implies a use case—reconciling ownership and cleaning up stale or orphaned records—but it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions. The context is enough to infer typical usage, but not as explicit as recommended.

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

colab_resume_notebookA

Resume onto a fresh runtime. Restore dependencies/files; prior RAM, processes, and leases are invalid.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionYesUnique local name of a tracked Colab assignment.
output_pathNoLocal rerun output path; null generates <checkpoint>.resumed.ipynb when executing.
cell_timeoutNoMaximum seconds per rerun code cell.
execute_notebookNoTrue reruns the checkpoint on the fresh runtime; default false.

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations provided, the description carries the full behavioral disclosure burden. It explicitly warns that 'prior RAM, processes, and leases are invalid' and states that dependencies/files are restored, providing key side-effect information. It does not cover return format or permission requirements, but the critical invalidation warning is clearly disclosed.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the action and followed by a critical warning. Every word earns its place, with no filler or redundancy.

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

Completeness3/5

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

For a 4-parameter tool with no annotations and no output schema, the description explains the core behavior and the primary risk (state invalidation) but omits guidance on when to use it and what the tool returns. It is adequate but leaves gaps in practical usage context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no parameter-level meaning beyond what the input schema already provides; the mention of 'restore dependencies/files' is not clearly tied to any specific parameter.

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

Purpose4/5

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

The description clearly states the tool resumes a notebook onto a fresh runtime and restores dependencies/files, which distinguishes it from siblings like colab_start or colab_execute_notebook by emphasizing the 'resume' action and fresh-runtime scope. However, it does not explicitly name alternative tools, so it falls slightly short of a 5.

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

Usage Guidelines3/5

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

The verb 'resume' implies usage after a pause or interruption, but the description provides no explicit when-to-use guidance and does not mention alternatives. It lacks a clear statement of when to choose this over similar tools like colab_start or colab_execute_notebook.

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

colab_run_commandA

Run durably. Timeout leaves it running: retain process_id, poll output/status, or signal.

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNoExisting runtime directory under /content. Defaults to /content./content
argvYesNon-empty executable and argument array; no shell parsing, expansion, or pipes.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
timeoutNoHandoff wait in seconds; timeout leaves the durable process running.
environmentNoOptional environment overrides. Values are never returned or journaled.
output_limitNoMaximum stdout/stderr bytes returned per stream.

TDQS

A3.7/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 behavioral burden. It discloses the key non-obvious behavior: the command continues running after timeout, requiring the agent to manage the process via process_id and output/status polling or signaling. This goes beyond a simple 'run command' and meaningfully prepares the agent for durability semantics.

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

Conciseness5/5

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

The description is two short sentences, front-loaded with 'Run durably.' Each clause earns its place by conveying the durability contract and the required follow-up actions. There is zero redundancy or filler.

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

Completeness3/5

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

For a 6-parameter tool with no output schema and no annotations, the description is terse but touches the most critical context: durability, timeout behavior, and process management. The schema covers parameter details comprehensively, so the description doesn't need to repeat them. However, it lacks explicit mention of the return format or examples, leaving some gaps for a complex tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add additional parameter-level meaning beyond what the schema already provides; it focuses on post-run behavior. The 'retain process_id' hint relates to output, not parameter semantics, so no extra credit is warranted.

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

Purpose4/5

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

The description 'Run durably' specifies a clear action (run) and implies the resource (a command). It distinguishes the tool's core value proposition (durable execution) from typical one-shot execution, though it doesn't explicitly differentiate it from sibling tools like colab_execute or colab_process_start. The mention of 'retain process_id, poll output/status, or signal' clarifies the command's lifecycle.

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

Usage Guidelines3/5

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

The description implies when to use the tool: for durable command execution where a timeout shouldn't kill the process. It gives actionable post-timeout guidance (retain process_id, poll output/status, signal), but it provides no explicit comparison to alternatives or exclusion criteria. The guidance is implied rather than stated.

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

colab_sessionsA

List tracked/live sessions. If stale, reconcile it; do not trust its runtime files.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that sessions may be stale and that runtime files should not be trusted—useful caveats that go beyond a simple list operation. It does not cover other traits like auth or rate limits, but for a read-only listing tool, this is sufficient.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It front-loads the core action ('List tracked/live sessions') and includes a concise, actionable warning in the second sentence.

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

Completeness5/5

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

For a zero-parameter tool with an output schema, the description covers all necessary operational knowledge: what it does, how to handle stale results, and a warning about file trust. No important gaps remain.

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?

The tool has zero parameters, so the description need not explain any. The baseline for 0 params is 4, and the description does not attempt to invent parameter details, which is appropriate.

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?

The description clearly states the action (List) and resource (tracked/live sessions), making the tool's purpose unambiguous. The phrase 'tracked/live sessions' adds specificity that distinguishes it from other colab tools like process lists or file operations.

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?

The description provides clear operational guidance: if sessions are stale, reconcile them and do not trust runtime files. It implies when to use the tool (as a session listing step) and what to do next, though it does not explicitly name an alternative tool for reconciliation.

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

colab_startB

Allocate compute. On quota/preemption, release unused sessions and retry later.

ParametersJSON Schema
NameRequiredDescriptionDefault
gpuNoRequested GPU model; null requests CPU. T4 is the default, not guaranteed.T4
sessionYesUnique local name of a tracked Colab assignment.

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses a significant behavior: 'On quota/preemption, release unused sessions and retry later', which implies a destructive side effect. However, it does not state whether the call blocks, what happens to the current session, or any permission requirements.

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

Conciseness5/5

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

Two short sentences, no filler. The first sentence states the purpose, and the second provides important failure-handling context. Every word earns its place.

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

Completeness2/5

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

Despite full schema coverage, the description is too sparse for a tool with no annotations and no output schema. It does not explain what 'allocate compute' returns or how the caller should use the session, nor does it clarify the full scope of 'release unused sessions'.

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

Parameters3/5

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

Schema description coverage is 100%, and both 'gpu' and 'session' have detailed descriptions. The tool description adds no extra parameter meaning, so the baseline of 3 applies.

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

Purpose4/5

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

The core action is clearly stated as 'Allocate compute', which is a specific verb+resource. The name 'colab_start' and the behavioral detail about quota/preemption help distinguish it from start-like siblings, though it could more explicitly say 'start a session'.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives like colab_process_start or colab_allocation_probe. The only usage-related hint is the quota/preemption contingency, which is operational rather than a selection criterion.

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

colab_stopA

Release compute idempotently. Export first; stopping permanently loses RAM and /content.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNoTracked session name. Null is allowed only when exactly one session exists.

TDQS

A4.5/5.0
Behavior5/5

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

With no annotations provided, the description fully shoulders the burden. It discloses idempotency ('idempotently') and the destructive consequence ('permanently loses RAM and /content'), which is critical for a stop operation.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action, followed by a necessary warning. No fluff.

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

Completeness5/5

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

For a simple single-parameter tool with full schema coverage, the description covers the essential action, idempotency, and the key destructive side effect. No output schema exists, so return value documentation is not required. It is complete for the tool's complexity.

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

Parameters3/5

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

The input schema already provides a complete description for the 'session' parameter (100% coverage), and the tool description adds no additional parameter detail. Baseline of 3 applies.

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?

The description uses a specific verb-resource pair ('Release compute') and clearly distinguishes this from sibling tools like colab_pause_notebook and colab_start by emphasizing permanent shutdown and idempotency. Could be slightly more explicit that it stops a session, but 'release compute' is clear in context.

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?

The phrase 'Export first; stopping permanently loses RAM and /content' gives an explicit prerequisite and warning, conveying that this should only be used when the user is ready to permanently discard session state. It doesn't name alternatives like pause, but the context is clear.

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

colab_transfer_cleanupA

Remove returned staging paths. If the lease expired, probe and clean only the same runtime.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNoTracked session name. Null is allowed only when exactly one session exists.
lease_tokenNoOpaque operation-bound lease from colab_allocation_probe. Null performs a fresh probe.
staging_pathsYesExplicit remote staging_path values returned by failed transfers; ordinary files are rejected.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the transparency burden. It discloses the destructive action ('Remove') and adds a safety-relevant behavioral nuance about probing and limiting cleanup to the same runtime when the lease expires. It does not detail return format, permissions, or failure handling, but the core behavior is transparent.

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

Conciseness5/5

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

Two short, front-loaded sentences. The first states the primary action; the second adds a precise conditional. No filler or redundant content.

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?

Given moderate complexity, no annotations, no output schema, and a safety-related conditional, the description covers the critical operational aspects. However, it omits return/error behavior and does not explicitly state what happens when the lease is valid (implicitly just cleanup). Still, the provided information is enough for an agent to invoke the tool correctly in the transfer cleanup flow.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds minimal parameter-level meaning beyond restating 'returned staging paths' and referencing the lease-expired condition for lease_token. It does not compensate beyond schema guidance.

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?

The description starts with 'Remove returned staging paths', which names the specific verb (remove), resource (staging paths), and scope (returned by failed transfers). This clearly distinguishes it from generic file removal tools like colab_fs_remove and aligns with the transfer cleanup workflow.

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?

The description implies use after failed transfers to clean up returned staging paths, and provides a specific conditional guideline: 'If the lease expired, probe and clean only the same runtime.' It does not explicitly name alternatives or state when not to use, but the context is clear from the sibling toolset and phrasing.

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

colab_transfer_downloadA

Download atomically. Pre-submission connection failures retry once with the same still-valid lease/fingerprint; other interruptions require sync=true retry and hash verification.

ParametersJSON Schema
NameRequiredDescriptionDefault
syncNoTrue skips local files with the same SHA-256; defaults to true.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
max_filesNoHard file-count limit for a directory transfer.
overwriteNoWhen true, explicitly permit replacement of an existing destination.
chunk_sizeNoTransfer chunk size in bytes; 1-2,000,000. Defaults to 524,288.
local_pathYesPath on the MCP host, resolved under the host user's permissions.
compressionNoWire compression: auto uses gzip only when worthwhile; gzip forces it; none disables it.auto
lease_tokenNoOpaque operation-bound lease from colab_allocation_probe. Null performs a fresh probe.
remote_pathYesRuntime path confined to /content; relative paths resolve under /content.
max_total_bytesNoHard total transfer limit in bytes; checked before publication.
compression_min_bytesNoAuto mode only considers files at least this many content bytes; defaults to 1 MiB.
compression_min_savingsNoMinimum fractional wire-byte saving required by auto mode; defaults to 0.10.

TDQS

A3.6/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. It discloses atomicity, retry-once behavior with lease/fingerprint reuse, and the need for sync=true retry plus hash verification. This adds meaningful behavioral context beyond a simple 'download' label.

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

Conciseness5/5

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

Two concise sentences with no filler. Every phrase earns its place, and the key behavioral attributes (atomicity, retry semantics, sync requirement) are front-loaded.

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

Completeness3/5

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

For a 12-parameter tool with no output schema and no annotations, the description is sparse. It covers failure-mode behavior but lacks general usage context, output/return expectations, and differentiation from sibling download tools. Adequate for a schema-heavy interface, but a clear gap remains.

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 100%, so baseline is 3. The description adds value by explaining how sync=true relates to retries and how lease_token participates in pre-submission retries, enriching parameter semantics beyond the schema's static descriptions.

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

Purpose3/5

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

The verb 'Download' is clear, but the description lacks a resource/scope (e.g., remote path, directory) and doesn't distinguish this from sibling colab_download. It mentions atomicity, which indicates behavior rather than purpose. It's not a tautology, but it's under-specified.

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

Usage Guidelines3/5

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

Provides actionable retry guidance for pre-submission connection failures and other interruptions, which implies usage in failure scenarios. However, it does not state when to choose this tool over alternatives like colab_download or colab_fs_read, nor does it describe prerequisites.

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

colab_transfer_uploadB

Upload atomically with progress. On failure retain transfer_id/staging_path and resume only on the same fingerprint; otherwise clean staging.

ParametersJSON Schema
NameRequiredDescriptionDefault
syncNoTrue skips destinations with the same SHA-256; defaults to true.
sessionNoTracked session name. Null is allowed only when exactly one session exists.
max_filesNoHard file-count limit for a directory transfer.
overwriteNoWhen true, explicitly permit replacement of an existing destination.
chunk_sizeNoTransfer chunk size in bytes; 1-2,000,000. Defaults to 524,288.
local_pathYesPath on the MCP host, resolved under the host user's permissions.
compressionNoWire compression: auto uses gzip only when worthwhile; gzip forces it; none disables it.auto
lease_tokenNoOpaque operation-bound lease from colab_allocation_probe. Null performs a fresh probe.
remote_pathYesRuntime path confined to /content; relative paths resolve under /content.
transfer_idNoOpaque 32-character transfer ID from a failed upload. Reuse it to resume on the same incarnation; null starts a new transfer.
max_total_bytesNoHard total transfer limit in bytes; checked before publication.
compression_min_bytesNoAuto mode only considers files at least this many content bytes; defaults to 1 MiB.
compression_min_savingsNoMinimum fractional wire-byte saving required by auto mode; defaults to 0.10.

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It does disclose key behavioral traits: atomicity, progress reporting, and failure handling (retain transfer_id/staging_path, resume on same fingerprint, cleanup otherwise). However, it omits other important behaviors such as return value format, permissions, and whether the operation is synchronous, leaving gaps for an agent.

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

Conciseness5/5

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

The description is two concise sentences that convey atomicity, progress, failure, resume semantics, and cleanup. No filler words; every phrase earns its place.

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

Completeness2/5

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

This is a complex 13-parameter transfer tool with no output schema. The description provides only high-level behavior and does not explain return values, when to use versus alternatives, or how parameters like session, lease_token, or compression interact. It is too sparse to fully inform an agent about correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so all 13 parameters already have detailed descriptions. The tool description adds value by referencing transfer_id and 'staging_path' in context of resume/cleanup, slightly enriching the meaning of these fields, but it does not meaningfully compensate beyond the schema baseline.

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

Purpose4/5

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

The description states a specific action ('Upload atomically with progress'), covering verb and resource. It clearly describes what the tool does, but it does not explicitly differentiate from the sibling tool 'colab_upload', which likely has a similar upload purpose.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like colab_upload. The description lacks any context about prerequisites, recommended scenarios, or exclusions, leaving the agent to guess when this tool is the right choice.

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

colab_uploadC

Compatibility alias for bounded, checksummed colab_transfer_upload.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionNoTracked session name. Null is allowed only when exactly one session exists.
local_pathYesPath on the MCP host, resolved under the host user's permissions.
remote_pathYesRuntime path confined to /content; relative paths resolve under /content.

TDQS

C2.8/5.0
Behavior3/5

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

The description adds the behavioral qualifiers 'bounded' and 'checksummed,' indicating size limits and integrity verification beyond what the schema reveals. However, without annotations, it omits other important traits such as permissions, side effects, or reversibility, so transparency is partial.

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?

The description is a single concise sentence that front-loads the key concept ('compatibility alias') and includes useful qualifiers. It wastes no words, though it may be too terse to stand alone for full comprehension.

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

Completeness2/5

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

For an upload tool with no output schema and no annotations, the description lacks essential context: it does not explain the transfer behavior, overwrite rules, session handling, or return values. The alias reference is helpful but leaves too much to inference, making it incomplete for a standalone tool description.

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

Parameters3/5

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

The input schema fully describes all parameters with 100% coverage, so the baseline is 3. The description does not add any parameter-specific meaning beyond the schema, such as relationships between session, local_path, and remote_path.

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

Purpose3/5

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

The description identifies the tool as a 'compatibility alias' for colab_transfer_upload, which implies it performs the same upload function but does not explicitly state the core action (e.g., 'uploads files'). The name 'colab_upload' and reference to the canonical tool provide indirect clarity, but the description is not self-contained.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this alias versus colab_transfer_upload or other upload-related siblings. It does not specify scenarios, exclusions, or prerequisites, leaving the agent to infer usage from the alias relationship.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 35 tool updatesv0.1.0
    • First observedcolab_allocation_probe
    • First observedcolab_compute_units
    • First observedcolab_create_notebook
    • First observedcolab_download
    • First observedcolab_execute
    • First observedcolab_execute_notebook
    • First observedcolab_fs_list
    • First observedcolab_fs_mkdir
    • First observedcolab_fs_move
    • First observedcolab_fs_read
    • First observedcolab_fs_remove
    • First observedcolab_fs_stat
    • First observedcolab_fs_write
    • First observedcolab_health
    • First observedcolab_inspect
    • First observedcolab_keepalive
    • First observedcolab_pause_notebook
    • First observedcolab_paused_notebooks
    • First observedcolab_process_export
    • First observedcolab_process_export_cleanup
    • First observedcolab_process_list
    • First observedcolab_process_output
    • First observedcolab_process_signal
    • First observedcolab_process_start
    • First observedcolab_process_status
    • First observedcolab_reconcile
    • First observedcolab_resume_notebook
    • First observedcolab_run_command
    • First observedcolab_sessions
    • First observedcolab_start
    • First observedcolab_stop
    • First observedcolab_transfer_cleanup
    • First observedcolab_transfer_download
    • First observedcolab_transfer_upload
    • First observedcolab_upload

TDQS

B3.2/5.0

Scored across 35 tools

Disambiguation3/5

Many tools address similar operations (e.g., colab_execute, colab_run_command, colab_process_start; colab_stop vs colab_pause_notebook), though the detailed descriptions help clarify boundaries. Some tools are compatibility aliases (colab_upload/download), adding redundant surface. Overall, the distinctions are present but subtle, requiring careful reading.

Naming Consistency4/5

Most tools follow a consistent colab_<action>_<object> pattern using snake_case, such as colab_create_notebook, colab_fs_read, and colab_transfer_upload. A few are nouns like colab_health and colab_sessions, which breaks the strict verb-noun convention but remains predictable.

Tool Count2/5

With 35 tools, the server exceeds the recommended range for a well-scoped MCP, and many operations (process, file, transfer, notebook) overlap in conceptual functionality. While the domain is broad, this many tools creates unnecessary complexity, and some compatibility aliases could be removed.

Completeness4/5

The tool set covers the full lifecycle of notebook execution, file management, process management, and data transfers, including edge-case handling for retries and idempotency. Minor gaps exist, such as no explicit notebook deletion or versioning, but most workflows are supported.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    A Model Context Protocol server that enables users to control and interact with Google Colab instances via a reverse proxy. It supports executing shell commands, running persistent Python code, and monitoring system resources like CPU, GPU, and RAM.
    -
  • A
    license
    B
    quality
    D
    maintenance
    Local-first MCP server for controlling Google Colab as a development, shell, file, and training runtime, with tools for notebook editing, GPU acceleration, and file transfer.
    59
    8
    Apache 2.0
  • A
    license
    A
    quality
    F
    maintenance
    MCP server that allocates Google Colab GPU runtimes (T4/L4) and executes Python code on them. Lets any MCP-compatible AI assistant run GPU-accelerated code without local GPU hardware.
    3
    9
    MIT