mcpo is a Python-based proxy that exposes MCP tools as OpenAPI-compatible HTTP servers, enabling OpenAPI tooling and UIs to interact with MCP tools. It supports OAuth for streamable-http servers, config-based multi-server setups, and optional hot-reload.
Collecting history — the radar snapshots this repo daily. The trend line appears after 3 days of data (1 so far).
What it is
mcpo is a dead-simple proxy that exposes an MCP tool as an OpenAPI-compatible HTTP server, allowing MCP commands to be accessed via standard RESTful endpoints. It aims to provide security, stability, and interoperability by serving via pure HTTP and auto-generating interactive docs.
How it works
mcpo takes an MCP server command and makes it accessible over HTTP with an OpenAPI schema. It supports multiple server types (including streamable-http and sse) and can proxy through a generated API with docs at /docs. It can be configured to run multiple MCP tools from a config file, each exposed under its own route with a dedicated OpenAPI schema and proxy handler. OAuth 2.1 authentication can be enabled for servers requiring it, with dynamic client registration by default.
Getting started
Usage examples from the README include:
uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command
pip install mcpo
mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command
mcpo --port 8000 --root-path "/api/mcpo" --api-key "top-secret" -- your_mcp_server_command
mcpo --config /path/to/config.json
Notes on configuration
- You can specify server-type (e.g., "streamable-http", "sse") and a URL for the MCP server.
- A config file can enumerate multiple mcpServers with commands, types, and options.
- Hot-reload can be enabled with
--hot-reloadto watch config changes. - OAuth can be configured per server with an oauth block, including dynamic client registration and tokens storage at
~/.mcpo/tokens/.
Recent releases
Latest release is v0.0.20 (2026-02-27) introducing MCP Connection Manager with Auto-Reconnect to manage MCP client sessions and transports. Other listed changes include added OAuth support for streamable http servers and hot-reload for configuration files.
Traction
mcpo has 4334 stars and 474 forks, with 50 open issues as of the data provided.
Behind the repo
Open Web UI maintains mcpo as a Python MIT-licensed project started in 2025-03-30 and last pushed on 2026-05-17.
Caveats
- License: MIT
- Requirements: Python 3.8+ and uv (recommended for performance)
- Open issues present (50)
- Age: created 2025-03-30; last push 2026-05-17






