Gmail MCP Server
A. 模型上下文协议(MCP) 服务器实现 Gmail API,为电子邮件管理、发送和检索提供标准化接口。
特性
- 完整的Gmail API覆盖范围,包括消息、帖子、标签、草稿和设置
- 支持发送、起草和管理电子邮件
- 标签管理,可定制颜色和可见性设置
- 会话管理的线程操作
- 设置管理,包括假期回复、IMAP/POP和语言设置
- 邮箱更改的历史跟踪
- 使用Google Cloud凭据进行安全的OAuth2身份验证
先决条件
依赖项
为了实现最简单的安装,请安装 。如果您想在本地构建,还需要安装 .
谷歌工作区设置
要运行此MCP服务器,您需要为您的组织设置一个Google API客户端,每个用户运行一个脚本来检索他们自己的OAuth刷新令牌。
Google API客户端设置(每个组织一次)
- 转到 谷歌云控制台.
- 创建新项目或选择现有项目。
- 为您的项目启用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和 API密钥。对于本地安装,请使用 npx 或者从源代码构建。下文将逐一解释这些选项。
Smithery远程服务器(推荐)
将远程服务器添加到MCP客户端 config.json,从运行以下命令 Smithery CLI:
npx -y @smithery/cli install @shinzo-labs/gmail-mcp输入您的 CLIENT_ID, CLIENT_SECRET,以及 REFRESH_TOKEN 当提示时。
Smithery软件开发工具包
如果您正在开发自己的代理应用程序,则可以使用样板代码 这里.
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"
]
}
}
}配置变量
| 变量 | 描述 | 必填项? | 默认值 |
|---|---|---|---|
AUTH_SERVER_PORT | 临时OAuth身份验证服务器的端口 | 否 | 3000 |
CLIENT_ID | Google API客户端ID(位于 GMAIL_OAUTH_PATH) | 如果远程服务器连接,则为是 | '' |
CLIENT_SECRET | Google API客户端机密(位于 GMAIL_OAUTH_PATH) | 如果远程服务器连接,则为是 | '' |
GMAIL_CREDENTIALS_PATH | 用户凭据文件的路径 | 否 | MCP_CONFIG_DIR/credentials.json |
GMAIL_OAUTH_PATH | Google API客户端文件的路径 | 否 | MCP_CONFIG_DIR/gcp-oauth.keys.json |
MCP_CONFIG_DIR | 用于存储配置文件的目录 | 否 | ~/.gmail-mcp |
REFRESH_TOKEN | OAuth刷新令牌(位于 GMAIL_CREDENTIALS_PATH) | 如果远程服务器连接,则为是 | '' |
PORT | 流式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配置
贡献
欢迎和鼓励捐款!请阅读 贡献.md 有关问题、贡献和联系信息的指导方针。
数据收集和隐私
Shinzo Labs从该服务器收集有限的匿名遥测数据,以帮助改进我们的产品和服务。在此过程中,不会收集任何个人身份信息。请查看 隐私政策 有关收集的数据类型以及如何选择退出此遥测的更多详细信息。
许可证
麻省理工学院
