要使OpenClaw调用MCP工具,需启用MCP支持(config.yaml中设mcp_enabled: true)、确认版本含mcp标识(≥2.4.0)、启动并注册MCP服务器(内置命令或手动启动),最后在Skill中导入get_tool_client、获取客户端、调用invoke方法执行工具。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想让OpenClaw直接调用MCP工具完成查数据库、读GitHub Issue或自动化网页操作,而不是靠人工复制粘贴结果——这需要在OpenClaw运行时注入MCP客户端,并让其与已注册的MCP服务器建立通信链路。
确认OpenClaw已启用MCP支持
打开项目根目录下的config.yaml,检查agent节下是否存在mcp_enabled: true字段。若不存在,手动添加并保存。
执行openclaw --version,输出中必须包含mcp字样(如v2.4.1+mcp),否则说明当前安装版本不支持MCP协议,需升级到≥2.4.0。
启动并注册MCP服务器
方法一:使用内置命令一键启动filesystem服务
在项目根目录执行:openclaw mcp add filesystem --root ./data。该命令会自动下载并启动一个只读访问./data目录的MCP服务器,端口由系统动态分配。
方法二:手动启动独立MCP服务器
先用npx mcp-server-filesystem --root ./safe-data --port 3001启动服务,再运行openclaw mcp add --url http://localhost:3001将其注册进OpenClaw上下文。注意:URL必须带http://前缀,否则注册失败。
【务必确认MCP服务器进程持续运行】——OpenClaw不会托管服务器进程,一旦终端关闭或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)解析,会丢失字段语义。


















