关于 Gmail
Gmail MCP Server 是面向 Gmail API 的 MCP 服务,为邮件管理、发送和检索提供标准化接口。它适用于需要在组织内让 AI 访问邮箱的团队,每位用户使用各自的 OAuth 凭据授权。
主要功能
- 01覆盖邮件、线程、标签、草稿和设置等 Gmail API
- 02支持发送、起草和管理邮件
- 03标签管理,可设置颜色和可见性
- 04线程操作与历史变更记录
- 05基于 Google Cloud 凭据的 OAuth2 认证
适用场景
- 01让 AI 助手检索并整理收件箱邮件
- 02批量修改或删除邮件与标签
- 03管理自动转发、休假回复等邮箱设置
MCP 相关
该项目是 MCP 服务,将 Gmail 的邮件、标签、线程、草稿和设置操作以 MCP 工具形式暴露给 MCP 客户端调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
64收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cc | array | 否 | 抄送收件人电子邮件地址列表 |
| to | array | 否 | 收件人电子邮件地址列表 |
| bcc | array | 否 | 密送(BCC)收件人电子邮件地址列表 |
| raw | string | 否 | 采用 base64url 编码的 RFC 2822 格式的完整电子邮件消息;如果提供,则忽略 params.to、cc、bcc、subject、body、includeBodyHtml |
| body | string | 否 | 电子邮件正文 |
| subject | string | 否 | 电子邮件主题 |
| threadId | string | 否 | 要将此草稿关联到的会话 ID |
| includeBodyHtml | boolean | 否 | 是否在每个正文的返回结果中包含解析后的 HTML;默认不包含,因为内容可能过大 |
详细介绍
这是一个 Gmail API 的 Model Context Protocol (MCP) 服务实现,为邮件管理、发送和检索提供标准化接口。
功能
- 全面支持 Gmail API,包括邮件、会话、标签、草稿和设置
- 支持发送、起草和管理邮件
- 可管理标签,并自定义颜色和可见性设置
- 支持会话操作,便于管理对话
- 支持设置管理,包括假期自动回复、IMAP/POP 和语言设置
- 跟踪邮箱变更历史
- 使用 Google Cloud 凭据进行安全的 OAuth2 身份验证
前提条件
依赖项
最简单的安装方式是安装 Node.js 18+。如果要在本地构建,还需要安装 pnpm。
Google Workspace 设置
要运行此 MCP 服务,你需要为组织设置 Google API 客户端,并让每位用户运行脚本以获取自己的 OAuth 刷新令牌。
Google API 客户端设置(每个组织一次)
- 前往 Google Cloud Console。
- 创建新项目或选择现有项目。
- 为项目启用 Gmail API。
- 前往 Credentials 并创建 OAuth 2.0 Client ID。客户端类型选择 “Desktop app”。
- 下载 OAuth 密钥 JSON,并保存为
~/.gmail-mcp/gcp-oauth.keys.json。⚠️ 注意:要通过 MacOS 的 Finder 应用创建~/.gmail-mcp/,你需要先启用隐藏文件。 - (可选)如果要安装远程服务(例如使用 Smithery CLI),请记下此文件中的
CLIENT_ID和CLIENT_SECRET。
客户端 OAuth(每位用户一次)
- 请用户将
~/.gmail-mcp/gcp-oauth.keys.json复制到其电脑上的相同路径。 - 运行
npx @shinzolabs/gmail-mcp auth。 - 系统会打开浏览器窗口,用户可以选择个人资料、查看请求的权限范围并批准授权。
- (可选)如果要安装远程服务,请记下成功消息中提到的文件路径(默认是
~/.gmail-mcp/credentials.json)。用户的REFRESH_TOKEN可在此文件中找到。
客户端配置
你可以通过多种方式将 MCP 客户端配置为使用此服务。对于托管或远程服务设置,请使用 Smithery CLI 和 Smithery API Key。对于本地安装,请使用 npx 或从源代码构建。下文将介绍这些方式。
Smithery 远程服务(推荐)
要将远程服务添加到 MCP 客户端的 config.json 中,请通过 Smithery CLI 运行以下命令:
npx -y @smithery/cli install @shinzo-labs/gmail-mcp
根据提示输入 CLIENT_ID、CLIENT_SECRET 和 REFRESH_TOKEN。
Smithery SDK
如果你正在开发自己的 Agent 应用,可以使用这里的样板代码。
NPX 本地安装
要使用 npx 在本地安装服务,请将以下内容添加到 MCP 客户端的 config.json 中:
{
"mcpServers": {
"gmail": {
"command": "npx",
"args": [
"@shinzolabs/gmail-mcp"
]
}
}
}
从源代码构建
- 下载仓库:
git clone https://github.com/shinzo-labs/gmail-mcp.git
- 在克隆的仓库中使用
pnpm安装软件包并构建:
pnpm i && pnpm build
- 将以下内容添加到 MCP 客户端的
config.json中:
{
"mcpServers": {
"gmail": {
"command": "node",
"args": [
"/path/to/gmail-mcp/dist/index.js"
]
}
}
}
配置变量
| 变量 | 描述 | 必填? | 默认值 |
|---|---|---|---|
AUTH_SERVER_PORT | 临时 OAuth 身份验证服务的端口 | 否 | 3000 |
CLIENT_ID | Google API 客户端 ID(位于 GMAIL_OAUTH_PATH 中) | 远程服务连接时必填 | '' |
CLIENT_SECRET | Google API 客户端密钥(位于 GMAIL_OAUTH_PATH 中) | 远程服务连接时必填 | '' |
GMAIL_CREDENTIALS_PATH | 用户凭据文件的路径 | 否 | MCP_CONFIG_DIR/credentials.json |
GMAIL_OAUTH_PATH | Google API 客户端文件的路径 | 否 | MCP_CONFIG_DIR/gcp-oauth.keys.json |
MCP_CONFIG_DIR | 存储配置文件的目录 | 否 | ~/.gmail-mcp |
REFRESH_TOKEN | OAuth 刷新令牌(位于 GMAIL_CREDENTIALS_PATH 中) | 远程服务连接时必填 | '' |
PORT | Streamable HTTP 传输方式的端口 | 否 | 3000 |
TELEMETRY_ENABLED | 启用遥测 | 否 | true |
支持的端点
用户管理
get_profile:获取当前用户的 Gmail 个人资料stop_mail_watch:停止接收推送通知watch_mailbox:为邮箱变更设置推送通知
邮件管理
管理邮件
list_messages:列出邮件,可选筛选条件get_message:获取指定邮件get_attachment:获取邮件附件modify_message:修改邮件标签send_message:向指定收件人发送邮件delete_message:永久删除邮件trash_message:将邮件移至垃圾箱untrash_message:将邮件移出垃圾箱batch_modify_messages:修改多封邮件batch_delete_messages:删除多封邮件
标签管理
list_labels:列出所有标签get_label:获取指定标签create_label:创建新标签update_label:更新标签patch_label:部分更新标签delete_label:删除标签
会话管理
list_threads:列出邮件会话get_thread:获取指定会话modify_thread:修改会话标签trash_thread:将会话移至垃圾箱untrash_thread:将会话移出垃圾箱delete_thread:删除会话
草稿管理
list_drafts:列出用户邮箱中的草稿get_draft:按 ID 获取特定草稿create_draft:在 Gmail 中创建邮件草稿update_draft:替换草稿内容delete_draft:删除草稿send_draft:发送现有草稿
设置管理
自动转发
get_auto_forwarding:获取自动转发设置update_auto_forwarding:更新自动转发设置
IMAP 设置
get_imap:获取 IMAP 设置update_imap:更新 IMAP 设置
POP 设置
get_pop:获取 POP 设置update_pop:更新 POP 设置
休假自动回复
get_vacation:获取休假自动回复设置update_vacation:更新休假自动回复
语言设置
get_language:获取语言设置update_language:更新语言设置
代理人
list_delegates:列出账号代理人get_delegate:获取特定代理人add_delegate:添加代理人remove_delegate:移除代理人
过滤器
list_filters:列出邮件过滤器get_filter:获取特定过滤器create_filter:创建新过滤器delete_filter:删除过滤器
转发地址
list_forwarding_addresses:列出转发地址get_forwarding_address:获取特定转发地址create_forwarding_address:创建转发地址delete_forwarding_address:删除转发地址
代发设置
list_send_as:列出代发别名get_send_as:获取特定代发别名create_send_as:创建代发别名update_send_as:更新代发别名patch_send_as:部分更新代发别名verify_send_as:发送验证邮件delete_send_as:删除代发别名
S/MIME 设置
list_smime_info:列出 S/MIME 配置get_smime_info:获取特定 S/MIME 配置insert_smime_info:上传新的 S/MIME 配置set_default_smime_info:设置默认 S/MIME 配置delete_smime_info:删除 S/MIME 配置
参与贡献
欢迎并鼓励大家参与贡献!请阅读 CONTRIBUTING.md,了解问题反馈、贡献方式和联系信息的相关指南。
数据收集与隐私
Shinzo Labs 会从此服务收集有限的匿名遥测数据,以帮助改进我们的产品和服务。此过程中不会收集任何个人身份信息。请查看 Privacy Policy,详细了解收集的数据类型以及如何选择退出此遥测数据收集。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。