Skip to main content
Glama

drive-mcp

MCP server for Google Drive and OneDrive operations.

Tools

Tool

Description

gdrive_list_folder

List files in a Google Drive folder by name or folder_id

gdrive_list_folder_recursive

Recursively list files in a folder and subfolders

gdrive_list_shared_drives

List Shared Drives visible to the account

gdrive_search

Search Google Drive by filename (includes Shared Drives)

gdrive_read_file

Read file contents from Google Drive

gdrive_download_file

Download a Drive file (or export Docs/Sheets/Slides) to a local path

gdrive_write_file

Create/overwrite a text file in Google Drive

gdrive_create_doc

Create a Google Doc (optionally seeded with text)

gdrive_create_folder

Create a Google Drive folder (optional parent, dry-run, undo)

gdrive_rename

Rename a Google Drive file

gdrive_move

Move a Google Drive file to another folder

gdrive_copy

Copy a Google Drive file

gdrive_trash

Move a Google Drive file/folder to trash

gdrive_share

Share a file/folder with a user email (reader/commenter/writer)

gdrive_undo

Undo a prior mutating gdrive_* operation via restore token

onedrive_list_root

List items in OneDrive root

onedrive_list_folder

List items in a OneDrive folder by path

onedrive_search

Search OneDrive by filename

onedrive_read_file

Read file contents from OneDrive

Most mutating Google Drive tools accept optional file_id / folder_id arguments (preferred when known) and support dry_run=True previews. Successful mutations that can be reversed return a restore_token for gdrive_undo.

Related MCP server: Google Drive MCP Server

Setup

Prerequisites

  • Python 3.10+

  • Google account with Drive API enabled

  • Microsoft account with Graph API access

Installation

git clone https://github.com/<your-user>/drive-mcp.git
cd drive-mcp
"$(uv python find --system --managed-python 3.13.15)" -m venv --copies venv
venv/bin/python -m pip install -e .

Authentication

  • Google Drive credentials: place OAuth desktop client JSON at drive_credentials.json.

  • OneDrive credentials: defaults in src/onedrive.py use a public device-flow app registration.

  • Bootstrap auth once:

venv/bin/python -c "from src import google_drive; google_drive.authenticate()"
venv/bin/python -c "from src import onedrive; onedrive.authenticate()"

Claude Code Configuration

Add to ~/.claude.json:

{
  "mcpServers": {
    "drive-mcp": {
      "type": "stdio",
      "command": "/path/to/drive-mcp/venv/bin/python",
      "args": ["/path/to/drive-mcp/run_server.py"]
    }
  }
}

Development

venv/bin/python -c "from src.server import mcp; print([t.name for t in mcp._tool_manager._tools.values()])"
venv/bin/python run_server.py

License

MIT

Available Tools

21 tools
gdrive_copyA

Copy a Google Drive file, optionally renaming and/or placing under a new folder.

Discovery: run gdrive_search or gdrive_list_folder first to obtain file_name / file_id and destination folder values.

Use this for: duplicating a file/template. Not for: moving the original file — see gdrive_move.

Use dry_run=True to preview the change without committing.

Args: file_name: Name of the file to copy new_name: Optional name for the copy destination_folder: Optional destination folder name destination_folder_id: Optional stable destination folder ID file_id: Optional stable file ID (preferred when known) dry_run: Preview the copy without committing it

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
file_idNo
new_nameNo
file_nameNo
destination_folderNo
destination_folder_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral burden. It discloses that the operation duplicates rather than moves the original, supports optional renaming/re-parenting, and that dry_run=True previews without committing. It stops short of mentioning permission requirements or name-collision behavior, but the core side-effect profile is clear.

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 compact and well-organized: purpose first, then discovery prerequisite, use/not-for guidance, dry-run note, and an args list. Every section adds value and there is minimal redundancy with the schema.

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 six parameters, no annotations, and zero schema coverage, the description covers the operation, workflow prerequisites, sibling alternative, dry-run behavior, and all argument meanings. Minor gaps around how name-based and ID-based references are resolved remain, but an output schema exists so return-value details need not be repeated.

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?

Schema description coverage is 0%, and the description compensates by explaining each of the six arguments in plain language, including the useful note that file_id is 'preferred when known'. It does not fully specify precedence between file_name/file_id or destination_folder/destination_folder_id, but the provided semantics are sufficient for basic invocation.

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?

Opens with 'Copy a Google Drive file, optionally renaming and/or placing under a new folder' — a specific verb and resource. It further clarifies the purpose as 'duplicating a file/template' and explicitly contrasts with gdrive_move, making sibling differentiation clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Use this for: duplicating a file/template. Not for: moving the original file — see gdrive_move.' It also instructs the agent to run gdrive_search or gdrive_list_folder first to obtain required identifiers, so the when and how are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_create_docA

Create a Google Doc in Drive, optionally seeded with plain-text content.

Discovery: run gdrive_search or gdrive_list_folder first to obtain parent folder name/ID values.

Use this for: creating a Google Doc artifact. Not for: creating a folder — see gdrive_create_folder. Not for: writing a plain .md/.txt file — see gdrive_write_file. Not for: spreadsheets — use gsheets-mcp.

Use dry_run=True to preview the change without committing.

Args: title: Title of the Google Doc content: Optional plain-text content to seed into the Doc parent_folder: Optional parent folder name (defaults to My Drive root) parent_folder_id: Optional stable parent folder ID dry_run: Preview the create without committing it

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
contentNo
dry_runNo
parent_folderNo
parent_folder_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the optional dry_run behavior for previewing changes, and implies a mutation without stating irreversibility. It could mention what happens on success (e.g., returns ID) but given the output schema exists, lacking that is acceptable. The dry_run disclosure is valuable and clear.

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 well-structured with clear sections and short sentences that front-load core info and exclusions. The bullet-style 'Not for' list is efficient, and the Args section is concise. No wasted words; every sentence contributes to usage understanding.

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?

Given the tool's moderate complexity and the existence of an output schema, the description covers key aspects: core action, exclusions, discovery step, dry_run flag, and parameters. It doesn't elaborate on return values or edge cases, but those are less critical with the output schema present. The only gap is a deeper note on permission requirements or side effects, but that's minor.

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?

Schema description coverage is 0%, so the description must compensate. It lists each parameter's purpose in the Args section (title, content, parent_folder, parent_folder_id, dry_run) but adds minimal extra detail—such as the default behavior for parent_folder. It doesn't clarify the distinction between name and ID or how to obtain them beyond the discovery hint, but it does cover the basic semantics.

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 creates a Google Doc in Drive with optional seeded content, and explicitly distinguishes it from folder creation, plain file writes, and spreadsheets. This precise verb-resource pairing plus sibling differentiation makes the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use (creating a Google Doc artifact) and when not to, naming the alternative tools for each excluded case (gdrive_create_folder, gdrive_write_file, gsheets-mcp). It also provides a discovery step hint to find parent folder IDs, which is actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_create_folderA

Create a folder in Google Drive.

Discovery: run gdrive_search or gdrive_list_folder first to obtain parent folder name/ID values when nesting under an existing folder.

Use this for: creating a new folder (optionally under a parent). Not for: creating a Google Doc — see gdrive_create_doc. Not for: renaming an existing folder — see gdrive_rename. Not for: moving an existing folder — see gdrive_move.

Use dry_run=True to preview the change without committing. Use exist_ok=True to return an existing same-named child folder instead of erroring.

Args: folder_name: Name of the folder to create parent_folder: Optional parent folder name (defaults to My Drive root) parent_folder_id: Optional stable parent folder ID exist_ok: If a matching folder already exists under the parent, return it dry_run: Preview the create without committing it

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
exist_okNo
folder_nameYes
parent_folderNo
parent_folder_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden. It discloses the meaning of dry_run ('preview the change without committing') and exist_ok ('return an existing same-named child folder instead of erroring'), plus the default parent behavior of 'My Drive root.' It does not mention permissions or auth requirements, but for a non-destructive create with an output schema, the key behavioral traits are covered.

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 organized with clear sections: a one-sentence purpose, a Discovery note, Use/Not-for bullets, and an Args list. Every sentence earns its place, and the most important usage distinctions are front-loaded before the parameter details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter creation tool with an output schema and no annotations, the description is complete. It covers alternatives, discovery steps, default behavior, safety flags, and parameter semantics, giving an agent everything needed to invoke the tool correctly without consulting additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 fully compensate. It explains each parameter: folder_name, parent_folder with default, parent_folder_id as stable ID, exist_ok, and dry_run. This goes well beyond the bare schema field names and gives an agent enough to choose and fill parameters correctly.

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 states a specific verb and resource: 'Create a folder in Google Drive.' It further differentiates itself from siblings with explicit 'Not for' clauses covering gdrive_create_doc, gdrive_rename, and gdrive_move, so an agent can immediately tell this tool apart from related operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use the tool ('Use this for: creating a new folder') and when not to use it, naming the alternative tools. It also gives discovery guidance to run gdrive_search or gdrive_list_folder first when nesting under an existing folder, leaving minimal ambiguity about invocation context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_download_fileA

Download a Google Drive file to a local filesystem path.

Google Docs/Sheets/Slides are exported to Office formats (.docx/.xlsx/.pptx). Other files are downloaded in their native binary form.

Discovery: use gdrive_search or gdrive_list_folder first to obtain file_name / file_id values.

Use this for: saving a Drive file locally for offline/binary use. Not for: reading text content in-chat — see gdrive_read_file.

Args: local_path: Destination file path, or directory to download into file_name: Name of the file to download file_id: Optional stable file ID (preferred when known) dry_run: Preview the download without writing bytes

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
file_idNo
file_nameNo
local_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. It discloses that Google Docs/Sheets/Slides are exported to Office formats while other files download in native binary form, and that dry_run previews without writing bytes. It does not mention overwrite behavior or directory creation, but the core side effects are clearly stated.

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 purpose is front-loaded, followed by format behavior, discovery instructions, explicit use/not-for routing, and a terse Args list. Every sentence earns its place, and the structure is easy to scan.

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?

Given no annotations and a schema with zero parameter descriptions, the description covers purpose, alternatives, discovery, conversion behavior, and every parameter. Minor omissions like overwrite semantics and file_name/file_id precedence keep it from being fully complete.

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?

The input schema has no parameter descriptions, so the Args block adds meaningful value: local_path is a destination path or directory, file_id is an optional stable ID preferred when known, and dry_run previews without writing. It could further explain how file_name and file_id interact when both are supplied.

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 states a specific action and resource: 'Download a Google Drive file to a local filesystem path.' It also distinguishes itself from the sibling gdrive_read_file by framing this tool as saving for offline/binary use rather than reading text content in-chat.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'Use this for: saving a Drive file locally for offline/binary use' and 'Not for: reading text content in-chat — see gdrive_read_file.' It also directs agents to gdrive_search or gdrive_list_folder first to obtain file_name/file_id, which is clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_list_folderA

List files in a Google Drive folder by name or folder_id.

Args: folder_name: Name of the folder to list (e.g., "Stock Investor Accelerator") folder_id: Optional stable folder ID from gdrive_search (preferred when known)

Discovery: use gdrive_search first when the exact folder_name/folder_id is unknown.

Sibling tools: use gdrive_list_folder_recursive to include subfolders and gdrive_read_file to read a discovered file.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idNo
folder_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It clarifies that folder_id is optional and preferred, that folder_name can be a human-readable name, and that this tool is not the recursive listing variant. It stops short of describing edge-case behavior like when neither argument is supplied, but the core behavioral intent is clear.

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 tightly organized into labeled sections: main purpose, args, discovery workflow, and sibling alternatives. Every sentence contributes useful information and no filler is present.

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?

Given the simple two-parameter schema and the presence of an output schema, the description is nearly complete. It covers lookup methods, the recommended discovery flow, and differentiation from siblings. The only notable gap is that both parameters are optional in the schema, and the description does not explicitly state what happens if neither is provided.

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?

Schema coverage is 0%, so the description must supply meaning for the parameters. It explains folder_name as a listing key with an example, and folder_id as an optional stable ID originating from gdrive_search. This adds value beyond the bare schema property titles, though it could more explicitly state precedence when both are provided.

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 states a specific action ('List files in a Google Drive folder') with two clearly named lookup modes (folder_name or folder_id). It also distinguishes itself from nearby sibling tools by naming gdrive_list_folder_recursive as the subfolder-inclusive alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit workflow guidance: use gdrive_search first when the exact folder is unknown. It also names sibling tools and their specific use cases, so an agent knows when to use this tool versus gdrive_list_folder_recursive or gdrive_read_file.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_list_folder_recursiveA

Recursively list all files in a Google Drive folder and its subfolders.

Args: folder_name: Name of the folder to list (e.g., "Stock Investor Accelerator") folder_id: Optional stable folder ID from gdrive_search (preferred when known)

Discovery: use gdrive_search first when the exact folder_name/folder_id is unknown.

Sibling tools: use gdrive_list_folder for a shallow listing and gdrive_read_file to read a discovered file.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_idNo
folder_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden, and it does state the key behavioral trait: recursive traversal through subfolders. It also clarifies the preference for a stable folder_id from search. It stops short of describing error behavior or what happens if neither argument is supplied, but for a read-only listing tool the core behavior is sufficiently disclosed.

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 compact, front-loaded with the purpose, and organized into short labeled sections for args, discovery, and sibling tools. Every line adds information needed to select or invoke the tool correctly.

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?

Given the output schema, return values are covered elsewhere, and the description covers argument semantics and alternative tools well. The main remaining gap is that it does not explicitly state whether at least one of folder_name or folder_id is required, despite both being optional in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the schema only provides titles and null defaults. The description compensates fully by explaining folder_name with a concrete example, labeling folder_id as optional and preferred when known, and pointing to gdrive_search as the discovery mechanism.

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 opens with a specific verb and resource: 'Recursively list all files in a Google Drive folder and its subfolders.' It explicitly distinguishes itself from gdrive_list_folder for shallow listing, so an agent can immediately tell which tool to use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear routing guidance: use gdrive_search first when the folder identifier is unknown, use gdrive_list_folder for shallow listing, and use gdrive_read_file to read a discovered file. This leaves no ambiguity about when to choose this tool over its siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_list_shared_drivesB

List Shared Drives visible to the authenticated Google account.

Sibling tools: use gdrive_search / gdrive_list_folder with folder_id values discovered inside a Shared Drive.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_resultsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/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 of behavioral disclosure. It mentions the scope ('visible to the authenticated account') but does not state anything about max_results behavior, pagination, output format, or side effects (though 'List' implies read-only). This leaves significant behavioral gaps for an agent to understand the tool's full behavior.

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 two sentences with no filler. The first sentence front-loads the core purpose, and the second provides actionable sibling guidance. Every word contributes to agent understanding, making it appropriately concise and well-structured.

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 list tool with an output schema present, the description is mostly adequate: it states what is listed and how to proceed into shared drives. However, it omits any explanation of max_results or pagination/limit behavior, which is a notable gap for correct invocation. The sibling guidance helps, but the missing parameter semantics keep it from being fully complete.

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 only one parameter (max_results) with 0% schema description coverage. The description does not mention this parameter at all, failing to explain what max_results controls, its default behavior, or how it affects results. No semantic value is added beyond the schema's bare title.

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 states a specific verb ('List') and resource ('Shared Drives') with a clear scope ('visible to the authenticated Google account'). It differentiates from siblings by indicating that folder-level operations happen via gdrive_search/gdrive_list_folder with folder_id values discovered inside a Shared Drive, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The second sentence explicitly names sibling tools as the next step after listing shared drives, providing a clear workflow context. It does not explicitly state when not to use this tool, but the alternative path (use gdrive_search/gdrive_list_folder inside a Shared Drive) is implied, giving adequate usage guidance without exhaustive exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_moveA

Move a file to a different folder in Google Drive.

Discovery: run gdrive_list_folder or gdrive_search first to obtain file_name / file_id and destination folder values.

Use this for: moving files between folders. Not for: renaming a file in place — see gdrive_rename.

Use dry_run=True to preview the change without committing.

Args: file_name: Name of the file to move destination_folder: Name of the destination folder dry_run: Preview the move without committing it file_id: Optional stable file ID (preferred when known) destination_folder_id: Optional stable destination folder ID

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
file_idNo
file_nameNo
destination_folderNo
destination_folder_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It usefully discloses the dry_run preview behavior and notes that file_id is preferred when known, but it doesn't cover mutation consequences, error behavior, or what happens when multiple identifiers/folders are supplied.

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 compact and front-loaded; every sentence earns its place, and the Args list is not mere schema duplication because it adds semantic meaning not present in the schema.

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 5-parameter, no-annotation mutation tool, it covers discovery, use vs non-use, dry-run, and argument semantics. With an output schema present, not explaining return values is acceptable, though precedence among identifiers could make it fully complete.

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?

Schema coverage is 0%, so the description must explain the parameters, and it does: all five args get one-line semantic explanations, including the useful guidance that file_id is preferred when known. It stops short of stating precedence rules if both name and ID are passed.

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?

Opens with a specific verb and resource: 'Move a file to a different folder in Google Drive.' It is immediately distinguishable from rename/copy siblings, and the 'Use this for / Not for' lines reinforce the precise scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to use it (moving files between folders), when not to (renaming in place), and points to gdrive_rename as the alternative. It also prescribes a discovery step (gdrive_list_folder/gdrive_search) before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_read_fileA

Read the contents of a file from Google Drive.

Supports:

  • Google Docs (exported as plain text)

  • Google Sheets (exported as CSV)

  • PDFs (text extracted)

  • Text files (.txt, .md, .csv, .json, etc.)

Args: file_name: Name of the file to read (e.g., "My Document" or "report.pdf") max_chars: Maximum characters to return (default: 100000) file_id: Optional stable file ID from gdrive_search (preferred when known)

Discovery: use gdrive_search, gdrive_list_folder, or gdrive_list_folder_recursive first to find the exact file_name or file_id.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNo
file_nameNo
max_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully disclose behavior. It does mention format support and export behavior (e.g., Google Docs exported as plain text, Sheets as CSV), which is useful. However, it does not disclose potential edge cases like file size limits, truncation behavior beyond max_chars, authentication requirements, or error handling when a file is not found. These gaps mean the description carries only partial behavioral transparency.

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 structured with bullet points for supported formats and a clear 'Args' section, making it easy to scan. It front-loads the purpose and then provides details. It is slightly longer than necessary but every section adds value; there is no fluff. The organization is logical and efficient, though not as terse as a two-sentence example.

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?

Given that an output schema exists, the description does not need to explain return values. It covers the tool's core function, supported file types, parameters, and discovery workflow. It could be improved by mentioning failure modes or limitations (e.g., what happens if the file is too large), but overall it is sufficiently complete for an agent to call the tool correctly in most scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the schema has 0% description coverage, the description must compensate. It does so thoroughly in the 'Args' section: it explains file_name with an example, max_chars with a default, and file_id as an optional stable ID with a preference note. It also clarifies the relationship between file_name and file_id. This adds significant meaning beyond the bare schema and fully addresses all three 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?

The description clearly states the action: 'Read the contents of a file from Google Drive' and lists supported formats (Google Docs, Sheets, PDFs, text files). This is a specific verb+resource, and it distinguishes itself from sibling tools like onedrive_read_file by specifying the Google Drive context. It also names related discovery tools, further clarifying its role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using discovery tools (gdrive_search, gdrive_list_folder, or gdrive_list_folder_recursive) first to locate the file, and it notes that file_id is 'preferred when known'. This gives clear context on when to use the tool, though it does not explicitly state when not to use it or alternative tools beyond discovery. Still, the guidance is practical and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_renameA

Rename a file in Google Drive.

Discovery: run gdrive_list_folder or gdrive_search first to obtain file_name / file_id values.

Use this for: renaming files in place. Not for: moving a file to a different folder — see gdrive_move.

Use dry_run=True to preview the change without committing.

Args: file_name: Current name of the file to rename new_name: New name for the file dry_run: Preview the rename without committing it file_id: Optional stable file ID (preferred when known)

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
file_idNo
new_nameNo
file_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/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 of behavioral disclosure. It discloses the dry_run behavior ('Preview the rename without committing it'), which is a meaningful behavioral trait. It also implies that file_id is preferred when known, which is useful operational context. However, it doesn't mention whether the rename is reversible, whether it requires specific permissions, or what happens if both file_name and file_id are provided. Still, the dry_run disclosure and the file_id preference add real value beyond the schema.

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 compact and well-structured. It front-loads the core purpose, then provides discovery guidance, usage boundaries, a dry_run note, and parameter explanations. Every sentence earns its place, and the structure makes it easy for an agent to scan. The 'Use this for' / 'Not for' pattern is particularly effective.

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?

The tool has 4 parameters, no annotations, and no schema description coverage, so the description must be thorough. It covers the core purpose, discovery prerequisites, the alternative tool, the dry_run behavior, and all parameters. The output schema exists, so return values don't need to be explained. The only minor gap is the lack of explicit precedence rules when both file_name and file_id are provided, and no mention of error conditions (e.g., file not found). Overall, it is nearly complete for an agent to invoke correctly.

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?

Schema description coverage is 0%, so the description must compensate for the schema's lack of parameter documentation. The description lists all four parameters (file_name, new_name, dry_run, file_id) and adds meaning: file_name is 'Current name of the file to rename', new_name is 'New name for the file', dry_run is 'Preview the rename without committing it', and file_id is 'Optional stable file ID (preferred when known)'. This is a strong compensation for the schema's bare titles, though it could be even more explicit about the relationship between file_name and file_id (e.g., which takes precedence).

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 opens with a clear verb and resource: 'Rename a file in Google Drive.' It explicitly distinguishes itself from moving a file to a different folder and names the sibling tool gdrive_move. This makes the tool's purpose unambiguous and easily differentiated from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: run gdrive_list_folder or gdrive_search first to obtain file_name/file_id values. It also states when to use this tool ('renaming files in place') and when not to ('moving a file to a different folder — see gdrive_move'). This is exactly the kind of when/when-not/alternatives guidance that helps an agent select the right tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_shareA

Share a Google Drive file/folder with a user email.

Discovery: run gdrive_search or gdrive_list_folder first to obtain file_name / file_id values.

Use this for: granting reader/commenter/writer access to a collaborator. Not for: transferring ownership.

Valid roles: reader, commenter, writer. Use dry_run=True to preview the change without committing.

Args: email: Collaborator email address role: Access role — one of reader, commenter, writer file_name: Name of the file/folder to share file_id: Optional stable file ID (preferred when known) send_notification: Whether Google should email the collaborator dry_run: Preview the share without committing it

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoreader
emailYes
dry_runNo
file_idNo
file_nameNo
send_notificationNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the mutation risk via 'dry_run=True to preview the change without committing,' clarifies valid roles, and mentions that send_notification controls whether Google emails the collaborator. It could go further by describing permission overwrite behavior or revocation, but it gives meaningful behavioral context beyond the raw schema.

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 well structured and front-loaded with the core purpose, followed by discovery, usage boundaries, and a tidy Args list. Every line earns its place; the only minor repetition is the role list appearing twice, but this aids clarity rather than harming it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter sharing tool with no annotations and an output schema present, the description is complete: it explains prerequisites, valid inputs, dry-run behavior, and what each parameter does. An agent has enough information to select and invoke the tool correctly without needing to open the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 compensate, and it does: every one of the 6 parameters gets a plain-language meaning. It clarifies that file_id is 'preferred when known,' that role is constrained to reader/commenter/writer, and that dry_run previews without committing. This is exactly the semantic enrichment the schema lacks.

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 opens with a specific verb and resource: 'Share a Google Drive file/folder with a user email.' It is clearly distinct from sibling tools like gdrive_copy, gdrive_move, gdrive_rename, and gdrive_trash because it is about granting access permissions rather than manipulating the file itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'Use this for: granting reader/commenter/writer access to a collaborator. Not for: transferring ownership.' It also provides a discovery workflow: run gdrive_search or gdrive_list_folder first to get file_id/file_name. This tells an agent both when to use the tool and what it should not be used for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_trashA

Move a Google Drive file or folder to trash.

Discovery: run gdrive_search or gdrive_list_folder first to obtain file_name / file_id values.

Use this for: soft-deleting a file/folder (recoverable from trash). Not for: permanently deleting — not supported by this server.

Use dry_run=True to preview the change without committing.

Args: file_name: Name of the file/folder to trash file_id: Optional stable file ID (preferred when known) dry_run: Preview the trash without committing it

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNo
file_idNo
file_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the behavioral burden. It discloses that the operation is a soft delete ('recoverable from trash') and offers dry_run=True to preview. It stops short of describing permissions or edge cases, but the core mutation behavior is transparent.

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?

At roughly 90 words, it is short, front-loaded with the core action, and uses clear labeled sections for use/not-use and args. The only minor redundancy is dry_run appearing in both the prose and the arg list.

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 three-parameter mutation with no required parameters and an output schema, the description covers discovery, use cases, and dry-run behavior. It leaves minor ambiguity about identifier precedence but is otherwise complete enough for an agent to invoke correctly.

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?

Schema coverage is 0%, and the description compensates by explaining all three parameters: file_name names the target, file_id is the 'stable file ID (preferred when known)', and dry_run 'previews the trash without committing.' It does not clarify whether file_name is required when file_id is absent, or the precedence when both are supplied.

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 opening sentence uses a specific verb and resource: 'Move a Google Drive file or folder to trash.' It also clarifies the scope by contrasting with permanent deletion, distinguishing it from any delete-like operation. The sibling list contains no competing trash tool, so it stands apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly scopes use cases: 'Use this for: soft-deleting... Not for: permanently deleting — not supported by this server.' It also provides a discovery prerequisite: run gdrive_search or gdrive_list_folder first to obtain file_name/file_id. This is unambiguous when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_undoA

Undo a prior Drive mutation using its restore_token.

Supports: gdrive_rename, gdrive_move, gdrive_create_folder, gdrive_write_file (create only), gdrive_create_doc, gdrive_copy, gdrive_trash, gdrive_share.

Args: restore_token: Token returned by a mutating gdrive_* tool after commit

ParametersJSON Schema
NameRequiredDescriptionDefault
restore_tokenYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It discloses the operation, the token prerequisite, and the supported mutation types. However, it does not explain what 'undo' means per operation type, whether the action is destructive or reversible, or how failures or invalid tokens are handled.

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 compact and front-loaded: the core purpose appears in the first sentence, and the supported tools and token explanation follow without repetition or fluff. Every sentence 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 single-parameter tool, the description provides a workable baseline: what it does, which operations it supports, and where its input comes from. But because there is no output schema and no annotations, the agent is left without guidance on per-operation undo semantics, error behavior, idempotency, or expected return values.

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?

The schema only defines restore_token as a required string, so schema description coverage is 0%. The description compensates by stating that the token is returned by a mutating gdrive_* tool after commit, giving the agent concrete provenance and validity context. It stops short of describing token format or exact response field names, so a 4 is appropriate.

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 opens with a specific verb and resource: 'Undo a prior Drive mutation using its restore_token.' It also lists the exact sibling tools it can undo, which clearly distinguishes it from gdrive_rename, gdrive_move, gdrive_trash, and the other mutation tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The supported-tools list and the requirement that restore_token come from 'a mutating gdrive_* tool after commit' give the agent clear context for when to invoke this tool. It does not explicitly state when not to use it, but the undo scope is specific enough that alternatives are implicitly identified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gdrive_write_fileA

Create or overwrite a text/binary-capable file in Google Drive.

Discovery: run gdrive_search or gdrive_list_folder first to obtain parent folder and optional existing file_id values.

Use this for: writing markdown/text/json/csv files into Drive. Not for: creating a Google Doc — see gdrive_create_doc. Not for: spreadsheet edits — use gsheets-mcp.

Use dry_run=True to preview the change without committing. Overwrites only when file_id is provided or overwrite=True finds a same-named file under the parent. Undo trashes newly created files; content overwrites are not undoable via restore_token.

Args: file_name: Destination file name (e.g., "notes.md") content: File contents to write parent_folder: Optional parent folder name (defaults to My Drive root) parent_folder_id: Optional stable parent folder ID mime_type: Optional MIME type (guessed from file_name when omitted) file_id: Optional existing file ID to overwrite overwrite: If True, overwrite an existing same-named file under the parent dry_run: Preview the write without committing it

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
dry_runNo
file_idNo
file_nameYes
mime_typeNo
overwriteNo
parent_folderNo
parent_folder_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses side effects and edge cases: dry_run behavior, overwrite trigger conditions, undo semantics ('Undo trashes newly created files; content overwrites are not undoable via restore_token'), and default MIME guessing. This goes far beyond a basic read/write label.

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 structure is clear and front-loaded with purpose and usage, followed by Args. However, some repetition exists (e.g., dry_run and overwrite are explained both in the narrative and the Args list), so it is slightly less concise than it could be while still being highly 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?

Given 8 parameters, no annotations, and 0% schema coverage, the description is remarkably complete: it covers discovery, overwrite behavior, dry-run, undo limits, and defaults. Minor gaps remain, such as how binary content is encoded (base64 vs raw string) and precedence when both parent_folder and parent_folder_id are supplied, but these are not critical for typical invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries full parameter meaning. The Args section explains every parameter with practical context: parent_folder by name vs parent_folder_id as stable ID, overwrite triggering on same-named file, and dry_run previewing the commit. It also clarifies optional MIME inference from file_name.

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 opens with a specific verb, resource, and capability: 'Create or overwrite a text/binary-capable file in Google Drive.' It then explicitly excludes sibling tools ('Not for: creating a Google Doc — see gdrive_create_doc') and ('Not for: spreadsheet edits — use gsheets-mcp'), so an agent can disambiguate it without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear when-to-use guidance: 'Use this for: writing markdown/text/json/csv files into Drive' and explicit not-for alternatives with sibling tool names. It also provides a discovery first-step: 'run gdrive_search or gdrive_list_folder first to obtain parent folder and optional existing file_id values.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onedrive_complete_reauthB

Check if OneDrive re-authentication completed. Call after user visits URL.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 disclosing behavior. It only says 'Check if OneDrive re-authentication completed,' but does not explain what happens if not completed, whether it blocks or returns immediately, what the return value indicates, or any side effects. This is insufficient for a tool that likely returns a status or error, and the agent has no idea what to expect.

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—two short sentences—and front-loads the core purpose. Every word earns its place, and there is no redundancy. However, it is so brief that it under-specifies behavior, but that is a completeness issue, not a conciseness issue. For structure, it is appropriately sized.

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?

The tool has an output schema (though not shown in the context), and no parameters, so the description should explain the return value or how to interpret the completion status. It does neither. It also fails to mention any potential errors, timeouts, or prerequisites beyond 'call after user visits URL.' For a tool that is part of a two-step re-authentication flow, this is incomplete; an agent needs to know what to do with the result.

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?

There are zero parameters, and the schema has full coverage (vacuously). The description adds no parameter information, but none is needed. Per the rubric, the baseline for 0 parameters is 4, and the description does not detract from that. It correctly implies there are no inputs to configure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Check') and a resource ('OneDrive re-authentication'), but it is vague about what 'completed' means and what the outcome looks like. It distinguishes itself from onedrive_start_reauth implicitly, but not explicitly. The purpose is clear enough to avoid tautology, but lacks specificity about the check's result.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The instruction 'Call after user visits URL' provides a clear temporal context for when to use the tool. It does not mention alternatives or exclusions, but the sibling tool onedrive_start_reauth is the obvious counterpart, and the usage context is unambiguous. No further guidance is given, but the minimal context is adequate for a simple check tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onedrive_list_folderA

List items in a OneDrive folder by path.

Args: folder_path: Path to the folder (e.g., "Documents/Projects" or "Stock Investor Accelerator")

Discovery: use onedrive_list_root or onedrive_search first when the exact folder_path is unknown.

Sibling tools: use onedrive_list_root for the top-level folder and onedrive_read_file to read a discovered file.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/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 of behavioral disclosure. 'List' implies a read-only operation, and the guidance about needing an exact path is useful, but it does not mention recursion behavior, failure modes, authentication requirements, or any side effects. The description is 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?

The description is compact and well-structured: purpose first, then parameter semantics, then discovery and sibling guidance. Every sentence adds value and none are redundant.

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 simple one-parameter list tool with an output schema present, the description covers the core purpose, the parameter, and routing to sibling tools. It does not explain return contents or edge cases, but the output schema handles that. Overall it is complete enough for correct invocation.

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?

Schema coverage is 0% for the single parameter, so the description must compensate. It defines folder_path as a path string with concrete examples ('Documents/Projects' or 'Stock Investor Accelerator'), adding meaning beyond the bare schema. It could go further with format details but is sufficient.

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 opens with 'List items in a OneDrive folder by path,' a specific verb + resource + method. It also names sibling tools (onedrive_list_root, onedrive_read_file) to distinguish this tool's scope, so an agent can immediately tell what it does vs. alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use onedrive_list_root or onedrive_search first when the exact folder_path is unknown, and directs the agent to onedrive_read_file for reading discovered files. This clearly covers when to use this tool and when to prefer alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onedrive_list_rootA

List items in the OneDrive root folder.

Sibling tools: use onedrive_list_folder for nested folders and onedrive_read_file to read a discovered file.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It transparently states the core behavior of listing items in the root folder and implies non-recursive scope by directing nested-folder cases to a sibling. It does not mention pagination or permissions, but the output schema covers return structure, and the operation is simple enough that this is a minor gap.

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?

Two short sentences, no filler. The core behavior is front-loaded, and the sibling routing is a natural second sentence. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only list operation with an output schema, this description is complete: it states what is listed, where, and which sibling to use for other cases. An agent has everything needed to call it correctly.

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?

The tool has zero parameters)Skip; the input schema is an empty object, so there are no parameter semantics to clarify. The description sensibly omits parameter details, and the baseline for zero-parameter tools is 4.

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 uses a specific verb and resource: 'List items in the OneDrive root folder.' It clearly signals the scope is the root folder, which distinguishes it from sibling onedrive_list_folder that handles nested folders. An agent can immediately identify the tool's purpose without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names alternatives with conditions: 'use onedrive_list_folder for nested folders and onedrive_read_file to read a discovered file.' This tells the agent exactly when not to use this tool and which sibling to choose instead, leaving no inference required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onedrive_read_fileA

Read the contents of a file from OneDrive.

Supports:

  • Text files (.txt, .md, .csv, .json, etc.)

  • PDFs (text extracted)

  • Word documents (.docx)

  • Excel spreadsheets (.xlsx) - exported as CSV-like format

  • PowerPoint presentations (.pptx)

Args: file_path: Path to the file (e.g., "Documents/report.pdf" or "Stock Investor Accelerator/notes.txt") max_chars: Maximum characters to return (default: 100000)

Discovery: use onedrive_search, onedrive_list_root, or onedrive_list_folder first to find the exact file_path.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes
max_charsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of explaining behavior. It does this well by noting that PDFs have text extracted, Excel files are exported in CSV-like format, and max_chars limits the amount returned. It could also mention unsupported file types or error behavior, but it is substantially transparent for a read operation.

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 well-organized with a short intro, a useful supported-formats list, parameter definitions, and a discovery note. Every section earns its place, and no unnecessary filler is present.

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?

Given the tool's moderate complexity, the description covers the essential workflow: finding the file path first, supported formats, and the main parameters. An output schema exists, so return structure need not be described. It is complete enough for an agent to invoke the tool correctly, though it omits details like auth requirements and error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/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 fully explain the parameters. It does: file_path is defined with concrete examples, and max_chars is described as the maximum characters to return with its default. This goes beyond the bare schema, which only provides types and a default.

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 opens with a specific verb and resource: 'Read the contents of a file from OneDrive.' It clearly explains what operation is performed and distinguishes this from the sibling list/search/write tools, while also naming the supported file types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs the agent to use onedrive_search, onedrive_list_root, or onedrive_list_folder first to discover the exact file_path. This gives clear when-to-use context and useful preconditions, though it does not enumerate exclusion cases or compare directly with the gdrive read/download siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

onedrive_start_reauthA

Start OneDrive re-authentication. Returns URL and code for user.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description carries the full burden of behavioral disclosure. It mentions the output (URL and code) but does not disclose side effects such as invalidating existing tokens, requiring user interaction, or whether calling it repeatedly is safe.

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?

Two short sentences, front-loaded with the core action and immediately clarifying the return value. There is no redundant or filler content.

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 zero-parameter tool with an output schema, this is minimally adequate: it states the action and return value. However, it lacks the relationship to onedrive_complete_reauth and any side-effect disclosure, leaving the full calling context incomplete.

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?

The tool has zero parameters and schema description coverage is 100%, so no parameter documentation is needed. The description nevertheless adds useful context about what the returned URL and code are for.

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 states a specific action, 'Start OneDrive re-authentication', on a clear resource, and adds what the tool returns ('URL and code for user'). This distinguishes it from siblings such as onedrive_complete_reauth, onedrive_list_root, and onedrive_read_file.

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 sibling onedrive_complete_reauth implies a pairing, but the description never says that this is the first step of a two-step flow or when reauth is needed.

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.

  1. 21 tool updatesv0.2.0
    • First observedgdrive_copy
    • First observedgdrive_create_doc
    • First observedgdrive_create_folder
    • First observedgdrive_download_file
    • First observedgdrive_list_folder
    • First observedgdrive_list_folder_recursive
    • First observedgdrive_list_shared_drives
    • First observedgdrive_move
    • First observedgdrive_read_file
    • First observedgdrive_rename
    • First observedgdrive_search
    • First observedgdrive_share
    • First observedgdrive_trash
    • First observedgdrive_undo
    • First observedgdrive_write_file
    • First observedonedrive_complete_reauth
    • First observedonedrive_list_folder
    • First observedonedrive_list_root
    • First observedonedrive_read_file
    • First observedonedrive_search
    • First observedonedrive_start_reauth

TDQS

A3.7/5.0

Scored across 21 tools

Disambiguation4/5

Most tools have clearly distinct actions, and the gdrive_/onedrive_ prefixes separate the two providers cleanly. A few near-overlaps exist (gdrive_list_folder vs gdrive_list_folder_recursive, and gdrive_write_file vs gdrive_create_doc), but the descriptions explicitly disambiguate them.

Naming Consistency4/5

The provider_verb[_noun] pattern is consistent and readable, e.g., gdrive_create_folder, gdrive_read_file, onedrive_list_folder. Minor deviations exist like verb-only names (gdrive_copy, gdrive_trash, gdrive_undo, gdrive_search), but they do not undermine predictability.

Tool Count3/5

21 tools falls in the heavy range for a single MCP server, though the dual-provider scope explains the size. Each tool has a plausible purpose, but the surface feels larger than a typical well-scoped single-domain server.

Completeness3/5

The Google Drive side is fairly complete: create, read, search, list, rename, move, copy, trash, share, download, and undo are all covered. The OneDrive side is notably incomplete, offering only list/search/read/reauth with no create, write, rename, move, trash, or share operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers