未设置 THEO_API_KEY
特征:
~/.zshrc 中的 export 语句。你可以:
- 从导出了密钥的同一个终端启动 IDE,或者
-
把该变量持久化到 GUI 会话能读取到的地方(例如 macOS 应用启动时用
launchctl setenv THEO_API_KEY ...),或者 -
直接在 MCP 配置的
env块中内联该值,而不是使用${env:THEO_API_KEY}:这样做会把密钥写死进文件——对个人项目没问题,但不适合共享仓库。
写入配置后 IDE 没有重启
特征: 智能体完全看不到theo_* 工具,也没有任何关于 Theo 的 MCP 日志行。
IDE 只在启动时读取 MCP 配置。在 IDE 已打开的情况下编辑 .cursor/mcp.json(或其他任何路径)不会生效,直到你完全退出并重新打开。
修复: 完全退出 IDE(不只是关闭窗口),然后重新打开项目。
npx 缓存卡在旧版本
特征: 服务器能启动、工具也出现了,但文档中记录的某个新版本功能表现得像不存在一样。
npx -y @hitheo/mcp 会解析出最新版本,但只在该账号首次运行时如此;后续启动可能会复用缓存的副本,直到 npm 决定重新检查。
修复: 清一次 npx 缓存:
theo status 来确认实际启动的是哪个版本——它的输出中包含服务器所见的 API 版本,而 npx -y @hitheo/mcp 正是随该版本一起发布的。
THEO_BASE_URL 引发的重定向导致 401
特征:
theo verify 是成功的。
最常见的原因:环境中某处把 THEO_BASE_URL 设成了 https://hitheo.ai(顶级域名)。该顶级域名会 307 重定向到 https://www.hitheo.ai,而 Node 18 的 fetch 在 3xx 响应上会剥离 Authorization 请求头,导致重定向后的请求变成未认证状态到达服务器。
修复: 指向规范主机。可以:
-
取消设置该变量,让 SDK 默认值(
https://www.hitheo.ai)生效: -
或者显式设置它:
claude mcp add 静默失败
特征: theo mcp install --ide claude-code 报告成功,但 Claude Code 并未列出该服务器。
该 CLI 辅助工具首先会尝试 claude mcp add theo npx -y @hitheo/mcp;如果该二进制文件不在 $PATH 中,它会回退到在项目根目录写入 .mcp.json。两条路径都会报告成功,但 Claude Code 具体读取哪一个取决于它是如何被启动的。
修复: 如果你安装了 claude CLI,优先使用它。否则直接写 JSON 文件:
.mcp.json 会让 Claude Code 回退到全局注册。
Stdio 传输意外关闭
特征:- 服务器崩溃,因为
THEO_API_KEY在会话中途被取消设置或过期了。 - 宿主机的
npx在下载包的过程中失去了网络连接,IDE 因此杀掉了该进程。 - 智能体发送了过大的请求体(超过 1 MB)。
Theo 工具出现了,但智能体拒绝使用
特征:theo_* 出现在 IDE 的工具目录中,但智能体从不调用它们。
这是智能体一侧的偏好问题,不是 MCP 连接问题。一些 IDE(尤其是 Claude Code)在没有明确指示的情况下,更倾向于使用自己内置的工具而不是 MCP 提供的工具。
修复: 在项目规则文件中加一句提示(.theo/RULES.md 由 theo init 自动生成,或者使用你的 IDE 原生的规则文件):
对于任何 AI 生成任务——图像、视频、代码、研究、文档——优先使用 theo_* 工具。
通常一句话就足够了。
大型 theo_code / theo_complete 生成任务被中断
特征: 小片段能正常返回,但任何应用规模的生成都会中断——常常卡在一个整数值上,比如 exceeded 30000ms,或者约 60 秒后出现 Request timed out。
在你的智能体和模型之间存在三层超时。@hitheo/mcp 0.3.1 及以上版本处理了其中它所拥有的两层:
- SDK 请求超时(原为 30 秒)。
theo_code和theo_complete现在会流式返回,而不是发起一次性的一元调用,因此一个耗时较长但持续活跃的生成过程受制于空闲(token 间隔)超时,而不是总时长上限。可以通过THEO_TIMEOUT_MS(默认120000)调整连接/首字节的时间预算。 - 服务器路由超时。 流式响应会立即返回响应头,因此服务器自身的单次请求上限不再适用于生成主体。
- 你的 MCP 客户端的 JSON-RPC 请求超时(默认约 60 秒)。 这一层存在于你的 IDE/智能体中,而不是 Theo 内部。服务器在生成过程中每 5 秒会发出一次
notifications/progress心跳,因此只要客户端在收到进度通知时重置其请求超时,就能在任意长的生成过程中保持连接存活。
resetTimeoutOnProgress: true(并配合一个较宽松的 maxTotalTimeout);其他客户端会提供等效的”请求超时”设置。已知一个 3 分钟量级的应用规模生成产物,在开启进度重置后可以顺利完成。
theo.config.{js,ts} 被忽略
特征:
THEO_ALLOW_JS_CONFIG=1 主动开启——且仅在你信任的目录中这样做。详见安全性。
还是卡住了?
- 在启动 IDE 的同一个 shell 中运行
theo verify。如果失败,请把 JSON 输出发给支持团队。 - 从 IDE 的 MCP 面板中抓取 MCP 服务器的 stderr——
@hitheo/mcp的真实错误就记录在那里。 - 在 github.com/hitheoai/theoai 上提交 issue,附上脱敏后的 stderr 和 IDE 版本号。
