io.github.pdwi2020/mcp-server-colab-exec
Execute Python code on Google Colab GPU runtimes (T4/L4) from any MCP client
Open source Open in the app JSON README (API)
About
Execute Python code on Google Colab GPU runtimes (T4/L4) from any MCP client
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- pdwi2020
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.1.0
- Stars
- 8
- Forks
- 4
- Last push
- 2026-03-11T18:31:38Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 04:01:00
- Updated
- 2026-08-29 04:01:00
- Origin id
io.github.pdwi2020/mcp-server-colab-exec
README
# mcp-server-colab-exec
<!-- mcp-name: io.github.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](https://colab.research.google.com)
- On first run, a browser window opens for OAuth2 consent. The token is cached at `~/.config/colab-exec/token.json` for subsequent runs.
## Installation
```bash
pip install mcp-server-colab-exec
```
Or run directly with `uvx`:
```bash
uvx mcp-server-colab-exec
```
## Configuration
### Claude Code
Add to your project's `.mcp.json` or `~/.claude/.mcp.json`:
```json
{
"mcpServers": {
"colab-exec": {
"command": "mcp-server-colab-exec"
}
}
}
```
Or via the CLI:
```bash
claude mcp add colab-exec mcp-server-colab-exec
```
### Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"colab-exec": {
"command": "mcp-server-colab-exec"
}
}
}
```
### Gemini CLI
```bash
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