npx claudepluginhub haniakrim21/everything-claude-codeWant just this skill?
Add to a custom plugin, then install with one command.
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.
This skill uses the workspace's default tool permissions.
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_CONNECTIONSwith toolkitgoogledrive - Always call
RUBE_SEARCH_TOOLSfirst 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_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitgoogledrive - 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
1. 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 withname,mimetype, ands3key(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_FILErequiresfile_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_UPLOADfor files >5MB or when basic uploads fail
2. 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 fromnextPageTokenfolder_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; follownextPageTokenuntil exhausted corpora="domain"may trigger 400; try"allDrives"withincludeItemsFromAllDrives=true- Query complexity limits: >5-10 OR clauses may error "The query is too complex"
- Wildcards (*) NOT supported in
name; usecontainsfor 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(NOTowner:user@example.com)
3. 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 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:
- 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_PEOPLEto resolve contact names to emails before sharing
4. 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 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 from
Pitfalls:
GOOGLEDRIVE_CREATE_FOLDERrequiresparent_idas an ID, not a folder name- Using
parent_id="root"creates at top level; for nested paths, chain folder IDs GOOGLEDRIVE_FIND_FILEreturns ~100 items/page; follownextPageTokenfor large drives- Move operations can leave items with multiple parents; use
remove_parentsfor true moves - Always verify parent folder exists before creating children
Common Patterns
ID Resolution
- File/folder name -> ID:
GOOGLEDRIVE_FIND_FILEwithqparameter - 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
nextPageTokenuntil absent for complete results - Set
pageSizeexplicitly (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_typeONLY for Google Workspace files; omit for native files - Temporary URLs: Downloaded content via
s3urlis 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
containsoperator 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