使用说明
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 设置
- 首选 Google 云控制台
- 创建一个项目并选择它。
- 前往“API和服务器”< 启用“API和服务器”并启用日历API、Gemini API和Gmail API。
- 前往OAuth同意屏幕并进行设置(选择外部选项)。
- 然后,点击创建OAuth客户端,选择类型为Web应用程序并添加
http://localhost:8000/auth/google/callback在“授权重定向URL”中添加此URL并创建客户端。 - 下载凭证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"] } } - 再次进入“凭据”并使用默认设置创建一个API密钥。
- 在……中
.env文件,请使用上述(方法/内容)api_key,client_id,project_id和client_secret。 - 同时,在OAuth同意屏幕的<受众>部分,添加您希望用来测试此应用的测试用户邮箱。
它是如何工作的
- 认证用户使用Google OAuth登录
- MCP集成该应用程序连接到MCP服务器以访问日历和Gmail
- 人工智能处理Google Gemini处理用户请求
- 实时聊天WebSocket处理会话流程