Skip to main content
Glama
GEMINI_TROUBLESHOOTING.md6.76 kB
# Gemini CLI 故障排查指南 ## 🐛 问题:Telegram Bot 发送消息,Gemini 没有反应 ### 症状 1. ✅ Gemini 成功调用 `telegram_notify_with_actions` 2. ✅ Telegram 收到消息和按钮 3. ❌ 在 Telegram 中发送回复,Gemini 没有反应 4. ❌ `telegram_wait_reply` 似乎没有工作 ### 原因分析 从你的截图看到: ``` ✅ 已发送通知到 Telegram (会话: tt, 包含 3 个操作按钮) ⏸️ telegram_wait_reply (telegram MCP Server) {} Determining Script Purpose (esc to cancel, 3m 30s) ``` **问题**:Gemini CLI 在等待 `telegram_wait_reply` 返回,但是: 1. Gemini 的 MCP 工具超时设置可能太短 2. 消息队列可能没有正确工作 3. 会话 ID 可能不匹配 --- ## 🔍 诊断步骤 ### 1. 检查 Gemini MCP 配置 查看配置文件: ```bash cat ~/.gemini/settings.json ``` 应该包含: ```json { "mcpServers": { "telegram": { "command": "uvx", "args": ["telegram-mcp-server@latest"], "env": { "TELEGRAM_BOT_TOKEN": "your-token", "TELEGRAM_CHAT_ID": "your-chat-id" }, "timeout": 604800000 } } } ``` **关键**:`timeout` 必须设置为 `604800000`(7天,单位毫秒) ### 2. 检查会话 ID 在 Telegram 中发送: ``` /sessions ``` 应该看到会话列表,例如: ``` 📋 活跃会话: 1️⃣ ▶️ `tt` 📁 `/path/to/project` 🕐 1分钟前 ``` 确认会话 ID 是 `tt`。 ### 3. 检查消息队列 在 Telegram 中发送消息到会话: ``` /to tt 测试消息 ``` 应该看到: ``` ✅ 消息已发送到 `tt` 💬 测试消息 ``` ### 4. 检查 Gemini 日志 查看 MCP 服务器日志: ```bash tail -f /tmp/telegram-mcp-server.log ``` 应该看到类似: ``` Session tt waiting for reply (max 604800s) Session tt polling (interval=30s, elapsed=0s) Session tt received reply: 测试消息 ``` --- ## 🔧 解决方案 ### 方案 1: 增加 Gemini 超时时间 编辑 `~/.gemini/settings.json`: ```json { "mcpServers": { "telegram": { "command": "uvx", "args": ["telegram-mcp-server@latest"], "env": { "TELEGRAM_BOT_TOKEN": "your-token", "TELEGRAM_CHAT_ID": "your-chat-id" }, "timeout": 604800000 } } } ``` **重要**: - `timeout` 单位是**毫秒** - `604800000` = 7天 - 如果没有设置,默认可能只有 30 秒 ### 方案 2: 使用 `telegram_unattended_mode` 不要直接使用 `telegram_wait_reply`,而是使用 `telegram_unattended_mode`: 在 Gemini 中: ``` 进入无人值守模式,任务:分析项目结构 ``` Gemini 应该: 1. 执行任务 2. 调用 `telegram_notify` 发送结果 3. 调用 `telegram_unattended_mode` 等待下一步指令 4. 收到指令后继续执行 ### 方案 3: 手动测试消息队列 在 Gemini 运行时,打开另一个终端: ```bash # 查看会话 python3 << 'EOF' import json from pathlib import Path sessions_file = Path.home() / ".telegram-mcp-sessions.json" if sessions_file.exists(): with open(sessions_file) as f: sessions = json.load(f) print(json.dumps(sessions, indent=2)) else: print("No sessions file") EOF # 查看消息队列 python3 << 'EOF' import json from pathlib import Path queue_file = Path.home() / ".telegram-mcp-queue.json" if queue_file.exists(): with open(queue_file) as f: queue = json.load(f) print(json.dumps(queue, indent=2)) else: print("No queue file") EOF ``` ### 方案 4: 重启 Gemini 和 MCP 服务器 ```bash # 1. 停止 Gemini(Ctrl+C) # 2. 清理旧会话 rm ~/.telegram-mcp-sessions.json rm ~/.telegram-mcp-queue.json # 3. 重启 Gemini gemini --yolo # 4. 在 Telegram 中测试 /sessions ``` --- ## 🧪 测试流程 ### 完整测试步骤 1. **启动 Gemini**: ```bash gemini --yolo ``` 2. **在 Gemini 中**: ``` 使用 telegram_notify 发送一条测试消息 ``` 3. **在 Telegram 中**: 应该收到消息 4. **在 Gemini 中**: ``` 使用 telegram_wait_reply 等待我的回复,最多等待 60 秒 ``` 5. **在 Telegram 中**: ``` /to tt 收到了 ``` 6. **在 Gemini 中**: 应该显示: ``` 用户回复: 收到了 ``` --- ## 📊 常见问题 ### Q1: Gemini 显示 "Determining Script Purpose" 然后超时 **原因**:Gemini 的 MCP 超时设置太短 **解决**: 1. 编辑 `~/.gemini/settings.json` 2. 添加 `"timeout": 604800000` 3. 重启 Gemini ### Q2: Telegram 发送消息后,Gemini 没有任何反应 **原因**:会话 ID 不匹配或消息队列问题 **解决**: 1. 在 Telegram 中发送 `/sessions` 确认会话 ID 2. 使用 `/to <session_id> <消息>` 明确指定会话 3. 检查日志:`tail -f /tmp/telegram-mcp-server.log` ### Q3: Gemini 说"已发送",但 Telegram 没收到 **原因**:Bot Token 或 Chat ID 配置错误 **解决**: 1. 检查配置:`cat ~/.gemini/settings.json` 2. 测试 Bot:`curl -s "https://api.telegram.org/bot<TOKEN>/getMe"` 3. 重新运行 setup:`uvx telegram-mcp-server@latest --setup` --- ## 🎯 推荐配置 ### Gemini CLI 最佳配置 `~/.gemini/settings.json`: ```json { "mcpServers": { "telegram": { "command": "uvx", "args": ["telegram-mcp-server@latest"], "env": { "TELEGRAM_BOT_TOKEN": "your-bot-token", "TELEGRAM_CHAT_ID": "your-chat-id", "TELEGRAM_SESSION": "gemini-project" }, "timeout": 604800000 } } } ``` **关键配置**: - `timeout: 604800000` - 7天超时(毫秒) - `TELEGRAM_SESSION` - 自定义会话名称 - `@latest` - 始终使用最新版本 ### 启动命令 ```bash # 使用 YOLO 模式(自动批准所有 MCP 调用) gemini --yolo # 或者在项目目录中 cd /path/to/project TELEGRAM_SESSION=my-project gemini --yolo ``` --- ## 🔗 相关资源 - **Gemini CLI 文档**: https://github.com/google/generative-ai-cli - **MCP 协议**: https://modelcontextprotocol.io/ - **问题反馈**: https://github.com/batianVolyc/telegram-mcp-server/issues --- ## 💡 调试技巧 ### 启用详细日志 ```bash # 设置日志级别 export LOG_LEVEL=DEBUG # 启动 Gemini gemini --yolo ``` ### 实时监控 ```bash # 终端 1: 运行 Gemini gemini --yolo # 终端 2: 监控日志 tail -f /tmp/telegram-mcp-server.log # 终端 3: 监控会话文件 watch -n 1 'cat ~/.telegram-mcp-sessions.json 2>/dev/null | python3 -m json.tool' ``` --- **如果问题仍然存在,请提供**: 1. Gemini 版本:`gemini --version` 2. 配置文件:`cat ~/.gemini/settings.json` 3. 日志文件:`tail -100 /tmp/telegram-mcp-server.log` 4. 会话信息:在 Telegram 中发送 `/sessions` 在 GitHub 提交 Issue:https://github.com/batianVolyc/telegram-mcp-server/issues

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/batianVolyc/telegram-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server