Gmail AutoAuth MCP Server 是一个为 Claude Desktop (或类似AI助手) 集成 Gmail 功能的模型上下文协议 (MCP) 服务器,提供自动认证功能,允许用户通过自然语言与 Gmail 进行交互。它是 Claude 和 Gmail API 之间的桥梁,让用户可以用 Claude 指令来控制Gmail邮箱。
邮件发送:支持发送包含主题、内容、附件和收件人的邮件,可发送HTML邮件以及同时包含HTML和纯文本版本的多部分邮件,主题和内容完全支持国际字符。
邮件读取和搜索:通过ID读取邮件,可处理复杂的MIME结构,支持按主题、发件人、日期范围等多种条件搜索邮件。
标签管理:能够创建、更新、删除和列出标签,可列出所有可用的Gmail标签(包括系统标签和用户自定义标签),支持将邮件标记为已读/未读、移动到不同标签/文件夹以及删除邮件等操作。
批量操作:可高效处理多封邮件,支持批量修改和删除邮件。
集成与认证:与Gmail API完全集成,提供简单的OAuth2认证流程,支持自动启动浏览器,可存储全局凭证,方便使用。
通过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 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
:控制标签是否出现在消息列表中(show
或hide
)。
• labelListVisibility
:控制标签在标签列表中的显示方式(labelShow
、labelShowIfUnread
或labelHide
)。这些标签管理功能使用户能够直接通过Claude对邮件进行复杂的组织,无需切换到Gmail界面。
批量操作
服务器有高效的批量处理能力,一次最多可处理50封邮件(批量大小可配置),可自动对大型邮件集进行分块处理,避免API限制,提供每个操作的详细成功/失败报告,具有良好的错误处理机制,支持单个重试,非常适合批量收件箱管理和组织任务。
OAuth凭证安全地存储在本地环境(~/.gmail-mcp/
)中,服务器使用离线访问来维持持久认证,切勿将凭证共享或提交到版本控制中,应定期在Google账户设置中查看和撤销未使用的访问权限,凭证虽全局存储,但仅当前用户可访问。
未找到OAuth密钥:确保gcp-oauth.keys.json
位于当前目录或~/.gmail-mcp/
中,并检查文件权限。
凭证格式无效:确保OAuth密钥文件包含web
或installed
凭证,对于Web应用,验证重定向URI是否正确配置。
端口已被占用:如果端口3000已被使用,运行认证前请释放该端口,可查找并停止使用该端口的进程。
批量操作失败:若批量操作失败,会自动重试单个项目,检查详细错误消息以确定具体失败原因,若遇到速率限制,可考虑减小批量大小。