使用说明
Gmail MCP 服务器
一个针对Gmail操作的全面模型上下文协议(MCP)服务器 25款可投入生产的工具 以及可流式传输的HTTP传输。
🚀 快速入门
先决条件
# Install uv (Python package manager)
curl -LsSf https://astral.sh/uv/install.sh | sh
安装
# Clone and install dependencies
git clone <repository>
cd gmail_mcp
uv sync
开发环境设置
# Copy environment template
cp .env.example .env
# Edit .env with your configuration (see Configuration section)
# Start development server (auto-reload)
uv run python start_server.py
# OR manually with custom port
uvicorn main:app --reload --port 8002
特点/特性
完整的Gmail集成
- 25款MCP工具 涵盖所有Gmail操作
- OAuth 2.0 认证 使用Google令牌验证
- 类型安全 配备全面的 Pydantic 模型
可用工具(共25个)
gmail_get_emails- 列出电子邮件,并应用过滤、分页和日期范围筛选gmail_get_my_sent_emails- 接收带有日期过滤的电子邮件gmail_get_email_by_id- 通过ID获取特定电子邮件,并应用格式选项gmail_search_emails- 使用Gmail查询语法和日期范围进行高级搜索gmail_get_labels- 列出所有Gmail标签及其属性gmail_get_profile- 获取Gmail个人资料和账户信息gmail_send_email- 发送带有附件和格式设置的新电子邮件gmail_reply_to_email- 回复邮件时提供“全部回复”选项gmail_mark_as_read/gmail_mark_as_unread- 管理阅读状态gmail_archive_email/gmail_unarchive_email- 档案管理gmail_delete_email- 删除电子邮件(移到垃圾箱)gmail_add_label/gmail_remove_label- 管理电子邮件标签gmail_create_label- 创建新的自定义标签gmail_forward_email- 转发电子邮件并附上额外信息gmail_move_to_folder- 在文件夹/标签之间移动电子邮件gmail_get_threads- 列出对话线程,并应用日期过滤器gmail_get_thread_by_id- 通过ID获取特定线程gmail_create_draft- 创建电子邮件草稿gmail_get_drafts- 列出草稿邮件,并按日期筛选gmail_get_draft_by_id- 通过ID获取特定草稿gmail_send_draft- 发送现有草稿gmail_get_attachments- 下载电子邮件附件
配置
环境变量(.env)
# Server Configuration
SERVER_HOST=0.0.0.0 # Server bind address
SERVER_PORT=8001 # Server port
SERVER_URL=http://localhost:8001 # This server's URL for OAuth validation
DEBUG=false # Enable debug mode
# Transport Configuration
TRANSPORT_TYPE=streamble_http # streamble_http or sse
MCP_SERVER_NAME=gmail_mcp_server # MCP server identifier
# Logging
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR
LOG_FORMAT=%(asctime)s - %(name)s - %(levelname)s - %(message)s
OAuth 范围(或作用域)
服务器需要以下Gmail范围权限:
gmail.readonly- 阅读电子邮件和标签gmail.send- 发送电子邮件gmail.modify- 修改电子邮件(归档、标记等)gmail.compose- 创建草稿gmail.labels- 管理标签
邮件格式(用于接收电子邮件时)
服务器支持5种消息格式以达到最佳性能:
紧凑型(默认)
- 最适合于通用邮件浏览和AI处理
- 包含头部信息 + 纯文本正文 + 元数据
- 用例最常见的操作
最小的;最少的
- 最适合用于列出和枚举
- 包含仅ID、标签和片段
- 用例高频率操作
满员/完全
- 最适合于完整阅读电子邮件
- 包含所有数据,包括HTML文件、附件
- 用例显示完整电子邮件
元数据
- 最适合用于头部分析
- 包含所有头部信息,无正文内容
- 用例无内容的电子邮件分析
RAW(生文件格式)
- 最适合于电子邮件处理
- 包含原始的RFC2822格式
- 用例迁移,备份
日期范围筛选
大多数工具都支持灵活的日期过滤功能:
绝对日期
# YYYY-MM-DD or YYYY/MM/DD format
after_date="2024-01-01"
before_date="2024-12-31"
相对时间框架
# Days, weeks, months, years
newer_than="1d" # Last day
older_than="6m" # Older than 6 months
示例
# Get recent important emails
gmail_get_emails(label_ids=["IMPORTANT"], newer_than="1w", format="COMPACT")
# Search emails in date range
gmail_search_emails(query="project", after_date="2024-06-01", before_date="2024-06-30")
建筑学
MCP服务器设计
- 交通可流式传输的HTTP(默认)或SSE
- 认证使用带有令牌验证的Google OAuth 2.0
- 格式基于JSON的MCP协议
- **流媒体(传输)**大型操作的实时响应流
OAuth 流程
┌─────────────────────┐ ┌──────────────────────┐ ┌─────────────────┐
│ MCP Client │ │ Google OAuth │ │ Gmail MCP │
│ │ │ (accounts.google) │ │ Server │
│ 1. Request with │────│ 2. Validates token │────│ 3. Gmail API │
│ Bearer token │ │ Returns user info │ │ operations │
│ │ │ │ │ │
└─────────────────────┘ └──────────────────────┘ └─────────────────┘
API 参考文档
认证
所有终端点都需要有效的Google OAuth令牌:
Authorization: Bearer <google_oauth_token>
发展
项目设置
# Install dependencies
uv sync
# Setup environment
cp .env.example .env
# Edit .env file with your configuration
# Run tests
uv run python mail_test_main.py
# Start development server with auto-reload
uv run python start_server.py
开发命令
# Development server (auto-reload)
uv run python start_server.py
# Manual development with custom port
uvicorn main:app --reload --port 8002
# Production server
uvicorn main:app --host 0.0.0.0 --port 8001
# Run interactive tests
uv run python mail_test_main.py
测试工具
该项目包括 service_example/service_functions_test.py - 一个交互式测试套件:
- 测试所有25项Gmail服务功能
Gmail OAuth 范围(或作用域)
服务器会自动配置这些所需的范围:
REQUIRED_SCOPES = [
"https://www.googleapis.com/auth/gmail.readonly",
"https://www.googleapis.com/auth/gmail.send",
"https://www.googleapis.com/auth/gmail.modify",
"https://www.googleapis.com/auth/gmail.compose",
"https://www.googleapis.com/auth/gmail.labels"
]
🔐 Google OAuth 配置
-
Google Cloud 控制台
- 在(指定位置/路径)创建项目 console.cloud.google.com 翻译为中文是“Google Cloud 控制台”
- 启用Gmail API
- 创建OAuth 2.0凭据
-
OAuth 配置
- 添加授权来源:
http://localhost:8001 - 根据您的OAuth流程需要,添加重定向URI
- 下载凭证(不在本服务器存储)
- 添加授权来源:
-
令牌验证
- 此服务器使用谷歌的验证令牌
accounts.google.com- 为了快速测试获取访问令牌,请检查service_example/get_access_token.py - 不存储凭证 - 每次请求验证令牌
- 此服务器使用谷歌的验证令牌
📝 许可证
MIT 许可证 - 详见 LICENSE 文件。