Sign inSign up

masterno12/webui-mcpo

By masterno12

β€’Updated over 1 year ago

lightweight Docker image for launching multiple MCP servers via MCPO with unified OpenAPI access.

Image
Machine learning & AI
1

50K+

masterno12/webui-mcpo repository overview

⁠🧠 webui-mcpo: Run Multiple MCP Tools with a Single Config on Open WebUI

This Docker image provides a lightweight environment for running mcpo⁠, a versatile MCP server launcher for Open WebUI⁠.

β πŸš€ What is MCPO?

MCPO is a server that orchestrates multiple MCP⁠ tools using a single configuration file, providing a unified HTTP interface to each.

Official MCP tools are available here:
πŸ‘‰ https://github.com/modelcontextprotocol/servers⁠

This project focuses on using the Claude Desktop format to run multiple MCP tools under one config via a unified interface.


β πŸ’‘ Why this approach?

When starting out, I found that the official Open WebUI documentation often highlights one-liner launch commands (e.g. using npx or uvx directly) and provides translations from Claude configs to one-liners.

However, I noticed two things:

  • The MCP server registry (https://github.com/modelcontextprotocol/servers⁠) nearly always gives the Claude-style JSON configuration, not the one-liners.
  • MCPO, when acting as a hub, expects Claude configs directlyβ€”there is no benefit in converting them to one-liners manually.

So instead of manually translating JSON blocks to CLI commands, I embraced the Claude config format fully. This makes the setup clearer, easier to maintain, and perfectly compatible with mcpo.


⁠🐳 Getting Started

⁠1. Pull the image
docker pull masterno12/webui-mcpo:latest
⁠2. Create a config file

You must provide a config.json in a local folder (e.g., mcpo/). If mcpo/config.json does not exist, the container will automatically generate a minimal default one. The local folder mcpo/ must be in the same directory where docker-compose.yml is.

πŸ“„ Example config.json:

{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "time": {
      "command": "uvx",
      "args": ["mcp-server-time", "--local-timezone=America/New_York"]
    }
  }
}
⁠3. Start the container manually
docker run -d \
  --name webui-mcpo \
  -p 8000:8000 \
  -v $(pwd)/mcpo:/opt/mcpo \
  -e MCPO_API_KEY=top-secret \  # Optional: define an API key
  masterno12/webui-mcpo:latest

⁠🧬 Docker Compose Example

services:
  mcpo:
    image: masterno12/webui-mcpo:latest
    container_name: webui-mcpo
    ports:
      - "8000:8000"
    volumes:
      - ./mcpo:/opt/mcpo
# Optional: define an API key
#    environment:
#      - MCPO_API_KEY=top-secret
    restart: unless-stopped

Start with:

docker compose up -d

⁠🌐 Accessing MCP Tools

Once running, each MCP server is exposed at its own HTTP route:

Each route comes with its own OpenAPI UI:


⁠🧩 More on MCP


⁠🧾 GitHub Source

πŸ‘‰ masterno12/webui-mcpo⁠


β πŸ“¦ Changelog

⁠v1.2 – Added API Key Support via ENV (2025-05-24)
  • βœ… Added support for API key injection via MCPO_API_KEY environment variable.
  • πŸ› οΈ Updated entrypoint.sh to dynamically append --api-key if the variable is present.
  • πŸ“ Keeps using config.json for server configuration.
  • πŸ“„ Improved documentation for Docker Compose usage.
  • πŸ§ͺ Backward-compatible with v1.1 config files.
⁠v1.1 – Initial Release
  • 🧠 Basic Docker image for mcpo with config file support.
  • πŸš€ Lightweight and ready-to-use Open WebUI MCP server launcher.

Tag summary

Content type

Image

Digest

sha256:018df5374…

Size

176.9 MB

Last updated

over 1 year ago

docker pull masterno12/webui-mcpo