📧 Gmail MCP项目
MCP服务器和MCP客户端 创建于 快速MCP 和 python 用于Gmail和OpenAI集成。
一个完整的模型上下文协议(MCP)实现,使AI助手能够通过FastMCP服务器与Gmail交互,并具有Streamlit web界面,便于交互。
______________________________________________________________________
🌟 特性
- MCP 服务器 -基于FastMCP的服务器暴露Gmail操作
- MCP客户端 -将OpenAI GPT-4o-mini与Gmail工具集成的Python客户端
- MCP客户端 -还有Ollama Now
- 流线型前端 -MCP客户端的Web界面
- Gmail集成 -列出、发送和管理电子邮件
- 资源模板 -动态PDF手动访问
- 提示模板 -用于电子邮件自动化的预构建工作流程
______________________________________________________________________
🏗️ 建筑
1. MCP 服务器 (gmail_mcp_server.py)
服务器通过MCP协议公开Gmail功能:
- 工具:
list_emails,send_email - 资源:Gmail个人资料信息
- 资源模板:带版本控制的PDF手动访问
- 提示:电子邮件摘要、专业电子邮件撰写、自动化工作流程
2. MCP客户端 (client.py)或(client_ollama.py)
客户端桥接OpenAI和MCP服务器:
- 使用FastMCP客户端连接到MCP服务器
- 将MCP工具转换为OpenAI函数调用格式或Ollama格式
- 通过工具执行处理聊天完成
- 管理资源和提示
3. Streamlit应用程序 (app.py)
前端接口提供:
- 与Gmail助手互动聊天
- 快速访问提示模板
- 系统信息显示
- 实时电子邮件管理
______________________________________________________________________
📋 先决条件
______________________________________________________________________
🚀 安装
1.创建虚拟环境
使用 venv:
python -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # Linux/Mac2.安装依赖项
pip install openai fastmcp python-dotenv
pip install streamlit
pip install google-auth-oauthlib google-api-python-client PyPDF2
pip install ollama______________________________________________________________________
⚙️ 配置
1.OpenAI API密钥
创建 .env 项目根目录中的文件:
OPENAI_API_KEY=sk-your-openai-api-key-here重要:添加 .env 到 .gitignore 以确保API密钥的安全。
2.谷歌Gmail凭据
- 首选 谷歌云控制台
- 创建新项目或选择现有项目
- 启用 Gmail API
- 创建 OAuth 2.0客户端ID 凭据(桌面应用程序)
- 下载凭据并另存为
credentials.json在项目根中
重要:添加 credentials.json 和 token.pickle 到 .gitignore.
3.文件结构
.
├── app.py # Streamlit frontend
├── client.py # MCP Client
├── gmail_mcp_server.py # MCP Server
├── credentials.json # Google OAuth credentials (not in git)
├── .env # OpenAI API key (not in git)
├── token.pickle # Gmail auth token (auto-generated, not in git)
├── manuals/ # PDF manuals directory
└── README.md______________________________________________________________________
🎯 用法
运行Streamlit应用程序
streamlit run app.py或者使用完整的虚拟环境路径:
".venv/Scripts/streamlit.exe" run app.py # Windows
.venv/bin/streamlit run app.py # Linux/Mac独立运行MCP服务器
python gmail_mcp_server.py首次运行-Gmail身份验证
首次执行时,应用程序将:
- 打开浏览器进行谷歌身份验证
- 请求读取和发送电子邮件的权限
- 将身份验证令牌保存到
token.pickle
______________________________________________________________________
💡 运作原理
客户端工作流
- OpenAI集成
- 客户端使用来自的API密钥连接到OpenAI .env - 使用GPT-4o-mini模型进行智能响应
- Gmail连接
- 客户端负载 credentials.json 用于Google身份验证 - 自动管理OAuth流和令牌刷新
- FastMCP客户端方法
- list_tools() -检索可用的MCP工具 - call_tool() -在MCP服务器上执行工具 - get_prompt() -加载提示模板 - read_resource() -访问资源数据
- OpenAI工具格式转换
- 将MCP工具转换为OpenAI的函数调用JSON结构 - 每个LLM都有特定的JSON要求 - 客户端处理MCP和OpenAI格式之间的转换
______________________________________________________________________
📚 可用命令
列出最近的电子邮件
"Show me my last 10 emails"发送电子邮件
"Send an email to john@example.com with subject 'Meeting' and body 'Let's meet tomorrow'"使用提示模板
- 每日电子邮件摘要 -对今天的电子邮件进行有组织的概述
- 撰写专业电子邮件 -人工智能辅助电子邮件写作
______________________________________________________________________
🔧 故障排除
导入错误
确保你使用的是虚拟环境Python:
which python # Should show .venv pathGoogle身份验证问题
删除 token.pickle 并再次进行身份验证:
del token.pickle # Windows
rm token.pickle # Linux/MacOpenAI API错误
验证您的 .env 文件包含有效的API密钥:
cat .env # Should show OPENAI_API_KEY=sk-...______________________________________________________________________
📝 许可证
这个项目是为了教育目的。
______________________________________________________________________
👨💻 作者JCDiaz
通过FastMCP和OpenAI集成创建。
