日历邮件管理聊天机器人

一款集成Google日历和Gmail的聊天机器人,通过自然对话帮助用户管理日程和邮件。

  • by Saugat2002
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Saugat2002/mcp-for-google-calender-and-gmail

使用说明

MCP聊天机器人

一个通过模型上下文协议(MCP)与Google日历和Gmail集成的聊天机器人。该机器人使用FastAPI和React构建。

它的功能/作用是什么

这个聊天机器人可以通过自然对话帮助你管理谷歌日历和Gmail。你可以让它:

  • 显示你即将发生的日历事件
  • 创建新会议
  • 搜索并阅读你的电子邮件
  • 发送电子邮件
  • 获取时间和日期信息

技术栈

  • 后端支持WebSocket的FastAPI
  • 前端使用TypeScript进行React开发
  • 人工智能通过LangChain使用Google Gemini
  • **MCP(多种含义,具体根据上下文确定)**自定义Gmail服务器 + Google日历MCP
  • 认证Google OAuth 2.0

开始入门

先决条件

  • Python 3.13+
  • Node.js 18及以上版本
  • 紫外线包管理器
  • 已启用日历和Gmail API的Google Cloud项目

后端设置

cd backend

uv init

uv venv

source .venv/bin/activate

# Install dependencies with UV
uv sync

# Set up environment variables
# Create .env file with:
GOOGLE_API_KEY=your_api_key
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
GOOGLE_PROJECT_ID=your_project_id
GOOGLE_REDIRECT_URI=http://localhost:8000/auth/google/callback
PORT = 8000


# Run the server
uv run main.py

前端设置

cd frontend

# Install dependencies
npm install

# Setup Environment Variables
VITE_BACKEND_URL=http://localhost:8000
VITE_GOOGLE_CLIENT_ID=your_client_id

# Start development server
npm run dev

要获取所需的Google环境变量,需要在Google Cloud Console中进行以下设置。

Google OAuth 设置

  1. 首选 Google 云控制台
  2. 创建一个项目并选择它。
  3. 前往“API和服务器”< 启用“API和服务器”并启用日历API、Gemini API和Gmail API。
  4. 前往OAuth同意屏幕并进行设置(选择外部选项)。
  5. 然后,点击创建OAuth客户端,选择类型为Web应用程序并添加 http://localhost:8000/auth/google/callback 在“授权重定向URL”中添加此URL并创建客户端。
  6. 下载凭证JSON文件。JSON文件应采用以下格式:
    {
    "installed": {
        "client_id": "<YOUR_CLIENT_ID>",
        "project_id": "<YOUR_PROJECT_ID>",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
        "client_secret": "<YOUR_CLIENT_SECRET>",
        "redirect_uris": ["http://localhost:8000/auth/google/callback"]
        }
    }
    
  7. 再次进入“凭据”并使用默认设置创建一个API密钥。
  8. 在……中 .env 文件,请使用上述(方法/内容) api_key, client_id, project_id 和 client_secret。
  9. 同时,在OAuth同意屏幕的<受众>部分,添加您希望用来测试此应用的测试用户邮箱。

它是如何工作的

  1. 认证用户使用Google OAuth登录
  2. MCP集成该应用程序连接到MCP服务器以访问日历和Gmail
  3. 人工智能处理Google Gemini处理用户请求
  4. 实时聊天WebSocket处理会话流程