一个用于 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>为了最简单的安装,请安装 Node.js 18+。如果您希望本地构建,还需要安装 pnpm。
要运行此 MCP 服务器,您需要为您的组织设置一个 Google API 客户端,并让每个用户运行脚本来获取他们自己的 OAuth 刷新令牌。
~/.gmail-mcp/gcp-oauth.keys.json。⚠️ 注意:要在 MacOS 的 Finder 应用中创建 ~/.gmail-mcp/,您需要先启用隐藏文件。CLIENT_ID 和 CLIENT_SECRET。~/.gmail-mcp/gcp-oauth.keys.json 复制到他们的计算机上,路径相同。npx @shinzolabs/gmail-mcp auth。~/.gmail-mcp/credentials.json)。用户的 REFRESH_TOKEN 将在此处找到。有几种选项可以将您的 MCP 客户端与服务器进行配置。对于托管/远程服务器设置,使用带有 Smithery API Key 的 Smithery CLI。对于本地安装,使用 npx 或从源代码构建。每种选项都解释如下。
要将远程服务器添加到您的 MCP 客户端 config.json,请从 Smithery CLI 运行以下命令:
npx -y @smithery/cli install @shinzo-labs/gmail-mcp
当提示时,输入您的 CLIENT_ID、CLIENT_SECRET 和 REFRESH_TOKEN。
如果您正在开发自己的代理应用程序,您可以使用此处提供的样板代码 这里。
要使用 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
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 | Streamable 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: 更新自动转发设置get_imap: 获取 IMAP 设置update_imap: 更新 IMAP 设置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: 删除发送别名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