最近在折腾MCP(Model Context Protocol),想给本地跑的Qwen2.5-7B接上文件系统和数据库工具。用的Python SDK写了两个简单的server,在客户端(Claude Desktop)里调用时,工具列表能正常加载,但一执行实际工具调用就经常报-32001超时错误,偶尔等很久又能成功一次。本地模型用的Ollama跑的,显存没爆,模型响应本身挺快。我怀疑是不是MCP的stdio传输方式跟本地模型的同步调用有冲突?还是说需要给server加异步处理?另外看到有朋友推荐用SSE方式走HTTP,但不太清楚具体怎么配置。有没有踩过类似坑的朋友指点一下?
楼主
25天前
MCP服务器连本地大模型总超时,是配置问题还是架构选错了?
请 登录 后发表回复
全部回复
共 41 条
2楼
5天前
我之前也遇到过一模一样的-32001,排查了半天发现是MCP默认的stdio模式在等待工具返回时把主进程给阻塞了,特别是数据库查询这种耗时操作特别容易触发超时。后来我把server改成了异步(用asyncio包装了一下)并且把Ollama的请求也改成非阻塞,情况好了很多,但偶尔还是会抽风。SSE确实值得试,本质上是把传输层换成了HTTP长连接,能绕开stdio的进程间通信瓶颈,不过配置起来要改client端的transport参数,我记得Claude Desktop对SSE的支持还不是很完善。你如果坚持用stdio,可以试试把Ollama的keep_alive调长一点,或者减少工具返回的数据量,有时候是序列化太慢导致的。