MCPO

v1.0.0Developer Toolsstable

A simple, secure MCP-to-OpenAPI proxy server

mcpmcp-servermcp-to-openapiopen-webuiopenapi
Share:
4,213
Stars
0
Downloads
0
Weekly
0/5

What is MCPO?

MCPO is a Model Context Protocol (MCP) server that allows AI assistants like Claude, Cursor, and VS Code to simple, secure mcp-to-openapi proxy server

A simple, secure MCP-to-OpenAPI proxy server

This server falls under the Developer Tools category on MCPgee, the world's largest MCP server directory with 33,000+ servers.

Features

  • A simple, secure MCP-to-OpenAPI proxy server

Use Cases

Convert MCP servers to OpenAPI proxy endpoints.
Integrate MCP with Open WebUI applications.
open-webui

Maintainer

LicenseMIT
Languagepython
Versionv1.0.0
UpdatedMay 22, 2026
Statushealthy
Maintenanceactive

Works with

ClaudeOpenAIwindowsmacoslinux

Installation

Manual Installation

npx mcpo

Configuration

Configuration Details

Config File

claude_desktop_config.json

Performance

Response Metrics

Response Time< 200ms
ThroughputMedium

Resource Usage

Memory UsageLow
CPU UsageLow

How to Set Up and Use MCPO

MCPO (MCP-to-OpenAPI proxy) is a lightweight Python server that exposes any MCP tool as a standard RESTful OpenAPI-compatible HTTP endpoint — instantly and with zero glue code. It wraps an MCP server command, proxies its tools as HTTP routes with auto-generated OpenAPI schemas and interactive Swagger UI docs, and adds security, scalability, and broad tool compatibility that raw stdio MCP cannot provide. Teams using Open WebUI, LLM agent frameworks, or any OpenAPI-consuming application who want to integrate MCP tools without custom protocol bridges will find mcpo the simplest path to interoperability.

Prerequisites

  • Python 3.11 or later, with uv or pip available
  • Docker (optional, for the container-based deployment path)
  • At least one MCP server command to proxy (e.g., uvx mcp-server-time, npx @modelcontextprotocol/server-memory)
  • An API key to secure the proxy endpoint (optional but strongly recommended)
1

Install mcpo

Install mcpo via pip or use uvx for zero-config ephemeral execution. uv is the recommended approach for the fastest cold-start.

# Via pip:
pip install mcpo

# Or via uv (no install needed):
uvx mcpo --help
2

Start the proxy for a single MCP server

Pass the MCP server command after -- to start the proxy. Choose a port and optionally set an API key for bearer token authentication.

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

Explore the auto-generated API docs

Open the Swagger UI in your browser. Every MCP tool is exposed as a documented POST endpoint with JSON Schema input/output.

# Interactive docs:
open http://localhost:8000/docs

# Test the API directly:
curl -H "Authorization: Bearer top-secret" \
  http://localhost:8000/get_current_time \
  -d '{"timezone": "America/New_York"}'
4

Serve multiple MCP servers from a config file

Create a config.json in the Claude Desktop mcpServers format and point mcpo at it to serve multiple MCP tools under separate sub-paths from a single proxy.

# Start with config file:
mcpo --config /path/to/config.json

# With hot-reload (watches for config changes):
mcpo --config /path/to/config.json --hot-reload
5

Deploy with Docker

Run mcpo as a container for production deployments. No local Python or MCP dependencies are needed on the host.

docker run -p 8000:8000 ghcr.io/open-webui/mcpo:main \
  --api-key "top-secret" \
  -- uvx mcp-server-time --local-timezone=UTC

MCPO Examples

Client configuration (multi-server config.json)

Example config.json to serve both memory and time MCP servers behind a single mcpo instance:

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

Prompts to try

Example curl commands and integration prompts once mcpo is running:

- curl -H 'Authorization: Bearer top-secret' http://localhost:8000/docs
- curl -X POST -H 'Authorization: Bearer top-secret' http://localhost:8000/get_current_time -d '{"timezone":"UTC"}'
- "Connect Open WebUI to http://localhost:8000 as an OpenAPI tool source"
- "Add the memory tool endpoint http://localhost:8000/memory to your agent framework"
- mcpo --config config.json --hot-reload

Troubleshooting MCPO

MCP server command fails to start under mcpo

Test the MCP server command independently first: run uvx mcp-server-time or npx @modelcontextprotocol/server-memory directly and confirm it starts. Ensure the command is accessible in PATH when mcpo runs, especially inside Docker containers.

401 Unauthorized when calling endpoints

If you started mcpo with --api-key, all requests must include the header Authorization: Bearer <your-key>. Omit --api-key during local development if you want unauthenticated access.

Config file changes are not picked up

Without --hot-reload, mcpo requires a restart to pick up config changes. Start the proxy with mcpo --config config.json --hot-reload to enable automatic reloading when the file is saved.

Frequently Asked Questions about MCPO

What is MCPO?

MCPO is a Model Context Protocol (MCP) server that simple, secure mcp-to-openapi proxy server It connects AI assistants to external tools and data sources through a standardized interface.

How do I install MCPO?

Follow the installation instructions on the MCPO GitHub repository. Clone the repo, install dependencies, and add the server config to your AI client.

Which AI clients work with MCPO?

MCPO works with all major MCP-compatible AI clients including Claude Desktop, Claude Code, Cursor, VS Code (GitHub Copilot), Windsurf, and Cline.

Is MCPO free to use?

Yes, MCPO is open source and available under the MIT license. You can use it freely in both personal and commercial projects.

Browse More Developer Tools MCP Servers

Explore all developer tools servers available in the MCPgee directory. Each server includes setup guides for Claude, Cursor, and VS Code.

Quick Config Preview

{ "mcpServers": { "mcpo": { "command": "npx", "args": ["-y", "mcpo"] } } }

Add this to your claude_desktop_config.json or .cursor/mcp.json

Read the full setup guide →

Ready to use MCPO?

Browse our complete directory of 33,000+ MCP servers, read setup guides for your editor, and start building with the Model Context Protocol.

33,000+ ServersFree & Open SourceStep-by-Step Guides