使用说明
📧 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助手互动聊天
- 快速访问提示模板
- 系统信息显示
- 实时电子邮件管理
📋 先决条件
- Python 3.10+
- OpenAI API密钥 -从 OpenAI平台
- 谷歌云凭据 -在中创建OAuth 2.0凭据 谷歌云控制台
- 奥拉玛 -get From(https://ollama.com/)
🚀 安装
1.创建虚拟环境
使用 venv:
python -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # Linux/Mac
2.安装依赖项
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模型进行智能响应
- 客户端使用来自的API密钥连接到OpenAI
-
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 path
Google身份验证问题
删除 token.pickle 并再次进行身份验证:
del token.pickle # Windows
rm token.pickle # Linux/Mac
OpenAI API错误
验证您的 .env 文件包含有效的API密钥:
cat .env # Should show OPENAI_API_KEY=sk-...
📝 许可证
这个项目是为了教育目的。
👨💻 作者JCDiaz
通过FastMCP和OpenAI集成创建。
