最近在折腾MCP,想给Claude Code接一个本地文件系统的MCP服务器(用的官方filesystem模板)。照着文档配了claude_desktop_config.json,路径、命令、参数都核对了,但每次启动Claude Code时,连接MCP服务器总会卡在“connecting”状态,然后直接报超时。
MCP服务器连Claude Code总超时,是配置问题还是工具链太新?
全部回复
共 129 条我上周也被这个坑折腾了一整个晚上,症状跟你几乎一模一样,一直卡在connecting然后timeout。后来发现是Claude Code启动MCP服务器时的环境变量没继承,尤其是PATH,官方filesystem模板里用的node命令在GUI启动的环境里根本找不到,换成绝对路径就通了。你可以先手动在终端跑一下那条command,看能不能正常起来,如果终端能跑但Claude Code不行,那基本就是环境隔离的问题。另外提醒一句,最近MCP的spec更新挺频繁的,客户端和服务器版本对不上也会握手失败,建议把@modelcontextprotocol/sdk锁到跟Claude Code兼容的版本。日志方面可以设MCP_TIMEOUT和看~/Library/Logs下的Claude日志,比干等报错有用多了。如果还不行,试试用mcp-inspector单独连一下服务器,能排除掉一大半配置层面的猜测。
我也卡过这坑,后来发现是Node版本太旧,换到20以上就好了。
我上个月也踩过一模一样的坑,当时差点把配置文件删了重装。后来发现是Claude Code对MCP服务器的启动超时设得特别短,本地node进程冷启动稍微慢一点就直接判死刑了。你可以先试试在终端里手动跑一下那个filesystem服务器的命令,看它是不是秒起,如果也要等两三秒那基本就是这个问题。另外官方模板最近改过参数格式,有些老教程里的args写法已经对不上了,我换成新版之后连接就正常了。还有个隐蔽的点是路径里如果有中文或者空格,MCP握手阶段会莫名卡住,换成纯英文短路径能排除掉这个干扰。你现在的Claude Code是哪个版本,如果是最近两三周更新的,建议把MCP相关的日志级别调成debug再看一眼,报错信息其实藏在里面。我最后是降了Claude Code一个小版本才彻底不超时的,工具链太新有时候真是双刃剑。
我也卡在这,后来发现是npx首次拉包太慢,改成全局装好再指路径就秒连了。
我前几天也踩了差不多的坑,filesystem这个模板默认走stdio,但Claude Code对启动命令的工作目录挺敏感的,路径里带空格或者用了~就容易卡在connecting。你先试试把命令换成绝对路径,手动在终端跑一遍那条npx命令,看能不能正常起来。另外版本也可能有影响,我之前把node升级到20之后反而好了,感觉跟工具链新旧确实有点关系。
我也踩过这个坑,八成是Claude Code启动MCP时环境变量没继承过去,尤其PATH和node路径。你可以先用命令行手动跑一下那个filesystem server的命令,看能不能正常起,起来了再回头查配置。另外最近Claude Code更新挺频繁的,MCP协议有版本差异,旧模板配新版客户端确实容易握手失败,建议去仓库issue里翻翻有没有人报同样的。
这个思路不错,收藏了。
我也卡过这,多半是node路径没写绝对路径,Claude Code找不到命令。先手动跑下启动命令看报啥错。
我上周也踩了几乎一模一样的坑,filesystem模板配上去一直卡connecting然后超时,折腾了大半天。后来发现不一定是配置写错了,而是Claude Code启动MCP服务器的方式跟桌面版不太一样,它会用更严格的超时窗口去握手,本地node启动稍微慢一点就直接被判死。你可以先手动在终端里跑一遍配置里的command和args,看服务器本身能不能正常起来、有没有等stdin之类的行为。我那次是npx首次拉包太慢,换成全局安装并写绝对路径后就稳了。另外日志很关键,Claude Code那边好像有--mcp-debug或者环境变量能打开详细输出,能看到卡在initialize还是transport层。工具链太新确实有影响,MCP的协议版本和客户端实现迭代都挺快,版本对不上时握手阶段就容易静默失败。建议把Claude Code和MCP SDK都升到较新的稳定版再试,别混用太老的模板。