MCP桥接插件

将MCP服务器桥接到OpenClaw代理工具系统的插件,使MCP工具成为原生工具。

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

使用说明

openclaw mcp电桥

桥接的OpenClaw插件 MCP(模型上下文协议) 将服务器转换为本机代理工具。

为什么?

MCP服务器公开了具有类型化模式的结构化工具,这是AI代理的正确接口。此插件将MCP服务器连接到OpenClaw的代理工具系统,因此每个MCP工具都成为一流的原生工具,而不是CLI包装器。

安装

openclaw plugins install openclaw-mcp-bridge

或链接到本地进行开发:

openclaw plugins install -l ./path/to/openclaw-mcp-bridge

配置

将您的MCP服务器添加到 openclaw.json:

{
  plugins: {
    entries: {
      "mcp-bridge": {
        enabled: true,
        config: {
          servers: {
            // Stdio server (spawns a local process)
            "ai-todo": {
              command: "ai-todo",
              args: ["serve", "--root", "/path/to/workspace"]
            },

            // Remote server via mcp-remote proxy
            "linear": {
              command: "npx",
              args: [
                "-y", "mcp-remote",
                "https://mcp.linear.app/mcp",
                "--header", "Authorization:Bearer ${LINEAR_API_KEY}"
              ]
            },

            // URL server (auto transport: Streamable HTTP -> SSE fallback)
            "my-api": {
              url: "https://api.example.com/mcp",
              transport: "auto",
              headers: {
                "Authorization": "Bearer ${API_KEY}"
              }
            },

            // QMD / Streamable HTTP server
            "qmd": {
              url: "http://[::1]:3000/mcp",
              transport: "streamable-http"
            }
          }
        }
      }
    }
  }
}

配置更改后重新启动网关。

服务器配置

每个服务器条目支持:

字段 类型 描述
command string 生成命令(stdio传输)
args string[] 命令的参数
env object 流程的额外环境变量
url string HTTP传输的完整MCP URL(命令的替代方案)
transport "auto" | "streamable-http" | "sse" URL传输模式(默认: "auto")
headers object URL传输的HTTP标头
enabled boolean 启用/禁用此服务器(默认值: true)
toolPrefix boolean 在工具名称前加上服务器名称(默认值: true)

要么 command 或 url 是必需的。

URL传输模式

对于基于URL的服务器, transport 支持:

  • "auto" (默认):首先尝试Streamable HTTP,然后回退到SSE
  • "streamable-http":仅支持流式HTTP(如果不支持,则快速失败)
  • "sse":仅SSE(向后兼容性)

url 必须是完整的MCP端点(例如 https://host.example/mcp).

环境变量分辨率

支持所有字符串值 ${ENV_VAR} 环境变量替换语法。这包括 command, args, env 值, url,以及 headers.

工具命名

随着 toolPrefix: true (默认),工具命名 <server>_<tool>:

  • 服务器 ai-todo,工具 list_tasks → ai_todo_list_tasks
  • 服务器 linear,工具 list_issues → linear_list_issues

随着 toolPrefix: false,使用原始MCP工具名称(注意服务器之间的冲突)。

运作原理

  1. 在网关启动时,插件生成/连接到每个配置的MCP服务器
  2. 呼叫 tools/list 在每台服务器上发现可用的工具及其JSON模式
  3. 通过以下方式将每个工具注册为本地OpenClaw代理工具 api.registerTool()
  4. 当代理调用工具时,插件会通过以下方式将其路由到正确的MCP服务器 tools/call
  5. MCP响应内容直接传递给代理

可选工具

要使所有桥接工具都需要一个明确的allowlist:

{
  plugins: {
    entries: {
      "mcp-bridge": {
        config: {
          optional: true,
          servers: { /* ... */ }
        }
      }
    }
  }
}

然后为每个代理启用它们:

{
  agents: {
    list: [{
      id: "main",
      tools: {
        allow: ["mcp-bridge"]  // enable all bridged tools
      }
    }]
  }
}

发展

git clone https://github.com/fxstein/openclaw-mcp-bridge.git
cd openclaw-mcp-bridge
npm install
openclaw plugins install -l .
openclaw gateway restart

发现MCP工具(缓存刷新)

每当服务器工具发生更改时运行发现:

npx tsx discover.ts

Discovery现在支持以下两种功能:

  • stdio服务器(command + args)
  • URL服务器(url)与相同 transport 行为学(auto, streamable-http, sse)

许可证

麻省理工学院