使用说明
MCP Gmail服务器
此存储库为Gmail提供了一个MCP(模型上下文协议)服务器,使您能够通过定义的工具与您的Gmail帐户进行交互(list_unread, search_emails)通过MCP协议。它处理与Google的OAuth2身份验证,并公开一个基于异步的服务器,用于与Open WebUI或其他MCP客户端集成。
特性
- list_unread:检索未读Gmail邮件的片段。
- 搜索邮件:通过Gmail查询搜索电子邮件(例如。,
from:alice@example.com). - 带有令牌缓存的无缝OAuth2流。
- 基于异步的服务器与MCP客户端兼容(例如Open WebUI)。
什么是MCP?
模型上下文协议(MCP)是一个开放标准,它定义了应用程序如何为大型语言模型(LLM)提供上下文。将MCP视为一个标准化的接口,类似于硬件的USB-C,它允许AI模型与各种工具和数据源无缝连接。
为什么使用 mcpo?
虽然MCP服务器功能强大,但它们通常通过标准输入/输出(stdio)进行通信,这可能会受到限制:
- 跨不同环境不安全。
- 与许多现代工具、UI或平台不兼容。
- 缺少身份验证、文档和错误处理等功能。
mcpo (MCP到OpenAPI代理)通过以下方式解决这些问题:
- 用安全、可扩展的HTTP端点包装您的MCP工具。
- 使其与现有的OpenAPI工具、SDK和客户端立即兼容。
- 为每个工具自动生成交互式OpenAPI文档。
- 使用纯HTTP——消除了对套接字设置或特定于平台的代码的需要。
这意味着您可以在云中部署您的人工智能工具,将其与Open WebUI等web界面集成,并增强安全性和可扩展性,而无需修改现有的MCP服务器代码。
通过以下方式暴露MCP Gmail服务器 mcpo
使用OpenAPI公开您的MCP Gmail服务器 mcpo,请按照以下步骤操作:
-
安装
mcpo:使用
pip:pip install mcpo或使用
uv(建议更快启动):uv pip install mcpo -
使用以下命令运行MCP Gmail服务器
mcpo:mcpo --port 8000 -- uv run gmail-server此命令启动
mcpo代理在端口8000上,并在其后面运行您的Gmail MCP服务器。 -
访问OpenAPI文档:
运行后,导航到 http://localhost:8000/docs 在浏览器中查看为您的Gmail工具自动生成的OpenAPI文档。
-
与Open WebUI集成:
在Open WebUI中,通过指定端点(例如。,
http://localhost:8000).这允许您使用定义的工具通过Open WebUI界面与您的Gmail帐户进行交互。
通过整合 mcpo 使用您的MCP Gmail服务器,您可以增强其可访问性、安全性以及与现代工具和平台的兼容性,通过标准化的API促进与您的Gmail帐户的无缝交互。
先决条件
- Python 3.13或更新版本
- 紫外线 包管理器
- Google帐户
- 在Google Cloud Console上创建项目和OAuth凭据的访问权限
项目结构
├── mcp_server/
│ ├── __init__.py # Package initialization
│ └── gmail/
│ ├── __init__.py # Module initialization
│ └── server.py # Main server implementation
├── tests/
│ ├── __init__.py
│ └── test_gmail_server.py # Test suite for Gmail server
├── secrets/
│ ├── credentials.json # OAuth2 client credentials (downloaded)
│ └── token.json # Cached user tokens (auto-created)
├── pyproject.toml # Project metadata and dependencies
├── pytest.ini # Pytest configuration
├── run_tests.sh # Script to run tests with uv
├── Dockerfile # Docker configuration
└── README.md # This documentation
Gmail API凭据设置
- 转到 谷歌云控制台.
- 创建一个新项目(或选择一个现有项目)。
- 启用 下的Gmail API API和服务>库.
- 在...之下 API和服务>OAuth同意屏幕,配置 外部 同意屏幕:
- 应用程序名称:
MCP Gmail Server - 将您的电子邮件添加为 测试用户 (服务器不会被发布)。
- 应用程序名称:
- 在...之下 API和服务>凭据,单击 创建凭据>OAuth客户端ID.
- 应用程序类型: 桌面应用程序
- 下载JSON文件。
- 将下载的文件重命名为
credentials.json并将其放置在secrets/目录。
安装
-
克隆此存储库:
-
安装
uv如果你还没有:pipx install uv -
使用创建和激活虚拟环境
uv:# Create a virtual environment uv venv # Activate the virtual environment # On Unix/macOS: source .venv/bin/activate # On Windows: .\.venv\Scripts\activate -
使用安装依赖项
uv:# Install the package in development mode uv pip install -e .
配置
- 确保
secrets/credentials.json文件存在。 - 第一次运行将提示您在浏览器中授权该应用程序;之后,a
secrets/token.json文件已创建。
运行服务器
通过以下方式启动MCP服务器:
# Run directly with uv
uv run gmail-server
# Alternative: Run with MCP OpenAPI Proxy
uvx mcpo --port 8000 --api-key "your-api-key" -- uv run gmail-server
您应该看到输出,指示服务器正在运行并侦听MCP客户端连接。
用法
- 连接任何符合MCP的客户端(例如。, 打开Web UI).
- 使用以下工具/操作:
- list_unread:返回未读电子邮件片段。
- 搜索邮件:返回与提供的Gmail查询匹配的电子邮件。
Docker设置
该项目包括一个用于容器化的Dockerfile:
-
构建Docker镜像:
docker build -t gmail-mcp-server . -
运行Docker容器:
docker run -p 8000:8000 \ -e API_KEY="your-secure-api-key" \ gmail-mcp-server
Docker配置详细信息
- 基本图像:Python 3.13-slim
- 依赖项:使用安装
uv - 卷装载:
/app/secrets应包含您的Google OAuth凭据 - 环境变量:
API_KEY:MCP OpenAPI代理的安全密钥(默认:“绝密”)
- 端口:暴露MCP OpenAPI代理的端口8000
许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。