Gmail邮件管理协议

一个标准化的Gmail API接口实现,提供邮件管理、发送和检索功能,适用于需要自动化处理Gmail邮件的开发场景。

  • by trymeuj
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 trymeuj/gmail-mcp-server-2

使用说明

Gmail MCP

⚠️ WARNING: This server is experimental and functionality is not guaranteed. Please use at your own risk.

A. 模型上下文协议(MCP) 实施 Gmail API,为电子邮件管理、发送和检索提供标准化接口。

特性

  • 完整的Gmail API覆盖范围,包括消息、帖子、标签、草稿和设置
  • 支持发送、起草和管理电子邮件
  • 标签管理,可定制颜色和可见性设置
  • 会话管理的线程操作
  • 设置管理,包括假期回复、IMAP/POP和语言设置
  • 邮箱更改的历史跟踪
  • 使用您的Google Cloud凭据进行安全的OAuth2身份验证

安装

要使用此MCP,您需要使用Gmail设置身份验证:

  1. 转到 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 为您的项目启用Gmail API
  4. 转到凭据并创建OAuth 2.0客户端ID
    • 选择“桌面应用程序”作为应用程序类型(警告:如果不选择此类型,服务器将无法解析JSON文件中的密钥)
    • 下载客户端凭据JSON文件
  5. 将下载的凭据文件保存到 ~/.gmail-mcp/gcp-oauth.keys.json

NPX(推荐)

将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "gmail": {
      "command": "npx",
      "args": [
        "@shinzolabs/gmail-mcp"
      ]
    }
  }
}

手册下载

  1. 下载仓库:
git clone https://github.com/shinzo-labs/gmail-mcp.git
  1. 安装软件包并构建(在克隆的仓库中):
pnpm i && pnpm run build
  1. 将以下内容添加到您的 claude_desktop_config.json:
{
  "mcpServers": {
    "gmail": {
      "command": "node",
      "args": [
        "/path/to/gmail-mcp/dist/index.js"
      ]
    }
  }
}

史密瑟里

通过以下方式自动安装Claude Desktop 史密瑟里:

npx -y @smithery/cli install @shinzo-labs/gmail-mcp --client claude

身份验证流程

MCP提供自动身份验证流程:

  1. 首先,确保您拥有OAuth凭据:

    • 放置下载的 credentials.json 在……里面 ~/.gmail-mcp/gcp-oauth.keys.json
    • 或设置 GMAIL_OAUTH_PATH 指向您的凭据文件
  2. 运行身份验证命令:

# If using npx
npx @shinzolabs/gmail-mcp auth

# If in the project directory
pnpm i && pnpm run build && pnpm run auth
  1. 浏览器窗口将自动打开谷歌OAuth同意屏幕
  2. 授予访问权限后,您可以关闭浏览器窗口
  3. 令牌将自动保存到 ~/.gmail-mcp/credentials.json

MCP将自动:

  • 管理令牌刷新
  • 将凭据保存到磁盘
  • 处理OAuth回调
  • 在默认浏览器中打开身份验证URL

您可以使用环境变量自定义凭据文件位置:

GMAIL_OAUTH_PATH=/custom/path/to/gcp-oauth.keys.json
GMAIL_CREDENTIALS_PATH=/custom/path/to/credentials.json

支持的端点

用户管理

  • get_profile:获取当前用户的Gmail个人资料
  • stop_mail_watch:停止接收推送通知
  • watch_mailbox:为邮箱更改设置推送通知

消息管理

发送和创建消息

  • draft_email:创建电子邮件草稿
  • send_email:发送电子邮件
  • import_message:将邮件导入邮箱
  • insert_message:将邮件插入邮箱

管理邮件

  • list_messages:列出具有可选筛选的邮件
  • get_message:获取特定消息
  • get_attachment:获取邮件附件
  • modify_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:获得一份具体的草稿
  • 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配置

历史

  • list_history:跟踪邮箱的更改

贡献

欢迎并鼓励捐款。联系austin@shinzolabs.com有任何问题、意见或疑虑。