Skip to main content
Glama
Colab MCP
by ALiwoto

download_file

Destructive

Download a Colab file from a connected runtime to a local path, create missing parent directories, and return a transfer ID for progress checks; use overwrite=true to replace existing files.

Instructions

Download a Colab file to the local machine, creating parent directories as needed. Supports arbitrary file types. Requires the Chrome companion and a connected runtime. Returns a transfer_id immediately; use transfer_status to check progress. File bytes do not enter the conversation. Only one transfer runs at a time. Existing files require overwrite=true.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "local_path": "<local_path>",
      "colab_path": "<colab_path>"
    },
    "name": "download_file"
  }
}

Input Schema

NameRequiredDescriptionDefault
overwriteNo
colab_pathYesAbsolute runtime file path, e.g. /content/data.zip.
local_pathYesAbsolute local file path.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.1

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only declare destructiveHint=true; the description supplies the reason (existing files are replaced unless overwrite=true), the async contract (returns transfer_id immediately, poll via transfer_status), the concurrency limit (one transfer at a time), and the critical 'file bytes do not enter the conversation' behavior. That is real context an agent cannot get from the schema or annotations.

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?

Six short sentences, front-loaded with purpose, then prerequisites, then the async return contract. Every sentence adds a distinct operational fact with no repetition of the schema.

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?

No output schema exists, and the description covers the return value (transfer_id) and how to monitor it. It is largely complete for a 3-parameter transfer tool, though it is silent on failure modes (disconnected runtime, bad path) and on using cancel_transfer.

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 67% and the undocumented parameter is overwrite; the description compensates by stating that existing files require overwrite=true. The two path parameters are already documented in the schema, so no further meaning is added for them.

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?

Opens with a specific verb+resource+destination ('Download a Colab file to the local machine') plus the side effect of creating parent directories. This clearly separates it from upload_file and the transfer-management siblings.

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?

Explicitly routes the agent to transfer_status for progress and states the overwrite=true precondition for existing files, plus the Chrome companion / connected runtime prerequisites. It doesn't name alternatives such as upload_file or cancel_transfer for handling a stuck transfer, so it falls short of full when/when-not guidance.

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