一个为 Gmail API 实现的 Model Context Protocol (MCP),提供了标准化的接口用于邮件管理、发送和检索。
要运行此 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 的 CLI 和 Smithery API 密钥。对于本地安装,请使用 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 |
可流式 HTTP 传输方法的端口 | 否 | 3000 |
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 了解问题、贡献和联系信息的指南。