MCP.so
登录
返回博客

Ollama 的 MCP 服务器:让本地模型使用 MCP 工具

2026年10月15日MCP.so TeamMCP.so Team

Ollama 用 MCP 服务器指南:Ollama 本身不是 MCP 客户端,需要借助 ollmcp、Claude Code、Codex、Goose 或 Open WebUI 让本地模型调用 MCP 工具。含步骤、模型选择与限制。

Ollama 能直接使用 MCP 服务器吗?

不能单独使用。Ollama 负责运行模型并支持工具调用,但它不是 MCP 客户端:它从不启动或连接 MCP 服务器。要让 Ollama 用上 MCP 服务器,你需要一个以 Ollama 作为模型后端的 MCP 客户端,例如终端里的 ollmcp、通过 ollama launch 启动的 Claude Code 或 Codex、Goose,或者 Open WebUI,并选择一个支持工具调用的本地模型。

本文会对比这些方案,带你完成一套可用的配置,并列出把前沿模型换成本地模型后最容易踩的坑。如果还没有想试的服务器,可以先看看 MCP 服务器目录。

各部分如何协作

一套 MCP 配置由三部分组成,而 Ollama 只承担其中之一:

  1. 模型:决定何时调用工具。这是 Ollama 的角色。
  2. MCP 客户端(也叫宿主 Host):启动或连接 MCP 服务器,把工具列表交给模型,执行调用并把结果送回。Ollama 不做这件事。
  3. MCP 服务器:提供真正的工具,例如浏览器、文件系统或 GitHub。

所以"Ollama 该用哪个 MCP 服务器?"这个问题,其实是在问"哪个客户端能让我的 Ollama 模型使用 MCP 服务器?"有了这样的客户端,目录里的任何 MCP 服务器都能用。背景知识见 MCP 的工作原理和我们的 MCP 客户端指南。

方案一览

客户端界面如何使用 OllamaMCP 传输方式适合
ollmcp终端 UI原生 Ollama APIstdio、SSE、Streamable HTTP快速本地测试、挑选工具
Claude Code终端 Agentollama launch claude(Anthropic 兼容 API)stdio、HTTP、SSE结合 MCP 工具写代码
Codex CLI终端 Agentollama launch codex 或 codex --ossstdio、Streamable HTTP结合 MCP 工具写代码
Goose桌面端和 CLI内置 Ollama 提供方stdio、Streamable HTTP带扩展的通用 Agent
Open WebUI网页聊天Ollama 后端Streamable HTTP(stdio 通过 mcpo)给团队用的类 ChatGPT 界面
oterm终端聊天原生 Ollama APIstdio、Streamable HTTP轻量终端聊天

截至 2026 年 10 月,以上项目都在积极维护。旧教程里常出现的 mcphost 已在 GitHub 上归档,因此没有列入。

第 1 步:选择支持工具调用的模型

只有模型能输出工具调用,MCP 才能工作。Ollama 会给这类模型打上 tools 标签,完整列表见 ollama.com/search?c=tools。撰写本文时带有该标签的模型包括:

模型拉取命令说明
Qwen 3ollama pull qwen3:8bOllama 官方工具调用示例所用模型;另有 14b、30b、32b
Qwen 3.5ollama pull qwen3.5Ollama 的 Claude Code 文档所用模型
Gemma 4ollama pull gemma4支持工具、视觉和思考
gpt-ossollama pull gpt-oss:20bOllama 的 Codex 示例所用模型;内存够的话可用 120b
Llama 3.1 / 3.2ollama pull llama3.2:3b小而快,但多步工具调用能力较弱

一条实用经验:小模型(1B 到 4B 参数)能调用一个描述清晰的工具,但当多个服务器暴露几十个工具时就容易混乱。如果要同时接多个服务器做 Agent 式任务,20B 以上的模型表现明显更好。

调大上下文长度

这是 MCP 在 Ollama 上"不工作"最常见的原因。每个工具定义都会进入提示词,而 Ollama 的默认上下文取决于显存:低于 24 GiB 时为 4k token,24 到 48 GiB 为 32k,48 GiB 及以上为 256k。Ollama 建议 Agent 和编程工具至少使用 64,000 token。可以在 Ollama 应用的设置滑块中调整,或在启动服务时设置:

OLLAMA_CONTEXT_LENGTH=64000 ollama serve

然后用 ollama ps 查看实际分配的值(CONTEXT 列)。

第 2 步(最快):在终端中使用 ollmcp

ollmcp 是专为 Ollama 打造的 MCP 客户端。它支持 stdio、SSE 和 Streamable HTTP 服务器,可以开关工具,并在每次调用工具前请求确认。

# install
uv tool install --upgrade ollmcp    # or: pip install --upgrade ollmcp

# add MCP servers (saved for future sessions)
ollmcp mcp add playwright -- npx @playwright/mcp@latest
ollmcp mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ~/Documents

# start a chat with a tool-capable model
ollmcp --model qwen3:8b

在会话中,/tools 打开工具选择器,/model 切换模型,/hil 开关人工确认(human-in-the-loop)。远程服务器同样可用:

ollmcp mcp add --transport http github https://api.githubcopilot.com/mcp/ \
  --header "Authorization: Bearer $YOUR_GITHUB_PAT"

这是使用个人访问令牌连接的 GitHub MCP 服务器。如果你已经在 Claude Desktop 中配置了服务器,ollmcp --claude-desktop 会从它的配置中加载。第一个测试推荐用 Playwright MCP 服务器:让模型打开一个网页并总结内容,然后在终端里观察工具调用过程。

第 2 步(编程):在 Ollama 上运行 Claude Code 或 Codex

Ollama 可以让两大编程 Agent 直接跑在本地模型上,而它们都是完整的 MCP 客户端。

Claude Code。 ollama launch claude 会通过 Ollama 的 Anthropic 兼容 API 启动 Claude Code。MCP 服务器按正常方式添加,保存在 Claude Code 的配置里,而不是 Ollama 的:

claude mcp add --transport http context7 https://mcp.context7.com/mcp
ollama launch claude --model qwen3.5

如果想手动配置,Ollama 文档使用以下环境变量:

export ANTHROPIC_AUTH_TOKEN=ollama
export ANTHROPIC_API_KEY=""
export ANTHROPIC_BASE_URL=http://localhost:11434
claude --model qwen3.5

作用域、OAuth 和 /mcp 的用法见我们的 Claude Code MCP 指南。

Codex CLI。 ollama launch codex(或 codex --oss -m gpt-oss:20b)会让 Codex 跑在 Ollama 上。MCP 服务器通过 codex mcp add 写入 ~/.codex/config.toml,详见我们的 Codex MCP 配置。两个 Agent 都需要 64k 以上的上下文窗口才好用。

第 2 步(桌面端):Goose

Goose 是一个开源 Agent,内置 Ollama 提供方,并把 MCP 服务器作为"扩展"(extensions)使用:

  1. 连接 Ollama:在 Goose Desktop 中打开 Settings → Configure Provider,找到 Ollama 并确认 API 地址为 http://localhost:11434。在 CLI 中运行 goose configure,选择 Configure Providers → Ollama,输入模型名,例如 qwen3。
  2. 添加 MCP 服务器:在桌面端打开侧边栏的 Extensions,点击 Add custom extension。在 CLI 中运行 goose configure → Add Extension,再选择 Command-line Extension(stdio)或 Remote Extension (Streamable HTTP)。

扩展保存在 ~/.config/goose/config.yaml 中。

第 2 步(网页界面):Open WebUI

Open WebUI 从 v0.6.31 起原生支持 MCP,而且本来就可以搭配 Ollama 提供模型。以管理员身份:

  1. 进入 Settings → Admin → Integrations。
  2. 在 External Tool Servers 下点击 + Add Connection。
  3. 把 Type 设为 MCP (Streamable HTTP),填入服务器 URL 并选择认证方式(None、Bearer、OAuth 2.1 等)。
  4. 保存,然后在对话中启用该工具。

这里的原生 MCP 只支持 Streamable HTTP。如果是 stdio 服务器,用 mcpo 把它包装成 OpenAPI 工具服务器:

uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command

两个常见坑:不要给 MCP URL 选择 OpenAPI 类型;服务器 URL 必须能被 Open WebUI 后端访问到,而不只是你的浏览器。

其他途径

  • VS Code。 Ollama 扩展会把本地模型加入 VS Code Chat 的模型选择器,MCP 服务器则在 VS Code 中配置,参见 VS Code MCP 配置。想让 Agent 调用 MCP 工具,请选择带 tools 标签的模型。
  • oterm。 一个面向 Ollama 的终端聊天客户端(uvx oterm),支持通过 stdio 和 Streamable HTTP 使用 MCP 工具,在它的 config.json 中的 mcpServers 下配置。
  • 自己写客户端。 Ollama 的 Python 和 JavaScript 库都支持工具调用,可以和官方 MCP SDK 对接:列出服务器的工具,作为工具定义传给 chat(),通过 MCP 会话执行调用并返回结果。SDK 部分可参考我们的 Python MCP 服务器指南。

预期中的限制

  • 工具调用质量。 本地模型比前沿模型更容易跳过工具、编造参数或陷入循环。减少工具数量、写清楚工具描述,比什么都管用;参见 MCP 工具发现。
  • 上下文压力。 一个大型服务器就可能带来数千 token 的工具 schema。只启用当前任务需要的服务器。
  • 速度。 每次工具往返都是一次完整的生成。部分卸载到 CPU(用 ollama ps 查看)会让 Agent 循环变得很慢。
  • 本地不等于离线。 模型在本地运行,但远程 MCP 服务器(GitHub、Notion)仍会把你的数据发送到这些服务。
  • 安全规则不变。 无论用什么模型,本地 stdio 服务器都以你的权限运行。保持确认提示开启,并阅读 MCP 安全最佳实践。

故障排查

现象解决办法
模型会回答但从不调用工具模型没有 tools 标签,或上下文太小装不下工具列表。换模型或调大 OLLAMA_CONTEXT_LENGTH。
工具选择器被禁用(oterm)所选模型不支持工具。拉取一个带 tools 标签的模型。
Agent 忘记之前的步骤上下文太小。查看 ollama ps 的 CONTEXT 列。
客户端连不上 Ollama确认 ollama serve(或 Ollama 应用)正在 http://localhost:11434 上运行。
MCP 服务器启动失败手动运行它的命令(例如 npx @playwright/mcp@latest)并修复错误;用 MCP Inspector 测试。
添加工具后 Open WebUI 一直加载你选了 OpenAPI 类型或粘贴了 mcpServers JSON。删除该连接,重新以 MCP (Streamable HTTP) 类型添加。

下一步

常见问题

Ollama 支持 MCP 吗?

Ollama 支持工具调用,但它不是 MCP 客户端,所以无法自己连接 MCP 服务器。你需要一个以 Ollama 作为模型后端的 MCP 客户端,例如 ollmcp、Claude Code、Codex、Goose 或 Open WebUI。

哪些 Ollama 模型可以配合 MCP 使用?

ollama.com 上带有「tools」标签的模型都可以,例如 qwen3、qwen3.5、gemma4、gpt-oss 以及 llama3.1 或 llama3.2。更大的模型(约 20B 参数及以上)在接入多个 MCP 服务器、执行多步工具调用时可靠得多。

为什么我的 Ollama 模型不调用 MCP 工具?

通常是模型不支持工具,或者上下文窗口太小,装不下工具定义。选择带 tools 标签的模型,并通过 OLLAMA_CONTEXT_LENGTH 或应用设置中的滑块把上下文长度调到至少 64k token。

可以把 Claude Code 和 Ollama 及 MCP 服务器一起用吗?

可以。运行「ollama launch claude」即可让 Claude Code 跑在本地或云端的 Ollama 模型上,再像平常一样用「claude mcp add」添加 MCP 服务器。MCP 服务器保存在 Claude Code 自己的配置中。