Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
COLAB_MCP_STATE_DIRNoOverride the directory where the websocket token and port are saved (defaults to ~/.colab-mcp/connection.json).
COLAB_MCP_UI_TIMEOUTNoSeconds the opener waits for you to accept the connection in the tab.60
COLAB_MCP_AUTO_REOPENNoSet to 0 to disable automatically re-opening the last opened notebook when the tab drops and a notebook tool is called.1
COLAB_MCP_TOKEN_MAX_AGE_DAYSNoA persisted token is replaced once it is older than this many days (default 30; 0 never).30

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

CapabilityDetails
tasks
{
  "list": {},
  "cancel": {},
  "requests": {
    "tools": {
      "call": {}
    },
    "prompts": {
      "get": {}
    },
    "resources": {
      "read": {}
    }
  }
}
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
open_colab_browser_connectionA

Opens a connection to a Google Colab browser session and unlocks notebook editing tools. Pass notebook_url to open a specific notebook instead of the scratch notebook: Colab links, Google Drive share links or file ids, GitHub .ipynb blob/raw links, and gist links are accepted. Calling it with a different notebook_url while connected switches to that notebook. The call waits for the user to accept the connection in the browser tab; on success, list tools again to see the notebook tools.

colab_connection_statusA

Reports whether a Colab browser session is connected and which notebook it was opened for. Does not open a browser.

get_notebook_outlineB

List cells as index, id, type, first source line and whether outputs exist.

run_cellsA

Run code cells in order: by id list, or by index range (end exclusive), or all.

Each cell blocks until it finishes. For anything that may take more than a minute set background=True and poll job_status; Colab cannot be interrupted through this bridge, so cancel only stops scheduling the next cell.

run_notebookB

Run every code cell from the top. Background by default: poll job_status.

run_codeA

Run ad-hoc Python in the notebook's runtime via a temporary cell at the end.

The cell is deleted afterwards unless keep_cell=True. Images in the output (plots) are returned as image content. background=True returns a job id.

job_statusC

Progress and per-cell results of a background run.

list_jobsB

All known background runs, newest last.

cancel_jobB

Stop a background run after its current cell. The running cell itself cannot be interrupted.

upload_fileB

Copy a local file into the notebook runtime's filesystem (e.g. /content/data.csv).

Transfers in base64 chunks through temporary cells and verifies the SHA-256 on the runtime afterwards.

download_fileA

Copy a file from the notebook runtime to this machine, verifying its SHA-256.

export_notebookC

Save the connected notebook as an .ipynb file on this machine.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 12 tools

Disambiguation4/5

Most tools target clearly distinct actions (connect, check status, outline, job list, cancel, upload, download, export). The only real overlap is the execution trio run_cells, run_notebook, and run_code — run_cells explicitly accepts 'all', which duplicates run_notebook — but the descriptions spell out the difference well enough for an agent to choose correctly.

Naming Consistency4/5

Nearly all names are snake_case and follow verb_noun (get_notebook_outline, run_cells, list_jobs, cancel_job, upload_file, download_file, export_notebook). Minor deviations: the status queries job_status and colab_connection_status are noun-only, and open_colab_browser_connection redundantly embeds 'colab' while its sibling tools do not.

Tool Count5/5

Twelve tools is a well-scoped set for remote Colab notebook control: connection handling, execution, job management, file transfer, and export each get a small number of dedicated tools. Nothing appears padded or redundant beyond the mild execution overlap.

Completeness3/5

Core run lifecycle (connect, inspect cells, execute, poll, cancel, transfer files, export) is covered with no dead ends. However, the notebook-editing tools that open_colab_browser_connection promises to 'unlock' are absent from the surface, and there is no way to insert, delete, or edit cell source or to disconnect a session — notable gaps for a notebook-control server.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues