最近在折腾MCP服务,想着把本地跑的Ollama模型通过MCP协议暴露出来给其他应用调用。按照官方文档配了mcp.json,serverURL填的是http://localhost:11434,但客户端总是报“connection refused”。我Ollama服务是正常启动的,用curl测过能返回模型列表。是不是MCP需要单独装什么插件?还是说Ollama默认的API接口不能直接对接MCP?另外,我的Ollama跑的是qwen2.5:7b,是不是对模型类型也有要求?看文档有点晕,求指点。
部署MCP服务时一直连不上Ollama,有大佬知道怎么配吗?
全部回复
共 194 条其实不是Ollama的问题,MCP协议本身不直接兼容Ollama原生的HTTP API,你需要一个适配层,比如用mcp-ollama或者自己写个Python脚本把Ollama的接口包装成MCP的tool格式。另外你curl能通但客户端连不上,大概率是客户端跑在容器或者另一台机器上,localhost指向不对,得改成宿主机IP或者用host.docker.internal。模型方面qwen2.5:7b没问题,MCP只关心你有没有正确把model参数透传过去,跟模型类型无关。
这个问题大概率不是模型的问题,qwen2.5:7b本身支持MCP协议,关键是Ollama的接口路径不对。你curl测试用的应该是/api/tags,但MCP服务需要的是/api/chat或者专门的MCP端点,直接拿根地址肯定连不上。建议检查一下Ollama版本,新版有内置的mcp端点,路径类似/api/mcp,老版本就得装个转发代理。另外确认下mcp.json里的协议是http还是ws,我之前就是卡在这没注意。
你这情况我上周刚踩过坑,Ollama的HTTP API和MCP协议根本不是一个东西,得用官方的mcp-ollama适配器跑个中转服务才行。另外检查下mcp.json里的serverURL是不是该填那个适配器的地址,不是直连11434端口。模型的话qwen2.5:7b没问题,关键是适配器那边的配置要写对模型名。
用curl能通说明Ollama没问题,MCP那个serverURL要配成sse或者streamable的端点,不是直接怼11434。
connection refused这个报错太典型了,大概率不是Ollama的问题,而是MCP客户端自己没找到服务。Ollama默认的HTTP API确实不能直接当MCP用,你需要一个适配层,比如mcp-ollama这种社区项目,把API转成MCP协议。另外检查下MCP配置里的host,别用localhost,试试127.0.0.1,有时候IPv6解析会坑你。模型本身没限制,qwen2.5:7b完全够用,重点还是先确认MCP服务进程真的起来了,端口没被防火墙挡。
Ollama的API和MCP不是一回事,得用官方出的mcp-server-ollama那个插件才行,光改地址没用。
我之前也卡这,装个插件再把URL指到/v1就通了,跟模型没关系。
Ollama的API本身不是MCP协议,需要走个转换层,试试mcp-remote这种桥接工具。
这问题我上个月也踩过,你curl通但MCP连不上,大概率不是Ollama本身的问题,而是MCP客户端那边压根没走对端口。我猜你用的mcp.json可能把serverURL写进了Ollama的HTTP接口,但MCP的transport协议跟这个不兼容,Ollama官方那个/API端点本来就不是给MCP用的,你得在客户端侧配一个类似“mcp-ollama-bridge”的适配层,或者直接用支持Ollama的现成MCP server,比如某些社区写的ollama-mcp-adapter,它内部会帮你把MCP请求转成Ollama的chat接口。另外qwen2.5:7b完全没问题,模型类型不影响连接,只要Ollama能正常响应就行。我当时的坑是MCP客户端默认走的是HTTPS,而本地Ollama是HTTP,你在配置里明确指定协议别偷懒,还有检查一下防火墙,Windows上容易拦localhost的二次转发。你要是实在不想搞适配层,试试把serverURL改成http://127.0.0.1:11434/v1,有些MCP实现会兼容OpenAI格式,Ollama现在也支持/v1这个路径。最后建议你开一下MCP客户端的debug日志,看它实际请求发到哪个端口,我那次就是发现它把11434拼成了11435,离谱得很。
Ollama的API格式跟MCP不兼容,得装个适配器,试试mcp-ollama这个桥接服务。
连接被拒大概率是地址写错了,检查下是不是用了127.0.0.1而不是localhost,或者端口被防火墙挡了。
Ollama的API不是标准MCP协议,得用mcp-ollama这类适配器转一下,直接填localhost肯定连不上。
之前我也卡这儿,后来发现模型得用支持tool calling的,qwen2.5没问题,换个适配器就好使了。
你curl能通但MCP连不上,大概率不是Ollama的问题,而是MCP客户端连的端口和服务端配置不一致。MCP服务器默认监听的是别的端口,你得在mcp.json里把serverURL改成MCP服务自己暴露的地址,而不是直接指到Ollama的11434。另外Ollama本身没有原生MCP接口,得用类似mcp-ollama-bridge这种中间层转换,模型类型倒是无所谓,qwen2.5:7b完全够用。我之前也卡在这步,后来发现是忘了给MCP服务加--host 0.0.0.0参数,本地回环地址有时候会被容器或代理拦掉。
我之前也卡在这过,Ollama那个原生API是OpenAI兼容格式,MCP这边得用专门的适配器桥接一下,直接填localhost:11434肯定不行。你搜下mcp-server-ollama这个项目,配好transport之后基本就通了,跟模型类型没啥关系,qwen2.5:7b完全没问题。还有个小坑,记得确认下客户端连MCP服务时的网络权限,有时候是防火墙挡了回环地址。
这问题我也踩过坑,curl能通不代表MCP那边网络配置没问题,特别是localhost在有些容器或代理环境下会解析到IPv6的::1,Ollama默认绑的IPv4,你试试把serverURL改成http://127.0.0.1:11434。另外MCP和Ollama不是直接对接的,你需要用类似mcp-ollama这种适配器,官方那个mcp.json其实只是给客户端用的,真正跑起来还得单独起一个MCP服务进程去转发请求。模型类型倒没啥限制,qwen2.5:7b走OpenAI兼容接口就行,关键是你那个适配器得支持/ollama的路径才行。
这思路就不对,Ollama原生API根本不认MCP那套,得用mcp-ollama之类的适配器中转一下才行。
qwen2.5:7b本身没问题,但你这报错看着就是端口没通,检查下mcp配置里URL是不是多了个空格。
connection refused这个报错其实挺典型的,你curl能通但MCP连不上,大概率是MCP客户端跑在容器或者别的网络环境里,访问不到宿主机的localhost,试试把serverURL改成host.docker.internal或者你局域网的IP。另外Ollama本身不直接支持MCP协议,需要中间层转换,比如用mcp-ollama-bridge这类工具,模型类型倒是没啥限制,qwen2.5:7b完全够用。
这问题我上周刚踩过坑,Ollama本身没有原生MCP支持,得靠中间层转换,比如用mcp-ollama这个社区包或者自己写个桥接服务。你curl通只能说明HTTP API没问题,但MCP客户端走的是另一套协议,端口冲突或者路径不对都会报connection refused。另外qwen2.5:7b应该没限制,关键是看你用的MCP适配器是否支持流式输出,有些老版本对工具调用格式有要求。建议先试试直接跑官方mcp-ollama的示例配置,把serverURL改成http://127.0.0.1:11434/v1,有时候localhost解析到IPv6也会出幺蛾子。
之前也踩过这个坑,Ollama的原始HTTP API和MCP协议不是一回事,MCP需要走它自己的SDK或工具适配层,不能直接把serverURL指向11434端口。我后来是装了个社区做的ollama-mcp-adapter,把Ollama封装成MCP端点才通的。另外模型本身没限制,qwen2.5:7b完全够用,问题大概率出在协议转换上。你检查下adapter的配置里有没有把host和port指向你的Ollama地址,然后MCP客户端连的是adapter暴露的端口,不是11434。
Ollama的接口不是标准MCP格式,得用mcp-server-ollama这类适配器中转,光改URL没用。
MCP和Ollama的API不是一回事,直接连不上正常,得在Ollama外面套个MCP适配器才行。
connection refused大概率不是模型或MCP配置的问题,而是Ollama默认绑定的地址只监听了127.0.0.1,但你的MCP服务跑在容器或另一个进程里,访问的localhost指向了不同网络栈。可以先确认下Ollama是不是用ollama serve --host 0.0.0.0启动的,或者看看服务端日志有没有实际收到请求。另外MCP对接Ollama通常不需要额外插件,官方有现成的Ollama MCP适配器,直接用npx跑一个就行,别手动拼HTTP。模型类型没限制,qwen2.5:7b完全没问题,问题大概率在网络层。