mcpField
G
Gmail MCP

Gmail MCP

本地服务
github.com通信协作04 周前更新

关于 Gmail MCP

Gmail MCP 将 Gmail API 接入 AI 应用,供需要处理邮件和整理邮箱的用户使用。它支持草拟后审阅再发送,并将删除操作限制为可恢复的垃圾箱移动。

主要功能

  1. 01搜索并阅读邮件与会话
  2. 02创建、审阅和发送草稿
  3. 03管理标签及邮件状态
  4. 04将邮件移入或移出垃圾箱
  5. 05限制正文长度并返回附件元数据

适用场景

  1. 01筛选未读邮件并归纳待回复事项
  2. 02在会话中起草并审阅回复
  3. 03批量整理邮件标签与已读状态
  4. 04移入垃圾箱后按需恢复邮件

MCP 相关

作为 MCP 服务,它向 MCP 客户端提供 Gmail 邮件、草稿、标签和垃圾箱操作工具;通过 Google OAuth 访问获授权的邮箱。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"a1-x-tech-mcp-google-gmail": {
"command": "npx",
"args": [
"-y",
"mcp-google-gmail"
],
"env": {
"GOOGLE_GMAIL_CLIENT_ID": "<GOOGLE_GMAIL_CLIENT_ID>",
"GOOGLE_GMAIL_CLIENT_SECRET": "<GOOGLE_GMAIL_CLIENT_SECRET>",
"GOOGLE_GMAIL_REFRESH_TOKEN": "<GOOGLE_GMAIL_REFRESH_TOKEN>",
"GOOGLE_GMAIL_ACCESS_TOKEN": "<GOOGLE_GMAIL_ACCESS_TOKEN>",
"GOOGLE_GMAIL_OAUTH_PORT": "<GOOGLE_GMAIL_OAUTH_PORT>",
"GOOGLE_GMAIL_API_BASE": "<GOOGLE_GMAIL_API_BASE>",
"GOOGLE_GMAIL_TIMEOUT_MS": "<GOOGLE_GMAIL_TIMEOUT_MS>",
"GOOGLE_GMAIL_MAX_RETRIES": "<GOOGLE_GMAIL_MAX_RETRIES>"
}
}
}
}
启动命令npx -y mcp-google-gmail
需要配置的环境变量
GOOGLE_GMAIL_CLIENT_IDGoogle OAuth2 client id (refresh-token flow).
GOOGLE_GMAIL_CLIENT_SECRET密钥Google OAuth2 client secret (refresh-token flow). Treat it as a secret.
GOOGLE_GMAIL_REFRESH_TOKEN密钥Google OAuth2 refresh token, exchanged for access tokens automatically. Treat it as a secret.
GOOGLE_GMAIL_ACCESS_TOKEN密钥Static OAuth2 access token (~1h lifetime) — alternative to the refresh-token trio, mostly for testing.
GOOGLE_GMAIL_OAUTH_PORT密钥Fixed port for the loopback listener of the in-chat login (127.0.0.1 + PKCE). Set it when the client runs over SSH port forwarding; otherwise a free port is picked per login.
GOOGLE_GMAIL_API_BASEAPI root override.
GOOGLE_GMAIL_TIMEOUT_MSPer-request timeout in milliseconds.
GOOGLE_GMAIL_MAX_RETRIESRetries on transient errors (429 always; 5xx/network for reads).

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-google-gmail1.0.0

工具

24

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

A1 Gmail MCP

English | Русский

npm Glama CI License: MIT

A1 Gmail MCP 让 AI 应用能够用日常语言处理你的 Gmail 邮箱。搜索和阅读邮件、将回复准备为草稿、在准备好后发送、整理标签,并使用垃圾箱而非永久删除。

它通过你的 Google 账号使用 Gmail API。它会区分仍可编辑的草稿和无法撤回的已发送邮件,并明确说明 Gmail API 的限制,而不是暗示所有邮件操作都可撤销。

  • 24 个工具。 搜索和阅读邮件与会话、直接发送邮件或通过草稿发送、管理草稿生命周期、标签和垃圾箱。
  • 在对话中连接。 说“连接 Gmail”:服务会引导你完成 OAuth 客户端设置,使用 PKCE 在 127.0.0.1 接收 Google 的重定向,并自行保管令牌——无需配置文件,也无需重启。
  • 谨慎发送。 草稿 → 审阅 → 发送是核心流程;发送会标记为破坏性操作,遇到结果不明确的失败时,服务绝不会重新发送——邮件无法撤回。
  • 垃圾箱是安全保障。 移除邮件会将其移入可恢复的垃圾箱(约 30 天);我们有意不提供永久删除邮件的工具。
  • 有界读取。 解码后的邮件正文会截断到明确设定的限制,附件则以元数据形式返回,因此长篇新闻邮件不会悄然塞满对话。
  • 最小化 Google 权限范围。 仅使用 gmail.modify——不会永久删除邮件,也无法访问 Gmail 设置。

从只读问题开始:

显示我过去一周未读的邮件,并告诉我哪些需要回复。

连接服务 · 探索使用场景 · 查看技术文档


一分钟了解其工作方式

你: 我收件箱里本周有哪些关于 Acme 合同的未读邮件?

助手: 使用 Gmail 查询语法进行搜索,并显示发件人、主题、日期和摘要。不会更改任何内容。

你: 给最新的一封邮件起草回复:我们会在周五发送签署后的副本。

助手: 在同一会话中创建草稿并显示出来供审阅。不会发送任何内容。

你: 发送。

助手: 发送草稿。发送是单独的、明确的破坏性步骤,因此你的 AI 应用可以先请求确认。

目录

快速开始

你需要 Node.js 20+ 和一个 Google 账号。安装时无需凭据——服务会在对话期间连接。

  1. 将该服务添加到你的 AI 应用。
  2. 说“连接 Gmail”:助手会引导你创建 OAuth 客户端并批准访问,无需编辑配置文件。
  3. 提出上面那个只读问题。
Codex

**在应用中:**打开 设置 → MCP 服务,选择 添加服务,选择 STDIO,输入命令 npx -y mcp-google-gmail@latest 和环境变量 GOOGLE_GMAIL_CLIENT_ID、GOOGLE_GMAIL_CLIENT_SECRET、GOOGLE_GMAIL_REFRESH_TOKEN,然后选择 保存 和 重启。

通过命令行:

codex mcp add google-gmail \
  -- npx -y mcp-google-gmail@latest
codex mcp list

Codex MCP 文档

Claude Code
claude mcp add \
  --transport stdio --scope user google-gmail \
  -- npx -y mcp-google-gmail@latest
claude mcp list

Claude Code MCP 文档

Claude Desktop

当前官方方式是 设置 → 扩展。要安装自定义桌面扩展,请打开 高级设置 → 扩展开发者 → 安装扩展…,选择 .mcpb 文件并按提示操作。

此仓库目前发布的是 npm stdio 包,不包含 .mcpb 捆绑包。对于仍支持本地配置的 Claude Desktop 版本,请使用以下 JSON stdio 配置作为备用方案:

{
  "mcpServers": {
    "google-gmail": {
      "command": "npx",
      "args": ["-y", "mcp-google-gmail@latest"]
    }
  }
}

在这些版本中,macOS 上将其保存到 ~/Library/Application Support/Claude/claude_desktop_config.json,或 Windows 上保存到 %APPDATA%\Claude\claude_desktop_config.json。

Claude Desktop MCP 文档

Cursor

在 macOS/Linux 上将以下内容添加到 ~/.cursor/mcp.json,或在 Windows 上添加到 %USERPROFILE%\.cursor\mcp.json:

{
  "mcpServers": {
    "google-gmail": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-gmail@latest"]
    }
  }
}

Cursor MCP 文档

VS Code

运行 MCP:打开用户配置 并添加:

{
  "servers": {
    "google-gmail": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-google-gmail@latest"]
    }
  }
}

使用 MCP:列出服务 检查配置。

VS Code MCP 文档

可以让它做什么

整理收件箱
  • 显示过去七天的未读邮件,并按发件人分组。
  • 找到与 Acme 讨论合同的邮件会话,并按从早到晚的顺序总结。
  • 哪些邮件有附件等着我处理?显示主题和文件名。
撰写并发送邮件
  • 在此邮件会话中起草一封回复,说明签署后的副本会在周五发出。
  • 把草稿给我看看,精简措辞,然后发送。
  • 给团队发送一封简短的状态邮件,并将经理抄送。
保持邮箱井然有序
  • 创建标签 Receipts/2026,并应用到匹配的邮件。
  • 将本周的新闻邮件标记为已读并归档。
  • 将该邮件会话移至垃圾箱——如果我改变主意,再恢复它。

邮件会发生哪些变化

  1. 安全的发送方式是先创建草稿:create_draft 准备邮件,get_draft 显示邮件以供审核,send_draft 发送邮件。send_message 会跳过草稿,立即发送。
  2. 已发送的邮件无法从外部撤回。超时或出现 5xx 错误后,服务端不会重新发送;再次尝试前请搜索 in:sent,因为重放发送操作会导致邮件被发送两次。
  3. 移除邮件或邮件会话意味着将其移至垃圾箱。manage_trash 可在约 30 天内撤销;我们有意不提供永久删除工具。
  4. 草稿是个例外:update_draft 会替换整个草稿(API 不支持部分编辑),而 delete_draft 会永久删除草稿,因为草稿不会经过垃圾箱。

每次调用只针对一个邮箱——即授予令牌的账号。解码后的正文会按可配置的上限截断,并明确标记;附件只返回元数据,附件内容则有意通过 raw_request 获取。

可以进行哪些更改

操作结果确认边界
搜索和读取邮件、邮件会话、草稿、标签及个人资料读取邮箱数据不会更改
创建或更新草稿准备或替换尚未发送的邮件更改邮箱
更改已读、星标或归档状态,应用或移除标签更改邮件的整理方式更改邮箱
创建或重命名标签更改标签名称更改邮箱
将邮件或邮件会话移至垃圾箱或从垃圾箱移出将邮件移至垃圾箱或从中移出;可在约 30 天内撤销破坏性操作
发送邮件或草稿将邮件投递给真实收件人;无法撤回破坏性操作
删除草稿或标签永久移除,不经过垃圾箱破坏性操作
原始 API 请求可调用没有专用工具的 API 方法可能具有破坏性

AI 客户端控制确认提示。服务会为读取、写入和破坏性工具添加标记,以便客户端区分检查操作和实际更改。

获取访问权限

Google Gmail 需要 OAuth 2.0;仅有 API 密钥并不足够。有两种接入方式,第一种无需配置文件。

从聊天中连接(推荐)

说“connect Gmail”,助手就会引导你完成流程:

  1. setup_instructions 会打印检查清单:创建或选择 Google Cloud 项目,启用 Gmail API,配置同意屏幕并创建 Desktop app OAuth 客户端。
  2. 下载该客户端的 JSON(“Download JSON”),并将其路径提供给助手——set_client 会以仅所有者可访问的权限保存该文件。密钥不会经过对话。
  3. start_login 会返回 Google 授权链接。在此机器上打开链接并批准;授权码会返回到 127.0.0.1 上的一次性监听器(PKCE),不会经过聊天。
  4. finish_login 会交换授权码,并将令牌保存到 ~/.config/mcp-google-gmail/credentials.json(模式为 0600),再通过一次真实的 Gmail API 调用进行验证——如果 API 仍处于关闭状态,会立即发现。

每次调用都会重新读取令牌,因此连接会立即生效,无需重启 AI 应用。auth_status 会显示已连接的内容,logout 会撤销并删除连接。

环境变量(CI、无人值守安装)
  1. 创建或选择一个 Google Cloud 项目,并启用 Gmail API。

  2. 配置 OAuth 同意屏幕,并创建 Desktop app OAuth 客户端。

  3. 授权要连接其邮箱的 Google 账号——每次调用都只会操作该邮箱。OAuth 2.0 Playground 可以在启用 Use your own OAuth credentials 后获取刷新令牌。

  4. 请求以下范围:

    https://www.googleapis.com/auth/gmail.modify
    

    它涵盖搜索、读取、发送、草稿、标签和移至垃圾箱,但不包括永久删除和 Gmail 设置。通过 raw_request 永久删除邮件,还需要完整的 https://mail.google.com/ 范围。

测试模式下的 OAuth 刷新令牌可能会在 7 天后过期。需要长期访问时,请发布 OAuth 应用,或在 Workspace 网域中使用 Internal 应用。请将客户端密钥和刷新令牌视为密码。

配置

所有变量都是可选的——即使不设置任何变量,服务也会从聊天中连接。

变量必填说明
GOOGLE_GMAIL_CLIENT_ID否*OAuth 客户端 ID。
GOOGLE_GMAIL_CLIENT_SECRET否*OAuth 客户端密钥。
GOOGLE_GMAIL_REFRESH_TOKEN否*OAuth 刷新令牌。
GOOGLE_GMAIL_ACCESS_TOKEN否*OAuth 三项配置的短期替代方案(约 1 小时)。
GOOGLE_GMAIL_OAUTH_PORT否用于聊天内登录的固定环回端口;通过 SSH 端口转发时很有用。
GOOGLE_GMAIL_API_BASE否Gmail API 基础 URL 覆盖值。
GOOGLE_GMAIL_TIMEOUT_MS否每个请求的超时时间;默认值为 60000 毫秒。
GOOGLE_GMAIL_MAX_RETRIES否临时错误的重试次数;默认值为 3。

* 提供 OAuth 三项配置,或访问令牌。

数据、限制和后台工作

  • 请求会发送至 Gmail。 本地服务会刷新 Google OAuth 令牌并调用 Gmail API。其匿名遥测数据包含安装 ID、软件包版本、AI 客户端和平台版本,以及工具名称——绝不包含 OAuth 令牌、邮件内容、工具参数或提示词。设置 ASKADS_TELEMETRY=0 即可选择退出。
  • Google 会按配额单位计量。 Gmail 每位用户每秒大约允许 250 个配额单位;发送邮件消耗 100 个单位,典型的读取操作消耗 5 个。个人账号每天可发送约 500 封邮件,Workspace 账号约 2,000 封。遇到 429 时,服务会采用退避策略;读取操作在网络错误和 5xx 错误后也会重试,而发送及其他写入操作在失败情况不确定时绝不会重放。
  • 没有后台轮询。 服务仅在被调用时运行。如果你的 AI 应用支持定时任务,就可以定期检查收件箱;raw_request 也可以调用 history.list 进行增量同步。

技术文档

支持

发现 Bug 或有使用场景需求?创建 Issue,或在 Telegram 上联系我们。


两只 Mona 击掌

你已读到最后!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。