
MCP Gmail Server

2025.04.20
0
PythonGmail 交互MCP 服务器交流协作
MCP Gmail Server 是一个基于 Model Context Protocol (MCP) 的服务,用于通过定义的工具(如 `list_unread` 和 `search_emails`)与 Gmail 账户进行交互。它处理与 Google 的 OAuth2 认证,并暴露一个基于 asyncio 的服务器,以便与 Open WebUI 或其他 MCP 客户端集成。
View on GitHub
Overview
基本能力
产品定位
MCP Gmail Server 是一个用于与 Gmail 账户交互的 MCP 服务器,提供标准化的接口,使 AI 模型能够无缝连接各种工具和数据源。
核心功能
- list_unread: 检索未读 Gmail 邮件的摘要。
- search_emails: 通过 Gmail 查询(如
from:[email protected]
)搜索邮件。 - 无缝的 OAuth2 流程与令牌缓存。
- 基于 asyncio 的服务器,兼容 MCP 客户端(如 Open WebUI)。
适用场景
- 通过 Open WebUI 或其他 MCP 客户端与 Gmail 账户交互。
- 在云中部署 AI 工具,增强安全性和可扩展性。
- 与现有 OpenAPI 工具、SDK 和客户端集成。
工具列表
- list_unread: 返回未读邮件的摘要。
- search_emails: 返回匹配提供的 Gmail 查询的邮件。
常见问题解答
- 如何设置 Google OAuth2 凭证?
- 前往 Google Cloud Console,创建项目并启用 Gmail API,配置 OAuth 同意屏幕,创建 OAuth 客户端 ID,下载 JSON 文件并放置在
secrets/
目录中。
使用教程
使用依赖
- Python 3.13 或更新版本
- uv 包管理器
- Google 账户
- 在 Google Cloud Console 上创建项目和 OAuth 凭证的权限
安装教程
-
安装
mcpo
:bash pip install mcpo
或使用uv
(推荐):bash uv pip install mcpo
-
运行 MCP Gmail Server:
bash mcpo --port 8000 -- uv run gmail-server
-
访问 OpenAPI 文档: 在浏览器中打开 http://localhost:8000/docs。
-
与 Open WebUI 集成: 在 Open WebUI 中添加新的 OpenAPI 工具服务器,指定端点(如
http://localhost:8000
)。
调试方式
- 启动服务器后,查看输出以确认服务器正在运行并监听 MCP 客户端连接。
- 使用 MCP 兼容客户端(如 Open WebUI)进行测试。
项目结构
├── mcp_server/
│ ├── __init__.py # 包初始化
│ └── gmail/
│ ├── __init__.py # 模块初始化
│ └── server.py # 主服务器实现
├── tests/
│ ├── __init__.py
│ └── test_gmail_server.py # Gmail 服务器测试套件
├── secrets/
│ ├── credentials.json # OAuth2 客户端凭证(下载)
│ └── token.json # 缓存的用户令牌(自动创建)
├── pyproject.toml # 项目元数据和依赖
├── pytest.ini # Pytest 配置
├── run_tests.sh # 使用 uv 运行测试的脚本
├── Dockerfile # Docker 配置
└── README.md # 本文档
Docker 设置
-
构建 Docker 镜像:
bash docker build -t gmail-mcp-server .
-
运行 Docker 容器:
bash docker run -p 8000:8000 \ -e API_KEY="your-secure-api-key" \ gmail-mcp-server
许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。