Gmail AI 助手集成工具

一个基于FastMCP和Python的Gmail与OpenAI集成工具,提供AI助手交互、邮件管理和自动化工作流功能。

  • by JCDiazGomez
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 JCDiazGomez/gmail-mcp-cliet-server-fastmcp-project

使用说明

📧 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凭据

  1. 首选 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用 Gmail API
  4. 创建 OAuth 2.0客户端ID 凭据(桌面应用程序)
  5. 下载凭据并另存为 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身份验证

首次执行时,应用程序将:

  1. 打开浏览器进行谷歌身份验证
  2. 请求读取和发送电子邮件的权限
  3. 将身份验证令牌保存到 token.pickle

💡 运作原理

客户端工作流

  1. OpenAI集成

    • 客户端使用来自的API密钥连接到OpenAI .env
    • 使用GPT-4o-mini模型进行智能响应
  2. Gmail连接

    • 客户端负载 credentials.json 用于Google身份验证
    • 自动管理OAuth流和令牌刷新
  3. FastMCP客户端方法

    • list_tools() -检索可用的MCP工具
    • call_tool() -在MCP服务器上执行工具
    • get_prompt() -加载提示模板
    • read_resource() -访问资源数据
  4. 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集成创建。