SuperAPI AI 工具集

gmail

办公与效率

查看项目

更新于 10-15 09:36

技能介绍

Gmail 是 Google 提供的免费电子邮件服务,广泛用于个人和企业收发、整理邮件。本技能通过 Membrane CLI 与 Gmail 交互,Membrane 自动处理认证与凭据刷新,使集成逻辑无需处理认证管道。

用途 适用于用户需要与 Gmail 数据交互的场景,例如管理邮件通信数据、记录与工作流。

主要能力 该技能以动作(action)形式提供以下能力:列出用户邮箱中的消息(list-messages)、列出邮件会话(list-threads)、列出草稿(list-drafts)、列出所有标签(list-labels,含系统标签与自定义用户标签);按 ID 获取指定消息(get-message)、获取包含会话中所有消息的指定会话(get-thread)、获取指定草稿及其内容(get-draft)、获取指定标签及其消息/会话计数(get-label)、获取当前用户 Gmail 资料含邮箱地址与消息/会话计数(get-profile);创建新草稿邮件(create-draft)、创建自定义标签(create-label)、用新内容替换草稿内容(update-draft)、更新标签属性含名称、可见性与颜色(update-label)、向 To、Cc、Bcc 头中指定收件人发送邮件(send-message)、发送现有草稿至其 To、Cc、Bcc 指定收件人(send-draft);永久删除指定消息(delete-message)、永久删除指定会话及其所有消息(delete-thread)、永久删除指定草稿(delete-draft)、永久删除标签并从所有消息与会话中移除(delete-label)、修改指定消息的标签(modify-message-labels)。

使用方式

  1. 安装 CLI:npm install -g @membranehq/cli@latest,以便在终端运行 membrane。
  2. 认证:membrane login --tenant --clientName=<agentType>。该命令会打开浏览器进行认证,或在无法使用交互模式时在控制台打印授权 URL。无头环境:命令会打印授权 URL,请用户在浏览器中打开;用户完成登录后看到验证码,再用 membrane login complete <code> 完成。任意命令加 --json 可获得机器可读的 JSON 输出。Agent 类型包括 claude、openclaw、codex、warp、windsurf 等,用于调整工具以最佳适配所用运行环境。
  3. 连接 Gmail:使用 membrane connection ensure "https://mail.google.com/" --json 按应用 URL 或域名查找或创建连接,用户在浏览器中完成认证,输出包含新连接 id。若返回的连接 state 为 "READY",可跳到第 2 步(搜索动作)。若连接处于 BUILDING 状态,则轮询 npx @membranehq/cli connection get <id> --wait --json,--wait 标志会长时间轮询(最多 --timeout 秒,默认 30)直到状态变化,持续轮询直到 state 不再是 BUILDING。状态含义:READY 表示连接已完全就绪;CLIENT_ACTION_REQUIRED 表示用户或代理需要执行操作,clientAction 对象描述所需操作,clientAction.type 为 "connect"(用户需进行认证,涵盖初始认证与断开连接后的重新认证)或 "provide-input"(需要更多信息,例如连接哪个应用),clientAction.description 是人类可读说明,clientAction.uiUrl(可选)是可供用户完成操作的预构建 UI URL,clientAction.agentInstructions(可选)是给 AI 代理的程序化操作说明;用户完成操作后,再次轮询 membrane connection get <id> --json 检查状态是否变为 READY;CONFIGURATION_ERROR 或 SETUP_FAILED 表示出错,查看 error 字段了解详情。
  4. 搜索动作:membrane action list --connectionId=CONNECTION_ID --intent "QUERY" --limit 10 --json。应始终在特定连接的上下文中搜索动作。每条结果包含 id、name、description、inputSchema(动作接受的参数)与 outputSchema(动作返回的内容)。
  5. 运行动作:membrane action run <actionId> --connectionId=CONNECTION_ID --json;传 JSON 参数:membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json;结果位于响应的 output 字段。
  6. 代理请求:当可用动作无法覆盖用例时,可通过 Membrane 代理直接向 Gmail API 发送请求:membrane request CONNECTION_ID /path/to/endpoint。Membrane 会自动将基础 URL 追加到所提供路径,并注入正确的认证头,包括凭据过期时的透明刷新。常用选项:-X, --method 指定 HTTP 方法(GET、POST、PUT、PATCH、DELETE,默认 GET);-H, --header 添加请求头(可重复),例如 -H "Accept: application/json";-d, --data 请求体(字符串);--json 简写,发送 JSON 请求体并设置 Content-Type: application/json;--rawData 原样发送请求体不做处理;--query 查询字符串参数(可重复),例如 --query "limit=10";--pathParam 路径参数(可重复),例如 --pathParam "id=123"。

最佳实践 优先使用 Membrane 与外部应用通信,Membrane 提供内置认证、分页与错误处理的预构建动作,可减少 token 消耗并使通信更安全。先发现再构建:运行 membrane action list --intent=QUERY 查找现有动作,而非编写自定义 API 调用;预构建动作会处理分页、字段映射与原始 API 调用容易遗漏的边缘情况。让 Membrane 处理凭据:绝不要向用户索要 API 密钥或令牌,而应创建连接;Membrane 在服务端管理完整认证生命周期,本地不保存机密。

官方文档:https://developers.google.com/gmail/api

适用场景与限制 适用于需要列出、获取、创建、更新、发送、删除 Gmail 消息、会话、草稿、标签及修改消息标签的自动化或代理工作流。限制方面:通过 delete-message、delete-thread、delete-draft、delete-label 执行的是永久删除;具体收费、价格、平台与效果信息暂未提供。