A local-first MCP server for Google Colab automation that enables interaction with Colab notebooks through the Model Context Protocol
ColabMCP has 11 tools with complete input schemas and descriptions, but quality is uneven. Naming follows verb_noun convention well (add_code_cell, delete_cell, run_code_cell). Descriptions are present but often terse (avg ~60 chars, below the 194-char baseline). Parameters are typed with enums where appropriate (language: [python, r, julia]). However, output schemas are not documented, LLMs cannot predict what fields to expect from responses. Error handling is absent from descriptions. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels assigned. Missing guidance on when to use similar tools (e.g., add_code_cell vs add_text_cell distinction is clear, but no recovery hints for failures).
Inserts a code type cell at the provided index and shifts existing cells. The resulting new cell id is returned.
Inserts a text type cell at the provided index and shifts existing cells. The resulting new cell id is returned.
Deletes the cell with the provided cell ID.
Gets a range of cells as JSON from the notebook.
Moves a cell to the provided index and shifts existing cells.
Opens a browser connection to the Colab frontend for interactive notebook manipulation.
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Responses like run_code_cell output, get_cells results, and set_env_vars return values are opaque.
Descriptions are terse (avg 55 chars, well below 194-char baseline). Missing WHEN to use, WHAT it returns, and recovery guidance. E.g., 'Deletes the cell with the provided cell ID' lacks error context or confirmation warning.
No tool annotations despite clear risk levels. delete_cell and shutdown_runtime are DESTRUCTIVE but lack destructiveHint. get_cells is READ_ONLY but lacks readOnlyHint. Agents cannot reason about safety without these hints.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2025-06-18+ | v2 |
Restarts the current Colab Python runtime. The notebook page stays open, but the runtime state and environment variables are reset.
Executes the code in the cell with the provided cell ID. The cell must be a code cell type. The output of the cell execution is returned.
Sets environment variables in the current Colab Python runtime by executing a generated setup cell.
Disconnects and releases/unassigns the active Colab CPU/GPU runtime instance. Call this as the final cleanup step after completing work.
Overwrites the contents of the cell with the provided new content. The cell must already exist and is identified by its cell ID.
No error handling guidance. Descriptions do not explain what can go wrong or how to recover. E.g., run_code_cell may fail if cell is not a code cell, but no recovery hint is provided.
open_colab_browser_connection has vague description and unclear input schema. No parameters documented; unclear what this tool does or when to call it.