What it does
mcpo is a proxy that exposes Model Context Protocol servers as OpenAPI-compatible HTTP endpoints. Rather than using MCP's raw stdin/stdout communication, mcpo wraps MCP servers in a standard REST interface, making them immediately compatible with OpenAPI-aware applications, LLM agents, and web UIs. It auto-generates interactive OpenAPI documentation and handles authentication, routing, and HTTP standards that the MCP protocol itself does not provide.
Who it's for
Backend engineers and AI application developers who need MCP tools to integrate into OpenAPI-first frameworks and LLM platforms. Teams using Open WebUI or other standardized LLM interfaces that expect HTTP endpoints. Operations teams deploying MCP servers in containerized or cloud environments where stdio process communication is impractical.
Common use cases
- Connect an MCP server like
mcp-server-memoryto Open WebUI or other OpenAPI-first LLM agents. - Publish multiple MCP tools under a single HTTP server using a config file, each with independent OpenAPI documentation and routes.
- Serve MCP tools behind a reverse proxy or under a subpath using
--root-pathfor containerized deployments. - Secure MCP servers that require OAuth 2.1 authentication using dynamic client registration or static client metadata.
Setup pitfalls
- API key is required (
--api-key); every request without a valid key is rejected. - MCP server type must match configuration: stdio commands, SSE endpoints, and Streamable HTTP endpoints require distinct setup. Misconfiguration leaves endpoints unreachable.
- Config file syntax must follow Claude Desktop format; typos in command arrays or server definitions cause startup failures.
- Requires filesystem write access for OAuth token storage (default
storage_type: "file"); switch to"memory"mode for read-only environments, but tokens will be lost on restart.