# mcpo: A Simple, Secure MCP-to-OpenAPI Proxy Server

This repository profile is provided by osrepos.com, an open source repository discovery platform.

Source: osrepos.com
Repository profile: https://osrepos.com/repo/open-webui-mcpo
Generated for open source discovery and AI-assisted research.

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
OSRepos URL: https://osrepos.com/repo/open-webui-mcpo

## 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.

## Topics

- mcp
- openapi
- proxy
- python
- ai
- llm
- api-gateway
- open-webui

## Repository Information

Last analyzed by OSRepos: Wed Mar 04 2026 17:01:13 GMT+0000 (Western European Standard Time)
Detail views: 6
GitHub clicks: 3

## Safety Notice

OSRepos shares public repositories for knowledge and discovery only. Review source code, dependencies, licenses, and security implications before running or installing anything.

## Content

## Introduction

mcpo 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.

## Why Use mcpo?

Native 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:

*   **Instant Compatibility**: Works immediately with OpenAPI tools, SDKs, and user interfaces.
*   **Enhanced Security and Stability**: Adds security, stability, and scalability by leveraging trusted web standards.
*   **Auto-Generated Documentation**: Automatically generates interactive documentation for every tool, requiring no configuration.
*   **Pure HTTP**: Utilizes pure HTTP, avoiding complex sockets, glue code, or unexpected behaviors.

mcpo 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.

## Installation

We recommend using `uv` for lightning-fast startup and zero configuration. If you prefer, `pip` is also an option.

**Using `uv` (recommended):**

bash
uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command


**Using `pip`:**

bash
pip install mcpo
mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command


**Via Docker:**

You can also run mcpo via Docker with no local installation:

bash
docker run -p 8000:8000 ghcr.io/open-webui/mcpo:main --api-key "top-secret" -- your_mcp_server_command


## Examples

**Basic Usage:**

To expose a simple MCP server, like `mcp-server-time`:

bash
uvx mcpo --port 8000 --api-key "top-secret" -- uvx mcp-server-time --local-timezone=America/New_York


Your MCP tool will then be available at `http://localhost:8000` with a generated OpenAPI schema, testable live at `http://localhost:8000/docs`.

**Serving SSE-compatible MCP Servers:**

bash
mcpo --port 8000 --api-key "top-secret" --server-type "sse" -- http://127.0.0.1:8001/sse


**Serving Streamable HTTP-compatible MCP Servers:**

bash
mcpo --port 8000 --api-key "top-secret" --server-type "streamable-http" -- http://127.0.0.1:8002/mcp


**Using a Configuration File:**

You 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.

bash
mcpo --config /path/to/config.json --hot-reload


Example `config.json`:


{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "time": {
      "command": "uvx",
      "args": ["mcp-server-time", "--local-timezone=America/New_York"]
    }
  }
}


Each 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.

## Links

*   **GitHub Repository**: [open-webui/mcpo](https://github.com/open-webui/mcpo){target="_blank"}
*   **Open WebUI Integration Docs**: [OpenAPI Servers with Open WebUI](https://docs.openwebui.com/openapi-servers/open-webui/){target="_blank"}