MewCP Google Drive MCP Server
Hosted, Stateless & Multitenant Google Drive MCP server enables AI assistants to access, organize, search, and manage files through Google Drive.
Documentation
Upload, search, and manage Google Drive files — directly from your AI workflows.
A Model Context Protocol (MCP) server that exposes Google Drive's API for listing, searching, uploading, downloading, sharing, and organizing files and folders.
Overview
The Google Drive MCP Server provides full programmatic access to Google Drive through a stateless, multi-tenant interface:
- List, search, upload, and download files using Drive's native query syntax
- Create and organize folders, manage file permissions and sharing
- Read text file content directly without downloading to disk
Perfect for:
- Automating file management and document workflows from AI agents
- Building assistants that can read, organize, and share Drive files
- Integrating Google Drive actions into LLM-powered pipelines
Tools
list_files — List files in Google Drive
Lists files in Google Drive with optional filtering by parent folder, name, or type.
Inputs:
- `folder_id` (string, optional) — Parent folder ID to filter results by
- `query` (string, optional) — Additional Drive query fragment e.g. `name contains 'report'`
- `page_size` (integer, optional) — Maximum number of results to return, capped at 1000. Default: `10`
Output:
{
"count": 3,
"files": [
{
"id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs",
"name": "report.pdf",
"mimeType": "application/pdf",
"size": "204800",
"createdTime": "2024-01-15T10:00:00.000Z",
"modifiedTime": "2024-03-20T14:30:00.000Z",
"webViewLink": "https://drive.google.com/file/d/..."
}
]
}
get_file_metadata — Get metadata for a specific file by ID
Returns the full metadata object for a single file or folder.
Inputs:
- `file_id` (string, required) — Google Drive file ID
Output:
{
"id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs",
"name": "report.pdf",
"mimeType": "application/pdf",
"size": "204800",
"createdTime": "2024-01-15T10:00:00.000Z",
"modifiedTime": "2024-03-20T14:30:00.000Z",
"owners": [{ "displayName": "John Doe", "emailAddress": "[email protected]" }],
"webViewLink": "https://drive.google.com/file/d/..."
}
download_file — Download a file from Google Drive to local disk
Downloads a file from Drive and writes it to a specified local path.
Inputs:
- `file_id` (string, required) — Google Drive file ID
- `destination_path` (string, required) — Local filesystem path to save the file to
Output:
{
"message": "File downloaded successfully to: /path/to/file.pdf"
}
upload_file — Upload a file to Google Drive
Uploads a local file to Google Drive with an optional destination name, folder, and MIME type.
Inputs:
- `file_path` (string, required) — Local filesystem path of the file to upload
- `name` (string, optional) — Destination filename in Drive. Defaults to the local filename
- `folder_id` (string, optional) — Parent folder ID in Drive to upload into
- `mime_type` (string, optional) — MIME type of the file e.g. `text/plain`, `application/pdf`
Output:
{
"message": "File uploaded successfully",
"file": {
"id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs",
"name": "report.pdf",
"webViewLink": "https://drive.google.com/file/d/..."
}
}
create_folder — Create a new folder in Google Drive
Creates a new folder, optionally nested inside a parent folder.
Inputs:
- `name` (string, required) — Folder name
- `parent_folder_id` (string, optional) — Parent folder ID to create the folder inside
Output:
{
"message": "Folder created successfully",
"folder": {
"id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs",
"name": "Projects",
"webViewLink": "https://drive.google.com/drive/folders/..."
}
}
delete_file — Delete a file or folder from Google Drive
Permanently deletes a file or folder. This action cannot be undone.
Inputs:
- `file_id` (string, required) — Google Drive file or folder ID to delete
Output:
{
"message": "File/folder with ID 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs deleted successfully"
}
search_files — Search for files in Google Drive using advanced queries
Searches Drive using the full Drive query expression language and returns matching file metadata.
Inputs:
- `query` (string, required) — Drive query expression e.g. `name contains 'report'`, `mimeType='application/pdf'`
- `page_size` (integer, optional) — Maximum number of results to return, capped at 1000. Default: `10`
Output:
{
"count": 2,
"files": [
{
"id": "1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs",
"name": "Q1 Report.pdf",
"mimeType": "application/pdf",
"webViewLink": "https://drive.google.com/file/d/..."
}
]
}
share_file — Share a file with a user or make it publicly accessible
Grants a permission on a file, either to a specific user or to anyone with the link.
Inputs:
- `file_id` (string, required) — Google Drive file ID
- `email` (string, optional) — Recipient email address when sharing with a specific user
- `role` (string, optional) — Permission role. Values: `reader`, `commenter`, `writer`. Default: `reader`
- `share_type` (string, optional) — Permission type. Values: `user`, `group`, `domain`, `anyone`. Defaults to `user` if email is provided, otherwise `anyone`
Output:
{
"message": "File shared successfully",
"permission_id": "anyoneWithLink",
"webViewLink": "https://drive.google.com/file/d/.../view",
"webContentLink": "https://drive.google.com/uc?id=..."
}
get_file_content — Get the content of a text file from Google Drive
Reads and returns the decoded text content of a file directly, without saving to disk.
Inputs:
- `file_id` (string, required) — Google Drive file ID
Output:
"The full decoded text content of the file as a string."
API Parameters Reference
Common Parameters
file_id— Unique Google Drive file or folder identifier. Obtain fromlist_files,search_files, or any file response.folder_id— ID of a Drive folder. Uselist_filesorsearch_fileswithmimeType='application/vnd.google-apps.folder'to find folder IDs.page_size— Limits the number of items returned. Always capped at 1000.
Resource Formats
Drive Query Syntax (query parameter):
name contains 'report' — Files with "report" in name
name = 'budget.xlsx' — Exact filename match
mimeType = 'application/pdf' — Files of a specific MIME type
mimeType = 'application/vnd.google-apps.folder' — Folders only
'folder_id' in parents — Files inside a specific folder
modifiedTime > '2024-01-01T00:00:00' — Files modified after a date
fullText contains 'quarterly' — Files containing text (Docs/Sheets only)
Permission Roles:
reader — View only
commenter — View and comment
writer — View, comment, and edit
Troubleshooting
Missing or Invalid Headers
- Cause: API key not provided in request headers or incorrect format
- Solution:
- Verify
Authorization: Bearer YOUR_API_KEYandX-Mewcp-Credential-Id: CREDENTIAL-IDheaders are present - Check API key is active in your MewCP account
- Verify
Insufficient Credits
- Cause: API calls have exceeded your request limits
- Solution:
- Check credit usage in your Curious Layer dashboard
- Upgrade to a paid plan or add credits for higher limits
- Contact support for credit adjustments
Credential Not Connected
- Cause: No Google Drive credential linked to your account
- Solution:
- Go to Credentials in your MewCP dashboard
- Connect your Google account via OAuth
- Retry the request with the correct
X-Mewcp-Credential-Idheader
Malformed Request Payload
- Cause: JSON payload is invalid or missing required fields
- Solution:
- Validate JSON syntax before sending
- Ensure all required tool parameters are included
- Check parameter types match expected values
Server Not Found
- Cause: Incorrect server name in the API endpoint
- Solution:
- Verify endpoint format:
{server-name}/mcp/{tool-name} - Use correct server name from documentation
- Check available servers in your Curious Layer account
- Verify endpoint format:
Google Drive API Error
- Cause: Upstream Google Drive API returned an error
- Solution:
- Check Google service status at Google Workspace Status Page
- Verify your credential has the required Drive permissions
- Review the error message for specific details
Resources
- Google Drive API Documentation — Official API reference
- Google Drive API Reference — Complete endpoint reference
- FastMCP Docs — FastMCP specification
- FastMCP Credentials — FastMCP Credentials package for credential handling