Google Drive Automation via Rube MCP
Automate Google Drive workflows including file upload/download, search, folder management, sharing/permissions, and organization through Composio's Google Drive toolkit.
Toolkit docs: composio.dev/toolkits/googledrive
Prerequisites
-
Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
-
Active Google Drive connection via RUBE_MANAGE_CONNECTIONS with toolkit googledrive
-
Always call RUBE_SEARCH_TOOLS first to get current tool schemas
Setup
Get Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
-
Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds
-
Call RUBE_MANAGE_CONNECTIONS with toolkit googledrive
-
If connection is not ACTIVE, follow the returned auth link to complete Google OAuth
-
Confirm connection status shows ACTIVE before running any workflows
Core Workflows
- Upload and Download Files
When to use: User wants to upload files to or download files from Google Drive
Tool sequence:
-
GOOGLEDRIVE_FIND_FILE
-
Locate target folder for upload [Prerequisite]
-
GOOGLEDRIVE_UPLOAD_FILE
-
Upload a file (max 5MB) [Required]
-
GOOGLEDRIVE_RESUMABLE_UPLOAD
-
Upload large files [Fallback]
-
GOOGLEDRIVE_DOWNLOAD_FILE
-
Download a file by ID [Required]
-
GOOGLEDRIVE_DOWNLOAD_FILE_OPERATION
-
Track long-running downloads [Fallback]
-
GOOGLEDRIVE_GET_FILE_METADATA
-
Verify file after upload/download [Optional]
Key parameters:
-
file_to_upload : Object with name , mimetype , and s3key (file must be in internal storage)
-
folder_to_upload_to : Target folder ID (optional; uploads to root if omitted)
-
file_id : ID of file to download
-
mime_type : Export format for Google Workspace files only (omit for native files)
Pitfalls:
-
GOOGLEDRIVE_UPLOAD_FILE requires file_to_upload.s3key ; files must already be in internal storage
-
For non-Google formats (Excel, PDF), do NOT set mime_type ; it causes errors for native files
-
Download responses provide a temporary URL at data.downloaded_file_content.s3url , not inline bytes
-
Use GOOGLEDRIVE_RESUMABLE_UPLOAD for files >5MB or when basic uploads fail
- Search and List Files
When to use: User wants to find specific files or browse Drive contents
Tool sequence:
-
GOOGLEDRIVE_FIND_FILE
-
Search by name, content, type, date, or folder [Required]
-
GOOGLEDRIVE_LIST_FILES
-
Browse files with folder scoping [Alternative]
-
GOOGLEDRIVE_LIST_SHARED_DRIVES
-
Enumerate shared drives [Optional]
-
GOOGLEDRIVE_GET_FILE_METADATA
-
Get detailed file info [Optional]
-
GOOGLEDRIVE_GET_ABOUT
-
Check storage quota and supported formats [Optional]
Key parameters:
-
q : Drive query string (e.g., "name contains 'report'", "mimeType = 'application/pdf'")
-
corpora : Search scope ('user', 'domain', 'drive', 'allDrives')
-
fields : Response fields to include (e.g., 'files(id,name,mimeType)')
-
orderBy : Sort key ('modifiedTime desc', 'name', 'quotaBytesUsed desc')
-
pageSize : Results per page (max 1000)
-
pageToken : Pagination cursor from nextPageToken
-
folder_id : Scope search to a specific folder
Pitfalls:
-
403 PERMISSION_DENIED if OAuth scopes insufficient for shared drives
-
Pagination required; files are in response.data.files ; follow nextPageToken until exhausted
-
corpora="domain" may trigger 400; try "allDrives" with includeItemsFromAllDrives=true
-
Query complexity limits: >5-10 OR clauses may error "The query is too complex"
-
Wildcards (*) NOT supported in name ; use contains for partial matching
-
'My Drive' is NOT searchable by name; use folder_id='root' for root folder
-
User email searches: use 'user@example.com' in owners (NOT owner:user@example.com )
- Share Files and Manage Permissions
When to use: User wants to share files or manage access permissions
Tool sequence:
-
GOOGLEDRIVE_FIND_FILE
-
Locate the file to share [Prerequisite]
-
GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCE
-
Set sharing permission [Required]
-
GOOGLEDRIVE_LIST_PERMISSIONS
-
View current permissions [Optional]
-
GOOGLEDRIVE_GET_PERMISSION
-
Inspect a specific permission [Optional]
-
GOOGLEDRIVE_UPDATE_PERMISSION
-
Modify existing permission [Optional]
-
GOOGLEDRIVE_DELETE_PERMISSION
-
Revoke access [Optional]
Key parameters:
-
file_id : ID of file to share
-
type : 'user', 'group', 'domain', or 'anyone'
-
role : 'owner', 'organizer', 'fileOrganizer', 'writer', 'commenter', 'reader'
-
email_address : Required for type='user' or 'group'
-
domain : Required for type='domain'
-
transfer_ownership : Required when role='owner'
Pitfalls:
-
Invalid type/email combinations trigger 4xx errors
-
Using type='anyone' or powerful roles is risky; get explicit user confirmation
-
Org policies may block certain sharing types, causing 403
-
Permission changes may take time to propagate
-
Use GMAIL_SEARCH_PEOPLE to resolve contact names to emails before sharing
- Create and Organize Folders
When to use: User wants to create folder structures or move files between folders
Tool sequence:
-
GOOGLEDRIVE_FIND_FILE
-
Check if folder already exists [Prerequisite]
-
GOOGLEDRIVE_CREATE_FOLDER
-
Create a new folder [Required]
-
GOOGLEDRIVE_GET_FILE_METADATA
-
Verify created folder [Optional]
-
GOOGLEDRIVE_MOVE_FILE
-
Move files between folders [Optional]
-
GOOGLEDRIVE_UPDATE_FILE_PUT
-
Update file metadata/parents [Alternative]
Key parameters:
-
name : Folder name
-
parent_id : Parent folder ID (NOT name); omit for root
-
file_id : File to move
-
add_parents : Destination folder ID for move
-
remove_parents : Source folder ID to remove from
Pitfalls:
-
GOOGLEDRIVE_CREATE_FOLDER requires parent_id as an ID, not a folder name
-
Using parent_id="root" creates at top level; for nested paths, chain folder IDs
-
GOOGLEDRIVE_FIND_FILE returns ~100 items/page; follow nextPageToken for large drives
-
Move operations can leave items with multiple parents; use remove_parents for true moves
-
Always verify parent folder exists before creating children
Common Patterns
ID Resolution
-
File/folder name -> ID: GOOGLEDRIVE_FIND_FILE with q parameter
-
Root folder: Use folder_id='root' or 'root' in parents
-
Shared drive -> driveId: GOOGLEDRIVE_LIST_SHARED_DRIVES
-
Contact name -> email: GMAIL_SEARCH_PEOPLE (for sharing)
Query Syntax
Google Drive uses a specific query language:
-
Name search: "name contains 'report'" or "name = 'exact.pdf'"
-
Type filter: "mimeType = 'application/pdf'" or "mimeType = 'application/vnd.google-apps.folder'"
-
Folder scoping: "'FOLDER_ID' in parents"
-
Date filter: "modifiedTime > '2024-01-01T00:00:00'"
-
Combine with and /or /not : "name contains 'report' and trashed = false"
-
Boolean filters: "sharedWithMe = true" , "starred = true" , "trashed = false"
Pagination
-
Follow nextPageToken until absent for complete results
-
Set pageSize explicitly (default 100, max 1000)
-
De-duplicate results if running multiple searches
Export Formats
For Google Workspace files, set mime_type to export:
-
Docs: application/pdf , text/plain , text/html , application/vnd.openxmlformats-officedocument.wordprocessingml.document
-
Sheets: text/csv , application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
-
Slides: application/pdf , application/vnd.openxmlformats-officedocument.presentationml.presentation
Known Pitfalls
-
Internal storage required: Upload requires files in internal S3 storage (s3key)
-
Export vs download: Set mime_type ONLY for Google Workspace files; omit for native files
-
Temporary URLs: Downloaded content via s3url is temporary; fetch promptly
-
Query complexity: >5-10 OR clauses may error; split complex searches into multiple queries
-
Shared drive scoping: Missing drive permissions yield empty results; verify access first
-
No wildcards: Use contains operator instead of * for partial name matching
-
Folder creation chains: Always pass folder IDs (not names) as parent_id
-
Multiple parents: Move operations may leave items with multiple parents; use remove_parents
-
Rate limits: Heavy searches/exports can trigger 403/429; implement backoff
Quick Reference
Task Tool Slug Key Params
Search files GOOGLEDRIVE_FIND_FILE
q , corpora , pageSize
List files GOOGLEDRIVE_LIST_FILES
folderId , q , orderBy
Upload file GOOGLEDRIVE_UPLOAD_FILE
file_to_upload , folder_to_upload_to
Resumable upload GOOGLEDRIVE_RESUMABLE_UPLOAD
file data
Download file GOOGLEDRIVE_DOWNLOAD_FILE
file_id , mime_type (Workspace only)
File metadata GOOGLEDRIVE_GET_FILE_METADATA
fileId , fields
Create folder GOOGLEDRIVE_CREATE_FOLDER
name , parent_id
Move file GOOGLEDRIVE_MOVE_FILE
file_id , add_parents , remove_parents
Share file GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCE
file_id , role , type , email_address
List permissions GOOGLEDRIVE_LIST_PERMISSIONS
fileId
Update permission GOOGLEDRIVE_UPDATE_PERMISSION
file_id, permission_id
Delete permission GOOGLEDRIVE_DELETE_PERMISSION
file_id, permission_id
List shared drives GOOGLEDRIVE_LIST_SHARED_DRIVES
pageSize
Drive info GOOGLEDRIVE_GET_ABOUT
(none)
Create shortcut GOOGLEDRIVE_CREATE_SHORTCUT_TO_FILE
target file_id
Powered by Composio