colab-drive-mcp
Prepares and edits notebooks compatible with Google Colab, normalizing Colab-specific metadata during downloads, and providing a URL to open notebooks in Colab.
Synchronizes, inspects, and edits .ipynb notebooks stored in Google Drive, including listing, uploading, downloading, and comparing local and remote copies.
Manages Jupyter notebook (.ipynb) files locally, including adding, updating, deleting cells, and clearing outputs.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@colab-drive-mcplist my notebooks in Drive"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Colab Drive MCP
An MCP server for safely inspecting, editing, and synchronizing
Google Colab-compatible .ipynb notebooks through Google Drive.
This is a notebook file synchronization server, not a notebook execution
service. It transfers and edits .ipynb files through Google Drive. It
does not connect to Colab runtimes, execute cells, click Run all, keep
sessions alive, automate the Colab browser UI, or bypass Colab limits.
Use this MCP when an AI agent needs to prepare a notebook locally, synchronize it with Drive, inspect completed outputs, or return an edited notebook to the user. Open and execute the synchronized notebook separately in Colab, Jupyter, VS Code, or another notebook runtime.
Features
Inspect and edit notebook cells without loading the entire notebook.
Create, search, copy, upload, and download notebooks.
Report live upload and download progress to MCP clients that request it.
Compare local and Drive notebook copies using Drive metadata and content MD5.
Keep local file access inside a configured root directory.
Normalize Colab-specific stream output metadata during downloads.
Diagnose Google Drive setup without unexpectedly opening a browser.
Return actionable errors for missing credentials, expired authorization, permissions, missing files, and rate limits.
Related MCP server: colab-mcp
Non-goals
Starting, controlling, or monitoring a Google Colab runtime.
Detecting whether a Colab runtime is connected, busy, or executing a file.
Executing notebook cells locally or remotely.
Browser automation, automatic
Run all, or unattended Colab sessions.Circumventing Colab quotas, idle timeouts, access controls, or usage policies.
Deploying or running the project contained inside a notebook.
AI Contract
The MCP initialization response includes server-wide instructions that define this project as file synchronization only. Tool descriptions repeat the same boundary where it matters.
manifest.0 provides the same purpose, capabilities, and
non-goals as a typed Zero language contract for agents and repository tooling.
Tools
Setup
get_google_drive_status: diagnose dependencies, credentials, token, and scope.authorize_google_drive: explicitly open the Google OAuth browser flow.
Local notebooks
list_local_notebooks,get_local_notebook,create_local_notebookadd_local_cell,update_local_cell,delete_local_cellsearch_local_cells,clear_local_outputs
Google Drive
list_drive_notebooks,pull_drive_notebook,push_local_notebookget_notebook_sync_status,copy_drive_notebook,get_colab_url
pull_drive_notebook and push_local_notebook synchronize notebook files.
They send MCP progress notifications when the client supplies a progress token,
but clients decide whether and how to display those notifications. They never
execute notebook code. get_colab_url returns a URL but does not open a browser.
get_notebook_sync_status compares the local notebook's upload representation
with Drive's MD5 checksum and returns in_sync, differs, remote_only, or
unknown. It also returns Drive metadata such as modification time and version.
It cannot determine whether Colab is currently executing the notebook because
Google Drive does not expose Colab runtime activity.
Install
Run directly from PyPI with uvx:
COLAB_MCP_ROOT="$HOME/notebooks" uvx --from 'colab-drive-mcp[drive]' colab-drive-mcpOr install from source:
git clone https://github.com/YummyTastyCode/colab-drive-mcp.git
cd colab-drive-mcp
python3 -m venv .venv
.venv/bin/pip install -e '.[drive]'Run the server:
COLAB_MCP_ROOT="$HOME/notebooks" .venv/bin/colab-drive-mcpLocal tools can access only .ipynb files below COLAB_MCP_ROOT.
The server is published in the official MCP Registry as:
io.github.YummyTastyCode/colab-drive-mcpGoogle Drive Setup
First call get_google_drive_status. It does not open a browser or modify
files. Its response explains the next required step.
To enable Drive:
Create a Google Cloud project.
Enable the Google Drive API.
Configure the OAuth consent screen and add your account as a test user.
Create an OAuth Client ID with application type Desktop app.
Download the JSON to
~/.config/colab-mcp/credentials.json.Call
authorize_google_driveand complete the Google sign-in flow.
The resulting token is stored at ~/.config/colab-mcp/token.json.
Override these locations with:
COLAB_MCP_GOOGLE_CREDENTIALSCOLAB_MCP_GOOGLE_TOKEN
Never commit OAuth credentials or tokens.
Drive Access Modes
The default mode is file, using Google's narrower drive.file scope:
COLAB_MCP_DRIVE_ACCESS=fileThis mode can access files created or explicitly opened by this OAuth app. It cannot reliably list all existing notebooks in a user's Drive.
To find and update existing Drive notebooks, explicitly enable full access:
COLAB_MCP_DRIVE_ACCESS=fullChanging access modes may require deleting token.json and calling
authorize_google_drive again.
Codex Configuration
codex mcp add colab-drive \
--env COLAB_MCP_ROOT="$HOME/notebooks" \
--env COLAB_MCP_DRIVE_ACCESS=file \
-- /absolute/path/to/colab-drive-mcp/.venv/bin/colab-drive-mcpVS Code Configuration
Add this server to the VS Code MCP configuration:
{
"servers": {
"colab-drive": {
"type": "stdio",
"command": "/absolute/path/to/colab-drive-mcp/.venv/bin/colab-drive-mcp",
"env": {
"COLAB_MCP_ROOT": "/absolute/path/to/notebooks",
"COLAB_MCP_DRIVE_ACCESS": "file"
}
}
}
}Colab Compatibility
Google Colab may add a metadata property to stream outputs. That property is
invalid under the standard nbformat v4 schema. During Drive downloads, this
server removes only that incompatible property. Stream text and all other
outputs are preserved.
Security
OAuth tokens stay on the local machine.
Local tools are restricted to
COLAB_MCP_ROOT.Authorization requires an explicit
authorize_google_drivecall.Use
fileaccess unless full Drive discovery is required.Review actions before overwriting an existing Drive file.
This project is not affiliated with or endorsed by Google.
Development
.venv/bin/pip install -e '.[drive,test]'
.venv/bin/pytestAvailable Tools
16 toolsadd_local_cellC
Add a cell to a local notebook.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| cell_type | Yes | ||
| source | Yes | ||
| index | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond the basic action. For example, it doesn't specify what happens if index is omitted (append vs. insert), or if the operation can overwrite existing cells. With no annotations, the description should provide this context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While the description is short, it is under-specified rather than concise. It should include more details to be useful and still remain brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters and no output schema, yet the description provides no information about return values, error conditions, or side effects. This is insufficient for an agent to use the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no information about the parameters. Since schema description coverage is 0%, the agent has no help understanding what 'path', 'cell_type', 'source', or 'index' mean or how they should be used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Add), the object (a cell), and the target (a local notebook). It is specific enough to identify the tool's purpose among siblings with different verbs like update or delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like update_local_cell or delete_local_cell. No prerequisites or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
authorize_google_driveA
Open an explicit Google OAuth flow and save the resulting local token.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the action but lacks details on side effects (saving token to disk), prerequisites, or behavior if already authorized. No annotations provided to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words, front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description covers the core action. However, could mention that authorization is needed before other Drive operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; baseline 4 as per rule for 0 params. Description adds no param info but none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool opens a Google OAuth flow and saves a token, which is specific and distinct from sibling tools like get_google_drive_status or push_local_notebook.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for authorization before Drive operations, but no explicit guidance on when to use vs alternatives nor when to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clear_local_outputsC
Clear outputs and execution counts from a local notebook.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It states outputs are cleared, which is destructive, but does not mention if the operation is reversible, if it affects other parts of the notebook, or if specific permissions are needed. The behavioral impact is only partially described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise, but it is too brief to be informative. It lacks structure and front-loads the key action but omits necessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter, no output schema, and no annotations, the description is insufficient. It does not explain what 'path' means, what the result of clearing outputs is, or how to handle the action. More context is needed for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, 'path', is not explained in the description. With 0% schema description coverage, the agent has no idea what 'path' refers to (e.g., file path, notebook ID). This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('clear outputs and execution counts') and the resource ('local notebook'), which is specific and distinct from siblings. However, it does not explicitly differentiate from similar tools like 'delete_local_cell' or 'update_local_cell'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives. For example, it does not mention that this is useful for cleaning a notebook before sharing or that it is a destructive operation. No exclusions or when-not-to-use are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_drive_notebookC
Copy a notebook file in Google Drive without executing it.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | ||
| name | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states the operation does not execute the notebook, which is a key behavioral trait. However, with no annotations provided, it fails to disclose other aspects like permission requirements or side effects on the original file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core action and a key constraint. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple copy tool with only two parameters, the description provides the essential action. However, it lacks details on return values (no output schema) and does not integrate with sibling tools to indicate when copying is preferable over other operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not explain the purpose of the two parameters (file_id and name). This leaves the agent unclear on what values to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it copies a notebook file in Google Drive and adds the nuance that it does so without executing it. This specifies the verb and resource, but does not differentiate from siblings like pull_drive_notebook or push_local_notebook, which have distinct purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives such as pull_drive_notebook or push_local_notebook. There is no mention of prerequisites or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_local_notebookC
Create a new Colab-compatible local notebook.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| title | No | ||
| kernel_name | No | python3 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose side effects. It states creation, but does not mention behavior if file exists, permissions needed, or any destructive actions. Minimal behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is extremely short (one sentence). While concise, it is under-sized for a tool with three parameters and no schema descriptions, leaving critical information gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no annotations, and no output schema, the description is incomplete. It does not specify return value, error conditions, or file creation behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. Description adds no meaning to parameters (path, title, kernel_name). It does not explain their roles or requirements beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Create' and resource 'Colab-compatible local notebook'. It distinguishes from siblings like list_local_notebooks by implying creation vs listing. However, it lacks detail about the file format or location.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like pull_drive_notebook or copy_drive_notebook. The description does not mention prerequisites or typical contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_local_cellC
Delete a cell from a local notebook.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| index | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only states 'delete', implying a destructive action, but lacks detail on irreversibility, impact on notebook state, or whether it affects other cells. Beyond the obvious, no behavioral traits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. However, it is under-specified; while concise, it sacrifices informativeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and simple parameters, the description is minimal. It does not explain the effect on the notebook (e.g., shifting indices), return values, or error conditions, which an agent needs to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It does not explain 'path' (notebook file path?) or 'index' (position of cell?), leaving the agent to infer. This is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'a cell from a local notebook'. It distinguishes from siblings like 'add_local_cell' and 'update_local_cell' by specifying deletion, but does not explicitly differentiate its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No context about prerequisites, such as requiring the notebook to exist, or when not to use it (e.g., if a cell is critical).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_colab_urlB
Return a Colab URL for a Drive notebook; this does not open a browser.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only mentions one behavioral trait (no browser opening) but fails to disclose error handling, authentication requirements, or side effects. With no annotations provided, more detail is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 14 words, containing only essential information. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description is minimal but sufficient to convey the primary purpose. However, it lacks information on error cases, prerequisites, or return format beyond the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'file_id' is explained implicitly by the description mentioning 'Drive notebook', which clarifies the expected input type. However, the description does not provide explicit format or validation info, and schema description coverage is 0%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns a Colab URL for a Drive notebook, distinguishing it from sibling tools like copy_drive_notebook or get_local_notebook. It also clarifies that it does not open a browser, which is an important behavioral detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs alternatives. It does not mention prerequisites, context, or scenarios where this tool is preferred over other notebook-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_google_drive_statusA
Check Google Drive setup and authorization without opening a browser.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It states the tool checks setup without browser, but does not disclose behavior such as what happens if not authorized, what the return value is, or whether it is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no unnecessary words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple zero-parameter tool with no output schema, the description is adequate but lacks detail about what 'status' includes (e.g., success/failure indicators). It could be more informative about the expected output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%), so baseline is 4. Description adds context about what the tool does, which is sufficient given zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb ('check') and resource ('Google Drive setup and authorization'), and clearly distinguishes from sibling tools which focus on notebooks and cells rather than status checking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage (check setup/authorization before using Drive) but does not explicitly state when to use versus alternatives like authorize_google_drive, nor does it provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_local_notebookC
Read a local notebook summary and its cells.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| include_source | No | ||
| max_source_chars | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. Only states 'Read', implying non-destructive, but omits details on what constitutes a 'summary', how cells are structured, or any performance implications. Lacks transparency on parameter effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is clear and to the point, but at the cost of omitting necessary details. Efficient but not over-elaborate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three parameters, no output schema, and no annotations, the description is insufficient. Missing return value format, parameter explanations, and behavioral edge cases. Agent would need to guess or inspect further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters (path format, include_source impact, max_source_chars limit). Relies entirely on schema, which lacks descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Read' and resource 'local notebook' with output described as 'summary and its cells'. Distinguishes from sibling tools like list_local_notebooks, which lists rather than reads a specific notebook.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like list_local_notebooks or search_local_cells. No context provided for prerequisites or common use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notebook_sync_statusC
Compare Drive and local notebook state; cannot detect Colab runtime activity.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | ||
| local_path | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses one behavioral limitation (cannot detect Colab runtime) but omits other important traits like whether the operation is read-only, requires authorization, or has side effects. The name implies read-only, but the description should be explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one sentence) and front-loaded with the core action followed by a limitation. However, it could be more informative while remaining brief. Still, it earns a high score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema, and schema descriptions, the description does not provide sufficient context. It omits what the output looks like, how to interpret the sync status, and guidance on parameter usage, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the input schema provides no property descriptions. The tool description fails to explain what file_id and local_path represent or how they should be used. This is a critical gap for correct parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Compare Drive and local notebook state') with specific verb and resource. It also provides a limitation ('cannot detect Colab runtime activity'), which helps differentiate from sibling tools like get_google_drive_status or get_local_notebook.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not specify when to use this tool vs alternatives. It only mentions a limitation (cannot detect Colab runtime), which implicitly advises against using it for that purpose, but it lacks explicit usage context or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_drive_notebooksB
List synchronized notebook files visible through the configured Drive access.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. It mentions 'configured Drive access' implying dependency on authorization, but does not state read-only nature, rate limits, or required permissions. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 10 words, clear verb front-loaded. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing important context: parameter usage, dependency on prior authorization (sibling authorize_google_drive), and output format. Output schema exists but doesn't compensate for lack of usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description does not explain the two parameters 'query' and 'limit'. Schema coverage is 0% with no descriptions in schema either. Agent has no clue what query filters or limit does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List', resource 'synchronized notebook files', and scope 'visible through configured Drive access'. It distinguishes from sibling tools like list_local_notebooks which list local files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. Implied by context that this lists Drive-synced notebooks, but no direct comparison or when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_local_notebooksC
List local .ipynb notebooks under COLAB_MCP_ROOT.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond the basic action. Without annotations, the description should clarify read-only nature, potential side effects, or response characteristics. It only states the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at a single sentence. While it is not verbose, it lacks necessary details that would justify a top score. It is not wasteful, but could be expanded slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has two parameters and no annotations, the description is incomplete. It does not explain parameter behavior or the return structure (even though an output schema exists). The description leaves ambiguity about query functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning to the input schema parameters. The 'query' and 'limit' parameters are unexplained; the description does not clarify how 'query' filters or how 'limit' works. With 0% schema coverage, the description should compensate but fails to do so.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: listing local .ipynb notebooks under a specific root directory (COLAB_MCP_ROOT). The verb 'list' and resource 'local notebooks' are specific, and the tool is clearly distinguished from siblings like list_drive_notebooks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives. There is no mention of prerequisites, or when to use list_drive_notebooks instead. The description lacks contextual cues for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pull_drive_notebookC
Synchronize a Drive notebook file into COLAB_MCP_ROOT without executing it.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | ||
| local_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It only discloses 'without executing it', but omits critical behaviors like overwrite semantics, directory creation, error handling for missing file_id, or any required authorization. This is insufficient for safe and correct invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, but it sacrifices necessary detail. While concise, it is under-specified, making it less helpful than a slightly longer description with key parameter and behavioral information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 required parameters, no output schema, no annotations), the description is insufficient. It fails to explain inputs, behavior on failure, or integration with sibling tools like authorize_google_drive. An agent would struggle to use this tool correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the tool description provides no explanation for the parameters file_id or local_path. The agent is left to infer their meaning (e.g., file_id is a Google Drive ID, local_path is relative to COLAB_MCP_ROOT) with no confirmation, increasing risk of misuse.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('synchronize a Drive notebook file into COLAB_MCP_ROOT') and adds a key behavioral trait ('without executing it'), which helps distinguish it from siblings like copy_drive_notebook. However, it could explicitly mention that this is a one-way pull from Drive to local.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., copy_drive_notebook, push_local_notebook). The description does not mention prerequisites, such as prior Google Drive authorization, or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_local_notebookC
Synchronize a local notebook file to Drive without executing it.
| Name | Required | Description | Default |
|---|---|---|---|
| local_path | Yes | ||
| drive_name | No | ||
| file_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'without executing it' but fails to disclose key behaviors such as overwrite policy, effect on existing Drive files, authentication requirements, or whether local files are modified. For a mutation tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence with no fluff. It could be more informative without becoming verbose, but it is efficiently concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description is incomplete. It does not cover return behavior, error conditions, or parameter dependencies. For a sync operation, important details like conflict resolution or confirmation prompts are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the parameter names and types in the schema provide no descriptions. The tool description adds no explanation for local_path, drive_name, or file_id. It only implies the drive name via context, but does not specify format, defaults, or optionality. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool synchronizes a local notebook to Drive, specifying it does not execute the notebook. This verb+resource combination is specific and helps distinguish from siblings like pull_drive_notebook. However, 'Synchronize' could be ambiguous (push vs. two-way), so not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as pull_drive_notebook or get_notebook_sync_status. There is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_local_cellsC
Search cell sources in a local notebook.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| query | Yes | ||
| case_sensitive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only says 'Search cell sources', giving no indication of side effects, read-only nature, limitations, or behavior. The agent cannot infer whether the tool modifies state or requires special permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, but it lacks structure and critical details. It is not front-loaded with key information; it is too brief to be maximally useful without sacrificing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters and an output schema, the description should provide more context about how to effectively use it (e.g., what 'cell sources' means, typical usage). The current description leaves too much unsaid for reliable tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description adds no information about any parameter. It does not explain the role of 'path' (file path?), 'query' (search string?), or 'case_sensitive', leaving the agent to rely solely on parameter names and types, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search' and the resource 'cell sources in a local notebook', which immediately conveys the core function. It distinguishes the tool from siblings like add_local_cell or delete_local_cell, making its unique purpose evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives. The description lacks context about prerequisites, typical use cases, or scenarios where other tools might be more appropriate (e.g., get_local_notebook to retrieve notebook contents).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_local_cellC
Replace a cell's source and optionally its type.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| index | Yes | ||
| source | Yes | ||
| cell_type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'Replace' which implies mutation, but does not specify if the operation is destructive, whether it preserves other cell attributes, or any error conditions (e.g., if the cell is not found). No permissions or side effects are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short at one sentence, which is concise. It front-loads the verb 'Replace' and the resource. However, it might be too terse, but it still earns its place as there is no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has 4 parameters, no annotations, and no output schema, the description is incomplete. It does not explain the return value, what happens if the cell index is invalid, or if the path is incorrect. More context is needed for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no meaning beyond the schema. It mentions 'source' and 'cell_type' but does not explain 'path' or 'index' parameters, leaving them entirely to the schema names. The description fails to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Replace a cell's source and optionally its type,' which clearly indicates the verb (replace) and resource (cell's source and type). It distinguishes from sibling tools like 'add_local_cell' and 'delete_local_cell' by focusing on modification. However, it doesn't explicitly mention that the cell is in a local notebook, though the tool name implies this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives such as 'add_local_cell' or 'delete_local_cell.' There is no mention of prerequisites, context for usage, 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.
16 tool updates
v0.1.3- First observed
add_local_cell - First observed
authorize_google_drive - First observed
clear_local_outputs - First observed
copy_drive_notebook - First observed
create_local_notebook - First observed
delete_local_cell - First observed
get_colab_url - First observed
get_google_drive_status - First observed
get_local_notebook - First observed
get_notebook_sync_status - First observed
list_drive_notebooks - First observed
list_local_notebooks - First observed
pull_drive_notebook - First observed
push_local_notebook - First observed
search_local_cells - First observed
update_local_cell
TDQS
Each tool targets a distinct action (e.g., add/delete/update cells, push/pull notebooks, authorization) with no overlapping functionality. Descriptions clearly differentiate between local and Drive operations.
All tools follow a consistent verb_noun pattern in snake_case (e.g., add_local_cell, list_drive_notebooks), making the API predictable and easy for agents to navigate.
16 tools are well-scoped for managing local notebooks and Drive synchronization. The count covers core operations without unnecessary bloat.
The set covers local notebook management (CRUD cells, create notebook) and Drive sync (push, pull, copy, list). Minor gaps like missing delete_drive_notebook are acceptable given the focus on sync workflows.
Maintenance
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
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
An MCP server for deep research or task groups
An MCP server that used to create notes
A MCP server built for developers enabling Git based project management with project and personal…
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that bridges local AI agents to Google Colab notebooks, enabling execution of Python code and interaction with notebook states directly from the agent.1Apache 2.0
- AlicenseBqualityDmaintenanceLocal-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.597Apache 2.0
- FlicenseNot gradedqualityCmaintenanceA local MCP server for reading, writing, and executing Jupyter notebooks using jupyter_client for direct kernel communication.-
- Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/YummyTastyCode/colab-drive-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server