关于 one-drive-automation
通过 Rube MCP 上的 Composio OneDrive 工具包自动执行 OneDrive 文件和云盘操作。涵盖搜索、传输、文件夹管理、共享权限和云盘信息,并说明 ID 与分页处理。
主要功能
- 01搜索和浏览文件及云盘
- 02上传和下载文件
- 03共享项目并管理权限
- 04创建、移动、复制和删除项目
- 05查看配额和文件版本
适用场景
- 01跨 OneDrive 云盘查找文件
- 02传输文件或整理文件夹
- 03向指定收件人共享文件
MCP 相关
通过 Rube MCP 使用 Composio 的 OneDrive 工具包。操作要求 OneDrive 连接处于 ACTIVE 状态,并建议操作前获取最新工具架构。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill one-drive-automation安装后在 Claude Code 中输入/one-drive-automation确认已加载。
详细介绍
通过 Rube MCP 自动化 OneDrive
通过 Composio 的 OneDrive 工具包自动执行 OneDrive 操作,包括文件上传/下载、搜索、文件夹管理、共享链接、权限管理和浏览云端硬盘。
前提条件
- 必须已连接 Rube MCP(可用
RUBE_SEARCH_TOOLS) - 通过
RUBE_MANAGE_CONNECTIONS建立有效的 OneDrive 连接,工具包为one_drive - 始终先调用
RUBE_SEARCH_TOOLS,获取当前工具架构
设置
获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。对 MCP 客户端/服务进行身份验证,并授权 Microsoft 连接;仅有端点并不会授予访问权限。
- 确认
RUBE_SEARCH_TOOLS有响应,以验证 Rube MCP 是否可用 - 调用
RUBE_MANAGE_CONNECTIONS,并指定工具包one_drive - 如果连接状态不是 ACTIVE,请按照返回的授权链接完成 Microsoft OAuth
- 确认连接状态显示为 ACTIVE 后,再运行任何工作流
核心工作流
1. 搜索和浏览文件
适用场景:用户想要查找文件或浏览 OneDrive 中的文件夹内容
工具调用顺序:
ONE_DRIVE_GET_DRIVE- 验证云端硬盘访问权限并获取云端硬盘详情 [前置条件]ONE_DRIVE_SEARCH_ITEMS- 跨文件名、元数据和内容进行关键词搜索 [必需]ONE_DRIVE_ONEDRIVE_LIST_ITEMS- 列出云端硬盘根目录中的所有项目 [可选]ONE_DRIVE_GET_ITEM- 获取特定项目的详细元数据,并展开其子项 [可选]ONE_DRIVE_ONEDRIVE_FIND_FILE- 在文件夹中按确切名称查找特定文件 [可选]ONE_DRIVE_ONEDRIVE_FIND_FOLDER- 按名称查找特定文件夹 [可选]ONE_DRIVE_LIST_DRIVES- 列出所有可访问的云端硬盘 [可选]
关键参数:
q:搜索查询(仅限普通关键词,不支持 KQL 语法)search_scope:"root"(文件夹层级)或"drive"(包含共享项目)top:每页最多返回的项目数(默认值为 200)skip_token:来自@odata.nextLink的分页令牌select:以逗号分隔的要返回的字段(例如"id,name,webUrl,size")orderby:排序顺序(例如"name asc"、"name desc")item_id:供GET_ITEM使用的项目 IDexpand_relations:用于GET_ITEM的数组,例如["children"]或["thumbnails"]user_id:"me"(默认值)或特定用户 ID/电子邮件地址
注意事项:
ONE_DRIVE_SEARCH_ITEMS不支持 KQL 运算符(folder:、file:、filetype:、path:);这些内容会被视为普通文本- 不支持通配符(
*、?),并会自动移除;请改用文件扩展名关键词(例如使用"pdf",而不是"*.pdf") ONE_DRIVE_ONEDRIVE_LIST_ITEMS仅返回根目录内容;如需访问更深层级,请使用带有expand_relations: ["children"]的递归ONE_DRIVE_GET_ITEM- 大型文件夹会分页;请始终跟进
skip_token/@odata.nextLink,直到没有更多内容 - 由于 Microsoft Graph API 的限制,某些云端硬盘 ID 格式可能会导致 "ObjectHandle is Invalid" 错误
2. 上传和下载文件
使用时机:用户希望将文件上传到 OneDrive,或从 OneDrive 下载文件
工具调用顺序:
ONE_DRIVE_ONEDRIVE_FIND_FOLDER- 定位目标文件夹 [前置条件]ONE_DRIVE_ONEDRIVE_UPLOAD_FILE- 将文件上传到指定文件夹 [上传必需]ONE_DRIVE_DOWNLOAD_FILE- 根据项目 ID 下载文件 [下载必需]ONE_DRIVE_GET_ITEM- 下载前获取文件详情 [可选]
关键参数:
file:用于上传的 FileUploadable 对象,包含s3key、mimetype和namefolder:上传目标路径(例如,"/Documents/Reports")或文件夹 IDitem_id:用于下载的文件唯一标识符file_name:下载时所需的文件名(含扩展名)drive_id:指定的云盘 ID(适用于 SharePoint 或 OneDrive for Business)user_id:"me"(默认值)或特定用户标识符
注意事项:
- 检查实时上传架构和冲突处理行为;不要假设上传不会覆盖文件
- 大文件上传前,确认大小限制以及是否支持可续传会话
- 同时提供
drive_id和user_id时,drive_id优先 - 项目 ID 因平台而异:OneDrive for Business 使用
01...前缀,OneDrive Personal 使用HASH!NUMBER格式 - 项目 ID 区分大小写;请使用 API 返回的原始值
3. 共享文件并管理权限
使用时机:用户希望共享文件或文件夹,或管理有权访问的人员
工具调用顺序:
ONE_DRIVE_ONEDRIVE_FIND_FILE或ONE_DRIVE_ONEDRIVE_FIND_FOLDER- 定位项目 [前置条件]ONE_DRIVE_GET_ITEM_PERMISSIONS- 检查当前权限 [前置条件]ONE_DRIVE_INVITE_USER_TO_DRIVE_ITEM- 授予特定用户访问权限 [必需]ONE_DRIVE_CREATE_LINK- 创建可共享链接 [可选]ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA- 更新项目元数据 [可选]
关键参数:
item_id:要共享的文件或文件夹recipients:对象数组,包含email或object_idroles:包含"read"或"write"的数组send_invitation:true表示发送通知邮件,false表示静默授予权限require_sign_in:true表示访问时需要身份验证message:邀请附带的自定义消息(最多 2000 个字符)expiration_date_time:权限过期日期,采用 ISO 8601 格式retain_inherited_permissions:true(默认值)表示保留现有继承权限
注意事项:
- 将错误的
item_id用于INVITE_USER_TO_DRIVE_ITEM会更改非预期项目的权限;请务必先核实 - 写入或更高级别的角色影响重大;授予前请征得用户明确确认
GET_ITEM_PERMISSIONS会返回继承权限和所有者条目;不要假设响应只反映最近的更改- 无法通过
ONE_DRIVE_GET_ITEM扩展获取permissions;请使用单独的权限端点 require_sign_in和send_invitation至少有一个必须为true
4. 管理文件夹(创建、移动、删除、复制)
适用场景:用户想要创建、移动、重命名、删除或复制文件和文件夹
工具调用顺序:
ONE_DRIVE_ONEDRIVE_FIND_FOLDER- 定位源文件夹和目标文件夹【前置条件】ONE_DRIVE_ONEDRIVE_CREATE_FOLDER- 创建新文件夹【创建时必需】ONE_DRIVE_MOVE_ITEM- 将文件或文件夹移动到新位置【移动时必需】ONE_DRIVE_COPY_ITEM- 复制文件或文件夹(异步操作)【复制时必需】ONE_DRIVE_DELETE_ITEM- 将项目移至回收站【删除时必需】ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA- 重命名或更新项目属性【可选】
关键参数:
name:创建文件夹时的文件夹名称,或重命名/复制时的新名称parent_folder:创建文件夹时的路径(例如,"/Documents/Reports")或文件夹 IDitemId:要移动的项目parentReference:移动时包含目标文件夹 ID 的对象:{"id": "folder_id"}item_id:要复制或删除的项目parent_reference:复制目标位置的对象,包含id和可选的driveId@microsoft.graph.conflictBehavior:复制时可设为"fail"、"replace"或"rename"if_match:用于删除操作乐观并发控制的 ETag
注意事项:
ONE_DRIVE_MOVE_ITEM不支持跨云盘移动;跨云盘传输请使用ONE_DRIVE_COPY_ITEM- 移动时,
parentReference必须使用文件夹 ID(而非文件夹名称);请先通过ONEDRIVE_FIND_FOLDER解析 ID ONE_DRIVE_COPY_ITEM为异步操作;响应会提供用于监控进度的 URLONE_DRIVE_DELETE_ITEM会将项目移至回收站,而非永久删除- 创建文件夹时遇到名称冲突会自动重命名(例如,"New Folder" 会变成 "New Folder 1")
- 调用
ONE_DRIVE_COPY_ITEM时,需提供name或parent_reference(也可两者都提供)
5. 跟踪更改和云盘信息
适用场景:用户想要监控更改或获取云盘/配额信息
工具调用顺序:
ONE_DRIVE_GET_DRIVE- 获取云盘属性和元数据【必需】ONE_DRIVE_GET_QUOTA- 查看存储配额(总量、已用、剩余)【可选】ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTA- 跟踪 SharePoint 站点云盘中的更改【可选】ONE_DRIVE_GET_ITEM_VERSIONS- 获取文件的版本历史记录【可选】
关键参数:
drive_id:云盘标识符(个人云盘可使用"me")site_id:用于增量跟踪的 SharePoint 站点标识符token:增量令牌(当前状态使用"latest",后续页面使用 URL,也可使用时间戳)item_id:用于获取版本历史记录的文件 ID
注意事项:
- 此历史连接器通过
ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTA提供站点云盘增量数据 - 令牌
"latest"会返回当前增量令牌,但不包含项目(可用作起始点) - 深层或大型云盘可能需要数分钟才能遍历完成;请使用分批处理和续传逻辑
常见模式
ID 解析
- 用户:已通过身份验证的用户使用
"me",也可使用特定用户的邮箱/GUID - 查找结果中的项目 ID:使用
ONE_DRIVE_ONEDRIVE_FIND_FILE或ONE_DRIVE_ONEDRIVE_FIND_FOLDER获取项目 ID - 搜索结果中的项目 ID:从
ONE_DRIVE_SEARCH_ITEMS的结果中提取 - 云盘 ID:使用
ONE_DRIVE_LIST_DRIVES或ONE_DRIVE_GET_DRIVE查找云盘 - 文件夹路径对应的 ID:使用路径调用
ONE_DRIVE_ONEDRIVE_FIND_FOLDER,然后从响应中提取 ID
ID 格式因平台而异:
- OneDrive for Business/SharePoint:
01NKDM7HMOJTVYMDOSXFDK2QJDXCDI3WUK - OneDrive Personal:
D4648F06C91D9D3D!54927
分页
OneDrive 使用基于令牌的分页:
- 持续跟进
@odata.nextLink或skip_token,直到没有更多页面 - 使用
top设置页面大小(因端点而异) ONE_DRIVE_ONEDRIVE_LIST_ITEMS会在内部自动处理分页- 过于频繁的并行请求可能会触发 HTTP 429;请遵循
Retry-After标头
路径与 ID
大多数 OneDrive 工具都接受路径或 ID:
- 路径:以
/开头(例如,"/Documents/Reports") - ID:使用 API 响应中的唯一项目标识符
- 权限使用的项目路径:使用
:/path/to/item:/格式
已知问题
ID 格式
- 项目 ID 区分大小写,且因平台而异
- 切勿将网页 URL、共享链接或手动构造的标识符用作项目 ID
- 始终使用 Microsoft Graph API 返回的原始 ID
速率限制
- 激进地并行调用
ONE_DRIVE_GET_ITEM可能会触发 HTTP 429 Too Many Requests - 遵循
Retry-After标头并实施限流 - 深度遍历云盘时,应分批处理并设置延迟
搜索限制
- 不支持 KQL;仅使用普通关键词
- 不支持通配符;使用扩展名关键词(例如,使用
"pdf",而非"*.pdf") - 搜索不支持按路径筛选;请改用文件夹列表
- 仅包含通配符的查询
q='*'会返回 HTTP 400 invalidRequest
参数注意事项
- 同时提供
drive_id和user_id时,drive_id优先 - 无法通过
GET_ITEM展开permissions;请使用专用的权限端点 - 移动操作要求在
parentReference中提供文件夹 ID,而非文件夹名称 - 复制操作是异步的;响应会提供监控 URL
快速参考
| 任务 | 工具 Slug | 关键参数 |
|---|---|---|
| 搜索文件 | ONE_DRIVE_SEARCH_ITEMS | q、search_scope、top |
| 列出根目录项目 | ONE_DRIVE_ONEDRIVE_LIST_ITEMS | user_id、select、top |
| 获取项目详情 | ONE_DRIVE_GET_ITEM | item_id、expand_relations |
| 按名称查找文件 | ONE_DRIVE_ONEDRIVE_FIND_FILE | name、folder |
| 按名称查找文件夹 | ONE_DRIVE_ONEDRIVE_FIND_FOLDER | name、folder |
| 上传文件 | ONE_DRIVE_ONEDRIVE_UPLOAD_FILE | file、folder |
| 下载文件 | ONE_DRIVE_DOWNLOAD_FILE | item_id、file_name |
| 创建文件夹 | ONE_DRIVE_ONEDRIVE_CREATE_FOLDER | name、parent_folder |
| 移动项目 | ONE_DRIVE_MOVE_ITEM | itemId、parentReference |
| 复制项目 | ONE_DRIVE_COPY_ITEM | item_id、parent_reference、name |
| 删除项目 | ONE_DRIVE_DELETE_ITEM | item_id |
| 与用户共享 | ONE_DRIVE_INVITE_USER_TO_DRIVE_ITEM | item_id、recipients、roles |
| 创建共享链接 | ONE_DRIVE_CREATE_LINK | item_id、链接类型 |
| 获取权限 | ONE_DRIVE_GET_ITEM_PERMISSIONS | item_id |
| 更新元数据 | ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA | item_id、字段 |
| 获取云盘信息 | ONE_DRIVE_GET_DRIVE | drive_id |
| 列出云盘 | ONE_DRIVE_LIST_DRIVES | 用户/组/站点范围 |
| 获取配额 | ONE_DRIVE_GET_QUOTA | (无) |
| 跟踪更改 | ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTA | site_id、token |
| 版本历史记录 | ONE_DRIVE_GET_ITEM_VERSIONS | item_id |
适用场景
此技能适用于执行概览中描述的工作流或操作。
示例
用户请求:
通过 Rube MCP(Composio)自动执行 OneDrive 文件管理、搜索、上传、下载、共享、权限管理和文件夹操作。
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 不要将输出视为环境专属验证、测试或专家审查的替代品。
- 如果缺少必要的输入、权限、安全边界或成功标准,请停止并请求澄清。
上述工具名称、默认值和限制是历史连接器快照;请发现当前架构。展开的子项不一定构成完整的递归列表:请翻阅每个子集合的分页内容。此连接器是否支持增量功能,并不代表所有 Microsoft Graph 端点都支持增量功能。共享范围应限定具体接收者、角色、链接受众和通知;仅凭现有身份验证并不代表获准发起新的共享。请将下载、监控和共享 URL 视为敏感信息,使用经过验证的返回主机;对于结果未知的复制或上传操作,切勿盲目重放。回收站不能保证一定能够恢复内容。