Skip to main content
Glama
pdwi2020

mcp-server-colab-exec

by pdwi2020

mcp-server-colab-exec

MCP server that allocates Google Colab GPU runtimes (T4/L4) and executes Python code on them. Lets any MCP-compatible AI assistant — Claude Code, Claude Desktop, Gemini CLI, Cline, and others — run GPU-accelerated code (CUDA, PyTorch, TensorFlow) without local GPU hardware.

Prerequisites

  • Python 3.10+

  • A Google account with access to Google Colab

  • On first run, a browser window opens for OAuth2 consent. The token is cached at ~/.config/colab-exec/token.json for subsequent runs.

Related MCP server: colab-mcp

Installation

pip install mcp-server-colab-exec

Or run directly with uvx:

uvx mcp-server-colab-exec

Configuration

Claude Code

Add to your project's .mcp.json or ~/.claude/.mcp.json:

{
  "mcpServers": {
    "colab-exec": {
      "command": "mcp-server-colab-exec"
    }
  }
}

Or via the CLI:

claude mcp add colab-exec mcp-server-colab-exec

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "colab-exec": {
      "command": "mcp-server-colab-exec"
    }
  }
}

Gemini CLI

gemini mcp add colab-exec -- mcp-server-colab-exec

Tools

colab_execute

Execute inline Python code on a Colab GPU runtime.

Parameter

Type

Default

Description

code

string

Python code to execute (required)

accelerator

string

"T4"

GPU type: "T4" (free) or "L4" (premium)

timeout

int

300

Max execution time in seconds

Returns JSON with per-cell output, errors, and stderr.

colab_execute_file

Execute a local .py file on a Colab GPU runtime.

Parameter

Type

Default

Description

file_path

string

Path to a local .py file (required)

accelerator

string

"T4"

GPU type: "T4" (free) or "L4" (premium)

timeout

int

300

Max execution time in seconds

Security policy: file_path must be a .py file inside the current workspace (cwd).

colab_execute_notebook

Execute code and collect all generated artifacts (images, CSVs, models, etc.).

Parameter

Type

Default

Description

code

string

Python code to execute (required)

output_dir

string

Local directory for downloaded artifacts (required)

accelerator

string

"T4"

GPU type: "T4" (free) or "L4" (premium)

timeout

int

300

Max execution time in seconds

Artifacts are downloaded as a zip and extracted into output_dir. Zip members are validated before extraction to prevent path traversal and special-file writes.

Examples

Check GPU availability:

colab_execute(code="import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))")

Run nvidia-smi:

colab_execute(code="import subprocess; print(subprocess.run(['nvidia-smi'], capture_output=True, text=True).stdout)")

Train a model and download weights:

colab_execute_notebook(
    code="import torch; model = torch.nn.Linear(10, 1); torch.save(model.state_dict(), '/tmp/model.pt')",
    output_dir="./outputs"
)

Authentication

On first use, the server opens a browser window for Google OAuth2 consent. The access token and refresh token are cached at ~/.config/colab-exec/token.json. Subsequent runs use the cached token and refresh it automatically.

The OAuth2 client credentials are the same ones used by the official Google Colab VS Code extension (google.colab@0.3.0). They are intentionally public.

Troubleshooting

"GPU quota exceeded" — Colab has usage limits. Wait and retry, or use a different Google account.

"Timed out creating kernel session" — The runtime took too long to start. Retry — Colab sometimes has delays during peak usage.

"Authentication failed" — Delete ~/.config/colab-exec/token.json and re-authenticate.

OAuth browser window doesn't open — Ensure you're running in an environment with a browser. For headless servers, authenticate on a machine with a browser first and copy the token file.

License

MIT

Available Tools

3 tools
colab_executeA

Execute Python code on a Google Colab GPU runtime.

Allocates a T4 or L4 GPU, runs the code, and returns structured JSON with per-cell output, errors, and stderr.

Args: code: Python code to execute on the Colab GPU runtime. accelerator: GPU type — "T4" (free-tier) or "L4" (premium). Default: "T4". timeout: Max execution time in seconds. Default: 300.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
acceleratorNoT4
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already indicate non-read-only and non-destructive behavior. Description adds that it allocates a GPU and returns JSON, but omits potential state changes from code execution. No contradiction.

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?

Extremely concise: one-sentence summary, allocation details, and bulleted Args. No redundant information.

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?

Adequate for a simple 3-param tool with an output schema. Could mention execution mode (async? blocking?) and setup overhead, but not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, the description provides a detailed Args section explaining each parameter (code, accelerator, timeout) with defaults and options, fully compensating for schema gaps.

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?

The description clearly states it executes Python code on a Google Colab GPU runtime, with specific verb and resource. It also lists the output format and distinguishes from file/notebook variants.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for executing raw code on GPU, but does not explicitly contrast with siblings (colab_execute_file, colab_execute_notebook). Usage context is clear for experienced users.

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

colab_execute_fileA

Execute a local Python file on a Google Colab GPU runtime.

Reads the file contents and sends them for execution on a Colab GPU.

Args: file_path: Path to a local .py file to execute on Colab. accelerator: GPU type — "T4" (free-tier) or "L4" (premium). Default: "T4". timeout: Max execution time in seconds. Default: 300.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
acceleratorNoT4
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false, destructiveHint=false), the description discloses that the tool reads file contents, sends for execution on GPU, and specifies accelerator options and timeout. Adds value by providing execution context not in 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?

Two concise paragraphs: clear action statement followed by well-structured argument list. Front-loaded with main purpose. No redundant information.

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?

Given the presence of an output schema (relieving need to describe return values), the description is adequately complete for a code execution tool. However, it lacks mention of prerequisites like active Colab runtime or authentication, which could be inferred from context but not explicitly stated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining each parameter: file_path as local .py path, accelerator with T4/L4 options and defaults, timeout with seconds and default. Provides clear meaning beyond schema titles and defaults.

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?

Clearly states it executes a local Python file on a Colab GPU, with specific verb+resource. Distinguishes from siblings (colab_execute, colab_execute_notebook) by emphasizing 'local .py file'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for local .py files but offers no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. Could be improved by directly contrasting with sibling tools.

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

colab_execute_notebookA

Execute Python code on Colab GPU and collect generated artifacts.

Runs the code, then scans the runtime for output files (images, CSVs, models, etc.), zips them, and downloads to a local directory.

Args: code: Python code to execute on the Colab GPU runtime. output_dir: Local directory to save the artifacts zip and extracted files. accelerator: GPU type — "T4" (free-tier) or "L4" (premium). Default: "T4". timeout: Max execution time in seconds. Default: 300.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
output_dirYes
acceleratorNoT4
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

The description explains the execution process, artifact scanning, zipping, and downloading, which adds value beyond annotations. Annotations already indicate non-readonly and non-destructive, and the description aligns with that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise, with a clear header and bulleted parameter list. It could be slightly more compact by omitting the 'Args' label, but it remains efficient and scannable.

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?

The description covers the main workflow and parameters effectively. Although the output schema exists (not shown), the description adequately sets expectations for what the tool does, making it sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no descriptions (0% coverage), so the description's parameter documentation (code, output_dir, accelerator, timeout) provides essential meaning that the schema lacks, fully compensating for the gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The purpose is clearly stated: execute Python code on Colab GPU and collect downloaded artifacts. However, it does not differentiate from sibling tools colab_execute and colab_execute_file, which may have overlapping functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus its siblings or when not to use it. The description implies usage but does not explicitly state context or exclusions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv0.1.0
    • First observedcolab_execute
    • First observedcolab_execute_file
    • First observedcolab_execute_notebook

TDQS

A4/5.0
Disambiguation4/5

Tools serve distinct use cases: inline code, file execution, and artifact collection. However, colab_execute and colab_execute_notebook both take 'code' parameter, risking slight confusion if descriptions aren't read carefully.

Naming Consistency5/5

All tools follow a consistent 'colab_execute_<action>' pattern using snake_case. The naming is predictable and clear.

Tool Count4/5

Three tools cover the core action of executing code on Colab. The count is slightly low but each tool provides distinct functionality, making it appropriate for the focused scope.

Completeness3/5

The set covers code execution and artifact retrieval, but lacks tools for managing runtimes (e.g., list, stop) or retrieving outputs separately. This creates minor operational gaps for agents.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Local-first MCP server for controlling Google Colab as a development, shell, file, and training runtime, with tools for notebook editing, GPU acceleration, and file transfer.
    59
    7
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables MCP-compatible AI assistants to run Python code on Google Colab GPU/TPU runtimes, supporting accelerators like T4, A100, H100, with background execution and Google Drive integration.
    10
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pdwi2020/mcp-server-colab-exec'

If you have feedback or need assistance with the MCP directory API, please join our Discord server