使用说明
Gmail MCP Server
A. 模型上下文协议(MCP) 服务器实现(针对……) Gmail(谷歌邮箱) API,提供标准化的电子邮件管理、发送和检索接口。
特点/特性
- 实现完整的Gmail API覆盖,包括消息、线程、标签、草稿和设置
- 支持发送、起草和管理电子邮件
- 标签管理,支持自定义颜色和可见性设置
- 用于会话管理的线程操作
- 设置管理,包括假期自动回复、IMAP/POP设置以及语言设置
- 邮箱变更的历史追踪
- 使用Google Cloud凭据安全地进行OAuth2身份验证
先决条件
依赖项
为了最简便的安装,请安装 Node.js 18及以上版本如果你希望在本地构建,你还需要安装 pnpm(注:pnpm是一个包管理工具,类似于npm,但具有不同的特性和优势,这里直接音译加解释,但在实际中文语境中,通常直接说“pnpm”即可,无需额外解释,除非在特定上下文需要说明其功能)。
Google Workspace 设置
要运行这个MCP服务器,您需要为您的组织设置一个Google API客户端,每个用户都要运行一个脚本来获取自己的OAuth刷新令牌。
Google API 客户端设置(每个组织一次)
- 前往 Google 云端控制台。
- 创建一个新项目或选择一个现有项目。
- 为您的项目启用Gmail API。
- 前往“凭据”页面并创建一个OAuth 2.0客户端ID。客户端类型选择“桌面应用”。
- 下载并保存OAuth密钥JSON文件为
~/.gmail-mcp/gcp-oauth.keys.json⚠️ 注意:为了创建~/.gmail-mcp/通过MacOS的Finder应用程序,你需要 启用隐藏文件 首先。 - (可选)对于远程服务器安装(例如,使用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密钥对于本地安装,请使用 npx 或者从源代码构建。以下将对这些选项分别进行说明。
Smithery 远程服务器(推荐)
在您的MCP客户端中添加远程服务器 config.json,从(某个位置)运行以下命令 Smithery 命令行界面(CLI):
npx -y @smithery/cli install @shinzo-labs/gmail-mcp
请输入您的 CLIENT_ID, CLIENT_SECRET,以及 REFRESH_TOKEN 当被提示时。
Smithery SDK(注:Smithery可能是一个特定公司或项目的名称,因此直接音译,SDK即软件开发工具包)
如果你正在开发自己的代理应用程序,你可以使用模板代码 这里。
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"
]
}
}
}
配置变量
| 变量 | 描述 | 是否必需 | 默认值 |
|---|---|---|---|
| (分隔线) | (分隔线) | (分隔线) | (分隔线) |
CLIENT_ID |
GMAIL_OAUTH_PATH根据上述信息,以下是原文内容的翻译: '' |
如果是远程服务器连接,则为是 | |
CLIENT_SECRET |
GMAIL_OAUTH_PATH谷歌API客户端密钥(在 '' ) |
如果是远程服务器连接,则为是 | |
GMAIL_CREDENTIALS_PATH |
MCP_CONFIG_DIR/credentials.json |
用户凭据文件的路径 | 否 |
GMAIL_OAUTH_PATH |
MCP_CONFIG_DIR/gcp-oauth.keys.json 谷歌API客户端文件的路径 |
否 | |
MCP_CONFIG_DIR |
~/.gmail-mcp |
存储配置文件的目录 | 否 |
REFRESH_TOKEN |
GMAIL_CREDENTIALS_PATHOAuth刷新令牌(位于 '' |
如果是远程服务器连接,则是 | |
PORT |
3000 |
用于Streamable HTTP传输方法的端口 | 否 |
TELEMETRY_ENABLED |
true |
启用遥测功能 | 否 |
|
支持的终端节点
get_profile用户管理stop_mail_watch获取当前用户的Gmail配置文件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在用户的邮箱中列出草稿create_draft通过ID获取特定草稿update_draft在Gmail中创建一封草稿邮件delete_draft替换草稿的内容send_draft删除草稿
发送现有草稿
设置管理
get_auto_forwarding自动转发update_auto_forwarding获取自动转发设置
更新自动转发设置
get_imapIMAP 设置update_imap获取IMAP设置
更新IMAP设置
get_popPOP 设置update_pop获取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“Send-As 设置”get_send_as列出“作为”别名列表create_send_as获取特定的“作为”别名update_send_as创建发送别名patch_send_as更新发送别名verify_send_as部分更新“发送为”别名delete_send_as发送验证邮件
删除“作为”发送别名
list_smime_infoS/MIME 设置get_smime_info列出S/MIME配置insert_smime_info获取特定的S/MIME配置set_default_smime_info上传新的S/MIME配置delete_smime_info设置默认的S/MIME配置
删除S/MIME配置
贡献 欢迎并鼓励大家投稿!请阅读 `CONTRIBUTING.md` 翻译为中文是“贡献指南.md”
关于问题指南、投稿事宜及联系方式。
数据收集与隐私保护 Shinzo Labs会从这台服务器收集有限的匿名遥测数据,以帮助我们改进产品和服务。在此过程中,不会收集任何可识别个人身份的信息。请查阅相关(隐私政策/说明) 隐私政策
如需了解更多关于收集的数据类型以及如何选择退出此项遥测的信息,请参阅。
许可证
