one-drive-automation
Automate OneDrive file management, search, uploads, downloads, sharing, permissions, and folder operations via Rube MCP (Composio). Always search tools first for current schemas.
OneDrive Automation via Rube MCP
Automate OneDrive operations including file upload/download, search, folder management, sharing links, permissions management, and drive browsing through Composio's OneDrive toolkit.
Prerequisites
RUBE_MANAGE_CONNECTIONS with toolkit one_driveRUBE_SEARCH_TOOLS first to get current tool schemasSetup
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.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit one_driveCore Workflows
1. Search and Browse Files
When to use: User wants to find files or browse folder contents in OneDrive
Tool sequence:
ONE_DRIVE_GET_DRIVE - Verify drive access and get drive details [Prerequisite]ONE_DRIVE_SEARCH_ITEMS - Keyword search across filenames, metadata, and content [Required]ONE_DRIVE_ONEDRIVE_LIST_ITEMS - List all items in the root of a drive [Optional]ONE_DRIVE_GET_ITEM - Get detailed metadata for a specific item, expand children [Optional]ONE_DRIVE_ONEDRIVE_FIND_FILE - Find a specific file by exact name in a folder [Optional]ONE_DRIVE_ONEDRIVE_FIND_FOLDER - Find a specific folder by name [Optional]ONE_DRIVE_LIST_DRIVES - List all accessible drives [Optional]Key parameters:
q: Search query (plain keywords only, NOT KQL syntax)search_scope: "root" (folder hierarchy) or "drive" (includes shared items)top: Max items per page (default 200)skip_token: Pagination token from @odata.nextLinkselect: Comma-separated fields to return (e.g., "id,name,webUrl,size")orderby: Sort order (e.g., "name asc", "name desc")item_id: Item ID for GET_ITEMexpand_relations: Array like ["children"] or ["thumbnails"] for GET_ITEMuser_id: "me" (default) or specific user ID/emailPitfalls:
ONE_DRIVE_SEARCH_ITEMS does NOT support KQL operators (folder:, file:, filetype:, path:); these are treated as literal text, ?) are NOT supported and are auto-removed; use file extension keywords instead (e.g., "pdf" not ".pdf")ONE_DRIVE_ONEDRIVE_LIST_ITEMS returns only root-level contents; use recursive ONE_DRIVE_GET_ITEM with expand_relations: ["children"] for deeper levelsskip_token / @odata.nextLink until exhausted2. Upload and Download Files
When to use: User wants to upload files to OneDrive or download files from it
Tool sequence:
ONE_DRIVE_ONEDRIVE_FIND_FOLDER - Locate the target folder [Prerequisite]ONE_DRIVE_ONEDRIVE_UPLOAD_FILE - Upload a file to a specified folder [Required for upload]ONE_DRIVE_DOWNLOAD_FILE - Download a file by item ID [Required for download]ONE_DRIVE_GET_ITEM - Get file details before download [Optional]Key parameters:
file: FileUploadable object with s3key, mimetype, and name for uploadsfolder: Destination path (e.g., "/Documents/Reports") or folder ID for uploadsitem_id: File's unique identifier for downloadsfile_name: Desired filename with extension for downloadsdrive_id: Specific drive ID (for SharePoint or OneDrive for Business)user_id: "me" (default) or specific user identifierPitfalls:
drive_id overrides user_id when both are provided01... prefix, OneDrive Personal uses HASH!NUMBER format3. Share Files and Manage Permissions
When to use: User wants to share files/folders or manage who has access
Tool sequence:
ONE_DRIVE_ONEDRIVE_FIND_FILE or ONE_DRIVE_ONEDRIVE_FIND_FOLDER - Locate the item [Prerequisite]ONE_DRIVE_GET_ITEM_PERMISSIONS - Check current permissions [Prerequisite]ONE_DRIVE_INVITE_USER_TO_DRIVE_ITEM - Grant access to specific users [Required]ONE_DRIVE_CREATE_LINK - Create a shareable link [Optional]ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA - Update item metadata [Optional]Key parameters:
item_id: The file or folder to sharerecipients: Array of objects with email or object_idroles: Array with "read" or "write"send_invitation: true to send notification email, false for silent permission grantrequire_sign_in: true to require authentication to accessmessage: Custom message for invitation (max 2000 characters)expiration_date_time: ISO 8601 date for permission expiryretain_inherited_permissions: true (default) to keep existing inherited permissionsPitfalls:
item_id with INVITE_USER_TO_DRIVE_ITEM changes permissions on unintended items; always verify firstGET_ITEM_PERMISSIONS returns inherited and owner entries; do not assume response only reflects recent changespermissions cannot be expanded via ONE_DRIVE_GET_ITEM; use the separate permissions endpointrequire_sign_in or send_invitation must be true4. Manage Folders (Create, Move, Delete, Copy)
When to use: User wants to create, move, rename, delete, or copy files and folders
Tool sequence:
ONE_DRIVE_ONEDRIVE_FIND_FOLDER - Locate source and destination folders [Prerequisite]ONE_DRIVE_ONEDRIVE_CREATE_FOLDER - Create a new folder [Required for create]ONE_DRIVE_MOVE_ITEM - Move a file or folder to a new location [Required for move]ONE_DRIVE_COPY_ITEM - Copy a file or folder (async operation) [Required for copy]ONE_DRIVE_DELETE_ITEM - Move item to recycle bin [Required for delete]ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA - Rename or update item properties [Optional]Key parameters:
name: Folder name for creation or new name for rename/copyparent_folder: Path (e.g., "/Documents/Reports") or folder ID for creationitemId: Item to moveparentReference: Object with id (destination folder ID) for moves: {"id": "folder_id"}item_id: Item to copy or deleteparent_reference: Object with id and optional driveId for copy destination@microsoft.graph.conflictBehavior: "fail", "replace", or "rename" for copiesif_match: ETag for optimistic concurrency on deletesPitfalls:
ONE_DRIVE_MOVE_ITEM does NOT support cross-drive moves; use ONE_DRIVE_COPY_ITEM for cross-drive transfersparentReference for moves requires folder ID (not folder name); resolve with ONEDRIVE_FIND_FOLDER firstONE_DRIVE_COPY_ITEM is asynchronous; response provides a URL to monitor progressONE_DRIVE_DELETE_ITEM moves to recycle bin, not permanent deletionname or parent_reference (or both) for ONE_DRIVE_COPY_ITEM5. Track Changes and Drive Information
When to use: User wants to monitor changes or get drive/quota information
Tool sequence:
ONE_DRIVE_GET_DRIVE - Get drive properties and metadata [Required]ONE_DRIVE_GET_QUOTA - Check storage quota (total, used, remaining) [Optional]ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTA - Track changes in SharePoint site drives [Optional]ONE_DRIVE_GET_ITEM_VERSIONS - Get version history of a file [Optional]Key parameters:
drive_id: Drive identifier (or "me" for personal drive)site_id: SharePoint site identifier for delta trackingtoken: Delta token ("latest" for current state, URL for next page, or timestamp)item_id: File ID for version historyPitfalls:
ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTA"latest" returns current delta token without items (useful as starting point)Common Patterns
ID Resolution
"me" for authenticated user or specific user email/GUIDONE_DRIVE_ONEDRIVE_FIND_FILE or ONE_DRIVE_ONEDRIVE_FIND_FOLDER to get item IDsONE_DRIVE_SEARCH_ITEMS resultsONE_DRIVE_LIST_DRIVES or ONE_DRIVE_GET_DRIVE to discover drivesONE_DRIVE_ONEDRIVE_FIND_FOLDER with path, then extract ID from responseID formats vary by platform:
01NKDM7HMOJTVYMDOSXFDK2QJDXCDI3WUKD4648F06C91D9D3D!54927Pagination
OneDrive uses token-based pagination:
@odata.nextLink or skip_token until no more pagestop for page size (varies by endpoint)ONE_DRIVE_ONEDRIVE_LIST_ITEMS auto-handles pagination internallyRetry-After headersPath vs ID
Most OneDrive tools accept either paths or IDs:
/ (e.g., "/Documents/Reports"):/path/to/item:/ formatKnown Pitfalls
ID Formats
Rate Limits
ONE_DRIVE_GET_ITEM calls can trigger HTTP 429 Too Many RequestsRetry-After headers and implement throttlingSearch Limitations
"pdf" not ".pdf")q='' wildcard-only queries return HTTP 400 invalidRequestParameter Quirks
drive_id overrides user_id when both are providedpermissions cannot be expanded via GET_ITEM; use dedicated permissions endpointparentReference, not folder namesQuick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| Search files | ONE_DRIVE_SEARCH_ITEMS | q, search_scope, top |
| List root items | ONE_DRIVE_ONEDRIVE_LIST_ITEMS | user_id, select, top |
| Get item details | ONE_DRIVE_GET_ITEM | item_id, expand_relations |
| Find file by name | ONE_DRIVE_ONEDRIVE_FIND_FILE | name, folder |
| Find folder by name | ONE_DRIVE_ONEDRIVE_FIND_FOLDER | name, folder |
| Upload file | ONE_DRIVE_ONEDRIVE_UPLOAD_FILE | file, folder |
| Download file | ONE_DRIVE_DOWNLOAD_FILE | item_id, file_name |
| Create folder | ONE_DRIVE_ONEDRIVE_CREATE_FOLDER | name, parent_folder |
| Move item | ONE_DRIVE_MOVE_ITEM | itemId, parentReference |
| Copy item | ONE_DRIVE_COPY_ITEM | item_id, parent_reference, name |
| Delete item | ONE_DRIVE_DELETE_ITEM | item_id |
| Share with users | ONE_DRIVE_INVITE_USER_TO_DRIVE_ITEM | item_id, recipients, roles |
| Create share link | ONE_DRIVE_CREATE_LINK | item_id, link type |
| Get permissions | ONE_DRIVE_GET_ITEM_PERMISSIONS | item_id |
| Update metadata | ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA | item_id, fields |
| Get drive info | ONE_DRIVE_GET_DRIVE | drive_id |
| List drives | ONE_DRIVE_LIST_DRIVES | user/group/site scope |
| Get quota | ONE_DRIVE_GET_QUOTA | (none) |
| Track changes | ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTA | site_id, token |
| Version history | ONE_DRIVE_GET_ITEM_VERSIONS | item_id |