返回市场
gmail-mcp

gmail-mcp

作者:shinzo-labs38 星标更新:2025-08-06

项目介绍

<div align="center"> <h1 align="center">Gmail MCP 服务器</h1> <p align=center> <a href="https://badge.fury.io/js/@shinzolabs%2Fgmail-mcp"><img src="https://badge.fury.io/js/@shinzolabs%2Fgmail-mcp.svg" alt="NPM 版本"></a> <a href="https://github.com/shinzo-labs/gmail-mcp/stargazers"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.github.com%2Frepos%2Fshinzo-labs%2Fgmail-mcp%2Fstargazers&query=%24.length&logo=github&label=stars&color=e3b341" alt="星标"></a> <a href="https://github.com/shinzo-labs/gmail-mcp/forks"><img src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fapi.github.com%2Frepos%2Fshinzo-labs%2Fgmail-mcp%2Fforks&query=%24.length&logo=github&label=forks&color=8957e5" alt="分叉"></a> <a href="https://smithery.ai/server/@shinzo-labs/gmail-mcp"><img src="https://smithery.ai/badge/@shinzo-labs/gmail-mcp" alt="Smithery 调用"></a> <a href="https://www.npmjs.com/package/@shinzolabs/gmail-mcp"><img src="https://img.shields.io/npm/dm/%40shinzolabs%2Fgmail-mcp" alt="NPM 下载量"></a> </div>

一个用于 Gmail API 的 模型上下文协议 (MCP) 服务器实现,提供标准化的电子邮件管理、发送和检索接口。

<p align="center"><img height="512" src=https://gips2.baidu.com/it/u=2039058179,807077885&fm=3081&app=3081&f=GIF?w=838&h=1054></p>

功能

  • 完整覆盖 Gmail API,包括消息、线程、标签、草稿和设置
  • 支持发送、草拟和管理电子邮件
  • 自定义颜色和可见性设置的标签管理
  • 对话管理的线程操作
  • 包括自动回复、IMAP/POP 和语言设置的设置管理
  • 邮箱更改的历史跟踪
  • 使用 Google Cloud 凭据的安全 OAuth2 认证

先决条件

依赖项

为了最简单的安装,请安装 Node.js 18+。如果您希望本地构建,还需要安装 pnpm

Google Workspace 设置

要运行此 MCP 服务器,您需要为您的组织设置一个 Google API 客户端,并让每个用户运行脚本来获取他们自己的 OAuth 刷新令牌。

Google API 客户端设置(每个组织一次)

  1. 前往 Google Cloud 控制台
  2. 创建一个新的项目或选择现有的项目。
  3. 启用项目的 Gmail API。
  4. 前往凭据并创建一个 OAuth 2.0 客户端 ID。选择“桌面应用”作为客户端类型。
  5. 下载并保存 OAuth 密钥 JSON 至 ~/.gmail-mcp/gcp-oauth.keys.json。⚠️ 注意:要在 MacOS 的 Finder 应用中创建 ~/.gmail-mcp/,您需要先启用隐藏文件
  6. (可选)对于远程服务器安装(例如使用 Smithery CLI),记录此文件中的 CLIENT_IDCLIENT_SECRET

客户端 OAuth(每个用户一次)

  1. 用户将 ~/.gmail-mcp/gcp-oauth.keys.json 复制到他们的计算机上,路径相同。
  2. 运行 npx @shinzolabs/gmail-mcp auth
  3. 浏览器窗口将打开,用户可以选择个人资料,查看请求的作用域,并批准。
  4. (可选)对于远程服务器安装,记录成功消息中提到的文件路径(默认为 ~/.gmail-mcp/credentials.json)。用户的 REFRESH_TOKEN 将在此处找到。

客户端配置

有几种选项可以将您的 MCP 客户端与服务器进行配置。对于托管/远程服务器设置,使用带有 Smithery API Key 的 Smithery CLI。对于本地安装,使用 npx 或从源代码构建。每种选项都解释如下。

Smithery 远程服务器(推荐)

要将远程服务器添加到您的 MCP 客户端 config.json,请从 Smithery CLI 运行以下命令:

npx -y @smithery/cli install @shinzo-labs/gmail-mcp

当提示时,输入您的 CLIENT_IDCLIENT_SECRETREFRESH_TOKEN

Smithery SDK

如果您正在开发自己的代理应用程序,您可以使用此处提供的样板代码 这里

NPX 本地安装

要使用 npx 在本地安装服务器,请在您的 MCP 客户端 config.json 中添加以下内容:

{
  "mcpServers": {
    "gmail": {
      "command": "npx",
      "args": [
        "@shinzolabs/gmail-mcp"
      ]
    }
  }
}

从源代码构建

  1. 下载仓库:
git clone https://github.com/shinzo-labs/gmail-mcp.git
  1. 使用 pnpm 安装包并构建(在克隆的仓库内):
pnpm i && pnpm build
  1. 在您的 MCP 客户端 config.json 中添加以下内容:
{
  "mcpServers": {
    "gmail": {
      "command": "node",
      "args": [
        "/path/to/gmail-mcp/dist/index.js"
      ]
    }
  }
}

配置变量

变量描述是否必需?默认值
AUTH_SERVER_PORT临时 OAuth 认证服务器的端口3000
CLIENT_IDGoogle API 客户端 ID(在 GMAIL_OAUTH_PATH 找到)是(如果远程服务器连接)''
CLIENT_SECRETGoogle API 客户端密钥(在 GMAIL_OAUTH_PATH 找到)是(如果远程服务器连接)''
GMAIL_CREDENTIALS_PATH用户凭证文件的路径MCP_CONFIG_DIR/credentials.json
GMAIL_OAUTH_PATHGoogle API 客户端文件的路径MCP_CONFIG_DIR/gcp-oauth.keys.json
MCP_CONFIG_DIR存储配置文件的目录~/.gmail-mcp
REFRESH_TOKENOAuth 刷新令牌(在 GMAIL_CREDENTIALS_PATH 找到)是(如果远程服务器连接)''
PORTStreamable 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 会从该服务器收集有限的匿名遥测数据,以帮助改进我们的产品和服务。此过程中不会收集任何个人身份信息。请参阅 隐私政策 以了解更多信息,包括收集的数据类型以及如何退出此遥测。

许可证

MIT