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和服务器”\",
"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": "", "redirect_uris": ["http://localhost:8000/auth/google/callback"] } }
1. 再次进入“凭据”并使用默认设置创建一个API密钥。
1. 在……中 `.env` 文件,请使用上述(方法/内容) `api_key`, `client_id`, `project_id` 和 `client_secret`。
1. 同时,在OAuth同意屏幕的\部分,添加您希望用来测试此应用的测试用户邮箱。
## 它是如何工作的
1. **认证**用户使用Google OAuth登录
1. **MCP集成**该应用程序连接到MCP服务器以访问日历和Gmail
1. **人工智能处理**Google Gemini处理用户请求
1. **实时聊天**WebSocket处理会话流程