A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Lightweight Docker image for launching multiple MCP servers via MCPO with unified OpenAPI access
Docker Hub Image: masterno12/webui-mcpo:latest
This Docker image provides a ready-to-use instance of MCPO, a lightweight, composable MCP (Model Context Protocol) server designed to proxy multiple MCP tools in one unified API server — using a simple config file in the Claude Desktop format.
🔗 What is MCP?
Learn more at the Open WebUI MCP Server docs
Supported official MCP servers: https://github.com/modelcontextprotocol/servers
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:
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.
docker pull masterno12/webui-mcpo:latest
config.jsonYou 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"]
},
"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"
}
}
}
services:
mcpo:
image: masterno12/webui-mcpo:latest
container_name: webui-mcpo
ports:
- "8000:8000"
volumes:
- ./mcpo:/opt/mcpo
restart: unless-stopped
Start the server:
docker-compose up -d
Clone the repo:
git clone https://github.com/masterno12/webui-mcpo.git
cd webui-mcpo
Build the image locally:
docker build -t webui-mcpo:latest .
Then either run it directly:
docker run -d -p 8000:8000 -v "$PWD/mcpo:/opt/mcpo" webui-mcpo:latest
Or use the provided Docker Compose setup:
docker-compose up -d --build
Each tool is exposed under its own subpath, for example:
http://localhost:8000/memoryhttp://localhost:8000/timeEach path serves:
/docs)Example:
http://localhost:8000/memory/docshttp://localhost:8000/time/docsTo connect tools from this MCP server in Open WebUI, you must use the full subpath for each tool:
http://localhost:8000/memory
http://localhost:8000/time
http://localhost:8000
This ensures Open WebUI recognizes and communicates with each tool server correctly.
/opt/mcpo/config.json does not exist on container startup, a minimal default will be copied automatically.8000.npx, uvx, and custom MCP tool types.The sse provide by n8n work when use with supergateway
{
"mcpServers": {
"n8n": {
"command": "npx",
"args": [
"-y",
"supergateway",
"--sse",
"<MCP_URL>"
]
}
}
}
With Authorization
{
"mcpServers": {
"n8n": {
"command": "npx",
"args": [
"-y",
"supergateway",
"--sse",
"<MCP_URL>",
"--header",
"Authorization: Bearer <MCP_BEARER_TOKEN>"
]
}
}
}
"n8n-dev": {
"url": "<MCP_URL>",
"serverType": "sse"
}
With Authorization
"linux_server": {
"transport": "sse",
"endpoint": "http://192.168.40.173:8000/sse",
"bearertoken":"expected-token"
}
MCPO_API_KEY environment variable.entrypoint.sh to dynamically append --api-key if the variable is present.config.json for server configuration.v1.1 config files.mcpo with config file support.MCP server integration for DaVinci Resolve Studio
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba