模型上下文协议支持

为OpenClaw提供原生MCP(模型上下文协议)支持,允许用户配置MCP服务器并将其工具集成到OpenClaw中。

  • by amor71
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 amor71/openclaw-mcp

使用说明

openclaw mcp

原生MCP(模型上下文协议)支持 开爪.

状态: ✅ 实施完成——PR就绪

这是一个社区贡献,实现了对OpenClaw的原生MCP客户端支持,针对问题 #4834 和 #13248.

这增加了什么

用户可以在中配置MCP服务器 openclaw.json 并让他们的工具与原生OpenClaw工具一起出现——不需要自定义技能。

{
  "agents": {
    "defaults": {
      "mcp": {
        "servers": {
          "filesystem": {
            "command": "npx",
            "args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/docs"]
          },
          "github": {
            "command": "uvx",
            "args": ["mcp-server-github"],
            "env": {
              "GITHUB_TOKEN": "secret://env/GITHUB_TOKEN"
            }
          }
        }
      }
    }
  }
}

建筑

看 设计.md 对于整个架构。关键部件:

模块 目的
config.ts Zod验证了MCP服务器的配置模式
secret-resolver.ts secret:// URI解析(GCP、AWS、Vault、env)
tool-bridge.ts MCP工具模式→ OpenClaw代理工具转换
resource-bridge.ts MCP资源发现+上下文注入
client-stdio.ts 带碰撞恢复的标准运输
client-sse.ts 带有重新连接的SSE/HTTP传输
manager.ts 所有MCP服务器的生命周期编排器

实施状态

阶段 描述 状态
0 脚手架和CI ✅ 完成
1 配置与验证 ✅ 已完成(22项测试)
2 客户端生命周期 ✅ 完成
3 工具桥 ✅ 完成(20次测试)
4 资源桥 ✅ 已完成(12项测试)
5 秘密解析器 ✅ 已完成(18项测试)
6 经理 ✅ 已完成(15项测试)
7 集成布线 ✅ 完成
8 E2E和安全测试 ✅ 完成
9 文件 ✅ 完成
10 公关准备 ✅ 完成

测试覆盖范围: 99+个单元/集成测试通过所有MCP模块。

文件

文档 描述
要求.md 功能和非功能要求
设计.md 架构、组件设计、安全模型
计划.md 分阶段实施计划
PR_DESCRIPTION.md 拉取请求描述

关键设计决策

  • 安全第一: 所有MCP输出都包装为不受信任的外部内容(与 web_fetch)
  • 秘密管理: secret:// 凭证的URI——从不存储在明文日志中
  • 有弹性的: 崩溃服务器的指数回退自动重启
  • 不破裂: 纯粹的可添加性——不改变现有行为 mcp 配置
  • 命名空间工具: mcp_{server}_{tool} 命名可防止冲突

许可证

与OpenClaw相同(参见 openclaw 许可条款)。