用途
Gmail Automation 是一个通过 Rube MCP(Composio)自动化 Gmail 操作的技能,用于以程序化方式完成发送、回复、搜索、标签管理、草稿与附件处理等邮件任务。
前置条件
- 必须已连接 Rube MCP(RUBE_SEARCH_TOOLS 可用)。
- 需通过 RUBE_MANAGE_CONNECTIONS 建立有效的 Gmail 连接(toolkit 为 gmail)。
- 每次操作前应先调用 RUBE_SEARCH_TOOLS 获取当前工具 schema。
设置方式
- 获取 Rube MCP:在客户端配置中添加 https://rube.app/mcp 作为 MCP 服务器,无需 API 密钥。
- 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 可用。
- 调用 RUBE_MANAGE_CONNECTIONS,toolkit 设为 gmail。
- 若连接状态不是 ACTIVE,按返回的授权链接完成 Google OAuth。
- 确认连接状态为 ACTIVE 后再运行工作流。
主要能力
1. 发送邮件
- 工具序列:GMAIL_SEARCH_PEOPLE(可选,解析联系人邮箱)、GMAIL_SEND_EMAIL(必需)。
- 关键参数:recipient_email(邮箱或 'me')、subject、body、is_html(正文含 HTML 时必须为 true)、cc/bcc、attachment(含 s3key、mimetype、name)。
- 注意:recipient_email、cc、bcc 至少填一个;subject 或 body 至少填一个;附件 mimetype 必须含 '/';消息总大小约 25MB 上限;from_email 仅用于已验证别名。
2. 回复邮件线程
- 工具序列:GMAIL_FETCH_EMAILS(前置)、GMAIL_REPLY_TO_THREAD(必需)。
- 关键参数:thread_id(十六进制字符串)、message_body、recipient_email、is_html。
- 注意:thread_id 必须为十六进制字符串;不支持旧版 Gmail Web UI ID;不要传 subject 参数,否则会创建新线程。
3. 搜索与筛选邮件
- 工具序列:GMAIL_FETCH_EMAILS(必需)、GMAIL_FETCH_MESSAGE_BY_MESSAGE_ID(可选)。
- 关键参数:query(Gmail 搜索语法)、max_results(1-500)、label_ids、include_payload、ids_only、page_token。
- 注意:每页最多约 500 条,需通过 nextPageToken 翻页;resultSizeEstimate 为近似值;状态用 'is:',用户标签用 'label:';自定义标签需用标签 ID。
4. 管理标签
- 工具序列:GMAIL_LIST_LABELS(必需)、GMAIL_CREATE_LABEL、GMAIL_PATCH_LABEL、GMAIL_DELETE_LABEL(可选)。
- 关键参数:label_name(最多 225 字符,不含逗号,'/' 用于嵌套)、background_color/text_color(Gmail 预定义调色板十六进制值)、id。
- 注意:名称空白、重复或保留字会报 400/409;颜色须用预定义调色板;删除不可逆;系统标签不可删除。
5. 为邮件添加/移除标签
- 工具序列:GMAIL_LIST_LABELS、GMAIL_FETCH_EMAILS(前置)、GMAIL_BATCH_MODIFY_MESSAGES(必需,最多 1000 条)、GMAIL_ADD_LABEL_TO_EMAIL(单条回退)。
- 关键参数:messageIds、addLabelIds、removeLabelIds、message_id。
- 注意:批量上限 1000 条;类别标签需完整前缀如 'CATEGORY_UPDATES';SENT、DRAFT、CHAT 不可变;标记已读需移除 'UNREAD',归档需移除 'INBOX';message_id 为 15-16 位十六进制。
6. 处理草稿与附件
- 工具序列:GMAIL_CREATE_EMAIL_DRAFT(必需)、GMAIL_UPDATE_DRAFT、GMAIL_LIST_DRAFTS、GMAIL_SEND_DRAFT(需用户明确批准)、GMAIL_GET_ATTACHMENT(可选)。
- 关键参数:recipient_email、subject、body、is_html、attachment、thread_id。
- 注意:草稿操作用 data.id;回复草稿设 subject 会创建新线程;附件约 25MB 上限;UPDATE_DRAFT 为整体替换;批量创建可能触发 HTTP 429,需指数退避。
常用模式
- 标签名转标签 ID:调用 GMAIL_LIST_LABELS,按名称查找并提取 id。
- 联系人名转邮箱:调用 GMAIL_SEARCH_PEOPLE,提取 emailAddresses。
- 从搜索获取线程 ID:调用 GMAIL_FETCH_EMAILS 或 GMAIL_LIST_THREADS,提取 threadId。
- 分页:max_results 最大 500,检查 nextPageToken 并作为 page_token 传入,直到无 token。
Gmail 查询语法
- 操作符:from:、to:、subject:""、is:unread、is:starred、is:snoozed、has:attachment、after:YYYY/MM/DD、before:YYYY/MM/DD、label:、in:sent、category:primary。
- 组合符:AND、OR、NOT、()。
- 示例:from:boss@company.com is:unread;subject:invoice has:attachment after:2024/01/01;(from:alice OR from:bob) is:starred。
已知陷阱
- ID 格式:自定义标签操作用标签 ID;消息 ID 为 15-16 位十六进制;不要用 UUID、Web UI ID 或 'thread-f:' 前缀。
- 查询语法:状态用 'is:',用户标签用 'label:',系统标签用 'is:' 或 'in:'。
- 速率限制:BATCH_MODIFY_MESSAGES 每次最多 1000 条;高频使用触发 403/429,需指数退避。
- 响应解析:数据可能嵌套在 data_preview 或 data.messages 下,需防御性解析;messageTimestamp 为 RFC3339 带 'Z'。
- 附件:s3key 可能过期,需及时使用;mimetype 必须含 '/'。
快速参考
- 发送邮件:GMAIL_SEND_EMAIL(recipient_email, subject, body, is_html)
- 回复线程:GMAIL_REPLY_TO_THREAD(thread_id, message_body, recipient_email)
- 搜索邮件:GMAIL_FETCH_EMAILS(query, max_results, label_ids, page_token)
- 获取消息详情:GMAIL_FETCH_MESSAGE_BY_MESSAGE_ID(message_id)
- 列出标签:GMAIL_LIST_LABELS
- 创建标签:GMAIL_CREATE_LABEL(label_name, background_color, text_color)
- 批量修改标签:GMAIL_BATCH_MODIFY_MESSAGES(messageIds, addLabelIds, removeLabelIds)
- 创建草稿:GMAIL_CREATE_EMAIL_DRAFT(recipient_email, subject, body, thread_id)
- 发送草稿:GMAIL_SEND_DRAFT(draft_id)
- 获取附件:GMAIL_GET_ATTACHMENT(message_id, attachment_id)
- 搜索联系人:GMAIL_SEARCH_PEOPLE(query)
- 获取个人资料:GMAIL_GET_PROFILE
适用场景与限制
适用于需要通过 MCP 以程序化方式批量或自动化处理 Gmail 邮件的场景,如自动发送通知、批量打标签、按条件搜索与归档等。限制包括:依赖 Rube MCP 与有效的 Gmail OAuth 连接;部分操作有数量与大小上限;删除标签不可逆;发送草稿需用户明确批准;具体收费、价格与平台支持信息暂未提供。