Claude Code MCP 在 Windows 上一启动就断开,尤其是本地 MCP server 用 npx 启动时,先看是不是少了 cmd /c 包装。Anthropic 文档明确提醒:原生 Windows 下,本地 MCP server 如果使用 npx,通常需要通过 cmd /c 来正确执行。
先判断你是 Windows 还是 WSL
如果你在 WSL 里运行 Claude Code,就按 Linux 路径和 Linux Node 环境排查。此时重点是 which node、which npm 是否指向 WSL 内部。
如果你在原生 Windows 里运行,问题就可能出在命令解析。很多 MCP 配置示例写的是 npx server-name,在 Windows 里不一定能被 Claude Code 直接按预期执行。
怎么改配置
把命令从直接调用 npx,改成通过 cmd /c 调用。思路是让 Windows 命令解释器负责找到并执行 npx。具体字段名取决于你的 MCP 配置格式,但核心就是:命令用 cmd,参数包含 /c、npx 和 server 包名。
改完后重新启动 Claude Code,再用 /mcp 查看连接状态。不要只看配置文件保存了没有,要看服务是否真的 connected。
还要排查这些问题
Node 没装、npm 不在 PATH、公司代理拦截 npm、MCP server 需要环境变量但没传进去,都会导致连接断开。先在普通终端里手动跑同一条命令,确认它能启动,再交给 Claude Code。
如果 server 需要 API Key,别把密钥写进聊天消息里,应该放到环境变量或安全配置里。
最稳做法
Windows 原生优先检查 cmd /c,WSL 优先检查 Linux Node 路径。再用 /mcp 看状态,用普通终端复现启动命令。只要把“命令能不能跑”和“Claude Code 能不能连”分开排查,MCP 断开会好修很多。