关于 MCP Gmail Server
MCP Gmail Server 将 Gmail 接入 MCP 客户端,支持基于 LLM 的邮件工作流。它通过资源提供邮件内容,并提供搜索、撰写、发送和管理邮件的工具,使用 Google OAuth 2.0 认证。
主要功能
- 01将 Gmail 邮件和会话作为资源提供
- 02撰写并发送邮件
- 03按条件或 Gmail 查询语法搜索
- 04按 ID 获取邮件
- 05管理标签和已读状态
- 06使用 Google OAuth 2.0 认证
适用场景
- 01按发件人、主题或日期搜索邮件
- 02通过 MCP 客户端起草并发送邮件
- 03读取邮件会话并更新邮件标签
MCP 相关
通过 MCP 资源提供 Gmail 邮件和会话,并提供搜索、撰写、发送、获取和管理邮件的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Gmail Server
一个为大模型提供 Gmail 访问能力的 Model Context Protocol(MCP)服务,由 MCP Python SDK 提供支持。
功能
- 将 Gmail 邮件作为 MCP 资源公开
- 提供用于撰写、发送和管理邮件的工具
- 使用 Google Gmail API 进行 OAuth 2.0 身份验证
先决条件
- Python 3.10+
- 拥有 API 访问权限的 Gmail 账号
- 用于 Python 包管理的 uv(推荐)
设置
1. 安装依赖项
安装项目依赖项(uv 会自动创建并管理虚拟环境)
uv sync
2. 配置 Gmail OAuth 凭据
遗憾的是,使用 Gmail API 需要完成许多步骤。我已尽力整理截至 2025 年 3 月 28 日所需的所有步骤,但具体流程可能会发生变化。
Google Cloud 设置
-
创建 Google Cloud 项目
- 前往 Google Cloud Console
- 点击页面顶部的项目下拉菜单
- 点击“新建项目”
- 输入项目名称(例如“MCP Gmail Integration”)
- 点击“创建”
- 等待项目创建完成,然后从下拉菜单中选择该项目
-
启用 Gmail API
- 在 Google Cloud 项目中,前往导航菜单(≡)
- 选择“API 和服务” > “库”
- 搜索“Gmail API”
- 点击 Gmail API 卡片
- 点击“启用”
-
配置 OAuth 同意屏幕
- 前往“API 和服务” >“OAuth 同意屏幕”
- 你可能会看到类似“Google Auth Platform 尚未配置”的提示
- 点击“开始使用”
- 填写所需的应用信息:
- 应用名称:“MCP Gmail Integration”
- 用户支持电子邮件:你的电子邮件地址
- 填写所需的受众信息:
- 选择“外部”用户类型(除非你拥有 Google Workspace 组织)
- 填写所需的联系信息:
- 你的电子邮件地址
- 点击“保存并继续”
- 点击“创建”
-
创建 OAuth 凭据
- 前往“API 和服务” >“凭据”
- 点击“创建凭据” >“OAuth 客户端 ID”
- 选择“桌面应用”作为应用类型
- 输入名称(例如“MCP Gmail Desktop Client”)
- 点击“创建”
- 点击刚创建的凭据对应的“下载 JSON”
- 将文件保存为项目根目录中的
credentials.json
-
添加范围
- 前往“API 和服务” >“OAuth 同意屏幕”
- 前往“数据访问”标签页
- 点击“添加或移除范围”
- 搜索 Gmail API
- 选择
.../auth/gmail.modify范围,该范围授予“读取、撰写和发送 Gmail 账号中的邮件”的权限 - 点击“更新”
- 点击“保存”
运行一个简单的测试脚本,确认 OAuth 配置正确。
uv run python scripts/test_gmail_setup.py
你应该可以在 https://console.cloud.google.com/apis/api/gmail.googleapis.com/metrics 查看用量指标。
3. 运行服务
开发模式:
uv run mcp dev mcp_gmail/server.py
这将启动一个 MCP Inspector 应用,你可以用它与 MCP 服务交互。
或者安装后与 Claude Desktop 配合使用:
uv run mcp install \
--with-editable .
--name gmail \
--env-var MCP_GMAIL_CREDENTIALS_PATH=$(pwd)/credentials.json \
--env-var MCP_GMAIL_TOKEN_PATH=$(pwd)/token.json \
mcp_gmail/server.py
说明
如果启动 Claude Desktop 并初始化 MCP 服务时遇到类似
Error: spawn uv ENOENT的错误,你可能需要更新claude_desktop_config.json,以提供uv的绝对路径。前往 Claude Desktop -> Settings -> Developer -> Edit Config。{ "mcpServers": { "gmail": { "command": "~/.local/bin/uv", } } }
开发
代码检查和测试
运行代码检查和格式化:
# Format code
uv run ruff format .
# Lint code with auto-fixes where possible
uv run ruff check --fix .
# Run tests
uv run pytest tests/
Pre-commit 钩子
本项目使用 pre-commit 钩子来确保代码质量。每次提交前都会自动运行这些钩子,以检查代码格式和代码检查标准。
安装 pre-commit 钩子:
pre-commit install
手动对所有文件运行 pre-commit:
pre-commit run --all-files
用法
启动后,你可以使用任意 MCP 客户端或通过 Claude Desktop 连接到 MCP 服务。
可用资源
gmail://messages/{message_id}- 访问电子邮件gmail://threads/{thread_id}- 访问电子邮件会话
可用工具
compose_email- 创建新的电子邮件草稿send_email- 发送电子邮件search_emails- 使用特定筛选条件搜索电子邮件(发件人、收件人、主题、日期等)query_emails- 使用原始 Gmail 查询语法搜索电子邮件get_emails- 根据 ID 检索多封电子邮件list_available_labels- 获取所有可用的 Gmail 标签mark_message_read- 将邮件标记为已读add_label_to_message- 为邮件添加标签remove_label_from_message- 移除邮件的标签
环境变量
你可以使用环境变量配置服务:
MCP_GMAIL_CREDENTIALS_PATH:OAuth 凭据 JSON 文件的路径(默认值:"credentials.json")MCP_GMAIL_TOKEN_PATH:OAuth 令牌的存储路径(默认值:"token.json")MCP_GMAIL_MAX_RESULTS:搜索查询的默认最大结果数(默认值:10)
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。