MCP 是 Anthropic 推出的标准化协议,让 Claude Code 可以直接与外部工具和服务交互。通过 MCP,Claude Code 能够像调用内置工具一样操作 Gmail 邮箱,无需手动编写 Python 脚本或直接调用 API。
MCP 采用客户端-服务器架构:
前一篇文章介绍了通过 Python + Gmail API 操作 Gmail 的方式,与 MCP 方式的核心区别在于:
| 对比维度 | Python + Gmail API | MCP 方式 |
|---|---|---|
| 操作方式 | Claude Code 生成 Python 脚本,用户手动运行 | Claude Code 直接在对话中调用 MCP 工具 |
| 代码编写 | 需要生成和运行代码 | 无需代码,自然语言指令即可 |
| 实时性 | 需要等待脚本运行完成 | 对话中即时返回结果 |
| 集成深度 | 需要手动处理认证、编码等 | MCP 服务器自动处理认证 |
| 适用场景 | 复杂的自动化工作流、定时任务 | 即时查询、日常操作、快速交互 |
MCP 服务器通过 Claude Code 的配置文件进行管理。配置文件位置:
~/.claude/settings.json(对所有项目生效)项目根目录/.claude/settings.json(仅当前项目生效)claude mcp 系列命令管理MCP 方式的真正优势在于交互的自然性。你可以直接在对话中说"帮我查一下收件箱里昨天来自 HR 的邮件",Claude Code 就能理解并调用相应的 MCP 工具完成操作。这种体验远超手动编写 Python 脚本的方式,尤其适合日常的快速查询和操作。
截至 2026 年,社区中有多款成熟的 Gmail MCP 服务器可供选择。它们在配置复杂度、功能范围和适用场景上各有侧重。
| 方案 | 配置复杂度 | 功能覆盖 | 是否需要 Google Cloud | 多账号 | 推荐场景 |
|---|---|---|---|---|---|
| Google Workspace MCP | 中等 | 12 项 Google 服务 | 是 | 支持 | 需要全功能 Google Workspace 集成 |
| gmail-multi-mcp | 低(零配置) | Gmail 核心功能 | 否(自动处理) | 支持(多账号切换) | 个人快速使用,多账号管理 |
| gmail-autoauth-mcp | 中低 | Gmail 核心功能 | 是 | 单账号 | 需要精细控制权限范围 |
| Composio | 低(托管认证) | Gmail + 850+ 应用 | 否(第三方托管) | 支持 | 需要多应用集成 |
| Nylas | 中等 | 多邮件提供商 | 否(第三方托管) | 支持 | 需要跨平台邮件(Gmail+Outlook) |
| Coogle | 低 | 12 项 Google 服务 | 是 | 支持(守护进程多路复用) | 多会话并发操作 Google 服务 |
这是目前上手最快的 Gmail MCP 方案,无需 Google Cloud 项目,无需 API Key,一条命令即可完成配置。
gmail-multi-mcp 最大的特色是原生支持多账号。如果需要在工作和个人 Gmail 账号间切换,只需在 setup 时添加多个账号,在对话中直接告诉 Claude Code "切换到工作账号" 或 "查看我的个人邮箱" 即可。
| 工具名称 | 功能 | 使用示例 |
|---|---|---|
| gmail_search | 搜索邮件 | "搜索来自 example.com 的未读邮件" |
| gmail_read | 读取邮件内容 | "打开最新那封邮件看看内容" |
| gmail_send | 发送邮件 | "给张三发一封邮件,主题是..." |
| gmail_draft | 创建草稿 | "帮我写一封回复草稿" |
| gmail_labels | 管理标签 | "给这封邮件加'重要'标签" |
| gmail_accounts | 管理多账号 | "切换到工作账号" |
用户:"帮我查一下收件箱里最近 5 封未读邮件"
Claude Code(通过 MCP):自动调用 gmail_search → 获取结果 → 展示邮件列表
用户:"给小明发一封邮件,告诉他明天的会议改到下午 3 点"
Claude Code(通过 MCP):自动调用 gmail_send → 构建邮件 → 发送 → 返回发送结果
gmail-multi-mcp 将 OAuth token 存储在本地文件系统中,路径为 ~/.gmail-multi-mcp/。token 会自动刷新,无需手动干预。如果要撤销授权,只需删除该目录下的凭据文件即可。
如果你需要的不仅仅是 Gmail,而是完整的 Google Workspace 集成(Gmail + Drive + Calendar + Docs + Sheets 等),Google Workspace MCP 是最佳选择。
如果选择"Web 应用"类型,需要在授权重定向 URI 中添加 http://localhost:8000/oauth2callback。如果选择"桌面应用"类型(PKCE 流程),则无需配置重定向 URI,配置更为简单。推荐大多数用户选择桌面应用类型。
Google Workspace MCP 提供的 Gmail 相关工具:
| 工具分类 | 工具名称 | 功能说明 |
|---|---|---|
| 邮件搜索 | gmail_list_messages | 列出邮件,支持分页和搜索查询 |
| gmail_get_message | 获取单封邮件详情(含正文和附件信息) | |
| gmail_search_messages | 高级搜索,支持 Gmail 搜索语法 | |
| gmail_get_thread | 获取整个邮件线程的对话 | |
| 邮件发送 | gmail_send_message | 发送新邮件(需二次确认) |
| gmail_reply_to_message | 回复指定邮件 | |
| 草稿管理 | gmail_create_draft | 创建草稿 |
| gmail_update_draft | 更新已有草稿 | |
| 标签管理 | gmail_list_labels | 列出所有标签 |
| gmail_create_label | 创建新标签 | |
| gmail_modify_message | 添加/移除标签,标记已读/未读 | |
| 附件管理 | gmail_get_attachment | 下载附件 |
| gmail_send_with_attachment | 发送带附件的邮件 | |
| 垃圾邮件 | gmail_report_spam | 举报垃圾邮件 |
gmail-autoauth-mcp 是一个社区维护的 Gmail MCP 服务器,支持自动 OAuth 认证流程。适合需要自主控制 Google Cloud 项目和权限范围的用户。
| Scope 参数 | 权限说明 | 适用场景 |
|---|---|---|
| gmail.readonly | 只读权限,可查看邮件但不能发送或修改 | 仅需查询和分析邮件的场景 |
| gmail.modify | 读写权限,可发送和管理邮件 | 日常使用(推荐) |
| gmail.send | 仅发送邮件,不能读取 | 仅需自动发送通知的场景 |
| gmail.labels | 仅管理标签 | 只需要标签管理的场景 |
始终遵循最小权限原则:如果仅需读取邮件进行分析,使用 gmail.readonly 而非 gmail.modify。权限可以在后续随时升级,但一开始就给予过多权限会增加安全风险。
如果你不想直接管理 Google Cloud 项目和 OAuth 凭据,第三方托管服务可以帮你处理这些底层细节。
Composio 是一个第三方 API 管理平台,提供了托管的 Gmail MCP 集成,无需设置 Google Cloud 项目。
Nylas 是一个邮件 API 平台,其 MCP 集成支持 Gmail、Outlook、Exchange 和 IMAP 等多种邮件提供商。
以下展示通过 MCP 方式操作 Gmail 的典型对话场景。所有操作均通过自然语言完成,Claude Code 自动调用底层的 MCP 工具。
用户:"查看我的收件箱,显示最近 10 封邮件的发件人和主题"
Claude Code:调用 gmail_list_messages / gmail_search_messages → 返回邮件列表
结果:显示 10 封邮件的发件人、主题、日期和摘要
用户:"昨天有哪些未读邮件?帮我按时间排序"
Claude Code:调用 gmail_search_messages(query: "after:2026/5/3 is:unread") → 排序返回
用户:"搜索来自 github.com 且主题包含 'security alert' 的邮件"
Claude Code:调用 gmail_search_messages(query: "from:github.com subject:'security alert'") → 返回匹配邮件
用户:"找出上个月所有带附件的发票邮件"
Claude Code:调用 gmail_search_messages(query: "after:2026/4/1 before:2026/5/1 has:attachment invoice") → 列出结果
用户:"给 zhangsan@company.com 发一封邮件,主题是'关于下周的会议安排',正文告诉他会议定在周三下午两点"
Claude Code:先展示邮件预览 → 用户确认 → 调用 gmail_send_message → 发送成功
用户:"回复刚才那封邮件,告诉他我会准时参加"
Claude Code:调用 gmail_reply_to_message → 构建回复 → 展示确认 → 发送
用户:"创建一个名叫'项目 Alpha'的新标签,把所有来自 alpha-team@company.com 的邮件都加上这个标签"
Claude Code:调用 gmail_create_label → 搜索匹配邮件 → 调用 gmail_modify_message 逐一添加标签
用户:"切换到我的个人 Gmail 账号"
Claude Code:调用 gmail_accounts(switch_to: "personal") → 切换完成
用户:"把工作账号收件箱里今天的重要邮件转发到个人邮箱"
Claude Code:搜索工作账号邮件 → 获取内容 → 切换到个人账号 → 发送转发邮件
用户:"帮我写一封每日站会的提醒邮件,发给整个团队,包含今天要讨论的三个议题:1)进度更新 2)阻塞问题 3)下一步计划"
Claude Code:生成邮件内容 → 展示预览 → 发送
用户:"把上个月项目相关的所有邮件整理成一个摘要报告"
Claude Code:搜索项目相关邮件 → 读取内容 → 分析归纳 → 生成摘要报告 → (可选)通过 MCP 保存为文件
MCP 服务器的完整配置可以通过 JSON 文件进行精细控制:
Claude Code 可以同时加载多个 MCP 服务器,每个服务器提供不同的能力。例如,你可以同时配置 gmail-multi-mcp(处理个人 Gmail)和 google-workspace-mcp(处理工作账号的 Google 全套服务),在对话中 Claude Code 会自动选择合适的工具来完成任务。
某些 MCP 服务器需要环境变量来传递配置信息。可以在 settings.json 的 env 字段中设置,也可以在系统环境中设置:
通过 MCP 操作 Gmail 涉及邮箱的读写权限,安全问题是重中之重。
| OAuth 范围 | 允许的操作 | 风险等级 |
|---|---|---|
| gmail.readonly | 读取邮件、搜索、获取附件元数据 | 低 |
| gmail.send | 仅发送邮件 | 中 |
| gmail.modify | 读写、发送、管理标签、标记已读/未读 | 中高 |
| mail.google.com(完全访问) | 所有操作,包括永久删除 | 高 |
gmail.readonly 而不是 gmail.modify。很多 MCP 服务器在安装时允许指定权限范围。
~/.gmail-mcp/、~/.google_workspace_mcp/),不会上传到云端大多数 Gmail MCP 服务器实现了发送确认机制:
gmail.readonly 范围,除非确实需要发送或修改邮件claude mcp remove 或注释配置)| 问题 | 原因 | 解决方案 |
|---|---|---|
| claude mcp add 后找不到工具 | MCP 服务器未正确加载 | 重启 Claude Code;运行 claude mcp list 检查状态;重新添加 |
| OAuth 认证时浏览器页面空白 | 端口被占用或防火墙拦截 | 关闭冲突进程;检查防火墙设置;尝试指定其他端口 |
| 发送邮件时返回权限错误 | OAuth 范围不包含发送权限 | 重新认证时使用 gmail.modify 或 gmail.send 范围 |
| "MCP server exited unexpectedly" | Node.js 版本不兼容或依赖缺失 | 升级 Node.js 到 18+;重新安装 MCP 包;检查网络连接 |
| Token 过期/失效 | OAuth token 自然过期或手动撤销 | 删除 token 文件后重新执行认证流程 |
| 中文邮件内容乱码 | MCP 服务器的编码处理问题 | 确保使用最新版本的 MCP 服务器;在邮件中明确设置 charset=utf-8 |
| 搜索不到已存在的邮件 | Gmail 搜索索引延迟或搜索范围不对 | 检查搜索语法;确认邮件不在垃圾箱或归档中 |
| 多账号切换不生效 | MCP 服务器配置未更新 | 重启 Claude Code;重新运行 setup;检查账号列表 |
| uvx command not found | 未安装 uv 工具 | 安装 uv:curl -LsSf https://astral.sh/uv/install.sh | sh |
| npx 运行极慢或无响应 | 网络问题导致 npm 包下载缓慢 | 检查网络连接;配置 npm 镜像源;使用代理 |
遇到 MCP 连接问题时,首先运行 claude mcp list 检查服务器状态。如果显示 disconnected 或 error,尝试 claude mcp remove 服务器名 后重新添加。大多数问题都可以通过重启 Claude Code + 重新添加 MCP 服务器解决。
现在我们已经全面掌握了两种操作 Gmail 的方式。以下是两者的对比总结和场景选择建议。
| 对比维度 | MCP 方式(本文) | Python + Gmail API(上篇) |
|---|---|---|
| 交互方式 | 自然语言对话,即时操作 | 编写并运行 Python 脚本 |
| 学习成本 | 低,仅需配置一次性环境 | 中,需要了解 Gmail API 和 Python |
| 配置复杂度 | 低(gmail-multi-mcp)到中(Google Workspace MCP) | 中(需要 Google Cloud 配置) |
| 实时性 | 高,对话中即时返回 | 中,需等待脚本运行 |
| 自动化能力 | 弱,依赖用户主动发起 | 强,可配置定时任务、批量处理 |
| 可编程性 | 弱,受限于 MCP 服务器提供的工具 | 强,可自由组合 API 接口 |
| 适用场景 | 日常查询、快速操作、即时回复 | 批量处理、定时任务、复杂工作流 |
| 安全模型 | MCP 服务器管理 OAuth,发送需确认 | 自行管理凭据,完全可控 |
事实上,两种方式并不互斥。你可以在日常工作中使用 MCP 方式快速操作,同时在需要自动化时使用 Gmail API 编写脚本。Claude Code 同时支持这两种工作模式。