如果你想让 Agent 查店铺制度、算配送费,它得能接到真实资料或计算工具。MCP(Model Context Protocol)是一套让 AI 应用连接外部工具和数据的开放协议。本文用 OpenClaw 连上 MCP 官方示例服务器,再让本机 Qwen 调用里面的加法工具;19 加 23 得到 42,整次推理约80秒。示例服务器只用于验证连接,不接真实业务。

你需要准备

准备 本次使用
Agent OpenClaw 2026.10.1
示例服务器 MCP 官方 Everything 1.0.0,通过 Node.js 的 npx 启动
模型 Ollama 0.35.1、Qwen3.8 27B 本机 Q4_K_M 标签
电脑 Apple M1 Max、64GB 内存、macOS 27.0.1
时间和费用 环境已准备好时,连接约数分钟,模型调用约80秒;本机推理没有云端模型费用,首次下载包和模型另算

本次实测环境、结果和复现步骤放在 MCP 入门练习包 里。

如果 OpenClaw 还没连上本机模型,可以先看《本地模型做 Agent:能力边界在哪》。这里的本机模型标签是我电脑上已有的名字;你需要换成 Ollama 列表里实际存在、支持工具调用的模型。

MCP 在 Agent 里做什么

MCP 约定了 AI 应用与外部服务之间的消息格式和连接方式。可以把它看成一个通用插头:OpenClaw 作为应用接入服务器,模型再根据用户的问题选择是否调用服务器提供的工具。MCP 当前规范使用 JSON-RPC 消息,并定义连接协商、错误处理和授权等细节。

名称 它做什么 举例
Host(宿主) 运行 Agent、模型和用户界面的应用 OpenClaw
Client(客户端) Host 里负责连接 MCP 服务器的部分 OpenClaw 的 MCP 客户端
Server(服务器) 向客户端提供能力的程序或远程服务 本文的加法示例

MCP 服务器常见有三类能力。工具可以读取数据或执行操作;资源提供文本、文件等上下文;提示词提供可重复使用的任务模板。服务器可以只实现其中一部分,客户端也不一定支持全部能力。MCP 工具规范说明,工具是模型可能发起调用的函数,用户应能看清并控制哪些工具可用。

本次用 stdio 传输方式:OpenClaw 在本机启动一个子进程,通过标准输入和输出与它通信。接远程服务时,OpenClaw 也支持 HTTP 传输;要按服务提供方的官方地址和说明配置。

用官方示例工具做一次连接

先准备 OpenClaw 和 Node.js。Node.js 安装包带有 npx,第一次启动示例服务器时会从 npm 下载它。此示例无需连接店铺资料、微信或订单系统。

为了不把当前默认配置混进练习,先用一个单独 profile。下面两条把本机 Ollama 地址和模型名写入这个 profile。模型标签要替换成你电脑上已下载的名称:

openclaw --profile mcp-intro config set models.providers.ollama.baseUrl http://127.0.0.1:11434
OLLAMA_API_KEY=local-placeholder openclaw --profile mcp-intro config set agents.defaults.model.primary "ollama/qwen3.8-27b:latest"

现在连接 MCP 官方维护的 Everything 示例服务器。它是给 MCP 客户端开发者做验证用的,不适合直接接生产业务。命令用版本号固定这次测试的包,并只开放 echo 和 get-sum 两个练习工具:

openclaw --profile mcp-intro mcp add everything \
  --command /usr/bin/env \
  --arg -i \
  --arg "HOME=$HOME" \
  --arg "PATH=$PATH" \
  --arg "$(command -v npx)" \
  --arg -y \
  --arg @modelcontextprotocol/server-everything@1.0.0 \
  --include echo,get-sum

这里用 env 的 -i 参数启动干净的子进程环境,只把 HOME 和 PATH 交给示例服务。stdio 服务器是本机子进程,通常继承启动它的进程权限;不要把不熟悉的服务器直接接到含有账号密钥的默认环境里。工具过滤只限制 Agent 能看到哪些工具,并不会把服务器程序装进沙箱。

再检查 OpenClaw 是否能连接并列出服务器能力:

openclaw --profile mcp-intro mcp probe everything --json

本次结果中,OpenClaw 发现 echo 和 get-sum 两个工具,诊断列表为空。服务器还声明支持资源和提示词,但本次没有调用这两种能力。你也可以在配置中再加一道工具白名单:

openclaw --profile mcp-intro config set tools.allow '["everything__echo","everything__get-sum"]' --strict-json

让模型真的调用它

连接成功只说明 OpenClaw 能看见 MCP 服务器。接下来用本机 Agent 发一个明确要求使用工具的问题:

OLLAMA_API_KEY=local-placeholder openclaw --profile mcp-intro agent --local \
  --model "ollama/qwen3.8-27b:latest" \
  --thinking off \
  --message "请使用 MCP 工具 everything__get-sum,参数 a=19、b=23。调用完成后只回答结果和实际调用的工具名。"

本次输出为 19 + 23 = 42。会话日志记录到 everything__get-sum 调用成功,耗时约80秒。本机报告的模型 API 费用为 0;这不包括下载、电脑和电力成本。

要确认 Agent 真的调用了工具,可以查看对应会话记录。日志里应该同时看到 tool.call、everything__get-sum 和成功的 tool.result。模型答对一个算术题不等于它调用了工具,工具事件才是这一步的证据。

示例服务器可以做 echo 和加法演示,但并不替你查询店铺资料。实际工作中,你需要选择维护方可信、用途明确的 MCP 服务器,再逐项检查它公开的工具及其读写范围。

连接失败时先查这几项

  • probe 找不到服务器: 检查 Node.js 和 npx 是否已安装,服务器名称是否写成 everything。再运行 openclaw mcp status --verbose 看保存的配置。
  • probe 成功但模型不调用: 确认模型支持工具调用,并在问题里说明要用哪个工具。检查工具白名单和 include 过滤器是否放行了相应名称。
  • 工具看起来能用但结果不对: 回到服务器说明确认它真正做什么,再看调用参数和工具返回值。不要只凭模型复述的“已完成”判断。
  • 你想把 OpenClaw 接给另一个 MCP 客户端: 那是反向连接,使用 openclaw mcp serve。本文的 mcp add 是让 OpenClaw 接入第三方服务器。OpenClaw MCP 命令说明区分了这两种用法。

完成后可删除这个 profile 中的示例服务器:

openclaw --profile mcp-intro mcp unset everything

工具清单

工具 用途 入口
OpenClaw 连接模型、MCP 服务器和 Agent 工具 官方文档
Node.js / npx 启动本地示例服务器 官方下载页
MCP Everything MCP 官方测试服务器,提供演示用工具和资源 项目说明
Ollama、Qwen3.8 在本机运行本文使用的模型 Ollama 下载页、Qwen3.8 模型页

接下来可以做什么