Colab-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COLAB_BIN | No | Path to the Colab CLI executable | colab |
| COLAB_MCP_AUTH | No | Authentication mode passed to the Colab CLI: oauth2 or adc (the CLI's --auth) | CLI default |
| COLAB_MCP_DRIVE | No | Enable the opt-in Google Drive notebooks/projects tools (e.g. 1) | |
| COLAB_MCP_WORKDIR | No | The only local folder the server touches | current directory |
| COLAB_MCP_ENV_FILE | No | Path to a local NAME=value file with secrets; the model only passes secret names, never values | |
| COLAB_MCP_DRIVE_DIR | No | Directory for the Drive configuration, token and audit log | ~/.config/colab-mcp/drive |
| COLAB_MCP_IMAGE_DAYS | No | Age after which saved plots are swept (0 = keep) | 2 |
| COLAB_MCP_MAX_OUTPUT | No | Max characters returned per tool call | 20000 |
| COLAB_MCP_TRASH_DAYS | No | Age after which locally trashed notebooks are swept (0 = keep trash) | 7 |
| COLAB_MCP_DRIVE_AUDIT | No | Path to the append-only Drive audit log (0600, never stores content) | |
| COLAB_MCP_DRIVE_TOKEN | No | Path to the Google Drive OAuth token file | |
| COLAB_MCP_MIN_FREE_GB | No | Free disk that must remain after a download | 5 |
| COLAB_MCP_DRIVE_CLIENT | No | OAuth client configuration used for Google Drive sign-in | |
| COLAB_MCP_DRIVE_FOLDER | No | Name of the app folder created in Google Drive | Colab-MCP |
| COLAB_MCP_MAX_UPLOAD_MB | No | Per-file/zip upload cap (the CLI sends a file in one request) | 100 |
| COLAB_MCP_DRIVE_PROJECTS | No | The only Drive folder (under MyDrive) the file tools may use when Drive is mounted on the VM | Colab-MCP |
| COLAB_MCP_WORKDIR_MAX_GB | No | Budget for the working folder (0 = no cap) | 20 |
| COLAB_MCP_MAX_DOWNLOAD_MB | No | Cap for unpacked directory downloads | 1024 |
| COLAB_MCP_DRIVE_COPY_HOURS | No | Age after which working copies of Drive notebooks are swept (0 = keep copies) | 24 |
| COLAB_MCP_DRIVE_MAX_SAVES_PER_HOUR | No | Per-hour limit on notebook saves | 60 |
| COLAB_MCP_DRIVE_MAX_LOGINS_PER_HOUR | No | Per-hour limit on sign-in attempts | 6 |
| COLAB_MCP_DRIVE_MAX_CREATES_PER_HOUR | No | Per-hour limit on notebook creations | 20 |
| COLAB_MCP_DRIVE_MAX_DELETES_PER_HOUR | No | Per-hour limit on notebook deletions | 5 |
| COLAB_MCP_DRIVE_MAX_PROJECTS_PER_HOUR | No | Per-hour limit on project folder creations | 10 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| colab_sessionsA | List active Colab runtimes (sessions). Also a quick check that Google sign-in works. |
| colab_statusB | Show hardware, machine shape and state of a session (or the only active one). |
| colab_usageA | Show the account's compute-unit balance and current burn rate. |
| colab_newB | Create a runtime. CPU by default; gpu: T4, L4, G4, H100 or A100; tpu: v5e1 or v6e1; high_mem needs Colab Pro. Consumes compute units until stopped. |
| colab_ensure_sessionB | Make sure a named session exists: reuse it if |
| colab_restart_kernelA | Restart the Jupyter kernel of a session: clears all Python variables but keeps the VM and its files. |
| colab_urlB | Print the browser URL that attaches the Colab UI to this session (does not open a browser). |
| colab_runtime_infoB | Report the VM's Python version, CPUs, RAM, free disk and GPU (if any). |
| colab_stopB | Stop a session and release the VM (stops consuming compute units). Files not downloaded are lost. |
| colab_installB | Install Python packages on the runtime (uses uv, falls back to pip). Names/specifiers only, e.g. 'qiskit', 'pandas>=2.0'. |
| colab_execA | Run Python on the runtime; variables persist between calls (same kernel). Give A .ipynb |
| colab_runA | One-shot job: allocate a fresh VM, run a local script (inside the working directory) with |
| colab_job_startA | Start a shell command in the background on the VM (e.g. 'python -u train.py --epochs 50') and return a job id. Use for anything longer than a few minutes; poll with colab_job_status / colab_job_logs. Jobs die if the VM is stopped. |
| colab_job_statusB | State of a background job: running, finished (with exit code), cancelled, or lost. |
| colab_job_logsC | Last |
| colab_job_cancelB | Terminate a running background job (SIGTERM to its process group). |
| colab_job_listC | List all background jobs started on this VM. |
| colab_notebook_createB | Create a local .ipynb inside the working directory. |
| colab_notebook_listC | List .ipynb files under a directory of the working directory. |
| colab_notebook_readA | Show a notebook's cells (index, id, type, source) and, optionally, their saved outputs. Use |
| colab_notebook_add_cellB | Insert a cell. Default is at the end; or give |
| colab_notebook_edit_cellB | Replace a cell's source (and optionally its type). |
| colab_notebook_delete_cellC | Delete one cell by id or index. |
| colab_notebook_move_cellC | Move a cell to a new index. |
| colab_notebook_clear_outputsC | Clear saved outputs of one cell, or of all cells. |
| colab_notebook_run_cellA | Run ONE code cell on the runtime (state persists between cells) and store its output in the notebook. Reports ok/ERROR status. A displayed plot is saved under .colab-mcp/images/. |
| colab_notebook_run_allA | Run every code cell in order (from index |
| colab_notebook_to_scriptA | Convert a notebook to a .py script (markdown becomes comments; lines starting with ! or % are commented out). With |
| colab_notebook_deleteB | Delete a local notebook by moving it to .colab-mcp-trash/ inside the working directory (recoverable, never a hard delete). |
| colab_uploadA | Upload one local file (inside the working directory) to the VM, e.g. remote_path '/content/data.csv'. Limited by COLAB_MCP_MAX_UPLOAD_MB (default 100): for big data, download it on the VM instead (colab_exec / colab_job_start). |
| colab_downloadC | Download one file from the VM into the working directory. |
| colab_upload_dirA | Upload a whole local folder (inside the working directory) to the VM as one zip, extracted at |
| colab_download_dirA | Download a whole VM folder into |
| colab_lsC | List files in a VM directory (default /content). |
| colab_rmB | Delete ONE file on the VM (not on the user's computer). Refuses root-like paths. |
| colab_drive_statusA | Is Google Drive mounted on this session? Reports yes/no and free space only (never lists your files). If it is not mounted, use colab_drive_mount_start (the user approves in the browser). |
| colab_drive_mount_startA | Step 1 of mounting Google Drive on a session: opens Google's approval page in the user's browser. The link itself is NOT returned (it contains the account e-mail) unless the browser could not be opened or show_link=true. The USER must click Allow; never ask for or handle passwords or codes. WARNING: once mounted, code running on the VM can reach the user's WHOLE Drive; mount only when asked, and stop the session afterwards. Then call colab_drive_mount_finish. |
| colab_drive_mount_finishA | Step 2 of mounting Google Drive: call it AFTER the user says they clicked Allow. Completes the mount; then verify with colab_drive_status. cancel=true abandons a pending mount. |
| colab_drive_project_dirA | Create (if missing) and return a project folder on the mounted Drive: /content/drive/MyDrive//. Use it for big datasets, checkpoints and results that must survive the session. Requires Drive to be mounted (see colab_drive_status). |
| colab_logA | Last |
| colab_local_footprintA | Show how much this tool keeps on your computer (temp files, plots, local trash), free disk and the working-directory budget. Read-only. |
| colab_local_cleanupA | Delete everything this tool keeps only temporarily on your computer: transfer zips, saved plots and old local trash. Never touches your notebooks, data or anything outside those folders. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 42 tools
Most tools target a distinct resource+action, and descriptions carefully distinguish near-pairs (colab_exec vs colab_run vs colab_job_start; colab_upload vs colab_upload_dir). Some boundary blur remains between session-inspection tools (colab_sessions, colab_status, colab_runtime_info) and between colab_new and colab_ensure_session, but guidance is generally clear.
All tools share the colab_ prefix and snake_case, with clear resource-grouping (colab_notebook_*, colab_job_*, colab_drive_*). Minor deviation: a mix of noun-style (colab_sessions, colab_status) and verb-style (colab_new, colab_stop) names, and colab_new is less descriptive than its siblings.
42 tools is well above the comfortable range for a single server. Although the domain is broad (sessions, exec, jobs, notebooks, files, Drive), the granular cell-level notebook surface (create, add/edit/delete/move/clear/run_cell/run_all/read/list/to_script) plus parallel file vs directory transfer tools inflate the count considerably.
Coverage is broad and lifecycle-complete: session create/ensure/status/stop, exec and one-shot runs, background jobs with status/logs/cancel/list, full notebook and cell CRUD, upload/download for files and directories, and Drive mount/status/project-dir. Minor gaps like no kernel interrupt (only restart) and no directory-delete operation are easy to work around.