{"name":"mcpo: A Simple, Secure MCP-to-OpenAPI Proxy Server","description":"mcpo is a dead-simple proxy server that transforms any Model Context Protocol (MCP) tool into an OpenAPI-compatible HTTP server. This allows seamless integration of MCP tools with LLM agents and applications that expect standard RESTful OpenAPI interfaces, eliminating the need for custom protocols or complex glue code. It enhances security, stability, and interoperability for AI tools, making them instantly usable with modern web standards.","github":"https://github.com/open-webui/mcpo","url":"https://osrepos.com/repo/open-webui-mcpo","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/open-webui-mcpo","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/open-webui-mcpo.md","json":"https://osrepos.com/repo/open-webui-mcpo.json","topics":["mcp","openapi","proxy","python","ai","llm","api-gateway","open-webui"],"keywords":["mcp","openapi","proxy","python","ai","llm","api-gateway","open-webui"],"stars":null,"summary":"mcpo is a dead-simple proxy server that transforms any Model Context Protocol (MCP) tool into an OpenAPI-compatible HTTP server. This allows seamless integration of MCP tools with LLM agents and applications that expect standard RESTful OpenAPI interfaces, eliminating the need for custom protocols or complex glue code. It enhances security, stability, and interoperability for AI tools, making them instantly usable with modern web standards.","content":"## Introduction\n\nmcpo is a powerful yet simple proxy server designed to expose any Model Context Protocol (MCP) tool as an OpenAPI-compatible HTTP server. This innovation allows your MCP tools to \"just work\" with Large Language Model (LLM) agents and applications that expect standard RESTful OpenAPI interfaces, removing the need for custom protocols, glue code, or complex integrations.\n\n## Why Use mcpo?\n\nNative MCP servers often communicate over raw stdio, which presents several challenges, including inherent insecurity, incompatibility with most modern tools, and a lack of standard features like documentation, authentication, and robust error handling. mcpo addresses these issues effectively and without extra effort:\n\n*   **Instant Compatibility**: Works immediately with OpenAPI tools, SDKs, and user interfaces.\n*   **Enhanced Security and Stability**: Adds security, stability, and scalability by leveraging trusted web standards.\n*   **Auto-Generated Documentation**: Automatically generates interactive documentation for every tool, requiring no configuration.\n*   **Pure HTTP**: Utilizes pure HTTP, avoiding complex sockets, glue code, or unexpected behaviors.\n\nmcpo transforms what might seem like an extra step into a streamlined process with superior outcomes, making your AI tools usable, secure, and interoperable right now.\n\n## Installation\n\nWe recommend using `uv` for lightning-fast startup and zero configuration. If you prefer, `pip` is also an option.\n\n**Using `uv` (recommended):**\n\nbash\nuvx mcpo --port 8000 --api-key \"top-secret\" -- your_mcp_server_command\n\n\n**Using `pip`:**\n\nbash\npip install mcpo\nmcpo --port 8000 --api-key \"top-secret\" -- your_mcp_server_command\n\n\n**Via Docker:**\n\nYou can also run mcpo via Docker with no local installation:\n\nbash\ndocker run -p 8000:8000 ghcr.io/open-webui/mcpo:main --api-key \"top-secret\" -- your_mcp_server_command\n\n\n## Examples\n\n**Basic Usage:**\n\nTo expose a simple MCP server, like `mcp-server-time`:\n\nbash\nuvx mcpo --port 8000 --api-key \"top-secret\" -- uvx mcp-server-time --local-timezone=America/New_York\n\n\nYour MCP tool will then be available at `http://localhost:8000` with a generated OpenAPI schema, testable live at `http://localhost:8000/docs`.\n\n**Serving SSE-compatible MCP Servers:**\n\nbash\nmcpo --port 8000 --api-key \"top-secret\" --server-type \"sse\" -- http://127.0.0.1:8001/sse\n\n\n**Serving Streamable HTTP-compatible MCP Servers:**\n\nbash\nmcpo --port 8000 --api-key \"top-secret\" --server-type \"streamable-http\" -- http://127.0.0.1:8002/mcp\n\n\n**Using a Configuration File:**\n\nYou can serve multiple MCP tools using a single configuration file. Enable hot-reload mode with `--hot-reload` to automatically watch your config file for changes.\n\nbash\nmcpo --config /path/to/config.json --hot-reload\n\n\nExample `config.json`:\n\n\n{\n  \"mcpServers\": {\n    \"memory\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-memory\"]\n    },\n    \"time\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcp-server-time\", \"--local-timezone=America/New_York\"]\n    }\n  }\n}\n\n\nEach tool will be accessible under its own unique route, e.g., `http://localhost:8000/memory` and `http://localhost:8000/time`, each with a dedicated OpenAPI schema and proxy handler.\n\n## Links\n\n*   **GitHub Repository**: [open-webui/mcpo](https://github.com/open-webui/mcpo){target=\"_blank\"}\n*   **Open WebUI Integration Docs**: [OpenAPI Servers with Open WebUI](https://docs.openwebui.com/openapi-servers/open-webui/){target=\"_blank\"}","metrics":{"detailViews":6,"githubClicks":3},"dates":{"published":null,"modified":"2026-03-04T17:01:13.000Z"}}