MCPO: OpenAPI Proxy for MCP Servers
MCPO (Model Context Protocol to OpenAPI Proxy) is a dead-simple proxy that takes an MCP server command and makes it accessible via standard RESTful OpenAPI. It enables tools to "just work" with LLM agents and applications expecting OpenAPI servers, addressing the integration challenges of stdio-based MCP tools within the broader web ecosystem. Developed by the Open WebUI community, MCPO is an active project, with version 0.0.20 released on February 27, 2026.
Common errors
-
What am I missing to get the MCP Server as Http-streamable with the MCPO Proxy? Neither of these commands work: uvx mcpo --port 8002 --api-key "top-secret" --server-type "streamable-http" -- http://127.0.0.1:8000/mcp or uvx mcpo --port 8002 --api-key "top-secret" -- uv run server.py
cause `mcpo` treats `streamable-http` servers as remote endpoints that must be pre-running, not as child processes to launch. The `uv run server.py` command is being passed *as the target URL* when it should be running separately.fixFirst, start your `streamable-http` MCP server (e.g., `uv run server.py` which exposes it on `http://127.0.0.1:8000/mcp` if configured this way). Then, in a separate terminal, run `uvx mcpo --port 8002 --api-key "top-secret" --server-type "streamable-http" -- http://127.0.0.1:8000/mcp`. -
mcpo: command not found
cause The `mcpo` executable is not in your system's PATH, or the library was not installed in your active Python environment.fixEnsure you have installed `mcpo` using `pip install mcpo` (or `uv pip install mcpo`). If using a virtual environment, activate it before running the command. If installed globally, ensure your user's PATH includes the directory where pip installs executables.
Warnings
- gotcha When running `mcpo` to proxy an MCP server command, arguments specific to the proxied server must be separated from `mcpo`'s arguments using `--` (double dash).
- gotcha When `mcpo` is configured with `--server-type streamable-http`, it expects the target MCP server to already be running at the provided URL, rather than launching it directly as it would with `stdio` type servers.
- gotcha While `mcpo` can provide API key authentication, it's crucial to ensure that the API key provided to `mcpo` (`--api-key`) is correctly expected and validated by any downstream clients or AI agents. For more robust authentication, `mcpo` also supports OAuth configuration.
Install
-
pip install mcpo -
uv pip install mcpo
Quickstart
pip install mcpo uvx mcp-server-time uvx mcpo --port 8000 --api-key "YOUR_API_KEY" -- uvx mcp-server-time --local-timezone=America/New_York