Gmail邮件管理控制台
通过60多个用于起草、发送、检索和整理邮件的工具,轻松管理您的电子邮件。通过完整的Gmail API覆盖(包括标签和线程管理),简化您的电子邮件工作流程。
服务介绍
Gmail MCP
这是一个针对 Gmail API 的 Model Context Protocol (MCP) 实现,提供了邮件管理、发送和检索的标准化接口。
功能
- 完整的 Gmail API 覆盖,包括消息、线程、标签、草稿和设置
- 支持发送、草拟和管理邮件
- 标签管理,支持自定义颜色和可见性设置
- 线程操作以管理对话
- 设置管理,包括休假回复、IMAP/POP 和语言设置
- 邮箱更改的历史跟踪
- 使用您的 Google Cloud 凭据进行安全的 OAuth2 认证
安装
⚠️ 注意:由于此服务器上可用的端点数量较多,建议您安装并设置 Heimdall,以限制暴露给客户端应用程序的端点数量。
要使用这个 MCP,您需要与 Gmail 设置认证:
- 前往 Google Cloud Console
- 创建一个新项目或选择一个现有项目
- 为您的项目启用 Gmail API
- 转到“凭据”并创建一个 OAuth 2.0 客户端 ID
- 选择“桌面应用”作为应用程序类型(警告:如果不选择此类型,服务器将无法从您的 JSON 文件中解析密钥)
- 下载客户端凭据 JSON 文件
- 将下载的凭据文件保存到
~/.gmail-mcp/gcp-oauth.keys.json
NPX(推荐)
将以下内容添加到您的 MCP 客户端 config.json 中(如果使用 Heimdall,则为 ~/.heimdall/config.json):
{
"mcpServers": {
"gmail": {
"command": "npx",
"args": [
"@shinzolabs/gmail-mcp"
]
}
}
}
手动下载
- 下载仓库:
git clone https://github.com/shinzo-labs/gmail-mcp.git
- 安装包并构建(在克隆的仓库内):
pnpm i && pnpm run build
- 将以下内容添加到您的 MCP 客户端
config.json中(如果使用 Heimdall,则为~/.heimdall/config.json):
{
"mcpServers": {
"gmail": {
"command": "node",
"args": [
"/path/to/gmail-mcp/dist/index.js"
]
}
}
}
Smithery
通过 Smithery 自动为 Claude Desktop 安装:
npx -y @smithery/cli install @shinzo-labs/gmail-mcp --client claude
认证
自动化(推荐)
此 MCP 提供了一个自动化的认证流程:
- 首先,获取 OAuth 凭证并下载 JSON 文件。
- 将 JSON 文件重命名为
gcp-oauth.keys.json并复制到$HOME/.gmail-mcp/,或者复制到您在MCP_CONFIG_DIR中设置的位置。 - 运行认证命令:
# If using npx
npx @shinzolabs/gmail-mcp auth
# If in the project directory
pnpm i && pnpm run build && pnpm run auth
- 浏览器窗口将自动打开到 Google OAuth 同意屏幕。
- 授予权限后,您可以关闭浏览器窗口。
- 令牌将自动保存到
$HOME/.gmail-mcp/credentials.json。
MCP 将自动执行以下操作:
- 管理令牌刷新
- 将凭证保存到磁盘
- 处理 OAuth 回调
- 在默认浏览器中打开认证 URL
注意:默认情况下,此服务器使用端口 3000 来监听 OAuth 响应。如果您在 3000 端口上运行了其他服务,可以将 AUTH_SERVER_PORT 设置为其他值。
您可以通过在运行命令前设置 MCP_CONFIG_DIR 来自定义配置文件的位置(可选):
export MCP_CONFIG_DIR=/custom/path/to/directory/
手动(建议用于 Docker 使用)
如果需要,您也可以直接通过环境变量提供凭证:
export CLIENT_ID=your-id
export CLIENT_SECRET=your-secret
export REFRESH_TOKEN=your-refresh-token
支持的端点
用户管理
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配置
贡献
欢迎并鼓励贡献。如有任何问题、评论或关注,请联系 austin@shinzolabs.com。