google-drive-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@google-drive-mcpList all files in the folder named 'Projects'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Google Drive MCP Server
A Model Context Protocol (MCP) server for Google Drive API v3, enabling AI agents like Claude to manage Google Drive files, folders, and sharing.
Provides 26 tools across 9 categories for comprehensive Google Drive management.
Features
Category | Tools | Description |
Files | 10 | List, search, full-text search, read, upload, update, append, export files |
Trash | 3 | Trash, restore, list trash |
Folders | 1 | Create folders |
Organization | 2 | Move, copy files |
Sharing | 5 | Share files, manage permissions, create share links |
Metadata | 2 | Get/update file info |
Revisions | 2 | List revision history, download specific versions |
Shared Drives | 2 | List shared drives, get shared drive info |
Utilities | 1 | Recently accessed files |
Related MCP server: MCP Google Workspace Server
Requirements
Python >= 3.10
uv (recommended) or pip
Google Cloud project with Drive API enabled
OAuth 2.0 credentials (from Google Cloud Console)
Setup
1. Google Cloud Project
Go to Google Cloud Console and create a new project
Enable Google Drive API at APIs & Services > Library
Create credentials at APIs & Services > Credentials:
OAuth 2.0 Client ID (Desktop app)
Download the credentials JSON file
2. Installation
git clone https://github.com/software-engineer-mj/google-drive-mcp.git
cd google-drive-mcp
uv sync3. Configuration
cp .env.example .envVariable | Required | Description |
| Yes | Path to OAuth 2.0 credentials JSON |
| No | OAuth token storage path (default: |
| No | Maximum download size in MB (default: 10) |
Authentication
On first run, a browser will open for Google account authorization. After approval, token.json is created and refreshed automatically.
Note: Never commit
credentials.jsonortoken.jsonto version control. They are already in.gitignore.
Usage
stdio (default)
uv run python -m google_drive_mcpDocker
docker build -t google-drive-mcp .
docker run -v /path/to/credentials.json:/app/credentials.json \
-e GOOGLE_DRIVE_CREDENTIALS_PATH=/app/credentials.json \
google-drive-mcpMCP Client Configuration
Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"google-drive": {
"command": "uv",
"args": ["run", "--directory", "/path/to/google-drive-mcp", "python", "-m", "google_drive_mcp"],
"env": {
"GOOGLE_DRIVE_CREDENTIALS_PATH": "/path/to/credentials.json",
"GOOGLE_DRIVE_TOKEN_PATH": "/path/to/token.json"
}
}
}
}Claude Code
Add to .mcp.json:
{
"mcpServers": {
"google-drive": {
"command": "uv",
"args": ["run", "--directory", "/path/to/google-drive-mcp", "python", "-m", "google_drive_mcp"],
"env": {
"GOOGLE_DRIVE_CREDENTIALS_PATH": "/path/to/credentials.json",
"GOOGLE_DRIVE_TOKEN_PATH": "/path/to/token.json"
}
}
}
}Development
# Install with dev dependencies
uv sync --dev
# Run tests
uv run pytest tests/ -v
# Lint
uv run ruff check src/ tests/
# Format
uv run ruff format src/ tests/Tool Reference
Files (10)
Tool | Description |
| List files in Drive, optionally within a folder |
| Search files using Drive query syntax |
| Search files by their text content (full-text search) |
| Read file content (Google Docs/Sheets/Slides auto-exported to text/CSV) |
| Upload a text file |
| Upload a binary file (base64-encoded) |
| Update existing file content |
| Append text to the end of an existing text file |
| Export Google Workspace file to PDF, DOCX, XLSX, etc. |
| Create a new Google Docs, Sheets, or Slides |
Trash (3)
Tool | Description |
| Move file to trash (recoverable) |
| Restore file from trash |
| List files in trash |
Folders (1)
Tool | Description |
| Create a new folder |
Organization (2)
Tool | Description |
| Move file to a different folder |
| Copy a file |
Sharing (5)
Tool | Description |
| Share file by email (reader/writer/commenter/owner) |
| List file permissions |
| Remove a permission |
| Create "anyone with link" share link |
| Update existing permission role |
Metadata (2)
Tool | Description |
| Get detailed file metadata |
| Update file name/description |
Revisions (2)
Tool | Description |
| List file revision history |
| Download specific revision content |
Shared Drives (2)
Tool | Description |
| List all shared drives the user has access to |
| Get metadata for a specific shared drive |
Utilities (1)
Tool | Description |
| List recently accessed files |
Google Docs Auto-Conversion
read_file automatically converts Google Workspace files:
Source Format | Export Format |
Google Docs | Plain Text |
Google Sheets | CSV |
Google Slides | Plain Text |
export_file supports additional formats:
Source Format | Supported Formats |
Google Docs | pdf, docx, odt, txt, html |
Google Sheets | pdf, xlsx, ods, csv, tsv |
Google Slides | pdf, pptx, txt |
Google Drawings | pdf, png, svg |
Project Structure
src/google_drive_mcp/
├── __init__.py # FastMCP server instance
├── __main__.py # Entry point with auto-discovery
├── auth.py # OAuth 2.0 authentication
├── client.py # Google Drive API wrapper
├── exceptions.py # Custom exception hierarchy
├── lifespan.py # Server lifecycle management
├── utils.py # MIME type mapping, helpers
├── validators.py # Input validation utilities
└── tools/
├── __init__.py
├── drives.py # Shared drives management
├── files.py # File CRUD operations
├── folders.py # Folder management
├── metadata.py # File metadata
├── organization.py # Move, copy
├── revisions.py # Revision history
├── sharing.py # Sharing and permissions
├── trash.py # Trash operations
└── utilities.py # Recently accessed files
tests/
├── conftest.py
├── test_auth.py
├── test_client.py
├── test_server.py
├── test_utils.py
└── tools/
├── conftest.py
└── test_<domain>.py # Tests matching each tool moduleLicense
MIT - see LICENSE for details.
Available Tools
25 toolsappend_to_fileA
Append text content to the end of an existing text file. Does not work with Google Docs/Sheets/Slides.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Text content to append to the end of the file. | |
| file_id | Yes | The ID of the text file to append to. | |
| mime_type | No | MIME type of the file (e.g., 'text/plain', 'application/json'). | text/plain |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states that append operates at the end and doesn't work with Google Docs, but omits details like required permissions, side effects (e.g., file locked), size limits, or error behavior, which are critical for agent execution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, then a limitation. No extraneous words; every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the basic operation and a notable limitation, it lacks information on return values, error conditions, and constraints (e.g., file size, encoding), which would be useful given the tool's role in file manipulation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully describes parameters. The description adds no additional meaning or context beyond what the schema provides, resulting in baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('append text content'), the target ('existing text file'), and explicitly excludes Google Docs/Sheets/Slides, distinguishing it from siblings like create_google_doc and read_file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description limits applicability to existing text files and excludes Google Docs, but does not provide proactive guidance on when to use this tool versus alternatives like upload_file or create_google_doc, nor does it specify prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_folderB
Create a new folder in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the new folder. | |
| parent_id | No | ID of the parent folder. If not provided, creates in root. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It only states creation, but omits behaviors like duplicate handling, permission requirements, or destructiveness. Minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence, no waste, but lacks structure for quick scanning. Could be improved by front-loading key usage constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with output schema present, but description does not explain return values or error cases. Adequate for a trivial operation but incomplete for nuanced scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema already explains parameters. Description adds no extra semantic value beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Create', resource 'folder', and context 'in Google Drive'. Distinguishes from sibling tools like create_google_doc and upload_binary_file by specifying folder creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like creating a doc or uploading a file. No explicit when-not-to-use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_google_docC
Create a new blank Google Docs, Sheets, or Slides file.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the new document. | |
| doc_type | No | Type of document: 'document' (Google Docs), 'spreadsheet' (Google Sheets), or 'presentation' (Google Slides). | document |
| parent_id | No | ID of the parent folder. If not provided, creates in root. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits like auth requirements or side effects, but it only says 'create'. No mention of overwrite behavior, permission needs, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, and no extraneous words. It is very concise, though could include more useful context without losing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered. The description covers the main purpose, but lacks behavioral context and usage conditions. For a simple tool with 3 params, it is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond what the schema provides, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it creates a blank file of three types (Docs, Sheets, Slides). Verb and resource are specific, and it implicitly differentiates from siblings like upload_file or create_folder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any conditions or prerequisites. The description is purely functional without contextual advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_infoB
Get detailed metadata for a file including size, dates, owners, and sharing status.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | The ID of the file to get information about. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. It only states it retrieves metadata but fails to mention read-only nature, authentication needs, rate limits, or any side effects. Lacks transparency for a safe 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence that front-loads the purpose with no redundant information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return value details are covered. However, description is minimal and does not explain prerequisites (e.g., file ownership, access rights) or typical use cases. Adequate but could be more helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes 'file_id' as 'the ID of the file to get information about.' The tool description adds no extra meaning beyond what the schema provides, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'get' and resource 'file info' with specific metadata categories (size, dates, owners, sharing status). Distinguishes from sibling tools like list_files (list), read_file (content), share_file (permissions) by focusing on metadata retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like list_files or get_revision. The purpose implies it for general metadata, but no when-not-to-use or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_revisionA
Download the content of a specific file revision (version).
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | The ID of the file. | |
| revision_id | Yes | The ID of the revision to retrieve. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It states 'Download the content' but does not clarify the output format (e.g., binary, base64, or inline text), size limits, authentication needs, or whether the download is streamed. This is minimal behavioral context for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with two params and existing sibling tools (like list_revisions), the description partially covers usage but omits key context like the need to obtain revision_id from list_revisions first. The presence of an output schema (unseen) may reduce the burden, but without details, completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions (file_id and revision_id). The tool description adds no additional meaning beyond the schema, so the baseline score of 3 applies. No extra guidance (e.g., where to find revision_id) is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Download' and clearly identifies the resource as 'content of a specific file revision'. This distinguishes it from sibling tools like 'list_revisions' (metadata) and 'read_file' (current version).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when needing revision content) but lacks explicit guidance on when not to use or prerequisites. It does not mention calling 'list_revisions' first to obtain a revision_id, nor does it address alternatives such as using 'read_file' for the current version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesB
List files in Google Drive, optionally within a specific folder.
| Name | Required | Description | Default |
|---|---|---|---|
| corpora | No | Source of files: 'user' (default), 'drive' (specific shared drive), or 'allDrives'. | |
| drive_id | No | ID of the shared drive when corpora='drive'. | |
| order_by | No | Sort order. Options: 'name', 'modifiedTime', 'createdTime'. Append ' desc' for descending. | modifiedTime desc |
| folder_id | No | ID of the folder to list files from. If not provided, lists from root. | |
| page_size | No | Maximum number of files to return (1-100). | |
| page_token | No | Token for the next page of results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description bears full burden. It states 'list files', implying read-only, but adds no extra behavioral context beyond what the schema already provides (e.g., pagination, ordering). The description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and to the point. However, it is very brief and could benefit from a second sentence about scope or usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a simple purpose and an output schema, so description doesn't need return values. However, given the many siblings, more contextual guidance (e.g., when to use list vs search) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds a hint about folder_id ('optionally within a specific folder'), but no additional meaning for other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists files in Google Drive, optionally filtering by folder. It distinguishes from sibling tools like search_files and list_shared_drives, but could be more specific about the scope (user vs allDrives).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like search_files or list_trash. The description only mentions optional folder filtering, but lacks explicit when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_permissionsA
List all permissions (who has access) for a file in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | The ID of the file to list permissions for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'list all permissions' without mentioning whether special permissions are needed, if inherited permissions are included, pagination behavior, or response structure. This leaves significant gaps for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action, and contains no extraneous words. It efficiently communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter, an output schema (though not visible), and no complexity, the description is minimally adequate for a simple list operation. However, it lacks details on how permissions are returned, any limits, or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter file_id is described in the schema, and the description merely restates 'for a file'. With 100% schema description coverage, baseline is 3; the description adds no new meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List', the resource 'permissions for a file', and the context 'in Google Drive'. It distinguishes from sibling tools like list_shared_drives (drives) and share_file (create), making the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing permissions but provides no explicit guidance on when to use this vs alternatives (e.g., remove_permission, update_permission). No prerequisites or exclusions are mentioned, so agents must infer context from similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recentA
List recently accessed files, sorted by last viewed time.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Maximum number of recent files to return (1-100). | |
| page_token | No | Token for the next page of results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description mentions sorting by last viewed time, adding behavioral context. However, it could clarify scope (e.g., user's recent files) and whether trashed files are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words, front-loaded with the verb and key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is mostly complete for a simple paginated list, and an output schema exists for return values. Minor gap: could be more explicit about which user's recent files.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no extra meaning beyond the parameter descriptions. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists recently accessed files sorted by last viewed time, which is specific and distinguishes it from siblings like list_files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for recent files but provides no explicit guidance on when to use this tool versus alternatives like list_files or search_files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_revisionsC
List the revision history (versions) of a file. Shows who modified it and when.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | The ID of the file to list revisions for. | |
| page_size | No | Maximum number of revisions to return (1-100). | |
| page_token | No | Token for the next page of results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only mentions showing who modified and when. It does not disclose pagination behavior, authentication needs, rate limits, or whether full file content is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. No wasted words, though slightly more detail could be added without making it verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and 3 parameters, the description is minimally complete but lacks details about output format, pagination, and behavioral context. It adequately explains the basic purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists revision history (versions) of a file, specifying 'shows who modified it and when.' This distinguishes it from sibling get_revision, but could explicitly mention that it returns multiple revisions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_revision. The description does not provide context for selecting this over similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_trashB
List files currently in the trash.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Maximum number of trashed files to return (1-100). | |
| page_token | No | Token for the next page of results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like whether it returns only metadata, how pagination behaves, or what 'trash' encompasses. The current description offers none of this, leaving the agent to infer from the input schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. However, it could be slightly expanded to include behavioral context without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is simple and has a complete schema with output schema, the description is minimally adequate but lacks context on result ordering, empty states, or how it relates to sibling trash/restore operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both page_size and page_token documented. The description adds no additional parameter meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'files currently in the trash', distinguishing it from siblings like list_files and list_recent which deal with non-trashed or recently modified files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as list_files (which may include non-trashed files) or search_files. There are no notes on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_fileB
Move a file to a different folder in Google Drive.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | The ID of the file to move. | |
| new_parent_id | Yes | The ID of the destination folder. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. Only states 'move a file' without details on permissions, reversibility, or side effects. Insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise, no wasted words. However, could add more contextual information without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema but description omits behavioral context. Given many sibling tools, more detail would improve completeness. Adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add any meaning beyond what the schema already provides for file_id and new_parent_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'move' and resource 'file' with destination 'different folder in Google Drive'. Effectively distinguishes from sibling tools like upload, trash, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention prerequisites, limitations, or compare with siblings like update_metadata or read_file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileB
Read the content of a file from Google Drive. Google Docs/Sheets/Slides are automatically exported to text/CSV format.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | The ID of the file to read. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only mentions export behavior for Google Docs/Sheets/Slides. It omits details on permissions, size limits, or response format beyond what the output schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the verb and resource, no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description is minimally adequate but lacks mention of error handling, file type handling beyond Google formats, or prerequisites like authentication.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning to the file_id parameter beyond the schema's own description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads file content from Google Drive and specifies automatic export for Docs/Sheets/Slides, distinguishing it from siblings that list, search, or modify files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_file_info or search_file_content, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_permissionB
Remove a specific permission from a file, revoking access for that user.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | The ID of the file. | |
| permission_id | Yes | The ID of the permission to remove. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the basic action. It does not disclose side effects, required permissions, reversibility, or error behavior. The description is insufficient for safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence. It is front-loaded with the primary action. However, it may be too brief for a tool with no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of many sibling tools and no annotations, the description is too minimal. It doesn't mention output, error handling, or permissions, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes both parameters. The description adds no additional meaning beyond repeating the parameter purposes. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: removing a specific permission from a file, which is a specific verb-resource combination. It distinguishes from siblings like list_permissions (list), update_permission (update), and share_file (create/share).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as update_permission or share_file. There is no mention of prerequisites, error conditions, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_fileA
Restore a file from trash back to its original location.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | The ID of the trashed file to restore. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly states what the tool does (restore from trash to original location), which is sufficient for a straightforward operation. No annotations are provided, so the description carries the burden and does so adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wordiness. Every word is necessary and contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with one parameter and an output schema present. Lacks mention of error cases or permissions, but is functionally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already fully describes the only parameter. The description adds no further parameter-specific meaning beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (restore), the resource (a file from trash), and the outcome (back to original location). It effectively distinguishes from sibling tools like trash_file and list_trash.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for restoring trashed files but lacks explicit guidance on when to use vs. alternatives, prerequisites, or error conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_file_contentA
Search for files by their text content. Finds files containing the specified text.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to search for within file contents. | |
| corpora | No | Source of files: 'user' (default), 'drive', or 'allDrives'. | |
| drive_id | No | ID of the shared drive when corpora='drive'. | |
| file_type | No | Optional MIME type filter (e.g., 'text/plain', 'application/pdf'). | |
| page_size | No | Maximum number of results to return (1-100). | |
| page_token | No | Token for the next page of results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the basic purpose and does not mention pagination, scope (e.g., corpora), performance considerations, or any side effects. The schema provides some details but the description adds minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short with two sentences, front-loading the purpose. It is efficient with no wasted words, though a slightly more structured format could improve scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters and an output schema, the description is too brief. It does not explain nuances like the difference between corpora options, pagination behavior, or how to interpret results. An output schema exists but the description lacks complementary context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter descriptions are already comprehensive. The tool description does not add any extra meaning beyond what is in the schema, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches files by text content, distinguishing it from sibling tools like search_files which likely search by name or metadata. 'Search for files by their text content' is a specific verb+resource combination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for text content search, and the sibling list includes search_files which serves a different purpose. However, no explicit when-to-use or when-not-to-use guidance is given, though the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filesC
Search for files in Google Drive using query syntax.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Google Drive search query. Examples: "name contains 'report'", "mimeType = 'application/pdf'". | |
| corpora | No | Source of files: 'user' (default), 'drive', or 'allDrives'. | |
| drive_id | No | ID of the shared drive when corpora='drive'. | |
| page_size | No | Maximum number of results to return (1-100). | |
| page_token | No | Token for the next page of results. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behavioral traits like read-only nature, pagination behavior, or rate limits. It only says 'Search for files,' omitting any context about side effects, quotas, or output structure beyond what the schema shows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of 9 words. It efficiently conveys the core purpose without unnecessary detail, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters and an output schema, the description is too minimal. It lacks information about pagination, query syntax examples (though schema has some), and when to use this tool among many file-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already defines all parameters well. The description adds no additional parameter context or usage tips, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Search for files in Google Drive using query syntax,' which clearly identifies the action and resource. It vaguely distinguishes from siblings like list_files by mentioning query syntax, but doesn't explicitly contrast with related tools like search_file_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, it doesn't explain differences from list_files or search_file_content, nor does it mention prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trash_fileA
Move a file to trash. The file can be restored later with restore_file.
| Name | Required | Description | Default |
|---|---|---|---|
| file_id | Yes | The ID of the file to move to trash. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses reversibility but does not cover permissions, side effects, or what exactly happens to the file (e.g., visibility changes).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences convey the action and an important follow-up. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple tool with one parameter and an output schema, the description is mostly complete. Some behavioral details are missing, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter file_id is fully described in the schema (100% coverage). The description does not add extra meaning beyond the schema, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Move a file to trash') and identifies the resource (file). It also distinguishes from sibling tools like restore_file and list_trash by noting reversibility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by mentioning restoration, but does not explicitly state when to use this tool over alternatives or any exclusions. No direct guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_metadataB
Update a file's metadata (name and/or description).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name for the file. | |
| file_id | Yes | The ID of the file to update. | |
| description | No | New description for the file. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It implies a non-destructive update but does not mention if it overwrites or merges fields, required permissions, or potential side effects like triggering events.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action and resource, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description is simple and the output schema exists, it lacks context about when to use this tool over siblings. For a straightforward update, it is minimally adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'file's metadata', specifying that it can change name and/or description. It distinguishes from sibling tools like 'move_file' or 'share_file' which handle different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. For example, renaming a file might also be achievable via 'move_file' or another tool, but no comparative context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_permissionB
Update an existing permission's role on a file.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | New role: 'reader', 'writer', 'commenter', or 'owner'. | |
| file_id | Yes | The ID of the file. | |
| permission_id | Yes | The ID of the permission to update. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose behavioral traits such as whether the update is destructive (e.g., overwriting roles irrevocably), any authorization requirements, or potential side effects. The tool mutates state but offers no safety information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the key action. Every word contributes to understanding the tool's purpose, with no unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool has an output schema (not shown but indicated), the description does not explain return values or common errors. For a simple update tool, the description is adequate but lacks usage context that could improve agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes all parameters (file_id, permission_id, role with allowed values). The description adds no additional semantic meaning beyond what is in the schema, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update', the resource 'permission', and the specific action 'role on a file'. It distinguishes from sibling tools like 'share_file' or 'remove_permission' which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'share_file' for adding new permissions or 'remove_permission' for deletion. There is no mention of prerequisites like existing permissions or file ownership.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_binary_fileC
Upload a binary file to Google Drive using base64-encoded content.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the file in Google Drive. | |
| mime_type | Yes | MIME type of the file (e.g., 'image/png', 'application/pdf'). | |
| parent_id | No | ID of the parent folder. If not provided, uploads to root. | |
| content_base64 | Yes | Base64-encoded binary content of the file. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the basic action. It fails to disclose important behavioral traits such as permission requirements, file size limits, overwrite behavior, or success/failure outcomes. The presence of an output schema partially mitigates return-value concerns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that captures the core action. It is front-loaded and contains no redundant information. However, it could benefit from a slightly expanded structure to include usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of sibling tools like 'upload_file', the description lacks guidance on when to choose this tool. No mention of prerequisites or context. The presence of an output schema provides some completeness for return values, but the description is insufficient for confident tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for its four parameters. The tool description does not add additional meaning beyond the schema; it only reiterates the base64 encoding aspect. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (upload), resource (binary file to Google Drive), and method (base64-encoded content). It is specific but does not explicitly differentiate from the sibling tool 'upload_file', which may have similar functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'upload_file', 'create_google_doc', or 'create_folder'. There are no prerequisites, context, or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upload_fileA
Upload a new file to Google Drive with the given text content.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the file in Google Drive (e.g., 'report.txt'). | |
| content | Yes | Text content of the file to upload. | |
| mime_type | No | MIME type of the file (e.g., 'text/plain', 'application/json'). | text/plain |
| parent_id | No | ID of the parent folder. If not provided, uploads to root. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description bears full burden. It states 'Upload a new file' implying creation, but does not disclose overwrite behavior, permission requirements, or whether the file is created in Drive's native format. Basic but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, complete sentence with no redundancy. It efficiently conveys the core action without wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters and an output schema (not shown). The description covers the main action but omits context like whether the parent folder is created automatically, file size limits, or return value details. Adequate but could be more complete for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds little beyond the schema. The phrase 'with the given text content' echoes the content parameter but does not clarify MIME types or parent folder behavior beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Upload' and the resource 'a new file to Google Drive with the given text content.' It distinguishes from siblings like 'upload_binary_file' and 'create_google_doc' by specifying text content, which aligns with the tool's intended use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for text file uploads but provides no explicit guidance on when to use this tool versus alternatives like 'upload_binary_file' or 'create_google_doc.' No when-not-to-use or alternative scenarios are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clear and distinct purpose, covering various aspects of Google Drive management without overlap. For example, list_files, search_files, list_recent, and list_trash each target different subsets of files.
All tool names follow a consistent verb_noun pattern in snake_case, such as list_shared_drives, create_folder, or update_metadata. This makes the API predictable and easy to navigate.
With 25 tools, the server covers a broad range of Google Drive operations. While slightly above the typical 3-15 tool range, the count is justified given the domain's complexity and is not excessive.
The tool set provides comprehensive CRUD operations, sharing, revision history, and search. Minor gaps include the lack of a permanent delete tool or a function to restore a file to a previous revision, but the core workflows are well-covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Hosted Google Calendar MCP server for AI agents. No self-hosting or Google Cloud setup.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA server that provides a Machine Control Protocol (MCP) interface to search, access, and interact with Google Drive files and folders, enabling AI assistants to work with Google Drive content.8MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI agents to interact with Google Workspace services including Drive, Docs, and Sheets through natural language commands.8MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI assistants to interact with Proton Drive files, supporting operations like listing, reading, creating, and deleting files and folders.77316MIT
- FlicenseBqualityDmaintenanceAn MCP server that enables integration with Google Drive through a service account to list files and retrieve detailed file metadata. It allows users to browse and inspect Drive contents using natural language via the Model Context Protocol.2
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/software-engineer-mj/google-drive-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server