mcpField
G
google-drive-automation

google-drive-automation

github.com/davepoon生产力3.7k127 次安装1 天前更新
代码仓库

关于 google-drive-automation

google-drive-automation 是通过 Composio 的 Google Drive 工具包和 Rube MCP 自动处理 Google Drive 工作流的技能,涵盖文件传输、搜索、文件夹整理与共享权限,并提供连接设置说明。

主要功能

  1. 01上传和下载文件
  2. 02搜索并列出 Drive 内容
  3. 03创建文件夹并移动文件
  4. 04管理共享权限
  5. 05查看文件元数据和共享云端硬盘

适用场景

  1. 01查找并下载 Drive 文件
  2. 02上传文件或整理文件夹
  3. 03共享文件并调整访问权限
  4. 04浏览共享云端硬盘及文件详情

MCP 相关

该技能通过 `https://rube.app/mcp` 使用 Rube MCP 和 Composio 的 Google Drive 工具包。MCP 客户端先获取当前工具 schema 并建立有效的 Google Drive 连接,再执行工作流。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davepoon/buildwithclaude --skill google-drive-automation

安装后在 Claude Code 中输入/google-drive-automation确认已加载。

详细介绍

通过 Rube MCP 自动化 Google Drive

通过 Composio 的 Google Drive 工具包自动化 Google Drive 工作流,包括文件上传/下载、搜索、文件夹管理、共享/权限管理和整理。

工具包文档:composio.dev/toolkits/googledrive

前提条件

  • 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
  • 通过 RUBE_MANAGE_CONNECTIONS 建立有效的 Google Drive 连接,工具包为 googledrive
  • 始终先调用 RUBE_SEARCH_TOOLS,以获取最新的工具架构

设置

获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。无需 API 密钥——只需添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 可用
  2. 使用工具包 googledrive 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请使用返回的授权链接完成 Google OAuth
  4. 在运行任何工作流前,确认连接状态为 ACTIVE

核心工作流

1. 上传和下载文件

适用场景:用户想要向 Google Drive 上传文件或从中下载文件

工具调用顺序:

  1. GOOGLEDRIVE_FIND_FILE - 定位要上传到的目标文件夹 [前置步骤]
  2. GOOGLEDRIVE_UPLOAD_FILE - 上传文件(最大 5MB)[必需]
  3. GOOGLEDRIVE_RESUMABLE_UPLOAD - 上传大文件 [备用方案]
  4. GOOGLEDRIVE_DOWNLOAD_FILE - 通过 ID 下载文件 [必需]
  5. GOOGLEDRIVE_DOWNLOAD_FILE_OPERATION - 跟踪长时间运行的下载 [备用方案]
  6. GOOGLEDRIVE_GET_FILE_METADATA - 验证上传/下载后的文件 [可选]

关键参数:

  • file_to_upload:包含 name、mimetype 和 s3key 的对象(文件必须位于内部存储中)
  • folder_to_upload_to:目标文件夹 ID(可选;省略时上传到根目录)
  • file_id:要下载的文件 ID
  • mime_type:仅用于 Google Workspace 文件的导出格式(原生文件请省略)

注意事项:

  • GOOGLEDRIVE_UPLOAD_FILE 需要 file_to_upload.s3key;文件必须已位于内部存储中
  • 对于非 Google 格式(Excel、PDF),不要设置 mime_type;原生文件设置此参数会导致错误
  • 下载响应会在 data.downloaded_file_content.s3url 提供临时 URL,而不是内联字节数据
  • 对于大于 5MB 的文件或基本上传失败时,请使用 GOOGLEDRIVE_RESUMABLE_UPLOAD
2. 搜索和列出文件

适用场景:用户想要查找特定文件或浏览 Drive 内容

工具调用顺序:

  1. GOOGLEDRIVE_FIND_FILE - 按名称、内容、类型、日期或文件夹搜索 [必需]
  2. GOOGLEDRIVE_LIST_FILES - 按文件夹范围浏览文件 [替代方案]
  3. GOOGLEDRIVE_LIST_SHARED_DRIVES - 列出共享云端硬盘 [可选]
  4. GOOGLEDRIVE_GET_FILE_METADATA - 获取详细文件信息 [可选]
  5. GOOGLEDRIVE_GET_ABOUT - 检查存储空间配额和支持的格式 [可选]

关键参数:

  • q:Drive 查询字符串(例如,"name contains 'report'"、"mimeType = 'application/pdf'")
  • corpora:搜索范围('user'、'domain'、'drive'、'allDrives')
  • fields:要包含在响应中的字段(例如,'files(id,name,mimeType)')
  • orderBy:排序键('modifiedTime desc'、'name'、'quotaBytesUsed desc')
  • pageSize:每页结果数(最多 1000)
  • pageToken:来自 nextPageToken 的分页游标
  • folder_id:将搜索范围限定到特定文件夹

注意事项:

  • 如果 OAuth 作用域不足以访问共享云端硬盘,会出现 403 PERMISSION_DENIED
  • 必须分页;文件位于 response.data.files 中;持续使用 nextPageToken,直至没有更多结果
  • corpora="domain" 可能会触发 400;请尝试使用 "allDrives" 并设置 includeItemsFromAllDrives=true
  • 查询复杂度有限制:超过 5-10 个 OR 子句可能会报错 "The query is too complex"
  • name 不支持通配符 (*);部分匹配请使用 contains
  • 无法按名称搜索 'My Drive';请使用 folder_id='root' 搜索根文件夹
  • 搜索用户邮箱时,请使用 '[email protected]' in owners(不要使用 owner:[email protected])
3. 共享文件和管理权限

使用场景:用户希望共享文件或管理访问权限

工具调用顺序:

  1. GOOGLEDRIVE_FIND_FILE - 查找要共享的文件 [前置条件]
  2. GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCE - 设置共享权限 [必需]
  3. GOOGLEDRIVE_LIST_PERMISSIONS - 查看当前权限 [可选]
  4. GOOGLEDRIVE_GET_PERMISSION - 检查特定权限 [可选]
  5. GOOGLEDRIVE_UPDATE_PERMISSION - 修改现有权限 [可选]
  6. GOOGLEDRIVE_DELETE_PERMISSION - 撤销访问权限 [可选]

关键参数:

  • file_id:要共享的文件 ID
  • type:'user'、'group'、'domain' 或 'anyone'
  • role:'owner'、'organizer'、'fileOrganizer'、'writer'、'commenter'、'reader'
  • email_address:当 type='user' 或 'group' 时必需
  • domain:当 type='domain' 时必需
  • transfer_ownership:当 role='owner' 时必需

注意事项:

  • 无效的类型/邮箱组合会触发 4xx 错误
  • 使用 type='anyone' 或高权限角色存在风险;请先获得用户明确确认
  • 组织政策可能会阻止某些共享类型,导致 403 错误
  • 权限变更可能需要一段时间才能生效
  • 共享前,使用 GMAIL_SEARCH_PEOPLE 将联系人姓名解析为邮箱
4. 创建和整理文件夹

使用场景:用户希望创建文件夹结构或在文件夹之间移动文件

工具调用顺序:

  1. GOOGLEDRIVE_FIND_FILE - 检查文件夹是否已存在 [前置条件]
  2. GOOGLEDRIVE_CREATE_FOLDER - 创建新文件夹 [必需]
  3. GOOGLEDRIVE_GET_FILE_METADATA - 验证创建的文件夹 [可选]
  4. GOOGLEDRIVE_MOVE_FILE - 在文件夹之间移动文件 [可选]
  5. GOOGLEDRIVE_UPDATE_FILE_PUT - 更新文件元数据/父文件夹 [替代方案]

关键参数:

  • name:文件夹名称
  • parent_id:父文件夹 ID(不是名称);根目录可省略
  • file_id:要移动的文件
  • add_parents:移动的目标文件夹 ID
  • remove_parents:要移除的源文件夹 ID

注意事项:

  • GOOGLEDRIVE_CREATE_FOLDER 要求 parent_id 为 ID,而不是文件夹名称
  • 使用 parent_id="root" 可在顶层创建文件夹;对于嵌套路径,请按顺序使用文件夹 ID
  • GOOGLEDRIVE_FIND_FILE 每页返回约 100 个项目;对于大型云端硬盘,请使用 nextPageToken 获取后续页面
  • 移动操作可能会导致项目拥有多个父文件夹;要真正移动项目,请使用 remove_parents
  • 创建子文件夹前,请务必确认父文件夹存在

常见模式

ID 解析
  • 文件/文件夹名称 -> ID:使用带 q 参数的 GOOGLEDRIVE_FIND_FILE
  • 根文件夹:使用 folder_id='root' 或 'root' in parents
  • 共享云端硬盘 -> driveId:GOOGLEDRIVE_LIST_SHARED_DRIVES
  • 联系人姓名 -> 邮箱:GMAIL_SEARCH_PEOPLE(用于共享)
查询语法

Google Drive 使用特定的查询语言:

  • 名称搜索:"name contains 'report'" 或 "name = 'exact.pdf'"
  • 类型筛选:"mimeType = 'application/pdf'" 或 "mimeType = 'application/vnd.google-apps.folder'"
  • 文件夹范围:"'FOLDER_ID' in parents"
  • 日期筛选:"modifiedTime > '2024-01-01T00:00:00'"
  • 使用 and/or/not 组合条件:"name contains 'report' and trashed = false"
  • 布尔筛选:"sharedWithMe = true"、"starred = true"、"trashed = false"
分页
  • 持续使用 nextPageToken,直至其缺失,以获取完整结果
  • 明确设置 pageSize(默认值为 100,最大值为 1000)
  • 运行多次搜索时,请对结果去重
导出格式

对于 Google Workspace 文件,设置 mime_type 以指定导出格式:

  • 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

已知陷阱

  • 必须使用内部存储:上传要求文件位于内部 S3 存储中(s3key)
  • 导出与下载:仅对 Google Workspace 文件设置 mime_type;原生文件应省略
  • 临时 URL:通过 s3url 下载的内容是临时的;请及时获取
  • 查询复杂度:超过 5-10 个 OR 子句可能会报错;请将复杂搜索拆分为多个查询
  • 共享云端硬盘范围:缺少云端硬盘权限会导致结果为空;请先确认访问权限
  • 不支持通配符:部分匹配名称时,请使用 contains 运算符,而不是 *
  • 文件夹创建链:请始终将文件夹 ID(而不是名称)作为 parent_id 传入
  • 多个父级:移动操作可能会导致项目拥有多个父级;请使用 remove_parents
  • 速率限制:大量搜索/导出可能触发 403/429;请实现退避机制

快速参考

任务工具标识关键参数
搜索文件GOOGLEDRIVE_FIND_FILEq、corpora、pageSize
列出文件GOOGLEDRIVE_LIST_FILESfolderId、q、orderBy
上传文件GOOGLEDRIVE_UPLOAD_FILEfile_to_upload、folder_to_upload_to
可续传上传GOOGLEDRIVE_RESUMABLE_UPLOAD文件数据
下载文件GOOGLEDRIVE_DOWNLOAD_FILEfile_id、mime_type(仅限 Workspace)
文件元数据GOOGLEDRIVE_GET_FILE_METADATAfileId、fields
创建文件夹GOOGLEDRIVE_CREATE_FOLDERname、parent_id
移动文件GOOGLEDRIVE_MOVE_FILEfile_id、add_parents、remove_parents
共享文件GOOGLEDRIVE_ADD_FILE_SHARING_PREFERENCEfile_id、role、type、email_address
列出权限GOOGLEDRIVE_LIST_PERMISSIONSfileId
更新权限GOOGLEDRIVE_UPDATE_PERMISSIONfile_id、permission_id
删除权限GOOGLEDRIVE_DELETE_PERMISSIONfile_id、permission_id
列出共享云端硬盘GOOGLEDRIVE_LIST_SHARED_DRIVESpageSize
云端硬盘信息GOOGLEDRIVE_GET_ABOUT(无)
创建快捷方式GOOGLEDRIVE_CREATE_SHORTCUT_TO_FILE目标 file_id

由 Composio 提供支持

评论

支持 Markdown