概述
MCP(Model Context Protocol,模型上下文协议)是 Anthropic 主导推出的开放标准,旨在统一 AI 模型与外部工具、数据源之间的通信方式。通过 MCP,OpenClaw 可以连接任何实现了该协议的服务端,获得文件系统访问、数据库查询、API 调用等扩展能力,而无需为每种工具单独编写集成代码。
OpenClaw 支持通过 ClawHub 技能市场安装 MCP 兼容的技能包,也支持直接在配置文件中声明自定义 MCP 服务端连接。
三种传输方式
MCP 协议定义了三种服务端通信传输方式,适合不同的部署场景:
stdio(标准输入输出):服务端以子进程形式运行,通过标准输入输出与 OpenClaw 通信。适合本地工具,延迟最低,无需网络配置。
SSE(Server-Sent Events):服务端作为独立 HTTP 服务运行,通过长连接推送事件。适合需要持久连接的远程服务。
HTTP(Streamable HTTP):无状态 HTTP 请求模式,适合无需持久连接的云端 API 服务。
配置 MCP 服务端
在 ~/.openclaw/openclaw.json5 中通过 skills.entries 配置 MCP 服务端连接:
{
skills: {
entries: {
// stdio 模式:本地文件系统 MCP 服务端
"filesystem-mcp": {
enabled: true,
transport: "stdio",
command: "npx",
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/docs"],
env: {
NODE_ENV: "production"
}
},
// SSE 模式:远程数据库 MCP 服务端
"database-mcp": {
enabled: true,
transport: "sse",
url: "http://localhost:3100/sse",
apiKey: { source: "env", id: "DB_MCP_TOKEN" }
},
// HTTP 模式:云端 API MCP 服务端
"cloud-mcp": {
enabled: true,
transport: "http",
url: "https://mcp.example.com/v1",
apiKey: { source: "env", id: "CLOUD_MCP_KEY" }
}
}
}
}
安装 ClawHub 上的 MCP 技能
ClawHub 技能市场提供大量已封装好的 MCP 兼容技能,安装后无需手动配置传输层:
# 搜索可用的 MCP 技能
clawhub search mcp
# 安装文件系统技能
clawhub install filesystem-tools
# 安装数据库查询技能
clawhub install sqlite-mcp
# 查看已安装技能列表
openclaw skills list
安装成功后,重启 OpenClaw 网关使技能生效:
openclaw gateway restart
配置参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
enabled |
boolean | 是否启用该 MCP 连接 |
transport |
string | 传输方式:stdio | sse | http |
command |
string | stdio 模式下的启动命令 |
args |
array | stdio 模式下的命令参数 |
url |
string | SSE/HTTP 模式下的服务端地址 |
apiKey |
object | 认证凭据,支持 SecretRef 格式 |
env |
object | 注入到子进程的环境变量(stdio 模式) |
验证连接状态
配置完成后,使用以下命令验证 MCP 服务端是否正常连接:
# 查看所有已加载技能和连接状态
openclaw skills status
# 查看特定技能的详细信息
openclaw skills info filesystem-mcp
# 实时查看技能加载日志
openclaw logs --filter skills
实用技巧
沙箱环境注意事项:当 OpenClaw 以 Docker 沙箱模式运行时,stdio 类型的 MCP 服务端子进程不会继承宿主机的环境变量。需要通过 agents.defaults.sandbox.docker.env 显式注入所需变量,或将变量内置到自定义 Docker 镜像中。
本地开发调试:开发自定义 MCP 服务端时,可以先用 stdio 模式快速验证功能,再切换到 SSE 或 HTTP 模式用于生产部署。
版本兼容性:OpenClaw 遵循 MCP 协议规范,但部分较旧的 MCP 服务端可能仅实现了协议的子集。遇到工具调用失败时,可查看 openclaw logs --level debug 输出的协议握手详情进行排查。