mcpo
mcpo takes an MCP server command and serves it as a RESTful OpenAPI server, so tools that expect OpenAPI can use MCP servers without learning the MCP protocol. The README argues that raw stdio is insecure and lacks docs, auth and error handling, and that putting it behind HTTP fixes this. It is from the Open WebUI project and the README includes an Open WebUI integration link.
Usage is one command: `uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command`, or `pip install mcpo`, or the `ghcr.io/open-webui/mcpo:main` Docker image. It can front stdio servers, SSE servers (`--server-type sse`, with custom headers) and Streamable HTTP servers. Each tool gets its own generated OpenAPI schema with interactive docs at `/docs`.
For several servers, point `--config` at a file in the Claude Desktop `mcpServers` format; each server then gets its own route such as `/memory` or `/time`, `--hot-reload` reloads config changes without downtime, and `disabledTools` hides specific tools. Other options include `--root-path` for reverse-proxy subpaths and OAuth 2.1 for Streamable HTTP servers, with dynamic client registration and tokens stored under `~/.mcpo/tokens/` by default. It needs Python 3.8+ and is MIT licensed. Last push was 2026-05-17. This review is based on the README and repository data; we have not run it ourselves.
Features
Why choose it
Trade-offs
Maintenance check
- Last commit
- 2026-02-27
- Commits, last 90 days
- 0
- Releases, last 90 days
- 0
- Latest release
- v0.0.20 (2026-02-27)
- Open issues
- 59
- Recent issues with at least one comment
- 15/21
Oldest week on the left; the latest four weeks are orange. Source: GitHub commit activity.
Status rule: archived on GitHub = Archived; last commit within 90 days = Active; 91 to 365 days = Slowing; older = Stale. All figures come from the GitHub API on the date shown.
Most discussed open issues
- #182 issue: HTTP-headers not forwarded to MCP/SSE-Server16 comments · 2025-06-22
- #303 issue: mcpo errors while starting (maybe dependency-issues with mcp2?)9 comments · 2026-07-29
- #90 feat: Add a reconnection mechanism for the SSE server9 comments · 2025-04-21
- #64 feat: image support9 comments · 2025-04-10
- #117 issue: schema_defs is not properly passed through this chain.8 comments · 2025-05-02
Issue titles are quoted from GitHub. Open the link to check whether a problem still applies to the version you use.
Who it fits
- Your tool expects an OpenAPI server (as Open WebUI does) and you want to use an MCP server without speaking the MCP protocol.
- You want one command to get an HTTP endpoint with generated interactive docs and an optional API key.
- You want a config file in Claude Desktop format with per-server routes, hot reload and disabledTools.
- You need MCP features beyond tool calls: OpenAPI maps request and response calls only.
- You want to aggregate many servers behind namespaces and team authentication; an aggregator such as MetaMCP does that.
- You need a very actively developed project: the maintenance check below shows its last commit on 2026-02-27.
How it differs
mcpo turns an MCP server into an OpenAPI HTTP server and is MIT licensed. mcp-proxy keeps the MCP protocol and only changes the transport.
Compatibility
Quick start
Use cases
Alternatives
Featured in these lists
Comments
No comments yet. Be the first!