关于 Colab-MCP (unofficial)
Colab-MCP 是 Google Colab 的非官方 MCP 服务,让 AI Agent 通过官方 Colab CLI 管理运行时、执行代码和处理笔记本及文件。它也支持后台任务,并提供受路径限制的文件操作与可选 Google Drive 工具。
主要功能
- 01创建、停止和检查运行时
- 02执行代码并保留内核状态
- 03逐单元格处理本地笔记本
- 04启动及监控后台任务
- 05上传和下载文件夹
- 06可选的 Google Drive 项目与笔记本工具
适用场景
- 01在 Colab GPU 运行训练脚本
- 02逐步运行笔记本并查看输出
- 03将本地数据传入 VM 并取回结果
- 04把需保留的项目数据存入 Google Drive
MCP 相关
该 MCP 服务通过官方 Google Colab CLI 提供运行时、代码执行、笔记本、任务和文件工具;启用后还可提供 Google Drive 工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx colab-cli-mcpCOLAB_MCP_WORKDIRThe only local folder the server reads and writes. Defaults to the current directory.COLAB_MCP_DRIVESet to 1 to enable the optional Google Drive tools (they need a one-time sign-in, see the README).本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
42收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
Colab-MCP
一个 MCP 服务,让 AI Agent(Claude 或任何 MCP 客户端)端到端使用 Google Colab:创建和停止 GPU/TPU 运行时、运行代码、逐个单元格地处理笔记本、启动长期后台任务,以及在 VM 中传入和传出文件与文件夹。
它是 Google 官方 Colab CLI(google-colab-cli)之上的轻量、安全层。它不会重新实现 Colab,也不依赖浏览器标签页。
🇪🇸 文件末尾提供西班牙语摘要。
快速开始
你需要安装 uv 和官方 Colab CLI,并登录一次(macOS 或 Linux):
uv tool install google-colab-cli
colab sessions # sign in ONCE (open the link, paste the code)
claude mcp add colab-cli -e COLAB_MCP_WORKDIR="$HOME/colab-work" -- uvx colab-cli-mcp
这会在 Claude Code 中注册该服务,uvx 会在首次运行时从 PyPI 下载它。关于 Claude Desktop、其他客户端、密钥和可选 Drive 工具,请参阅安装。
状态
- 已通过模拟 CLI 测试(118 项检查;另有 129 项针对模拟 Drive API 的 Drive 检查、28 项 Drive 挂载检查和 17 项本地清理检查;位于
tests/):真实 MCP 客户端通过 stdio 与服务通信,通常在 VM 上运行的代码则在沙盒文件夹中实际执行。 - 已进行一次线上验证。 在真实 Colab 会话中(macOS,Claude 作为客户端):创建运行时、运行代码、运行带日志轮询的长期后台任务、从聊天中挂载 Drive(见下文)并停止会话,期间运行了一项真实批处理工作负载(10 个项目,0 个错误)。这只是一次运行,并非基准测试。
- 已发布到 PyPI,包名为
colab-cli-mcp,版本为 0.1.0。已在干净环境中安装发布的包(通过 pip 和uvx),并通过 stdio 列出其 42 个工具。该检查在 Linux 上运行;尚未检查在 macOS 上通过 Claude 使用uvx的方式。 - 尚未进行线上验证: Google Drive API 工具(
drive_*)、逐个单元格执行笔记本、文件夹上传和下载,以及已知的未知项中列出的行为。其他 MCP 客户端(Cursor、Codex、Windsurf)和 Linux 均未经测试。 - 仅支持 Linux 和 macOS(Colab CLI 不支持 Windows)。
工具(42 个 + 8 个可选 Drive 工具)
| 区域 | 工具 |
|---|---|
| 运行时 | colab_new、colab_ensure_session、colab_sessions、colab_status、colab_runtime_info、colab_restart_kernel、colab_url、colab_usage、colab_stop、colab_install |
| 运行代码 | colab_exec(代码或文件;内核状态会在调用之间保留)、colab_run(一次性:新 VM → 脚本 → 释放) |
笔记本(本地 .ipynb) | colab_notebook_create、_list、_read、_add_cell、_edit_cell、_delete_cell、_move_cell、_clear_outputs、_run_cell、_run_all、_to_script、_delete |
| 长期任务 | colab_job_start、_status、_logs、_cancel、_list |
| 文件 | colab_upload、colab_download、colab_upload_dir、colab_download_dir、colab_ls、colab_rm、colab_log |
| VM 上的 Drive | colab_drive_status、colab_drive_mount_start、colab_drive_mount_finish、colab_drive_project_dir(参见大型项目和 Drive) |
| 本地占用 | colab_local_footprint、colab_local_cleanup(参见文件存放位置) |
典型流程:
- 交互式:
colab_ensure_session(gpu="T4")→colab_notebook_create→ 添加单元格 → 逐个调用colab_notebook_run_cell(变量会保留)→ 读取输出 →colab_stop。 - 批处理:
colab_upload_dir→colab_job_start("python -u train.py")→ 轮询colab_job_logs→colab_download_dir→colab_stop。
Google Drive 项目和笔记本是单独的可选功能(见下文)。以下功能有意完全不包含:通过工具登录、colab auth、repl、console、ssh、edit。这些功能是交互式的,无法通过工具调用使用。
安全模型
- 本地路径仅限于
COLAB_MCP_WORKDIR。在执行任何操作前,都会拒绝../、绝对路径以及指向该目录之外的符号链接。 - 密钥不会传给模型。
COLAB_MCP_ENV_FILE指向本地的NAME=value文件。模型只传递名称(secrets=["OPENROUTER_API_KEY"]);密钥值通过--env传给内核,并会从所有结果中清除。已知限制:命令运行期间,其他本地用户可以在进程列表中看到该值,因为 CLI 会将其作为参数接收。 - 不使用 Shell。 CLI 使用参数列表运行。会话名称、GPU 类型、软件包说明符和作业 ID 都经过验证。所有嵌入 VM 代码且由用户控制的内容都会经过
repr()处理。 - 文件夹传输受到保护。 上传时会跳过
.git、缓存、符号链接和疑似密钥文件(.env、*.pem、*.key等);下载时会拒绝路径逃出目标目录(zip-slip)或超出大小限制的归档文件。 - 不会在你的计算机上直接删除文件。
colab_notebook_delete会将文件移至.colab-mcp-trash/。colab_rm仅操作 VM,并会拒绝类似根目录的路径。 - 输出会截断至
COLAB_MCP_MAX_OUTPUT个字符,并剥除终端颜色代码(回溯信息)。 - 你运行的代码会在 Google 的机器上以你的账号身份执行,并消耗你的计算单元。请停止不再需要的会话。
VM 上的大型项目和 Drive
对于需要跨会话保留的大型数据集、检查点或结果,请在 VM 上挂载 Google Drive。这与下方可选的“Drive notebooks”功能不同,并使用 Colab CLI 自带的登录流程。
- 直接从聊天中挂载,无需终端。
colab_drive_mount_start会在伪终端中运行官方的colab drivemount(CLI 本身不会打开浏览器;它只会打印链接并等待按下 Enter),并在浏览器中打开 Google 的授权页面。聊天中不会再次显示该链接(其中包含你的账号电子邮件);只有在无法打开浏览器或设置了show_link=true时才会返回链接。由你点击“允许”(Agent 不会看到凭据或验证码),然后告知 Agent;colab_drive_mount_finish随后会发送 CLI 正在等待的 Enter,colab_drive_status则会确认挂载状态。只会打开https://*.google.com链接,待处理的挂载会在 15 分钟后终止,并且每个会话最多只能有一个挂载。如果你愿意,也可以在终端中使用colab drivemount -s SESSION。 挂载后,该 VM 上运行的代码即可访问你整个 Drive(Colab 无法限制访问范围);仅在需要时挂载,并在之后停止会话。 - Agent 会调用
colab_drive_project_dir("my-project"),创建/content/drive/MyDrive/Colab-MCP/my-project并返回该路径。请将数据集、检查点和输出放在那里。 - 完成后停止会话。该 Drive 文件夹中的文件会保留;VM 上的其他所有内容都会丢失。
防护措施:文件工具(colab_upload*、colab_download*、colab_ls、colab_rm)会拒绝访问 /content/drive/MyDrive/Colab-MCP/ 之外的任何 Drive 路径(文件夹名称可通过 COLAB_MCP_DRIVE_PROJECTS 配置),包括 ..、相对路径和大小写变体。colab_drive_status 绝不会列出你的文件。
明确说明剩余风险:Drive 挂载后,VM 上运行的任何代码(colab_exec、colab_run、作业、笔记本单元格)都可以读取和修改你 Drive 中的所有内容;路径防护仅适用于本服务的文件工具,且无法检测 VM 上创建的符号链接。仅在需要时挂载,检查你运行的代码,并在之后停止会话。
文件存放位置(以及电脑上会留下多少内容)
| 位置 | 内容 | 原因 |
|---|---|---|
| Colab VM 磁盘(在 T4 上观察到约 200 GB 可用空间 ⚠️ 不保证) | 数据集、训练任务及所有大型内容 | 速度快、免费,会在会话结束时清除 |
Drive,文件夹 Colab-MCP/<project>/ | 必须持久保存的笔记本和结果 | 会话结束后仍会保留;这是此工具唯一能访问的 Drive 内容 |
| 你的电脑 | 几乎没有:编辑笔记本时使用的临时工作副本 | 会自动清理(见下文) |
本地占用空间规则(footprint.py):
- 传输用的压缩包会在使用后立即删除,并在 1 小时后清理;保存的图表会在 2 天后清理(
COLAB_MCP_IMAGE_DAYS);本地“删除”的笔记本会在 7 天后清理(COLAB_MCP_TRASH_DAYS,0= 保留);Drive 笔记本的工作副本会在 24 小时后清理(COLAB_MCP_DRIVE_COPY_HOURS,0= 保留),并在保存时立即删除。服务器启动时以及执行colab_local_cleanup时会运行清理。 - 只会删除
.colab-mcp/和.colab-mcp-trash/内的文件,不会跟随符号链接。不会触碰你自己的笔记本和数据。 - 下载前会进行限制:磁盘必须至少保留
COLAB_MCP_MIN_FREE_GB(默认值为 5)可用空间,工作文件夹不能超过COLAB_MCP_WORKDIR_MAX_GB(默认值为 20,0= 不设上限)。colab_local_footprint会显示这些数值。大型数据请保留在 VM 或 Drive 中,只下载结果。
Google Drive:项目和笔记本(可选启用)
默认关闭。设置 COLAB_MCP_DRIVE=1 后(设置 Drive 时,安装程序会设置此变量),以下工具才会出现,而且仅限这些工具:
| 工具 | 功能 |
|---|---|
drive_sign_in | 在你的电脑上打开浏览器窗口,由你点击“允许”。聊天中不会传递任何代码或令牌 |
drive_project_create / drive_project_list | 在 Colab-MCP 内为每个 Colab 项目创建一个文件夹。可以创建文件夹,但不能删除或重命名 |
drive_notebook_create | 创建笔记本(空白起始笔记本,或移除输出内容的本地 .ipynb),可选择放入项目文件夹 |
drive_notebook_list | 列出此服务器创建的笔记本 |
drive_notebook_open / drive_notebook_save | 将笔记本下载到本地临时副本,使用 colab_notebook_* 工具进行编辑,再将内容写回同一文件。保存后会删除本地副本 |
drive_notebook_delete | 将其中一个笔记本移至 Drive 的废纸篓(不会永久删除) |
Drive 中的目录结构:Colab-MCP/<project>/<notebook>.ipynb。Google 权限(drive.file)只能访问此应用创建的文件和文件夹,因此应用无法看到你已有的“Colab Notebooks”文件夹及其他所有内容。
skills/colab-drive-notebooks/SKILL.md 中的技能会严格限制 Agent 只能执行这些操作:将该文件夹复制到 ~/.claude/skills/(Claude Code),或将其作为技能添加到你的客户端中。
各方的责任
任何人都不会共享凭据。**每位用户都要自行登录,令牌仅保存在其自己的磁盘上。**你只需从两个 OAuth 客户端(如下所示)中选择一个;此项目绝不会接触你的令牌。模型看不到登录链接、代码或令牌。
快速入门(所有用户)
从 PyPI 安装:
uvx --from colab-cli-mcp colab-cli-mcp-drive login # asks once how you want to sign in, remembers it, signs you in
claude mcp add colab-cli -e COLAB_MCP_WORKDIR="$HOME/colab-work" -e COLAB_MCP_DRIVE=1 -- uvx colab-cli-mcp
从此仓库的克隆版本安装时,bash install.sh 会询问“现在设置 Drive 吗?”,运行下面的一次性选择流程,并注册启用了 Drive 工具的服务。手动操作:
git clone https://github.com/amgallego8/Colab-MCP ~/Colab-MCP && cd ~/Colab-MCP
uv sync
uv run colab-cli-mcp-drive login # same login, run from the clone
login 会引导你创建自己的 Google Cloud“桌面应用”客户端(约需 10 分钟,只需设置一次,且免费;步骤见下文)。提供下载的 JSON 文件路径后,它会为你保存该文件(0600)。你的项目由你向 Google 负责。此后,登录只需:浏览器打开一个链接,你点击“允许”,就完成了。无需粘贴任何代码。
目前尚未提供共享的一键式客户端。 如果此仓库达到 1,000 个星标,维护者计划发布一个(现成的客户端,这样登录时就完全无需设置 Google Cloud)。这只是计划,并非承诺。其代码已经存在:如果某个构建版本包含 colab_cli_mcp/shared_client.json,login 就会提供一个包含共享和自有选项的菜单。
未经明确选择(通过终端回答或使用 --shared),绝不会使用共享客户端。你的选择会保存在 ~/.config/colab-mcp/drive/preference.json 中。此后,当某个 Drive 工具需要访问权限且没有有效令牌时(首次使用,或处于测试模式的应用在 7 天后过期),服务本身会打开浏览器中的授权页面并等待你点击;之后你需要重新发起请求。两种情况下,登录流程、drive.file 范围、令牌文件和所有防护措施都完全相同。
然后,在你的 MCP 客户端中,保持 drive_notebook_delete 的每次调用都需审批设置为启用——该提示才是真正由人工进行的确认;服务无法强制执行此设置。uvx --from colab-cli-mcp colab-cli-mcp-drive status(或在克隆版本中运行 uv run colab-cli-mcp-drive status)可以显示已配置的内容。
如需退出:运行 colab-cli-mcp-drive logout(删除令牌并在 Google 撤销授权);如果无法确认撤销,请前往 https://myaccount.google.com/permissions 移除该应用。
创建自己的客户端(login 会要求你完成的操作)
- 在 Google Cloud 控制台中创建项目并启用 Google Drive API(指南)。
- 配置授权同意屏幕 / Google Auth Platform(指南):在 Audience 下选择 External,并在 Test users 下添加你自己;在 Data Access → Add or Remove Scopes 下仅添加
.../auth/drive.file。 - 前往 Google Auth platform → Clients → Create Client → Desktop app(Google 的步骤)。下载 JSON 文件,并将其路径提供给
login。
维护者指南:发布共享客户端
按上述步骤创建客户端(最好使用专用的 Google 账号和项目),然后将 JSON 文件放到 colab_cli_mcp/shared_client.json,并有意将其提交(git add -f;该文件默认被 git 忽略)。桌面应用客户端密钥在设计上并非机密,但项目、项目的授权同意屏幕(支持邮箱、隐私政策链接)以及 Google 的任何验证要求都将由你负责。请参阅 TERMS.md。
威胁模型(提供和不提供的保护)
| 层级 | 提供的保护 |
|---|---|
仅限 drive.file 范围 | 令牌只能访问此 OAuth 客户端创建的文件。即使以下所有措施都失效,它也无法读取或删除你 Drive 中的其他内容。Google 将此范围归类为非敏感。 |
| 你自己的 OAuth 客户端 | 其他用户或供应商的客户端无法访问你的文件,而且你可以在自己的项目中撤销整个客户端。 |
| 令牌处理 | 文件权限为 0600;如果文件可被组用户或其他用户读取,则拒绝使用;如果令牌拥有 drive.file 以外的任何范围,则拒绝使用。任何工具都不会返回令牌。与 Colab CLI 的令牌分开存储(后者的权限范围更广)。 |
| 工具范围 | 创建文件夹;创建、列出、打开、保存和移入回收站此服务创建的笔记本。不永久删除、不删除文件夹、不分享、不管理权限、不读取其他文件、不接受自由格式查询或 ID。有一项测试会断言从未使用 DELETE 请求,也从未使用权限、导出或复制端点。 |
| 文件保护(打开、保存、删除) | 文件必须带有此服务的标记,必须是 Colab 笔记本,归你所有,直接位于应用文件夹或其某个项目文件夹中,且未移入回收站。删除时还必须重新输入文件的准确名称。保存只会更改内容,不会更改名称、位置或分享设置。 |
| 限额与审计记录 | 每小时:创建 20 个笔记本、创建 10 个项目文件夹、保存 60 次、删除 5 次、登录尝试 6 次(COLAB_MCP_DRIVE_MAX_CREATES_PER_HOUR、_MAX_PROJECTS_PER_HOUR、_MAX_SAVES_PER_HOUR、_MAX_DELETES_PER_HOUR、_MAX_LOGINS_PER_HOUR);仅追加的审计日志(audit.log,0600),绝不记录内容。 |
| 内容卫生 | 从文件上传的笔记本会移除其输出;保存时会保留输出(使用 keep_outputs=False 可关闭)。如果上传或保存内容包含机密文件中的值,则会拒绝操作。从 Drive 读取的名称会剔除控制字符和双向文本字符,并标记为数据。 |
明确说明剩余风险。 没有人能声称“完全安全”;仍存在以下风险:
- 被提示词注入或出错的 Agent 仍可能创建无用笔记本(受速率限制),或在你批准调用后将此服务创建的笔记本移入回收站。你仍可从 Drive 回收站中恢复这些笔记本。
- 名称确认检查可以防止意外操作,但无法阻止决意重复输入名称的模型;客户端中的人工审批提示才是真正的控制措施。
- 任何能够读取你用户帐户文件的人,都能在你退出登录前使用你的令牌。磁盘加密和锁定帐户是你自己的责任。
- 你创建的笔记本可能包含稍后在 Colab 中以你的帐户运行的代码;请检查你打开的内容。
- 在测试模式下,Google 会在 7 天后使外部应用的刷新令牌过期,因此你可能需要每周重新登录。
- 如果运行在已挂载 Drive 的虚拟机上的代码也创建了名为
Colab-MCP的 Drive 文件夹,Drive 中最终可能出现两个同名文件夹,而此工具会将它们视为不同文件夹(⚠️ 尚未验证)。每个项目最好只使用一种方式。 - 尚未在实际 Google Drive 上运行(参见已知未知事项)。
环境变量:COLAB_MCP_DRIVE(启用)、COLAB_MCP_DRIVE_COPY_HOURS、COLAB_MCP_DRIVE_DIR(默认值为 ~/.config/colab-mcp/drive)、COLAB_MCP_DRIVE_CLIENT、COLAB_MCP_DRIVE_TOKEN、COLAB_MCP_DRIVE_AUDIT、COLAB_MCP_DRIVE_FOLDER(默认值为 Colab-MCP)。
安装
从 PyPI 安装(推荐)
需要安装 uv(curl -LsSf https://astral.sh/uv/install.sh | sh)。请先安装并登录官方 Colab CLI:
uv tool install google-colab-cli
colab sessions # sign in ONCE (open the link, paste the code)
Claude Code:
claude mcp add colab-cli -e COLAB_MCP_WORKDIR="$HOME/colab-work" -- uvx colab-cli-mcp
Claude Desktop(claude_desktop_config.json;如果应用无法找到 uvx,请使用 uvx 的完整路径,参见 which uvx):
{
"mcpServers": {
"colab-cli": {
"command": "uvx",
"args": ["colab-cli-mcp"],
"env": { "COLAB_MCP_WORKDIR": "/Users/YOU/colab-work" }
}
}
}
**其他 MCP 客户端:**任何能够启动 stdio 服务的客户端都可以运行 uvx colab-cli-mcp(未经测试,参见 状态)。
可选的机密文件(放在任何代码仓库之外,且仅你本人可读取)和 Drive 工具:
mkdir -p ~/.config/colab-mcp
printf 'OPENROUTER_API_KEY=your-key-here\n' > ~/.config/colab-mcp/secrets.env
chmod 600 ~/.config/colab-mcp/secrets.env
将 -e COLAB_MCP_ENV_FILE="$HOME/.config/colab-mcp/secrets.env" 添加到上面的命令中(或者在 JSON 的 env 下添加相同的键)。若要使用可选的 Drive 工具,请添加 -e COLAB_MCP_DRIVE=1,并按照 Google Drive 中的说明登录一次。
每位使用者都必须使用自己的 Google 账号重复这些步骤:登录令牌属于个人,不能共享。
从源代码安装(用于修改代码)
在克隆的代码仓库中运行 bash install.sh(macOS/Linux)。脚本会在安装任何内容之前征求许可,然后登录 Colab 并将服务注册到 Claude Code(或输出 Claude Desktop 配置)。手动步骤如下。
# 1. uv and the official CLI
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install google-colab-cli
# 2. Sign in ONCE (open the link, paste the code)
colab sessions
# 3. This server
git clone https://github.com/amgallego8/Colab-MCP ~/Colab-MCP
可选的机密文件(放在任何代码仓库之外,且仅你本人可读取):
mkdir -p ~/.config/colab-mcp
printf 'OPENROUTER_API_KEY=your-key-here\n' > ~/.config/colab-mcp/secrets.env
chmod 600 ~/.config/colab-mcp/secrets.env
注册到 Claude Code:
claude mcp add colab-cli \
-e COLAB_MCP_WORKDIR="$HOME/colab-work" \
-e COLAB_MCP_ENV_FILE="$HOME/.config/colab-mcp/secrets.env" \
-- uv run --directory ~/Colab-MCP colab-cli-mcp
注册到 Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"colab-cli": {
"command": "uv",
"args": ["run", "--directory", "/Users/YOU/Colab-MCP", "colab-cli-mcp"],
"env": {
"COLAB_MCP_WORKDIR": "/Users/YOU/colab-work",
"COLAB_MCP_ENV_FILE": "/Users/YOU/.config/colab-mcp/secrets.env"
}
}
}
}
每位使用者都必须使用自己的 Google 账号重复这些步骤:登录令牌属于个人,不能共享。
环境变量
| 变量 | 默认值 | 用途 |
|---|---|---|
COLAB_MCP_WORKDIR | 当前目录 | 服务唯一会访问的本地文件夹 |
COLAB_MCP_ENV_FILE | — | 包含机密信息的 NAME=value 文件 |
COLAB_MCP_AUTH | CLI 默认值 | oauth2 或 adc(CLI 的 --auth) |
COLAB_MCP_MAX_OUTPUT | 20000 | 每次调用返回的最大字符数 |
COLAB_MCP_MAX_UPLOAD_MB | 100 | 单个文件/zip 上传上限(CLI 会在一个请求中发送文件) |
COLAB_MCP_MAX_DOWNLOAD_MB | 1024 | 解压后目录下载上限 |
COLAB_BIN | colab | CLI 可执行文件的路径 |
COLAB_MCP_MIN_FREE_GB | 5 | 下载后必须保留的可用磁盘空间 |
COLAB_MCP_WORKDIR_MAX_GB | 20 | 工作文件夹的空间上限(0 = 不设上限) |
COLAB_MCP_IMAGE_DAYS / COLAB_MCP_TRASH_DAYS / COLAB_MCP_DRIVE_COPY_HOURS | 2 / 7 / 24 | 已保存图表、本地移至废纸篓的笔记本和 Drive 工作副本的清理时限(0 = 保留废纸篓内容/副本) |
COLAB_MCP_DRIVE_PROJECTS | Colab-MCP | 当 VM 挂载 Drive 时,文件工具在 Drive 中唯一可使用的文件夹(位于 MyDrive 下) |
笔记本的工作方式
笔记本是工作目录中的普通 .ipynb 文件,使用 nbformat 在本地编辑,因此编辑时不需要运行时。colab_notebook_run_cell 通过 colab exec 将一个单元格发送到运行时;内核会在多次调用之间保留变量,并将单元格的输出(文本、错误、显示的图表)写回笔记本。单元格通过编号(稳定)或索引指定。图表保存在 .colab-mcp/images/ 下。
使用 .ipynb 文件调用 colab_exec 会运行整个笔记本,CLI 会将 <name>_output.ipynb 保存到该文件旁边。
尚待确认的事项(需通过实际 Colab 验证)
这些内容来自对 CLI 源码和文档的阅读。状态中所述的实际运行未涵盖这些事项:
- 跨
exec调用保留内核变量(源码会重复使用同一个内核 ID,因此应该可以)。 - 单元格成功/失败检测依赖 Colab 内核中是否提供
get_ipython().run_cell。 --output-image是否会保存所有图像格式(目前处理 PNG/JPEG 显示数据)。- 实际上传大小限制(CLI 会在单个请求中发送文件;100 MB 上限是保守估计)。
- 通过 CLI 运行时,内核能否读取 Colab Secrets(
userdata)——文档未说明。请改用secrets=[...]。 - Google Drive(可选,见下文):Google Drive 文档中未找到 Colab MIME 类型
application/vnd.google.colaboratory。服务会在每次创建后检查 Drive 中存储的内容,若不一致则撤销创建操作,但尚未在真实 Drive 上运行过。 - 未经验证的 Google Cloud 应用所有者能否在应用保持未经验证的情况下使用它,且不受“Testing”模式下刷新令牌 7 天过期的限制(Google 文档称,处于 Testing 状态的外部应用,其刷新令牌会在 7 天后过期;尚未确认未经验证且处于“In production”状态的应用适用哪些规则)。
开发
pip install "mcp<2" nbformat google-auth google-auth-oauthlib requests
python tests/test_server.py # the Colab tools, with a simulated CLI
python tests/test_drive.py # the Drive tools, with a simulated Drive API
python tests/test_footprint.py # local cleanup and disk guards
python tests/test_mount.py # Drive mount from the chat, with a simulated CLI
固定使用 SDK 版本 mcp<2 是有意为之:2.x 将 FastMCP 重命名为 MCPServer。
使用条款与隐私
请参阅 TERMS.md:维护者不运营服务,也不收集数据;本地存储的内容;用户责任;使用各登录选项时由谁向 Google 承担责任;以及免责声明。
许可证
Apache License 2.0——请参阅 LICENSE。版权所有 2026 Colab-MCP 贡献者(amgallego8)。本项目封装的 Google 官方 Colab CLI 是独立作品,同样采用 Apache-2.0 许可证,且不包含在此处。
西班牙语摘要
MCP 服务,让 Agent 从头到尾使用 Google Colab:创建和停止 GPU/TPU 运行时、执行代码、逐单元格处理笔记本、在后台启动长时间运行的任务,以及在 VM 与本地之间传输文件和文件夹。此服务封装了 Google 的 官方 Colab CLI。
- **状态:**已通过模拟 CLI 测试(292 项检查:118 + 129 + 28 + 17)。已在真实 Colab 会话中进行过一次实际验证(macOS 和 Claude):创建运行时、执行代码、运行带日志的长时间任务,以及通过聊天挂载 Drive。尚未进行实际验证:
drive_*工具、逐单元格处理笔记本、文件夹、其他客户端(见“尚待确认的事项”)。 - **安全性:**本地路径被限制在
COLAB_MCP_WORKDIR内;密钥保存在本地文件中,绝不会返回给模型;不提供 Shell;删除笔记本会移至可恢复的回收站。 - **安装:**通过 PyPI 安装
uvx colab-cli-mcp(或从源码使用install.sh);每个人都要使用自己的 Google 账号重复“安装”中的步骤。会话令牌为个人所有。 - **Google Drive(可选):**在你的 Drive 中使用
Colab-MCP/<project>/存放项目文件夹和 Colab 笔记本(创建、打开、保存、移至回收站),除此之外不做其他操作。你只需一次性创建自己的 Google 客户端(目前尚未发布共享客户端);此后需要时,服务会自行打开浏览器,你只需点击“允许”(代码和令牌绝不会经过聊天)。权限为drive.file:只能查看此工具创建的内容。你的电脑几乎不会留下文件:临时文件会自动清理,大型文件存放在 VM 磁盘或 Drive 中。有一个 skill(skills/colab-drive-notebooks)会将 Agent 限制在这些操作范围内。请参阅“Google Drive”和威胁模型,以及其中说明的剩余风险。尚未针对真实 Drive API 进行测试。 - **费用:**你执行的操作会消耗 Colab 计算单元。请停止不再使用的会话。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。