← Back to directory
M

MCPO

Official
Gateway / proxy
Expose MCP tools as OpenAPI services instantly.

This gateway aggregates or proxies other MCP servers; it only becomes useful once you connect real servers behind it.

Category
Dev Tools #219 of 438
Stars
★ 4.4k Very popular
Transport
stdio (local process) · SSE · Streamable HTTP
Runtime
Python 3.8+ · Docker
Credentials
Optional API key
License
MIT
Last commit
⚠
53FMRS · D

mcpo converts MCP tools into OpenAPI-compatible HTTP services and supports stdio, SSE, and Streamable HTTP. It also provides generated documentation, multi-server configuration, hot reload, and OAuth 2.1 support for Streamable HTTP servers.

Strongest · Setup experience 13/20 Weakest · Reliability 8/20

Reliability
8/20
Security and permissions
8/20
Maintenance
11/20
Documentation
13/20
Setup experience
13/20
Why each score
Reliability 8/20
The README presents plausible startup and proxy paths for uv, pip, Docker, stdio, SSE, Streamable HTTP, and configuration files, and it names a test command. However, no cached manifest, source code, CI workflow, or test contents are provided, so MCP initialization, tool-list behavior, error handling, dependency control, and edge cases cannot be verified. The static calibration therefore requires a restrained score.
Security and permissions 8/20
The README documents API keys, OAuth 2.1, SSE headers, and token storage, showing basic authentication awareness; the example value top-secret is a placeholder rather than a real credential. However, the proxy can launch arbitrary MCP commands and connect to external HTTP endpoints, while the supplied evidence does not verify least privilege, credential protection, data isolation, dangerous-tool confirmation, network restrictions, or token file permissions. Security claims are not backed by reviewable source evidence, so points are deducted.
Maintenance 11/20
The repository is not archived, declares an MIT license, and shows community activity signals through stars and open issues. The supplied material does not provide release history, versioning, commits, maintainer response evidence, dependency update policy, or a security vulnerability response channel. Stars are discovery signals only and do not add points, so this receives a moderate score.
Documentation 13/20
The README covers installation, stdio/SSE/Streamable HTTP, Docker, API keys, subpaths, multi-server configuration, hot reload, OAuth, development, and testing, with several examples. Points are deducted because concrete tool parameters and behavior, limits, costs, troubleshooting, and security boundaries are not documented; the configuration example contains comments and is not strict JSON; and key implementation claims cannot be reviewed from source files.
Setup experience 13/20
uvx, pip, and Docker installation paths are provided, along with local command, SSE, Streamable HTTP, API-key, configuration-file, and Open WebUI integration guidance. The score is reduced because there is no complete, reviewable mainstream-client configuration example, OAuth requires browser callback and external-server setup, and no source, CI, or committed test evidence verifies platform compatibility or key paths.

Static review · not runListed 2026-07-30

Read the FMRS scoring method →

Fit and risk

What it can accessUses the network

Best for

  • LLM applications and developers that need MCP tools over HTTP
  • Teams using OpenAPI tools, SDKs, or UIs
  • Deployments requiring multi-server configuration, hot reload, or OAuth 2.1

Not for

  • Clients that only need direct native MCP stdio communication
  • Deployments unwilling to manage API keys, network ports, or proxy security
  • Other protocols or integrations not documented in the source

Required permissions

  • It must execute the specified MCP server command or connect to the specified SSE or Streamable HTTP endpoint
  • It must listen on the configured HTTP port
  • OAuth 2.1 may require browser authorization, a callback port, and, with file storage, write access to ~/.mcpo/tokens/

Risks and side effects

  • The exposed HTTP service should use an API key; the README demonstrates API keys as startup arguments
  • The proxy makes MCP tools available to callers that can reach the HTTP service, so port and reverse-proxy settings require care
  • OAuth tokens may be stored under ~/.mcpo/tokens/; protect that directory in deployment
  • Commands, endpoints, and headers in the configuration affect proxy targets and credentials

Setup

Before you start

Runtime:Python 3.8+ · Docker

With uvx, run: uvx mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command. Alternatively, install with pip install mcpo and run mcpo, or use the Docker image ghcr.io/open-webui/mcpo:main. After startup, visit http://localhost:8000/docs. Multiple servers can be run from a Claude Desktop-format configuration file with mcpo --config /path/to/config.json; add --hot-reload when needed.

Check that it works

Run uvx mcpo --port 8000 -- your_mcp_server_command, then open http://localhost:8000/docs; if auto-generated interactive OpenAPI docs appear and tools are callable, the proxy is working.

Troubleshooting

  1. Verify that Python 3.8 or newer is available
  2. Verify that the MCP server command is executable and the port is available
  3. For SSE, use --server-type sse and check the endpoint and headers
  4. For Streamable HTTP, use --server-type streamable-http and check the endpoint
  5. Inspect the generated documentation at /docs or /<tool>/docs
  6. When serving under a subpath, set the matching --root-path
  7. For OAuth failures, check server_url, the callback port, and support for dynamic client registration

Things to try

Once connected, you can ask your AI assistant things like:

  • Start mcp-server-time through mcpo and confirm the OpenAPI docs appear at http://localhost:8000/docs
  • Use a --config file in Claude Desktop format to proxy the memory and time MCP servers together
  • Proxy an SSE-type MCP server into a RESTful OpenAPI endpoint with an Authorization header via mcpo
  • Open the interactive API docs at http://localhost:8000/memory/docs and test a tool call

Use cases

Expose stdio-based MCP tools as standard HTTP/OpenAPI services
Provide MCP tools to OpenAPI tools, SDKs, and user interfaces
Proxy SSE or Streamable HTTP MCP servers
Serve multiple MCP tools with separate routes and interactive documentation

Supported clients

Open WebUI

Listed from the project's documentation, not tested by this site.

Overview

mcpo is a simple, secure MCP-to-OpenAPI proxy server. It accepts an MCP server command or an SSE or Streamable HTTP endpoint, exposes its tools over standard RESTful HTTP, and automatically generates an OpenAPI schema with interactive documentation.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 63.3k · Tools 2 Compare with this →

Source revision 788ff92e5288 Data synced 2026-10-19 Read the FMRS scoring method