MCP Gmail Server

MCP Gmail Server

site icon
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 凭证的权限

安装教程

  1. 安装 mcpobash pip install mcpo 或使用 uv(推荐): bash uv pip install mcpo

  2. 运行 MCP Gmail Server: bash mcpo --port 8000 -- uv run gmail-server

  3. 访问 OpenAPI 文档: 在浏览器中打开 http://localhost:8000/docs

  4. 与 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 设置

  1. 构建 Docker 镜像: bash docker build -t gmail-mcp-server .

  2. 运行 Docker 容器: bash docker run -p 8000:8000 \ -e API_KEY="your-secure-api-key" \ gmail-mcp-server

许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

许可证

该项目遵循 Apache-2.0 开源许可条款,请参阅 Apache-2.0 了解完整条款。