colab-mcp
# Colab-mcp
An MCP server for bridging your local agent to a Colab session in the browser.
# Supported Clients
This MCP server requires client support for `notifications/tools/list_changed` and for the client to be running locally on your device.
Popular clients that fit these criteria include:
- Gemini CLI
- Claude Code
- Windsurf
# Setup
- Install `uv` (`pip install uv`)
- Configure for usage (eg for mcp.json style services):
```
...
"mcpServers": {
"colab-mcp": {
"command": "uvx",
"args": ["git+https://github.com/googlecolab/colab-mcp"],
"timeout": 30000
}
}
...
```
(If you have a non-standard default package index (**Googlers**), you may also need to add `--index https://pypi.org/simple`)
# Issues & Discussions
We are using GitHub [discussions](https://github.com/googlecolab/colab-mcp/discussions) as the
place for issue discussion and feature requests. As discussions mature into action items, we
will add those items as issues. This helps us ensure that issues in the issue tracker are
well-understood, deduplicated, and actionable. For these reasons, **please do <u>NOT</u> open
issues directly.**
# Contributing
We unfortunately don't have the bandwidth to support review of external contributions, and we
don't want user PRs to languish, so we aren't accepting any external contributions right now.
If you have a great idea or pain point, we would love to hear about it on our
[discussions](https://github.com/googlecolab/colab-mcp/discussions) page - the preferred place
for issue discussion and feature requests.
# Internal - For Colab Developers
### Prerequisites
- `uv` is required (`pip install uv`)
- Configure git hooks to run repo presubmits
```shell
git config core.hooksPath .githooks
```
### Gemini CLI setup
```
...
"mcpServers": {
"colab-mcp": {
"command": "uv",
"args": ["run", "colab-mcp"],
"cwd": "/path/to/github/colab-mcp",
"timeout": 30000
}
}
...
```
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusion between tools. The purpose is clearly stated as opening a Colab browser connection.
The single tool name follows a clear snake_case pattern with a verb and object (open_colab_browser_connection). There is no inconsistency since only one name exists.
A single tool is too few for a Colab integration server. The description references 'unlocking notebook editing tools' but none are actually provided, making the tool count inappropriate for the apparent scope.
The server only offers a connection opener, with no actual editing or interaction tools. The functionality implied by 'unlocking notebook editing tools' is completely absent, leaving the surface severely incomplete.