Gmail AutoAuth MCP Server 是一个为 Claude Desktop (或类似AI助手) 集成 Gmail 功能的模型上下文协议 (MCP) 服务器,提供自动认证功能,允许用户通过自然语言与 Gmail 进行交互。它是 Claude 和 Gmail API 之间的桥梁,让用户可以用 Claude 指令来控制Gmail邮箱。

邮件发送:支持发送包含主题、内容、附件和收件人的邮件,可发送HTML邮件以及同时包含HTML和纯文本版本的多部分邮件,主题和内容完全支持国际字符。

邮件读取和搜索:通过ID读取邮件,可处理复杂的MIME结构,支持按主题、发件人、日期范围等多种条件搜索邮件。

标签管理:能够创建、更新、删除和列出标签,可列出所有可用的Gmail标签(包括系统标签和用户自定义标签),支持将邮件标记为已读/未读、移动到不同标签/文件夹以及删除邮件等操作。

批量操作:可高效处理多封邮件,支持批量修改和删除邮件。

集成与认证:与Gmail API完全集成,提供简单的OAuth2认证流程,支持自动启动浏览器,可存储全局凭证,方便使用。

Gmail AutoAuth MCP Server安装和认证

通过Smithery安装

在命令行中运行以下命令,自动为Claude Desktop安装Gmail AutoAuth:

npx -y @smithery/cli install @gongrzhe/server-gmail-autoauth-mcp --client claude

手动安装

1、创建Google Cloud项目并获取凭证

• 访问Google Cloud Console,创建新项目或选择现有项目,为项目启用Gmail API。

• 前往“APIs & Services”>“Credentials”,点击“Create Credentials”>“OAuth client ID”,选择“Desktop app”或“Web application”作为应用类型,命名后创建。对于Web应用,需将http://localhost:3000/oauth2callback添加到授权重定向URI,下载客户端OAuth密钥的JSON文件,并将密钥文件重命名为gcp-oauth.keys.json

2、运行认证

全局认证(推荐):首次操作时,在用户主目录下创建.gmail-mcp文件夹,将gcp-oauth.keys.json放入该文件夹,之后可在任意位置运行认证命令:

npx @gongrzhe/server-gmail-autoauth-mcp auth

本地认证:将gcp-oauth.keys.json放在当前目录,运行认证命令,文件会自动复制到全局配置:

npx @gongrzhe/server-gmail-autoauth-mcp auth

认证过程会查找当前目录或~/.gmail-mcp/中的gcp-oauth.keys.json,若在当前目录找到则复制到~/.gmail-mcp/,随后打开默认浏览器进行Google认证,认证成功后,凭证会作为~/.gmail-mcp/credentials.json全局存储,可在任何目录使用,支持桌面应用和Web应用凭证,使用Web应用凭证时需确保已将http://localhost:3000/oauth2callback添加到授权重定向URI。

在Claude Desktop中配置 在Claude Desktop中进行如下配置:

{
  "mcpServers": {
    "gmail": {
      "command": "npx",
      "args": [
        "@gongrzhe/server-gmail-autoauth-mcp"
      ]
    }
  }
}
Docker支持

认证

运行以下命令进行认证:

docker run -i --rm \
  --mount type=bind,source=/path/to/gcp-oauth.keys.json,target=/gcp-oauth.keys.json \
  -v mcp-gmail:/gmail-server \
  -e GMAIL_OAUTH_PATH=/gcp-oauth.keys.json \
  -e "GMAIL_CREDENTIALS_PATH=/gmail-server/credentials.json" \
  -p 3000:3000 \
  mcp/gmail auth

使用

在配置中进行如下设置:

{
  "mcpServers": {
    "gmail": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "mcp-gmail:/gmail-server",
        "-e",
        "GMAIL_CREDENTIALS_PATH=/gmail-server/credentials.json",
        "mcp/gmail"
      ]
    }
  }
}
云服务器认证

对于云服务器环境(如n8n),可在认证时指定自定义回调URL:

npx @gongrzhe/server-gmail-autoauth-mcp auth https://gmail.gongrzhe.com/oauth2callback

云环境设置

配置反向代理:设置n8n容器暴露用于认证的端口,配置反向代理将域名(如gmail.gongrzhe.com)的流量转发到该端口。

DNS配置:在DNS设置中添加A记录,将域名解析到云服务器的IP地址。

Google Cloud Platform设置:在Google Cloud Console中,将自定义域名回调URL(如https://gmail.gongrzhe.com/oauth2callback)添加到授权重定向URI列表。

运行认证:执行上述指定自定义回调URL的认证命令。

在应用中配置:与在Claude Desktop中配置类似,使用相应的命令和参数。

这种方法可使认证流程在本地主机不可访问的环境(如容器化应用或云服务器)中正常工作。

可用工具

服务器提供了以下可通过Claude Desktop使用的工具:

1、发送邮件(send_email:可立即发送新邮件,支持纯文本、HTML或多部分邮件,示例如下: 纯文本邮件

{
  "to": ["[email protected]"],
  "subject": "Meeting Tomorrow",
  "body": "Hi,\n\nJust a reminder about our meeting tomorrow at 10 AM.\n\nBest regards",
  "cc": ["[email protected]"],
  "bcc": ["[email protected]"],
  "mimeType": "text/plain"
}

HTML邮件

{
  "to": ["[email protected]"],
  "subject": "Meeting Tomorrow",
  "mimeType": "text/html",
  "body": "<html><body><h1>Meeting Reminder</h1><p>Just a reminder about our <b>meeting tomorrow</b> at 10 AM.</p><p>Best regards</p></body></html>"
}

多部分邮件(HTML + 纯文本)

{
  "to": ["[email protected]"],
  "subject": "Meeting Tomorrow",
  "mimeType": "multipart/alternative",
  "body": "Hi,\n\nJust a reminder about our meeting tomorrow at 10 AM.\n\nBest regards",
  "htmlBody": "<html><body><h1>Meeting Reminder</h1><p>Just a reminder about our <b>meeting tomorrow</b> at 10 AM.</p><p>Best regards</p></body></html>"
}

2、草稿邮件(draft_email:创建不发送的草稿邮件,示例:

{
  "to": ["[email protected]"],
  "subject": "Draft Report",
  "body": "Here's the draft report for your review.",
  "cc": ["[email protected]"]
}

3、读取邮件(read_email:通过ID检索特定邮件的内容,示例:

{
  "messageId": "182ab45cd67ef"
}

4、搜索邮件(search_emails:使用Gmail搜索语法搜索邮件,示例:

{
  "query": "from:[email protected] after:2024/01/01 has:attachment",
  "maxResults": 10
}

5、修改邮件(modify_email:为邮件添加或移除标签(如移动到不同文件夹、存档等),示例:

{
  "messageId": "182ab45cd67ef",
  "addLabelIds": ["IMPORTANT"],
  "removeLabelIds": ["INBOX"]
}

6、删除邮件(delete_email:永久删除邮件,示例:

{
  "messageId": "182ab45cd67ef"
}

7、列出邮件标签(list_email_labels:检索所有可用的Gmail标签,示例:

{}

8、创建标签(create_label:创建新的Gmail标签,示例:

{
  "name": "Important Projects",
  "messageListVisibility": "show",
  "labelListVisibility": "labelShow"
}

9、更新标签(update_label:更新现有Gmail标签,示例:

{
  "id": "Label_1234567890",
  "name": "Urgent Projects",
  "messageListVisibility": "show",
  "labelListVisibility": "labelShow"
}

10、删除标签(delete_label:删除Gmail标签,示例:

{
  "id": "Label_1234567890"
}

11、获取或创建标签(get_or_create_label:按名称获取现有标签,若不存在则创建,示例:

{
  "name": "Project XYZ",
  "messageListVisibility": "show",
  "labelListVisibility": "labelShow"
}

12、批量修改邮件(batch_modify_emails:高效批量修改多封邮件的标签,示例:

{
  "messageIds": ["182ab45cd67ef", "182ab45cd67eg", "182ab45cd67eh"],
  "addLabelIds": ["IMPORTANT"],
  "removeLabelIds": ["INBOX"],
  "batchSize": 50
}

13、批量删除邮件(batch_delete_emails:高效批量永久删除多封邮件,示例:

{
  "messageIds": ["182ab45cd67ef", "182ab45cd67eg", "182ab45cd67eh"],
  "batchSize": 50
}

高级搜索语法

search_emails工具支持Gmail强大的搜索运算符,如下表所示:

运算符 示例 描述
from: from:[email protected] 来自特定发件人的邮件
to: to:[email protected] 发送给特定收件人的邮件
subject: subject:"meeting notes" 主题中包含特定文本的邮件
has:attachment has:attachment 带有附件的邮件
after: after:2024/01/01 在某日期之后收到的邮件
before: before:2024/02/01 在某日期之前收到的邮件
is: is:unread 具有特定状态的邮件
label: label:work 带有特定标签的邮件

可以组合多个运算符,例如:from:[email protected] after:2024/01/01 has:attachment

高级功能

邮件内容提取

服务器能够智能地从复杂的MIME结构中提取邮件内容,若有纯文本内容则优先提取,若没有则回退到HTML内容,可处理带有嵌套部分的多部分MIME消息,处理附件信息(文件名、类型、大小),保留原始邮件头(发件人、收件人、主题、日期)。

国际字符支持

服务器完全支持邮件主题和内容中的非ASCII字符,包括土耳其语、中文、日语、韩语等非拉丁语系字符以及特殊字符和符号,通过正确的编码确保在电子邮件客户端中正确显示。

标签管理

服务器提供了一套完整的Gmail标签管理工具,可创建具有可自定义可见性设置的新标签,重命名标签或更改其可见性设置,删除用户创建的标签(系统标签受保护),按名称获取标签或在不存在时自动创建,查看所有系统和用户标签的详细信息,还可控制标签在消息列表和标签列表中的显示方式,标签可见性设置包括:

messageListVisibility:控制标签是否出现在消息列表中(showhide)。

labelListVisibility:控制标签在标签列表中的显示方式(labelShowlabelShowIfUnreadlabelHide)。这些标签管理功能使用户能够直接通过Claude对邮件进行复杂的组织,无需切换到Gmail界面。

批量操作

服务器有高效的批量处理能力,一次最多可处理50封邮件(批量大小可配置),可自动对大型邮件集进行分块处理,避免API限制,提供每个操作的详细成功/失败报告,具有良好的错误处理机制,支持单个重试,非常适合批量收件箱管理和组织任务。

安全注意事项

OAuth凭证安全地存储在本地环境(~/.gmail-mcp/)中,服务器使用离线访问来维持持久认证,切勿将凭证共享或提交到版本控制中,应定期在Google账户设置中查看和撤销未使用的访问权限,凭证虽全局存储,但仅当前用户可访问。

故障排除

未找到OAuth密钥:确保gcp-oauth.keys.json位于当前目录或~/.gmail-mcp/中,并检查文件权限。

凭证格式无效:确保OAuth密钥文件包含webinstalled凭证,对于Web应用,验证重定向URI是否正确配置。

端口已被占用:如果端口3000已被使用,运行认证前请释放该端口,可查找并停止使用该端口的进程。

批量操作失败:若批量操作失败,会自动重试单个项目,检查详细错误消息以确定具体失败原因,若遇到速率限制,可考虑减小批量大小。