OpenClaw调用MCP工具怎么操作?
来源:互联网
时间:2026-08-02 12:36:41
想让OpenClaw直接调用MCP工具去查数据库、读GitHub Issue,或者自动化网页操作,而不是靠人工复制粘贴结果?那就要在OpenClaw运行时注入MCP客户端,让它和已注册的MCP服务器建立通信链路。整个过程其实就三步:确认配置、启动服务器、在Skill里写调用代码。咱们一步步来。

确认OpenClaw已启用MCP支持
先打开项目根目录下的config.yaml,找到agent那一节,看看有没有mcp_enabled: true这个字段。没有的话,手动加上,保存。
然后执行openclaw --version,输出里必须带着mcp字样——比如v2.4.1+mcp。如果没看到,说明当前安装的版本不支持MCP协议,得升级到≥2.4.0才行。
启动并注册MCP服务器
有两种方式启动服务器,根据场景选一个就行。
方法一:内置命令一键启动
在项目根目录运行:
openclaw mcp add filesystem --root ./data。这个命令会自动下载并启动一个只读访问./data目录的MCP服务器,端口由系统动态分配,省心。
方法二:手动启动独立服务器
先用
npx mcp-server-filesystem --root ./safe-data --port 3001启动服务,再执行openclaw mcp add --url http://localhost:3001把它注册进OpenClaw上下文中。注意:URL必须带http://前缀,否则注册会失败。
【务必确认MCP服务器进程持续运行】
Ctrl+C,对应的工具立刻失效,所以跑起来就别关。
在Skill中声明并调用MCP工具
假设你要在skills/analysis_skill.py里调用文件系统工具,操作分四步。
第一步:导入工具模块
在文件顶部加上:
from openclaw.mcp import get_tool_client
第二步:获取客户端实例
在
execute()方法里写:client = get_tool_client("filesystem")。如果注册了多个同名服务,默认返回最先注册的那个。
第三步:构造参数并发起调用
result = client.invoke("read_file", {"path": "report.txt"})这里的
"read_file"是filesystem服务暴露的tool name,必须和MCP服务器实际声明的完全一致,大小写敏感,写错就调用失败。
第四步:处理返回值
MCP返回的是结构化JSON。
result.content里是文件文本内容,result.error是None或错误消息字符串。千万别用str(result)去解析,那样会丢失字段语义,直接按属性取就行。