Skip to main content
Glama

colab-fleet

重いCPU/ML作業を無料のGoogle Colabにオフロードして、Claude Code(または任意のMCPクライアント)から利用できるようにします。無料枠ロック、自動ティアダウン、ジョブキュー、チェックポイント再開を備えています。

English · 한국어

高価な処理(MLトレーニング、ハイパーパラメータスイープ、バックテスト)を、自分のマシンではなく無料のGoogle Colabランタイムで実行し、成果物だけを取り戻します。MCPクライアント(Claude Code、pi、…)が単一のツール呼び出し(gpu_submit(...))でジョブを送信し、完了時に結果が自動的に取得されます。

ローカルにGPUや重いライブラリは不要です。無料のColabアカウントで十分です。


公式のcolab CLIとはどう違うのか?

一言で言うと、Googleのcolab CLIは人間がタイプするツールであり、colab-fleetはAIが呼び出すツールです。同じエンジン(公式CLI)に、ガードレールと自動化を重ねたものです。

GoogleはMCPサーバーを提供していません。コマンドラインCLIのみです。このプロジェクトはそれをラップして、エージェントが直接操作できるようにします。

公式colab CLI(生)

colab-fleet(このラッパー)

誰が操作するか

ターミナルで人間が

会話中にgpu_submit(...)を呼び出すAI

課金事故

有料アクセラレータ(A100、TPU)が静かに接続され、課金される

無料枠(cpu/t4)のみ許可、有料はハード拒否 → 支出ゼロ

タイムアウト

デフォルト30秒 — ML実行が途中で切れる

ジョブごとに設定、デフォルトで長め(1時間)+ チェックポイント継続

セッションクリーンアップ

一度忘れると永遠にアイドル状態

完了時に自動停止、孤立セッションも回収

並行性

無防備(無料枠は1セッションのみ → 衝突)

キューで直列化

データ

手動でアップロード/ダウンロード

入力アップロード → 実行 → 出力を自動取得

認証情報

あなたの問題

トークンとメールアドレスがツール出力に漏れることはない

例えるなら、公式CLIはマニュアルトランスミッション、colab-fleetは同じエンジン(無料のColabランタイム)にオートマチック+シートベルト+ナビゲーションを備えたものです。


Related MCP server: mcp-colab-gpu

インストール(3ステップ)

git clone https://github.com/yazzang-homelab/colab-fleet.git
cd colab-fleet
./install.sh              # creates a venv, installs the colab CLI + mcp

install.shが完了すると、残りの2つのステップが表示されます。

1) 自分のGoogleアカウントで一度認証する(ブラウザフローが開きます)

.venv/bin/colab sessions

トークンは~/.config/colab-cli/の下にのみ保存され、このツールを経由することはありません

2) MCPクライアントに登録する

  • Claude Code:

    claude mcp add -s user colab-fleet -- "$PWD/.venv/bin/python" "$PWD/server.py"
  • pi / その他(mcpServers設定に追加):

    "colab-fleet": { "command": "/abs/path/colab-fleet/.venv/bin/python", "args": ["/abs/path/colab-fleet/server.py"] }

確認:エージェントからgpu_doctor()を呼び出し、認証✅が表示されれば完了です。

3) ⭐(任意) インストール後、install.sh(または、見逃した場合は最初のツール呼び出し(gpu_doctor/gpu_submit))がスターを一度だけ要求します。エージェントはそのメッセージを中継するだけで、あなたがスターを押します。ツールがあなたの代わりにgh repo starを実行することはありません(つまり、あなたのGitHubアカウントには触れません)。

gh repo star yazzang-homelab/colab-fleet   # or hit ⭐ on the repo page

これによって機能が制限されることはありません。メッセージを完全に無効にするには、COLAB_FLEET_NO_STAR=1を設定してください。

要件:Python 3.10+、git。ローカルのGPUや重いライブラリは不要です。すべてColab上で実行されます。


使用方法

# 0) health check
gpu_doctor()

# 1) round-trip smoke test (no deps → ephemeral run)
gpu_submit(".../examples/selftest.py", accel="cpu", outputs="/content/selftest.json")
gpu_status(<id>); gpu_logs(<id>); gpu_fetch(<id>)

# 2) parallel hyperparameter sweep (deps + outputs → managed run)
gpu_submit(".../examples/sklearn_gridsearch.py", accel="cpu",
           deps="scikit-learn joblib", args="--folds 5",
           outputs="/content/result.json", timeout=1200)

# 3) train on your own CSV (inputs + deps + outputs → managed run)
gpu_submit(".../examples/train_on_csv.py", accel="cpu",
           deps="scikit-learn pandas joblib",
           inputs="/path/to/data.csv", args="--csv /content/data.csv",
           outputs="/content/model.pkl,/content/metrics.json", timeout=1800)

# real DL that needs a GPU (T4):
gpu_submit(".../my_torch_train.py", accel="t4", deps="torch ...", outputs="...")

成果物は~/.colab-fleet/jobs/job-<id>/に保存されます(環境変数で設定可能)。

ツール

ツール

説明

gpu_submit(script, accel, deps, args, inputs, outputs, ckpt, timeout, retries, label)

ジョブを送信(非同期)、ジョブIDを返す

gpu_status(job_id=0)

ジョブ詳細。0は最近のジョブとアクティブなセッションを返す

gpu_logs(job_id, lines)

ステージごとのログを末尾表示

gpu_fetch(job_id)

成果物パスを一覧表示

gpu_sessions()

アクティブなColabセッション

gpu_stop(name="all")

セッションを停止(コンピュートユニット安全)

gpu_doctor()

ヘルス、認証、キューステータス


ガードレール

  • 無料枠ロックaccel ∈ {cpu, t4}のみ許可。A100/H100/L4/TPUはハード拒否されます(colabq.accel_flags)。そのため、有料のコンピュートユニット消費は構造的にゼロです。また、認識されないGPU名が静かにA100にフォールバックするCLIの落とし穴も無効化します。

  • 自動ティアダウン:すべてのジョブはtry/finallycolab stopを実行します。ディスパッチャーはシャットダウン時に孤立したセッションも回収します。

  • 直列キュー:無料枠では1セッションしか許可されないため、ジョブはflockで直列化され、同時送信はキューに並びます。

  • 認証情報・個人情報の漏洩なし:ツール出力にはトークンやメールアドレスは含まれません。

チェックポイント再開(長時間ジョブ)

スクリプトが定期的にckptパスに保存し、起動時にそれを読み込む場合、ディスパッチャーはセッションが12時間/90分の上限に達したときに最後のチェックポイントを保持し、再試行時に再アップロードします。これにより、ジョブは複数のセッションにまたがって完了します。retriesで再試行回数を設定してください。

環境変数(任意)

COLAB_FLEET_AUTH(oauth2/adc)・COLAB_FLEET_TIMEOUTCOLAB_FLEET_ARTIFACTS(成果物の場所)・COLAB_FLEET_CONFIGCOLAB_FLEET_DBCOLAB_FLEET_BINcolabバイナリのパスを強制)・COLAB_FLEET_NO_STAR=1で一度きりのスター通知を無効化)・COLAB_FLEET_STAR_MARKER(メッセージが表示されたかどうかを記録するファイル。デフォルトは~/.config/colab-fleet/star-nudged)。

トラブルシューティング

症状

原因 / 修正

gpu_doctor 認証❌

一度きりのログインが未完了 → ブラウザフローのために.venv/bin/colab sessionsを実行

401/403

スコープが不足 → 再ログイン(またはCOLAB_FLEET_AUTH=adc + gcloud auth application-default login

GPUが割り当てられない(新規で400)

無料T4の利用可能状況は変動する → accel="cpu"にフォールバック

ジョブがqueuedのまま

ディスパッチャーが実行されていない → .venv/bin/python dispatch.pyで起動

アップロード500 / 失敗

colab uploadはJupyter APIを使用しており、入力あたり約80MBを超えると500エラーになります。サブセットまたは圧縮で縮小してください。アップロード失敗はジョブ失敗として表示されます(決して隠されません)

doneだが成果物がない

リモートスクリプトが例外を発生 → 成功センチネルが出力されない → 失敗として扱われます。gpu_logsでstderrのトレースバックを確認してください

注記

  • Google Colabの無料ランタイムにはフェアユースポリシーがあります。このツールは回避行為(マルチアカウントのローテーション、キープアライブボットなど)を行いません。通常のジョブオフロードとクリーンアップのみです。

  • 無料のCPUランタイムは約2 vCPUです。本当の利点はクリーンなRAMと開発マシンからの分離であり、コア数ではありません。実際のGPUアクセラレーションが必要な場合は、accel="t4"を使用してください。

ライセンス

MIT。駆動するエンジンであるgoogle-colab-cliはApache-2.0です(別ライセンス)。

Maintenance

ActivityMaintained
ResponsivenessNo issues

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
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server that allocates Google Colab GPU runtimes (T4/L4) and executes Python code on them. Lets any MCP-compatible AI assistant run GPU-accelerated code without local GPU hardware.
    3
    9
    MIT