Colab MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COLAB_MCP_AUTH | No | Set to 'adc' to use Google Application Default Credentials with required Colab scopes instead of OAuth flow. | |
| COLAB_MCP_LOG_LEVEL | No | Configure the operational log threshold. Logs are single-line JSON on stderr. | |
| COLAB_MCP_STATE_DIR | No | Override the session state directory. Defaults to ~/.config/colab-mcp. |
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_healthA | Report authentication readiness without starting a runtime. |
| colab_sessionsA | List tracked/live sessions. If stale, reconcile it; do not trust its runtime files. |
| colab_keepaliveA | Report/refresh heartbeat. It cannot prevent reclamation; on loss, start and restore. |
| colab_reconcileB | Audit ownership. Forget confirmed stale records; release orphans only if intentional. |
| colab_inspectC | Inspect runtime resources. On incarnation error, discard results and reacquire. |
| colab_create_notebookA | Create a new local Colab-ready .ipynb notebook without consuming GPU quota. |
| colab_startB | Allocate compute. On quota/preemption, release unused sessions and retry later. |
| colab_executeB | Execute guarded Python. Timeout may be ambiguous; use durable process_start for long work. |
| colab_run_commandA | Run durably. Timeout leaves it running: retain process_id, poll output/status, or signal. |
| colab_process_startB | Start durably under a lease. On connection loss retry only if request_not_submitted. |
| colab_process_statusA | Inspect owned process. If runtime vanished, use preserved metadata and restore artifacts. |
| colab_process_listA | List persisted owned processes. After restart, use this to recover IDs and export state. |
| colab_process_outputA | Read retained output. Keep next_offset; on runtime loss, the local spool remains readable. |
| colab_process_signalA | Signal an owned process. If already exited/lost, inspect status; never signal a replacement. |
| colab_process_exportC | Export atomically. Failure holds runtime/stage; retry same call from recoverable_export. |
| colab_process_export_cleanupA | Discard failed export stage. Use only after abandoning retry; remote artifacts are unchanged. |
| colab_fs_listB | List runtime paths. On runtime_replaced/missing, reacquire; old /content is unrecoverable. |
| colab_fs_statA | Stat/checksum a path. Missing may mean reclamation; verify the session fingerprint first. |
| colab_fs_readA | Read a chunk. Keep next_offset; after incarnation change restart from restored source. |
| colab_fs_writeB | Write a small chunk. Append retries are not idempotent; stat before retrying ambiguous writes. |
| colab_fs_mkdirB | Create a runtime directory. Use exist_ok for idempotent retry on ambiguous responses. |
| colab_fs_moveA | Move a path. After response loss, stat source/destination before retrying. |
| colab_fs_removeA | Remove explicitly. After response loss, stat first; use missing_ok for idempotent cleanup. |
| colab_transfer_uploadB | Upload atomically with progress. On failure retain transfer_id/staging_path and resume only on the same fingerprint; otherwise clean staging. |
| colab_transfer_cleanupA | Remove returned staging paths. If the lease expired, probe and clean only the same runtime. |
| colab_allocation_probeC | Issue an operation lease. Pass it immediately; if expired/mismatched, probe again, never follow replacement. |
| 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. |
| colab_execute_notebookB | Execute notebook cells. On failure keep the input/output checkpoint; reacquire and rerun deliberately. |
| colab_uploadC | Compatibility alias for bounded, checksummed colab_transfer_upload. |
| colab_downloadC | Compatibility alias for bounded, checksummed colab_transfer_download. |
| colab_stopA | Release compute idempotently. Export first; stopping permanently loses RAM and /content. |
| colab_pause_notebookA | Checkpoint locally then release. Transfer non-notebook artifacts first; /content is lost. |
| colab_resume_notebookA | Resume onto a fresh runtime. Restore dependencies/files; prior RAM, processes, and leases are invalid. |
| colab_paused_notebooksA | List notebook checkpoints whose GPU runtimes were released. |
| colab_compute_unitsA | Explain compute-unit visibility and return Google's official account-management URL. |
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 35 tools
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.
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.
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.
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.