
mcpo
Turn any MCP server into an OpenAPI server with one command — the bridge between MCP tools and OpenAPI clients.
About
mcpo is a small proxy from the Open WebUI team that exposes any MCP server as a standard OpenAPI API. One command — uvx mcpo --port 8000 -- <your MCP server command> — and every MCP tool becomes an HTTP endpoint with a generated OpenAPI schema and interactive docs at /docs. It handles stdio, SSE, and streamable-HTTP MCP servers, supports an --api-key gate, and runs just as easily from Docker.
It exists because a chunk of the ecosystem (Open WebUI's own Tools feature included) speaks OpenAPI, not MCP. Rather than reimplementing every MCP server as a REST service, mcpo lets tool providers who built on MCP reach OpenAPI clients with zero extra work.
The honest caveat: it is glue, not a platform — no auth beyond a shared API key, no rate limiting, no multi-tenancy. Perfect for personal setups and internal tooling; do not put it naked on the internet. Development slowed after mid-2026 (last push May 2026), though the tool is feature-complete for what it does.
What it can do
- Wraps any stdio MCP server as an OpenAPI HTTP service
- Supports SSE and streamable-HTTP MCP server types
- Auto-generated OpenAPI schema with interactive /docs
- API-key protection and --root-path for reverse-proxy subpaths
- Zero-config launch via uvx; Docker image available
- MIT-licensed; maintained by the Open WebUI team
Setup
- Install:
uvx mcpo(orpip install mcpo, or the Docker imageghcr.io/open-webui/mcpo:main). - Launch:
uvx mcpo --port 8000 --api-key "top-secret" -- <your MCP server command>. - For SSE/streamable-HTTP servers add
--server-type sse|streamable-httpand the endpoint URL. - Open
http://localhost:8000/docsto browse the generated OpenAPI schema.
Prerequisites
Python (uv recommended) or Docker; an MCP server command to wrap (stdio, SSE, or streamable HTTP).
Use cases
Works with
Trust score — 7/10
Scored 7/10 (metrics tier, metrics-v1). Evidence: Adoption 7: starScore from 4,402 stars on open-webui/mcpo (log scale vs 298k peer max); Maintenance 6: pushed 2026-05-17 (recency 6); quiet since mid-2026 but feature-complete for its scope; Openness 10: MIT (0.7*10) + official docs verified (0.3*10); Manual 8: Open WebUI-official bridge corroborated by repo and third-party integration guides; docked for thin auth model (shared API key only). License: MIT.
★ 4,402 GitHub stars
How the trust score is built
Full methodology →- Adoption · stars/downloads, log-scaled vs peers
- 7.0/10
- Maintenance · recency, releases, issue load
- 6.0/10
- Openness · license + docs
- 10.0/10
- Manual review · sanity read + red-flag check
- 8.0/10
- · Adoption 7: starScore from 4,402 stars on open-webui/mcpo (log scale vs 298k peer max)
- · Maintenance 6: pushed 2026-05-17 (recency 6); quiet since mid-2026 but feature-complete for its scope
- · Openness 10: MIT (0.7*10) + official docs verified (0.3*10)
- · Manual 8: Open WebUI-official bridge corroborated by repo and third-party integration guides; docked for thin auth model (shared API key only)
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.