mcpo
An Open WebUI proxy that exposes any MCP server as an HTTP API with an OpenAPI schema
Install
uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_commandOr pip install mcpo. Schema and docs at localhost:8000/docs.
This is third-party code. Review the repository files before installing.
What it does
mcpo starts an MCP server from a given command, or connects to an SSE or streamable HTTP server, and exposes its tools as REST endpoints. Each tool automatically gets an OpenAPI schema and interactive docs. A Claude Desktop style config file can serve several servers on separate paths with hot reload. It supports an API key, OAuth 2.1 for protected servers and running behind a reverse proxy.
Who it is for. For people connecting MCP tools to Open WebUI or apps that only understand OpenAPI.
Good fit when
- You need MCP tools in Open WebUI
- An app or SDK supports OpenAPI but not MCP
- You need network access to a stdio server behind a key
Not a fit when
- Your client already supports MCP natively
- You need MCP features beyond tools, such as resources and prompts
Example request
Run mcpo for the time server so I can connect it to Open WebUILimitations
The proxy exposes over HTTP whatever the MCP server can do, so an API key and network restrictions are a must. It needs Python or uv, or Docker. mcpo itself uses no external services.
How to disable. Stop the mcpo process or container; if installed via pip, remove it with pip uninstall mcpo.
Security check
- Exposes MCP server tools, which may run commands, over the network
- Unsafe without an API key and network restrictions
README in short
The README explains why to bridge MCP to OpenAPI and gives launch commands via uvx, pip and Docker. It covers SSE and streamable HTTP servers, subpath serving, a hot-reload config file and OAuth 2.1. It links to Open WebUI integration docs. MIT licensed.
FAQ
Can I run several servers at once?
Yes, via --config with an mcpServers file; each server gets its own path.
Are remote MCP servers supported?
Yes, via --server-type sse or streamable-http with the server URL.
Related
Open-source personal AI assistant on your own machine: answers in Telegram, Slack, Discord and WhatsApp, extended with skills and plugins
A self-improving agent from Nous Research with a TUI, messaging gateway, cron jobs and skills it writes itself
An open source coding agent for the terminal and desktop with build and plan modes
Anthropic's coding agent for the terminal, IDE and GitHub: understands your codebase, runs tasks and handles git