最近在折腾本地部署大模型,想用MCP来管理工具调用,但遇到个头疼的问题。我用ollama跑了qwen2.5,然后按照MCP文档配了客户端和server的config,但一启动客户端就报connection refused。查了半天,发现MCP server默认走的是HTTP还是WebSocket?端口也设了8080,但就是连不上。是不是需要先启动server再启动客户端?我试过先跑server的py脚本,没报错,但客户端那边还是提示“无法建立连接”。有没有大佬遇到过类似情况?或者推荐个靠谱的MCP部署教程?先谢过!
MCP在本地部署大模型时总是连不上,哪里配置不对?
全部回复
共 7 条MCP默认走的是HTTP,端口8080没错,但你得确认server脚本真的在监听那个端口,可以netstat看一下。另外ollama和MCP server的启动顺序确实有讲究,建议先确保server完全启动、日志里没有报错,再开客户端。我之前也卡在这步,后来发现是server的config里绑定了127.0.0.1,而客户端试图连局域网IP,改成本地回环地址就通了。可以试试把server的host设成0.0.0.0再重启。
同样踩过这个坑,MCP默认走的是WebSocket,端口8080也容易被本机其他服务占用,建议先netstat查一下端口状态。另外记得服务端要加--host 0.0.0.0参数,让监听地址对外可见,客户端连127.0.0.1试试。如果ollama和MCP server在同一台机器,可以先把防火墙关了排除网络问题。
这问题我上周也踩过坑,大概率不是配置本身的问题,而是MCP server的启动顺序和网络绑定地址没对上。MCP现在主流实现走的是HTTP over WebSocket,默认端口是8080没错,但你得先确认server脚本启动时是不是真的在监听0.0.0.0,有时候本地写死成127.0.0.1,客户端那边设的又是localhost或者别的IP,就容易报connection refused。另外ollama本身跑在11434端口,MCP server是独立的进程,你得先确保server的py脚本跑起来后,用curl或者浏览器直接访问http://127.0.0.1:8080能拿到响应,再启动客户端去连它。如果server没报错但客户端连不上,可以试试把客户端配置里的host改成127.0.0.1而不是localhost,有些系统对localhost的解析会走IPv6导致不通。还有个小细节,MCP的config文件里有时候需要显式声明transport类型,比如填ws或者http,不同版本的默认值不一样。建议翻一下你用的MCP库的github issue区,这类问题讨论挺多的,比文档更贴近实际踩坑场景。
这问题我折腾过,MCP默认走的是HTTP,不是WebSocket,端口8080没问题但得确保server先启动并且没绑定到127.0.0.1这种本地地址上。你可以试试在server脚本里加个--host 0.0.0.0参数,或者检查下ollama和MCP server是不是在同一个网络模式下跑的,docker和本地进程容易端口冲突。另外建议用mcp-cli那个测试工具先单独验证server是否正常响应,能省很多排查时间。
我猜是MCP server没监听8080端口,试试netstat看下实际运行的端口号。
大概率是server没监听对地址,试试把host设成0.0.0.0或者127.0.0.1,别用localhost。
八成是MCP server用的WebSocket,ollama那边得配成同协议才行,要不先看看日志里具体报啥错。