qclaw需通过mcp协议标准化接入外部系统,配置config/mcp_servers.yml文件并重启生效;启动时自动连接并拉取工具列表,日志显示“connected to mcp server”即成功;skill中以mcp_call调用工具,tool_name和parameters须严格匹配mcp接口定义。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要让QClaw调用外部系统能力(如盈米且慢、金数据、CloudQ等),必须通过MCP协议完成标准化接入,否则工具无法被识别、注册和触发执行。
配置MCP服务器连接参数
QClaw启动时会读取config/mcp_servers.yml文件,该文件必须放在QClaw安装目录下的config/子目录中。路径错误或文件缺失会导致整个MCP链路初始化失败,后续所有工具都无法加载。
使用文本编辑器新建或打开config/mcp_servers.yml文件。
按YAML格式填入至少一个MCP服务定义,示例内容如下:
name: yingmi-qieman<br>endpoint: http://localhost:8080<br>transport: http
其中name为服务别名,需全局唯一;endpoint必须是可直连的HTTP地址,不支持https://或带路径后缀(如/mcp);transport目前仅支持http一种值。
保存文件后,【必须彻底退出QClaw再重新启动】,否则新配置不会被加载。
验证MCP服务连接与工具注册
QClaw在启动过程中会自动向每个已配置的MCP服务器发送initialize请求,并在握手成功后调用/tools接口拉取工具列表。这一步完全自动,无需手动触发。
确认目标MCP服务已运行且监听在配置的endpoint地址上,可通过浏览器访问http://localhost:8080/tools验证返回是否为标准JSON数组(非HTML页面、非404、非空对象)。
检查QClaw日志输出中是否出现类似Connected to MCP server: yingmi-qieman的成功提示——这是唯一可靠的连接确认依据。
若未出现,常见原因是MCP服务未正确实现/tools接口,或返回格式不符合MCP规范(例如字段名大小写错误、缺少name或description字段)。
在Skill中调用已注册的MCP工具
只有完成前两步后,MCP工具才会出现在QClaw本地能力池中,才能被Skill引用。
第一步:在Skill的YAML定义文件中,于steps字段内添加类型为mcp_call的动作节点。
第二步:设置tool_name字段为MCP服务器暴露的工具名,例如get_fund_performance——这个名称必须与/tools接口返回的name字段严格一致,包括大小写和下划线。
第三步:在parameters下传入符合该工具Schema的键值对,如fund_code: "000001"。参数名必须与工具描述中定义的parameters字段完全匹配,否则调用会因校验失败而中断。
这一步操作起来很简单,直接把YAML写进Skill文件就行,但务必注意参数拼写和类型——MCP不进行自动类型转换,字符串"123"传给期望整数的字段会直接报错。
快速搭建本地MCP服务器(Go语言参考)
方法一:克隆官方参考实现
执行git clone https://github.com/OpenClaw/mcp-server-go获取基础框架。
方法二:注册自定义工具函数
在main.go中添加工具函数,例如:
func GetWeather(city string) (string, error) {<br> return fmt.Sprintf("当前%s天气晴,26℃", city), nil<br>}
然后调用mcp.RegisterTool("get_weather", GetWeather)完成注册——函数名get_weather将作为Skill中tool_name的值使用。
方法三:启动服务
运行go run main.go,服务默认监听http://localhost:8080,可立即被QClaw识别并拉取工具列表。











