MCP适配器工具

MCP适配器是一个OpenClaw插件,用于将MCP服务器工具作为原生OpenClaw代理工具暴露出来,适用于需要集成MCP服务器功能的开发场景。

  • by androidStern-personal
  • TypeScript
  • 本地部署
  • 32 星标
  • 更新于
在 GitHub 查看 androidStern/openclaw-mcp-adapter

使用说明

MCP适配器(OpenClaw插件)

将MCP(模型上下文协议)服务器工具作为本地OpenClaw代理工具公开。

此插件在启动时连接到您的MCP服务器,发现它们的工具,并将每个工具注册为代理可以直接调用的一流工具,而不是通过CLI技能运行MCP服务器。

需求

  • OpenClaw网关
  • Node.js 18+
  • 您要连接的MCP服务器

安装

openclaw plugins install mcp-adapter

替代方案:从源代码安装

git clone https://github.com/androidStern/openclaw-mcp-adapter.git
openclaw plugins install ./openclaw-mcp-adapter

配置

1.启用插件并配置服务器

添加到 ~/.openclaw/openclaw.json:

{
  "plugins": {
    "entries": {
      "mcp-adapter": {
        "enabled": true,
        "config": {
          "servers": [
            {
              "name": "myserver",
              "transport": "stdio",
              "command": "npx",
              "args": ["-y", "some-mcp-server"],
              "env": {
                "API_KEY": "${MY_API_KEY}"
              }
            }
          ]
        }
      }
    }
  }
}

2.允许沙盒代理

添加 "mcp-adapter" 到您的沙盒工具allowlist:

{
  "tools": {
    "sandbox": {
      "tools": {
        "allow": ["group:runtime", "group:fs", "mcp-adapter"]
      }
    }
  }
}

3.重新启动网关

openclaw gateway restart

4.验证

openclaw plugins list
# Should show: MCP Adapter | mcp-adapter | loaded

服务器配置

标准传输(生成子流程)

{
  "name": "filesystem",
  "transport": "stdio",
  "command": "npx",
  "args": ["-y", "@anthropic/mcp-filesystem", "/path/to/dir"],
  "env": {
    "SOME_VAR": "value"
  }
}

HTTP传输(连接到正在运行的服务器)

{
  "name": "api",
  "transport": "http",
  "url": "http://localhost:3000/mcp",
  "headers": {
    "Authorization": "Bearer ${API_TOKEN}"
  }
}

配置选项

选项 类型 默认值 描述
servers 阵列 [] 要连接的MCP服务器列表
toolPrefix 布尔值 true 在工具名称前加上服务器名称(例如。, myserver_toolname)

服务器选项

选项 类型 必填 描述
name string 是 此服务器的唯一名称
transport "stdio" "http" 否
command string 仅限stdio 生成命令
args string[] 否 命令参数
env object 否 环境变量
url string 仅限http 服务器URL
headers object 否 HTTP请求头

环境变量插值

使用 ${VAR_NAME} 在 env 和 headers 从中引用环境变量的值 ~/.openclaw/.env:

{
  "env": {
    "API_KEY": "${MY_SERVICE_API_KEY}"
  }
}

运作原理

  1. 在网关启动时,插件连接到每个配置的MCP服务器
  2. 呼叫 listTools() 发现可用工具
  3. 使用名称、描述和JSON模式在OpenClaw中注册每个工具
  4. 当代理调用工具时,插件将调用代理到MCP服务器
  5. 如果连接断开,它将在下一次工具调用时自动重新连接

示例:AgentMail

{
  "name": "agentmail",
  "transport": "stdio",
  "command": "npx",
  "args": ["-y", "agentmail-mcp"],
  "env": {
    "AGENTMAIL_API_KEY": "${AGENTMAIL_API_KEY}"
  }
}

这注册了以下工具 agentmail_create_inbox, agentmail_send_email等等。

许可证

麻省理工学院