google-drive-automation

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.

View Source
name:google-drive-automationdescription: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.requires:mcp:[rube]

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.

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

    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 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
  • 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 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)
  • 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 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
  • 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 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

    TaskTool SlugKey Params
    Search filesGOOGLEDRIVE_FIND_FILEq, corpora, pageSize
    List filesGOOGLEDRIVE_LIST_FILESfolderId, q, orderBy
    Upload fileGOOGLEDRIVE_UPLOAD_FILEfile_to_upload, folder_to_upload_to
    Resumable uploadGOOGLEDRIVE_RESUMABLE_UPLOADfile data
    Download fileGOOGLEDRIVE_DOWNLOAD_FILEfile_id, mime_type (Workspace only)
    File metadataGOOGLEDRIVE_GET_FILE_METADATAfileId, fields
    Create folderGOOGLEDRIVE_CREATE_FOLDERname, parent_id
    Move fileGOOGLEDRIVE_MOVE_FILEfile_id, add_parents, remove_parents
    Share fileGOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCEfile_id, role, type, email_address
    List permissionsGOOGLEDRIVE_LIST_PERMISSIONSfileId
    Update permissionGOOGLEDRIVE_UPDATE_PERMISSIONfile_id, permission_id
    Delete permissionGOOGLEDRIVE_DELETE_PERMISSIONfile_id, permission_id
    List shared drivesGOOGLEDRIVE_LIST_SHARED_DRIVESpageSize
    Drive infoGOOGLEDRIVE_GET_ABOUT(none)
    Create shortcutGOOGLEDRIVE_CREATE_SHORTCUT_TO_FILEtarget file_id