one-drive-automation
通过Rube MCP(Composio)自动化OneDrive文件管理、搜索、上传、下载、共享、权限设置及文件夹操作。始终优先搜索工具以获取当前架构。
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 |