Our take
- Activity
- 35
- Community
- 55
- Issues
- 21
- Pull requests
- 20
+25 stars in the last 30 days
Project history
Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.
Stars
4,428Forks
511Change since Nov 14, 2026: +1 stars·0 forks
Overview
mcpo is a Python proxy that exposes tools from MCP servers through HTTP endpoints described by OpenAPI. It addresses the compatibility gap between MCP servers, which commonly communicate over stdio, and clients that work with REST APIs and OpenAPI schemas.
Use it when you want to connect MCP tools to an OpenAPI-based application or UI without writing a custom adapter. It supports command-launched servers as well as SSE and Streamable HTTP connections, and can serve multiple configured tools from one process.
Key Features
- Wraps MCP tools as HTTP endpoints with generated OpenAPI schemas and interactive documentation.
- Supports MCP servers launched as local commands.
- Connects to SSE and Streamable HTTP MCP servers.
- Provides API-key protection for the proxy.
- Serves multiple servers from a config file, with optional hot reload.
- Supports OAuth 2.1 for Streamable HTTP servers.
- Can be mounted under a reverse-proxy subpath using a root path.
Use Cases
- An AI application developer can expose an existing MCP tool to a client that accepts OpenAPI APIs.
- A team integrating MCP tools with Open WebUI can use HTTP endpoints and generated docs instead of building a protocol adapter.
- An operator can consolidate several configured MCP servers behind one proxy for easier access.
- A developer can inspect and test tool endpoints through generated interactive documentation.
Getting Started
Install and launch a command-based MCP server with uvx:
uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command
The proxy serves generated documentation at http://localhost:8000/docs. See the README for installation options, server configuration, and authentication details.
Alternatives
- mcp-gateway: It unifies MCP servers and REST APIs behind one gateway with on-demand tool discovery, rather than exposing MCP tools as generated REST APIs with OpenAPI docs.
- magictunnel: It offers a single natural-language tool for discovering and invoking MCP tools, rather than generating REST endpoints and OpenAPI documentation.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| mcpo | Python | MIT | 4.4k | Not checked yet |
| mcp-gateway | Rust | Other | 78 | Active |
| magictunnel | Rust | – | 259 | Inactive |
Considerations
- mcpo is a proxy layer, not an MCP server or a replacement for the tools themselves. You must provide or configure an MCP server.
- Python 3.8 or newer is required;
uvis optional. - OAuth support is documented for Streamable HTTP servers, so do not assume it applies to every connection type.
- Exposing tools over HTTP changes how they are accessed. Configure authentication and network access appropriately for your deployment.
Found this useful?
Share it with someone who would like mcpo.