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.
.claude/skills/davepoon-google-drive-automation/SKILL.md| 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
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 9,336 | 8,337 | -11% | 1 | 1 | 0% | 1,721 | 3,101 | +80% | 0 | 0 | — |
case-02 | fail→fail | 8,177 | 7,017 | -14% | 1 | 1 | 0% | 576 | 3,244 | +463% | 0 | 0 | — |
case-03 | fail→fail | 9,273 | 7,500 | -19% | 1 | 1 | 0% | 489 | 3,093 | +533% | 0 | 0 | — |
case-04 | fail→fail | 6,508 | 5,250 | -19% | 1 | 1 | 0% | 1,048 | 2,955 | +182% | 0 | 0 | — |
case-05 | fail→fail | 4,993 | 9,354 | +87% | 1 | 1 | 0% | 883 | 3,054 | +246% | 0 | 0 | — |
case-06 | pass→fail | 3,419 | 7,788 | +128% | 1 | 1 | 0% | 463 | 3,021 | +552% | 0 | 0 | — |
case-07 | pass→pass | 3,943 | 5,094 | +29% | 1 | 1 | 0% | 545 | 3,659 | +571% | 0 | 0 | — |
case-08 | pass→pass | 4,803 | 3,926 | -18% | 1 | 1 | 0% | 842 | 3,424 | +307% | 0 | 0 | — |
case-09 | fail→pass | 9,895 | 4,291 | -57% | 1 | 1 | 0% | 975 | 3,427 | +251% | 0 | 0 | — |
case-10 | fail→pass | 4,760 | 3,271 | -31% | 1 | 1 | 0% | 710 | 3,302 | +365% | 0 | 0 | — |
case-11 | pass→pass | 8,216 | 4,238 | -48% | 1 | 1 | 0% | 1,303 | 3,494 | +168% | 0 | 0 | — |
case-12 | pass→pass | 3,614 | 3,017 | -17% | 1 | 1 | 0% | 582 | 3,086 | +430% | 0 | 0 | — |
case-13 | fail→pass | 10,577 | 6,224 | -41% | 1 | 1 | 0% | 1,961 | 3,812 | +94% | 0 | 0 | — |
case-14 | pass→pass | 4,287 | 3,816 | -11% | 1 | 1 | 0% | 722 | 3,398 | +371% | 0 | 0 | — |
case-15 | pass→pass | 6,352 | 5,762 | -9% | 1 | 1 | 0% | 1,081 | 3,551 | +228% | 0 | 0 | — |
case-16 | fail→pass | 4,749 | 2,444 | -49% | 1 | 1 | 0% | 702 | 3,067 | +337% | 0 | 0 | — |
case-17 | pass→pass | 9,497 | 7,781 | -18% | 1 | 1 | 0% | 1,455 | 3,985 | +174% | 0 | 0 | — |
case-18 | pass→pass | 3,437 | 5,092 | +48% | 1 | 1 | 0% | 417 | 3,451 | +728% | 0 | 0 | — |
case-19 | pass→pass | 7,882 | 4,233 | -46% | 1 | 1 | 0% | 1,394 | 3,498 | +151% | 0 | 0 | — |
case-20 | pass→pass | 8,032 | 8,815 | +10% | 1 | 1 | 0% | 1,293 | 3,526 | +173% | 0 | 0 | — |
case-21 | pass→pass | 3,509 | 2,683 | -24% | 1 | 1 | 0% | 456 | 3,155 | +592% | 0 | 0 | — |
case-22 | fail→pass | 7,408 | 8,108 | +9% | 1 | 1 | 0% | 823 | 3,433 | +317% | 0 | 0 | — |
case-23 | fail→pass | 7,485 | 2,113 | -72% | 1 | 1 | 0% | 1,384 | 3,064 | +121% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted, and 17 counted toward the lift figure. The other 6 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +22 percentage points is the difference between those two pass rates over the 17 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.