mcpo

An Open WebUI proxy that exposes any MCP server as an HTTP API with an OpenAPI schema

CLIHigh risk

open-webui/mcpo

Install

uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command

Or pip install mcpo. Schema and docs at localhost:8000/docs.

This is third-party code. Review the repository files before installing.

What it does

mcpo starts an MCP server from a given command, or connects to an SSE or streamable HTTP server, and exposes its tools as REST endpoints. Each tool automatically gets an OpenAPI schema and interactive docs. A Claude Desktop style config file can serve several servers on separate paths with hot reload. It supports an API key, OAuth 2.1 for protected servers and running behind a reverse proxy.

Who it is for. For people connecting MCP tools to Open WebUI or apps that only understand OpenAPI.

Good fit when

  • You need MCP tools in Open WebUI
  • An app or SDK supports OpenAPI but not MCP
  • You need network access to a stdio server behind a key

Not a fit when

  • Your client already supports MCP natively
  • You need MCP features beyond tools, such as resources and prompts

Example request

Run mcpo for the time server so I can connect it to Open WebUI

Limitations

The proxy exposes over HTTP whatever the MCP server can do, so an API key and network restrictions are a must. It needs Python or uv, or Docker. mcpo itself uses no external services.

How to disable. Stop the mcpo process or container; if installed via pip, remove it with pip uninstall mcpo.

Security check

  • Exposes MCP server tools, which may run commands, over the network
  • Unsafe without an API key and network restrictions

README in short

The README explains why to bridge MCP to OpenAPI and gives launch commands via uvx, pip and Docker. It covers SSE and streamable HTTP servers, subpath serving, a hot-reload config file and OAuth 2.1. It links to Open WebUI integration docs. MIT licensed.

FAQ

Can I run several servers at once?

Yes, via --config with an mcpServers file; each server gets its own path.

Are remote MCP servers supported?

Yes, via --server-type sse or streamable-http with the server URL.

Editors’ pick

Open-source personal AI assistant on your own machine: answers in Telegram, Slack, Discord and WhatsApp, extended with skills and plugins

CLIHigh risk389.7K
Editors’ pick

A self-improving agent from Nous Research with a TUI, messaging gateway, cron jobs and skills it writes itself

CLIHigh risk245.5K
Editors’ pick

An open source coding agent for the terminal and desktop with build and plan modes

CLIHigh risk207.4K
Editors’ pick

Anthropic's coding agent for the terminal, IDE and GitHub: understands your codebase, runs tasks and handles git

CLIHigh risk145K