Skip to main content
Glama

Telegram MCP Server

by batianVolyc
CODEX_TIMEOUT_FIX.md5.55 kB
# Codex 超时问题修复 ## 🐛 问题 Codex 调用 `telegram_unattended_mode` 工具时,大约 60 秒后报错: ``` Error: tool call error: tool call failed for `telegram/telegram_unattended_mode` ``` ## 🔍 原因 Codex 对 MCP 工具调用有**默认超时限制**(约 60 秒)。 `telegram_unattended_mode` 工具会持续等待用户回复(可能等待数小时),超过 Codex 的默认超时时间。 ## ✅ 解决方案 在 Codex 配置中增加 `tool_timeout_sec` 参数。 ### 步骤 1: 编辑配置文件 ```bash # 打开 Codex 配置文件 vim ~/.codex/config.toml # 或使用 Codex IDE 扩展 # 点击齿轮图标 → MCP settings → Open config.toml ``` ### 步骤 2: 添加超时配置 找到 `[mcp_servers.telegram]` 部分,添加 `tool_timeout_sec`: ```toml [mcp_servers.telegram] command = "uvx" args = ["telegram-mcp-server"] tool_timeout_sec = 3600 # ← 添加这一行(1 小时) [mcp_servers.telegram.env] TELEGRAM_BOT_TOKEN = "your_token" TELEGRAM_CHAT_ID = "your_chat_id" ``` ### 步骤 3: 重启 Codex ```bash # 关闭当前 Codex # 按 Ctrl+C 或 Ctrl+D # 重新启动 codex ``` ## 📊 超时时间建议 | 使用场景 | 推荐超时 | 说明 | |---------|---------|------| | 快速交互 | 1800 秒(30 分钟) | 短时间等待回复 | | 一般使用 | 3600 秒(1 小时) | 推荐设置 | | 长时间任务 | 86400 秒(24 小时) | 过夜任务 | | **完整无人值守** | **604800 秒(7 天)** | **最大等待时间** | **注意**: 本 MCP 服务器的默认最长等待时间是 7 天(604800 秒),使用渐进式轮询: - 前 30 分钟:每 30 秒检查一次 - 30 分钟 - 1 小时:每 60 秒检查一次 - 1 小时以上:每 120 秒检查一次 如果你希望使用完整的 7 天等待功能,需要设置 `tool_timeout_sec = 604800`。 ## 🧪 验证修复 ### 1. 检查配置 ```bash cat ~/.codex/config.toml | grep -A 5 telegram ``` 应该看到: ```toml [mcp_servers.telegram] command = "uvx" args = ["telegram-mcp-server"] tool_timeout_sec = 3600 ``` ### 2. 测试无人值守模式 启动 Codex: ```bash cd ~/cli/codex-project codex ``` 在 Codex 中: ``` > 进入无人值守模式,发送 "hello codex" ``` **预期行为**: - ✅ 发送通知到 Telegram - ✅ 进入等待状态(不报错) - ✅ 持续轮询 Telegram(每 10 秒) - ✅ 可以等待超过 60 秒 在 Telegram 回复: ``` 继续执行 ``` Codex 应该收到回复并继续! ### 3. 监控日志 ```bash tail -f /tmp/telegram-mcp-server.log ``` 应该看到持续的轮询: ``` 2025-10-21 15:17:20 - HTTP Request: POST .../getUpdates "HTTP/1.1 200 OK" 2025-10-21 15:17:30 - HTTP Request: POST .../getUpdates "HTTP/1.1 200 OK" 2025-10-21 15:17:40 - HTTP Request: POST .../getUpdates "HTTP/1.1 200 OK" ... ``` ## 🔧 完整配置示例 ### 基础配置 ```toml [mcp_servers.telegram] command = "uvx" args = ["telegram-mcp-server"] tool_timeout_sec = 3600 [mcp_servers.telegram.env] TELEGRAM_BOT_TOKEN = "8472362221:AAEH0LfjvwYBA9dnK9R6Mw1LGB7c6gh899k" TELEGRAM_CHAT_ID = "702154416" ``` ### 高级配置 ```toml [mcp_servers.telegram] command = "uvx" args = ["telegram-mcp-server"] startup_timeout_sec = 30 # 启动超时(可选) tool_timeout_sec = 7200 # 工具超时(2 小时) [mcp_servers.telegram.env] TELEGRAM_BOT_TOKEN = "your_token" TELEGRAM_CHAT_ID = "your_chat_id" TELEGRAM_MAX_WAIT = "7200" # 最长等待时间(匹配 tool_timeout_sec) TELEGRAM_POLL_INTERVAL = "30,60,120" # 轮询间隔 ``` ## 📝 注意事项 ### 1. 超时时间要合理 - ❌ 太短(< 300 秒): 无人值守模式无法正常工作 - ✅ 适中(3600 秒): 推荐,适合大多数场景 - ⚠️ 太长(> 86400 秒): 可能导致 Codex 长时间挂起 ### 2. 匹配环境变量 `tool_timeout_sec` 应该 >= `TELEGRAM_MAX_WAIT`: ```toml tool_timeout_sec = 3600 [mcp_servers.telegram.env] TELEGRAM_MAX_WAIT = "3600" # 或更小 ``` ### 3. Claude Code 不需要此配置 Claude Code 没有工具超时限制,不需要配置 `tool_timeout_sec`。 ## 🆚 Claude Code vs Codex | 特性 | Claude Code | Codex | |------|-------------|-------| | 工具超时 | ❌ 无限制 | ✅ 可配置 | | 默认超时 | - | ~60 秒 | | 配置方式 | - | `tool_timeout_sec` | | 无人值守 | ✅ 开箱即用 | ⚠️ 需要配置 | ## 🐛 故障排查 ### 问题: 配置后仍然超时 **检查**: ```bash # 1. 确认配置已保存 cat ~/.codex/config.toml | grep tool_timeout_sec # 2. 确认 Codex 已重启 ps aux | grep codex # 3. 查看日志 tail -f /tmp/telegram-mcp-server.log ``` **解决**: 1. 确保配置文件格式正确(TOML 语法) 2. 完全退出 Codex 并重启 3. 增加超时时间 ### 问题: 配置文件格式错误 **错误示例**: ```toml [mcp_servers.telegram] tool_timeout_sec = "3600" # ❌ 错误:不要用引号 ``` **正确示例**: ```toml [mcp_servers.telegram] tool_timeout_sec = 3600 # ✅ 正确:数字不用引号 ``` ### 问题: 仍然在 60 秒后断开 **可能原因**: 1. 配置未生效(Codex 未重启) 2. 配置文件位置错误 3. 使用了错误的 MCP 服务器名称 **验证**: ```bash # 检查 Codex 是否读取了配置 codex mcp list # 应该显示 telegram 服务器 ``` ## 📚 相关文档 - [Codex MCP 文档](https://developers.openai.com/codex/mcp/) - [配置指南](CONFIGURATION_GUIDE.md) - [故障排查](TROUBLESHOOTING.md) --- **配置完成后,Codex 的无人值守模式应该能正常工作了!** 🎉

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