Skip to main content
Glama
YummyTastyCode

colab-drive-mcp

Colab Drive MCP

CI Release PyPI License: MIT

An MCP server for safely inspecting, editing, and synchronizing Google Colab-compatible .ipynb notebooks through Google Drive.

IMPORTANT

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_notebook

  • add_local_cell, update_local_cell, delete_local_cell

  • search_local_cells, clear_local_outputs

Google Drive

  • list_drive_notebooks, pull_drive_notebook, push_local_notebook

  • get_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-mcp

Or 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-mcp

Local 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-mcp

Google 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:

  1. Create a Google Cloud project.

  2. Enable the Google Drive API.

  3. Configure the OAuth consent screen and add your account as a test user.

  4. Create an OAuth Client ID with application type Desktop app.

  5. Download the JSON to ~/.config/colab-mcp/credentials.json.

  6. Call authorize_google_drive and complete the Google sign-in flow.

The resulting token is stored at ~/.config/colab-mcp/token.json.

Override these locations with:

  • COLAB_MCP_GOOGLE_CREDENTIALS

  • COLAB_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=file

This 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=full

Changing 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-mcp

VS 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_drive call.

  • Use file access 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/pytest

Available Tools

16 tools
add_local_cellC

Add a cell to a local notebook.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
cell_typeYes
sourceYes
indexNo

TDQS

C2.3/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes
nameYes

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
titleNo
kernel_nameNopython3

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
indexYes

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
include_sourceNo
max_source_charsNo

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes
local_pathNo

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYes
local_pathYes

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
local_pathYes
drive_nameNo
file_idNo

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryYes
case_sensitiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
indexYes
sourceYes
cell_typeNo

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 16 tool updatesv0.1.3
    • First observedadd_local_cell
    • First observedauthorize_google_drive
    • First observedclear_local_outputs
    • First observedcopy_drive_notebook
    • First observedcreate_local_notebook
    • First observeddelete_local_cell
    • First observedget_colab_url
    • First observedget_google_drive_status
    • First observedget_local_notebook
    • First observedget_notebook_sync_status
    • First observedlist_drive_notebooks
    • First observedlist_local_notebooks
    • First observedpull_drive_notebook
    • First observedpush_local_notebook
    • First observedsearch_local_cells
    • First observedupdate_local_cell

TDQS

B3.3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

16 tools are well-scoped for managing local notebooks and Drive synchronization. The count covers core operations without unnecessary bloat.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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