Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate Google Drive file operations (upload, download, search, share, organize) via Rube MCP (Composio). Upload/download files, manage folders, share with permissions, and search across drives programmatically.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | 251% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 365% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 94% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 337% | 0% |
| case-22 | ✗→✓ | ▲ Improved | 317% | 0% |
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
RUBE_MANAGE_CONNECTIONS with toolkit googledriveRUBE_SEARCH_TOOLS first to get current tool schemasGet 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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit googledriveWhen 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 downloadmime_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 storagemime_type; it causes errors for native filesdata.downloaded_file_content.s3url, not inline bytesGOOGLEDRIVE_RESUMABLE_UPLOAD for files >5MB or when basic uploads failWhen 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 nextPageTokenfolder_id: Scope search to a specific folderPitfalls:
response.data.files; follow nextPageToken until exhaustedcorpora="domain" may trigger 400; try "allDrives" with includeItemsFromAllDrives=truename; use contains for partial matchingfolder_id='root' for root folder'user@example.com' in owners (NOT owner:user@example.com)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 sharetype: '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:
type='anyone' or powerful roles is risky; get explicit user confirmationGMAIL_SEARCH_PEOPLE to resolve contact names to emails before sharingWhen 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 nameparent_id: Parent folder ID (NOT name); omit for rootfile_id: File to moveadd_parents: Destination folder ID for moveremove_parents: Source folder ID to remove fromPitfalls:
GOOGLEDRIVE_CREATE_FOLDER requires parent_id as an ID, not a folder nameparent_id="root" creates at top level; for nested paths, chain folder IDsGOOGLEDRIVE_FIND_FILE returns ~100 items/page; follow nextPageToken for large drivesremove_parents for true movesGOOGLEDRIVE_FIND_FILE with q parameterfolder_id='root' or 'root' in parentsGOOGLEDRIVE_LIST_SHARED_DRIVESGMAIL_SEARCH_PEOPLE (for sharing)Google Drive uses a specific query language:
"name contains 'report'" or "name = 'exact.pdf'""mimeType = 'application/pdf'" or "mimeType = 'application/vnd.google-apps.folder'""'FOLDER_ID' in parents""modifiedTime > '2024-01-01T00:00:00'"and/or/not: "name contains 'report' and trashed = false""sharedWithMe = true", "starred = true", "trashed = false"nextPageToken until absent for complete resultspageSize explicitly (default 100, max 1000)For Google Workspace files, set mime_type to export:
application/pdf, text/plain, text/html, application/vnd.openxmlformats-officedocument.wordprocessingml.documenttext/csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/pdf, application/vnd.openxmlformats-officedocument.presentationml.presentationmime_type ONLY for Google Workspace files; omit for native filess3url is temporary; fetch promptlycontains operator instead of * for partial name matchingparent_idremove_parents| 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
Other measured skills in the registry, with their headline benchmark lift.