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.
pip install mcpoNo compatibility data collected yet for this library.
This quickstart demonstrates how to install `mcpo` and then run it to proxy a simple `mcp-server-time` tool. The first command installs `mcpo` and a sample MCP server. The second command starts `mcpo` on port 8000, securing it with an API key, and instructs it to proxy the `mcp-server-time` command. Your proxied API will then be available at `http://localhost:8000` with auto-generated documentation at `http://localhost:8000/docs`.
Always use `--` before the command and arguments of the MCP server you intend to proxy, e.g., `mcpo [mcpo_args] -- [mcp_server_command] [mcp_server_args]`.
Ensure your `streamable-http` MCP server is independently started and listening on the specified URL *before* you execute the `mcpo` command. For example, run `uv run your_mcp_server.py` in one terminal, then `mcpo --server-type streamable-http -- http://127.0.0.1:8000/mcp` in another.
For simple setups, use `--api-key "YOUR_SECRET"`. For enterprise or production environments, explore `mcpo`'s OAuth configuration options, including `server_url` for dynamic client registration and secure token management.
First, 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`.
Ensure 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.