如果你想让 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 模型页 |
接下来可以做什么
- 本地模型做 Agent:能力边界在哪:给 Agent 配置只读资料和权限。
- 权限设计:哪些操作必须让人确认:把模型建议和真实执行权限分开检查。