多MCP工具统一配置服务

通过Docker镜像提供轻量级、可组合的MCP服务器,支持通过单一配置文件统一代理多个MCP工具,适用于Open WebUI集成。

  • by masterno12
  • Dockerfile
  • 本地部署
  • 40 星标
  • 更新于
在 GitHub 查看 masterno12/webui-mcpo

使用说明

🧠 webui-mcpo:在打开的webui上使用单个配置运行多个MCP工具

Docker Hub镜像: masterno12/webui-mcpo:latest

此Docker镜像提供了一个即用型实例 MCPO,一个轻量级、可组合的MCP(模型上下文协议)服务器,设计用于在一个统一的API服务器中代理多个MCP工具,使用 克劳德桌面格式.

🔗 什么是MCP?
更多信息请访问 打开WebUI MCP服务器文档
支持的官方MCP服务器:https://github.com/modelcontextprotocol/servers


💡 为什么采用这种方法?

刚开始的时候,我发现官方的OpenWebUI文档经常强调 单线发射命令 (例如使用 npx 或 uvx 直接)并提供翻译 克劳德configs 到一个衬垫。

然而,我注意到两件事:

  • 这 MCP服务器注册表 (https://github.com/modelcontextprotocol/servers)几乎总是给 Claude风格的JSON配置, 不 单行线。
  • MCPO当充当集线器时, 期待克劳德·康明斯 直接地——手动将它们转换为单行程序没有任何好处。

因此,我完全接受了Claude配置格式,而不是手动将JSON块转换为CLI命令。这使得设置更清晰、更易于维护,并且与 mcpo.


🚀 快速入门(使用Docker Hub)

1.拉取图像

docker pull masterno12/webui-mcpo:latest

2.创建一个 config.json

您必须提供 config.json 在本地文件夹中(例如。, mcpo/).如果 mcpo/config.json 如果不存在,容器将自动生成一个最小的默认值。 本地文件夹 mcpo/ 必须与docker-compose.yml位于同一目录中。

📄 示例 config.json:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "time": {
      "command": "uvx",
      "args": ["mcp-server-time", "--local-timezone=America/New_York"]
    },
    "mcp_sse": {
      "type": "sse",
      "url": "http://127.0.0.1:8001/sse"
    },
    "mcp_streamable_http": {
      "type": "streamable_http",
      "url": "http://127.0.0.1:8002/mcp"
    }
  }
}

🐳 使用Docker Compose运行

services:
  mcpo:
    image: masterno12/webui-mcpo:latest
    container_name: webui-mcpo
    ports:
      - "8000:8000"
    volumes:
      - ./mcpo:/opt/mcpo
    restart: unless-stopped

启动服务器:

docker-compose up -d

🔨 从Dockerfile构建映像

克隆仓库:

git clone https://github.com/masterno12/webui-mcpo.git
cd webui-mcpo

在本地构建映像:

docker build -t webui-mcpo:latest .

然后直接运行它:

docker run -d -p 8000:8000 -v "$PWD/mcpo:/opt/mcpo" webui-mcpo:latest

或者使用提供的Docker Compose设置:

docker-compose up -d --build

🌐 访问工具

每个工具都暴露在其下面 自有子路径例如:

  • http://localhost:8000/memory
  • http://localhost:8000/time

每条路径都服务于:

  • 个人 OpenAPI模式 (/docs)
  • 专门的处理人员

例子:

  • http://localhost:8000/memory/docs
  • http://localhost:8000/time/docs

✅ 打开WebUI集成

要在中连接此MCP服务器中的工具 打开WebUI, 您必须使用完整的子路径 对于每个工具:

✅ 有效工具条目:

http://localhost:8000/memory
http://localhost:8000/time

🚫 无效:

http://localhost:8000

这可确保Open WebUI正确识别每个工具服务器并与之通信。


🛠 备注

  • 如果 /opt/mcpo/config.json 容器启动时不存在,将自动复制最小默认值。
  • 集装箱暴露端口 8000.
  • 支持 npx, uvx,以及自定义MCP工具类型。

n8n支持

n8n提供的sse在使用时工作 超级通道

{
  "mcpServers": {
    "n8n": {
      "command": "npx",
      "args": [
        "-y",
        "supergateway",
        "--sse",
        "<MCP_URL>"
      ]
    }
  }
}

有授权

{
  "mcpServers": {
    "n8n": {
      "command": "npx",
      "args": [
        "-y",
        "supergateway",
        "--sse",
        "<MCP_URL>",
        "--header",
        "Authorization: Bearer <MCP_BEARER_TOKEN>"
      ]
    }
  }
}

但是,mcpo应该与本地sse合作(但不适合我,如果你想尝试的话,我就让它在这里)

    "n8n-dev": {
      "url": "<MCP_URL>",
      "serverType": "sse"
    }   

有授权

 "linux_server": {
      "transport": "sse",
      "endpoint": "http://192.168.40.173:8000/sse",
      "bearertoken":"expected-token"
    }

📦 更新日志

v1.2–通过ENV增加了API关键支持(2025-05-24)

  • ✅ 通过添加对API密钥注入的支持 MCPO_API_KEY 环境变量。
  • 🛠️ 更新 entrypoint.sh 动态追加 --api-key 如果变量存在。
  • 📁 继续使用 config.json 用于服务器配置。
  • 📄 改进了Docker Compose使用的文档。
  • 🧪 向后兼容 v1.1 配置文件。

v1.1–初始版本

  • 🧠 基本Docker镜像 mcpo 支持配置文件。
  • 🚀 轻量级、即用型Open WebUI MCP服务器启动器。

🔗 相关链接