Telegram谷歌Gemini代理(MCP)
该项目实现了一个智能代理,该代理集成了 电报, Google 工作区 (表格、Gmail、驱动器),以及 谷歌双子座法学硕士 使用 模型上下文协议(MCP).
特性
- 电报集成:通过Telegram Bot接收用户的消息。
- 双子座AI:使用谷歌的Gemini Pro模型处理用户查询(
gemini-2.0-flash或gemini-1.5-flash). - 谷歌表格:自动将用户查询和AI响应记录到Google表格中。
- Gmail通知:发送一封电子邮件通知,其中包含查询、响应和指向Google表格的直接链接。
- MCP架构:使用
FastMCPTelegram(SSE)和Google Workspace(Stdio)有单独的服务器。
先决条件
- Python 3.13+
uv包管理器(推荐)- 电报机器人令牌(来自@BotFather)
- 启用API的谷歌云项目:
- 谷歌网页API - Google Drive API - Gmail API
- Google Gemini API密钥
设置
- 克隆存储库:
git clone
cd - 安装依赖项:
uv sync
# OR
pip install -r requirements.txt- 配置环境变量:
创建一个 .env 根目录中的文件:
TELEGRAM_BOT_TOKEN=your_telegram_bot_token
GOOGLE_CREDENTIALS_FILE=credentials.json
TARGET_GMAIL_ADDRESS=your_email@gmail.com
GEMINI_API_KEY=your_gemini_api_key
SPREADSHEET_ID=optional_spreadsheet_id- Google身份验证设置:
- 放置您的 credentials.json (OAuth 2.0客户端ID)位于根文件夹中。 - 确保您的Google Cloud项目已启用所需的API。 - 重要:如果您的项目处于“测试”模式,请将您的电子邮件添加到OAuth同意屏幕中的“测试用户”列表中。
用法
- 启动Telegram MCP服务器:
uv run mcp_server_telegram.py- 启动主代理:
在单独的终端中:
uv run main_agent.py- 互动:
- 向您的Telegram Bot发送消息。 - 代理将与Gemini一起处理。 - 它会将结果附加到您的Google表格中。 - 您将收到一封包含详细信息的电子邮件。
故障排除
Google 403“权限被拒绝”错误
如果在创建或访问工作表时看到403错误:
- 检查API启用:确保在您的Google云控制台中为 *正确的* 项目。
- 检查范围:登录时,请务必检查 全部 权限框(驱动器、表格、Gmail)。
- 驱动器存储:确保您的Google云端硬盘未满。
- 变通方案:手动创建工作表,复制其ID,然后添加
SPREADSHEET_ID=your_id你的.env文件。
Gemini 404/429错误
- 404:型号名称可能不正确。尝试
gemini-1.5-flash或gemini-2.0-flash. - 429:您正在达到速率限制。请稍等,或切换到较小的型号。
