mcpField
O
one-drive-automation

one-drive-automation

github.com/sickn33生产力48.7k71 次安装1 天前更新
代码仓库

关于 one-drive-automation

通过 Rube MCP 上的 Composio OneDrive 工具包自动执行 OneDrive 文件和云盘操作。涵盖搜索、传输、文件夹管理、共享权限和云盘信息,并说明 ID 与分页处理。

主要功能

  1. 01搜索和浏览文件及云盘
  2. 02上传和下载文件
  3. 03共享项目并管理权限
  4. 04创建、移动、复制和删除项目
  5. 05查看配额和文件版本

适用场景

  1. 01跨 OneDrive 云盘查找文件
  2. 02传输文件或整理文件夹
  3. 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 连接;仅有端点并不会授予访问权限。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 是否可用
  2. 调用 RUBE_MANAGE_CONNECTIONS,并指定工具包 one_drive
  3. 如果连接状态不是 ACTIVE,请按照返回的授权链接完成 Microsoft OAuth
  4. 确认连接状态显示为 ACTIVE 后,再运行任何工作流

核心工作流

1. 搜索和浏览文件

适用场景:用户想要查找文件或浏览 OneDrive 中的文件夹内容

工具调用顺序:

  1. ONE_DRIVE_GET_DRIVE - 验证云端硬盘访问权限并获取云端硬盘详情 [前置条件]
  2. ONE_DRIVE_SEARCH_ITEMS - 跨文件名、元数据和内容进行关键词搜索 [必需]
  3. ONE_DRIVE_ONEDRIVE_LIST_ITEMS - 列出云端硬盘根目录中的所有项目 [可选]
  4. ONE_DRIVE_GET_ITEM - 获取特定项目的详细元数据,并展开其子项 [可选]
  5. ONE_DRIVE_ONEDRIVE_FIND_FILE - 在文件夹中按确切名称查找特定文件 [可选]
  6. ONE_DRIVE_ONEDRIVE_FIND_FOLDER - 按名称查找特定文件夹 [可选]
  7. 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 使用的项目 ID
  • expand_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 下载文件

工具调用顺序:

  1. ONE_DRIVE_ONEDRIVE_FIND_FOLDER - 定位目标文件夹 [前置条件]
  2. ONE_DRIVE_ONEDRIVE_UPLOAD_FILE - 将文件上传到指定文件夹 [上传必需]
  3. ONE_DRIVE_DOWNLOAD_FILE - 根据项目 ID 下载文件 [下载必需]
  4. ONE_DRIVE_GET_ITEM - 下载前获取文件详情 [可选]

关键参数:

  • file:用于上传的 FileUploadable 对象,包含 s3key、mimetype 和 name
  • folder:上传目标路径(例如,"/Documents/Reports")或文件夹 ID
  • item_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. 共享文件并管理权限

使用时机:用户希望共享文件或文件夹,或管理有权访问的人员

工具调用顺序:

  1. ONE_DRIVE_ONEDRIVE_FIND_FILE 或 ONE_DRIVE_ONEDRIVE_FIND_FOLDER - 定位项目 [前置条件]
  2. ONE_DRIVE_GET_ITEM_PERMISSIONS - 检查当前权限 [前置条件]
  3. ONE_DRIVE_INVITE_USER_TO_DRIVE_ITEM - 授予特定用户访问权限 [必需]
  4. ONE_DRIVE_CREATE_LINK - 创建可共享链接 [可选]
  5. ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA - 更新项目元数据 [可选]

关键参数:

  • item_id:要共享的文件或文件夹
  • recipients:对象数组,包含 email 或 object_id
  • roles:包含 "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. 管理文件夹(创建、移动、删除、复制)

适用场景:用户想要创建、移动、重命名、删除或复制文件和文件夹

工具调用顺序:

  1. ONE_DRIVE_ONEDRIVE_FIND_FOLDER - 定位源文件夹和目标文件夹【前置条件】
  2. ONE_DRIVE_ONEDRIVE_CREATE_FOLDER - 创建新文件夹【创建时必需】
  3. ONE_DRIVE_MOVE_ITEM - 将文件或文件夹移动到新位置【移动时必需】
  4. ONE_DRIVE_COPY_ITEM - 复制文件或文件夹(异步操作)【复制时必需】
  5. ONE_DRIVE_DELETE_ITEM - 将项目移至回收站【删除时必需】
  6. ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATA - 重命名或更新项目属性【可选】

关键参数:

  • name:创建文件夹时的文件夹名称,或重命名/复制时的新名称
  • parent_folder:创建文件夹时的路径(例如,"/Documents/Reports")或文件夹 ID
  • itemId:要移动的项目
  • 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 为异步操作;响应会提供用于监控进度的 URL
  • ONE_DRIVE_DELETE_ITEM 会将项目移至回收站,而非永久删除
  • 创建文件夹时遇到名称冲突会自动重命名(例如,"New Folder" 会变成 "New Folder 1")
  • 调用 ONE_DRIVE_COPY_ITEM 时,需提供 name 或 parent_reference(也可两者都提供)
5. 跟踪更改和云盘信息

适用场景:用户想要监控更改或获取云盘/配额信息

工具调用顺序:

  1. ONE_DRIVE_GET_DRIVE - 获取云盘属性和元数据【必需】
  2. ONE_DRIVE_GET_QUOTA - 查看存储配额(总量、已用、剩余)【可选】
  3. ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTA - 跟踪 SharePoint 站点云盘中的更改【可选】
  4. 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_ITEMSq、search_scope、top
列出根目录项目ONE_DRIVE_ONEDRIVE_LIST_ITEMSuser_id、select、top
获取项目详情ONE_DRIVE_GET_ITEMitem_id、expand_relations
按名称查找文件ONE_DRIVE_ONEDRIVE_FIND_FILEname、folder
按名称查找文件夹ONE_DRIVE_ONEDRIVE_FIND_FOLDERname、folder
上传文件ONE_DRIVE_ONEDRIVE_UPLOAD_FILEfile、folder
下载文件ONE_DRIVE_DOWNLOAD_FILEitem_id、file_name
创建文件夹ONE_DRIVE_ONEDRIVE_CREATE_FOLDERname、parent_folder
移动项目ONE_DRIVE_MOVE_ITEMitemId、parentReference
复制项目ONE_DRIVE_COPY_ITEMitem_id、parent_reference、name
删除项目ONE_DRIVE_DELETE_ITEMitem_id
与用户共享ONE_DRIVE_INVITE_USER_TO_DRIVE_ITEMitem_id、recipients、roles
创建共享链接ONE_DRIVE_CREATE_LINKitem_id、链接类型
获取权限ONE_DRIVE_GET_ITEM_PERMISSIONSitem_id
更新元数据ONE_DRIVE_UPDATE_DRIVE_ITEM_METADATAitem_id、字段
获取云盘信息ONE_DRIVE_GET_DRIVEdrive_id
列出云盘ONE_DRIVE_LIST_DRIVES用户/组/站点范围
获取配额ONE_DRIVE_GET_QUOTA(无)
跟踪更改ONE_DRIVE_LIST_SITE_DRIVE_ITEMS_DELTAsite_id、token
版本历史记录ONE_DRIVE_GET_ITEM_VERSIONSitem_id

适用场景

此技能适用于执行概览中描述的工作流或操作。

示例

用户请求:

通过 Rube MCP(Composio)自动执行 OneDrive 文件管理、搜索、上传、下载、共享、权限管理和文件夹操作。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为环境专属验证、测试或专家审查的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请停止并请求澄清。

上述工具名称、默认值和限制是历史连接器快照;请发现当前架构。展开的子项不一定构成完整的递归列表:请翻阅每个子集合的分页内容。此连接器是否支持增量功能,并不代表所有 Microsoft Graph 端点都支持增量功能。共享范围应限定具体接收者、角色、链接受众和通知;仅凭现有身份验证并不代表获准发起新的共享。请将下载、监控和共享 URL 视为敏感信息,使用经过验证的返回主机;对于结果未知的复制或上传操作,切勿盲目重放。回收站不能保证一定能够恢复内容。

评论

支持 Markdown