Get the FREE Ultimate OpenClaw Setup Guide →

google-drive-automation

npx machina-cli add skill davepoon/buildwithclaude/google-drive-automation --openclaw
Files (1)
SKILL.md
9.9 KB

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.

  1. Verify Rube MCP is available by confirming RUBE_SEARCH_TOOLS responds
  2. Call RUBE_MANAGE_CONNECTIONS with toolkit googledrive
  3. If connection is not ACTIVE, follow the returned auth link to complete Google OAuth
  4. 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:

  1. GOOGLEDRIVE_FIND_FILE - Locate target folder for upload [Prerequisite]
  2. GOOGLEDRIVE_UPLOAD_FILE - Upload a file (max 5MB) [Required]
  3. GOOGLEDRIVE_RESUMABLE_UPLOAD - Upload large files [Fallback]
  4. GOOGLEDRIVE_DOWNLOAD_FILE - Download a file by ID [Required]
  5. GOOGLEDRIVE_DOWNLOAD_FILE_OPERATION - Track long-running downloads [Fallback]
  6. 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:

  1. GOOGLEDRIVE_FIND_FILE - Search by name, content, type, date, or folder [Required]
  2. GOOGLEDRIVE_LIST_FILES - Browse files with folder scoping [Alternative]
  3. GOOGLEDRIVE_LIST_SHARED_DRIVES - Enumerate shared drives [Optional]
  4. GOOGLEDRIVE_GET_FILE_METADATA - Get detailed file info [Optional]
  5. 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:

  1. GOOGLEDRIVE_FIND_FILE - Locate the file to share [Prerequisite]
  2. GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCE - Set sharing permission [Required]
  3. GOOGLEDRIVE_LIST_PERMISSIONS - View current permissions [Optional]
  4. GOOGLEDRIVE_GET_PERMISSION - Inspect a specific permission [Optional]
  5. GOOGLEDRIVE_UPDATE_PERMISSION - Modify existing permission [Optional]
  6. 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:

  1. GOOGLEDRIVE_FIND_FILE - Check if folder already exists [Prerequisite]
  2. GOOGLEDRIVE_CREATE_FOLDER - Create a new folder [Required]
  3. GOOGLEDRIVE_GET_FILE_METADATA - Verify created folder [Optional]
  4. GOOGLEDRIVE_MOVE_FILE - Move files between folders [Optional]
  5. 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

Powered by Composio

Source

git clone https://github.com/davepoon/buildwithclaude/blob/main/plugins/all-skills/skills/google-drive-automation/SKILL.mdView on GitHub

Overview

Automates Google Drive workflows such as uploading, downloading, searching, sharing, and organizing files through Composio's Google Drive toolkit. It supports folder management and cross-drive searches to streamline scalable Drive operations.

How This Skill Works

Connect to the Rube MCP ecosystem (RUBE_SEARCH_TOOLS and RUBE_MANAGE_CONNECTIONS with the googledrive toolkit). Then execute a defined tool sequence (for example GOOGLEDRIVE_FIND_FILE, GOOGLEDRIVE_UPLOAD_FILE, GOOGLEDRIVE_DOWNLOAD_FILE) to perform tasks, with RESUMABLE_UPLOAD for large files and metadata checks to validate results.

When to Use It

  • Upload a file to a specific folder by locating the target folder with GOOGLEDRIVE_FIND_FILE and then using GOOGLEDRIVE_UPLOAD_FILE (with file_to_upload containing name, mimetype, and s3key).
  • Download a file by ID using GOOGLEDRIVE_DOWNLOAD_FILE and verify integrity with GET_FILE_METADATA if needed.
  • Upload large files (>5MB) using GOOGLEDRIVE_RESUMABLE_UPLOAD as a fallback to the standard upload.
  • Search and list drive contents across drives, including shared drives, with GOOGLEDRIVE_FIND_FILE and GOOGLEDRIVE_LIST_FILES.
  • Verify file metadata or storage information after transfers with GET_FILE_METADATA or GET_ABOUT.

Quick Start

  1. Step 1: Connect to Rube MCP and authorize Google Drive (verify RUBE_SEARCH_TOOLS, then run RUBE_MANAGE_CONNECTIONS with toolkit googledrive).
  2. Step 2: Locate the target folder with GOOGLEDRIVE_FIND_FILE to prepare for upload or to scope your search.
  3. Step 3: Run GOOGLEDRIVE_UPLOAD_FILE or GOOGLEDRIVE_DOWNLOAD_FILE (use RESUMABLE_UPLOAD for large files) and optionally verify with GET_FILE_METADATA.

Best Practices

  • Always verify that Rube MCP and the googledrive toolkit connections are ACTIVE before running workflows.
  • Use GOOGLEDRIVE_FIND_FILE to locate the target folder or file before any upload or download.
  • Prefer GOOGLEDRIVE_RESUMABLE_UPLOAD for large files and monitor via GOOGLEDRIVE_DOWNLOAD_FILE_OPERATION if needed.
  • Implement pagination handling when listing or searching (follow nextPageToken) to ensure complete results.
  • Validate outcomes by fetching file metadata after upload/download to confirm success.

Example Use Cases

  • Automatically upload daily reports to a team folder and confirm success via metadata checks.
  • Download a client-specific file by ID and deliver a temporary link to the recipient.
  • Scan a shared drive for updated PDFs and compile a list of matches for review.
  • Enumerate all shared drives and their permission scopes for an access audit.
  • Transfer a batch of files between folders and log metadata to verify integrity.

Frequently Asked Questions

Add this skill to your agents

Related Skills

Sponsor this space

Reach thousands of developers