# open-webui/mcpo

A simple, secure MCP-to-OpenAPI proxy server

Repository: https://github.com/open-webui/mcpo
Canonical: https://ross.abutalabs.com/products/mcpo
Homepage: https://docs.openwebui.com/features/plugin/tools/openapi-servers/mcp
Language: Python
License: MIT
License Family: permissive
Topics: mcp, mcp-server, open-webui, openapi, mcp-to-openapi
Last push: 2026-05-17T20:40:30+00:00

## Health v2 (maintenance only)
Score: 70/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 82, release rhythm 72, longevity 37
- inputs: {"age_days": 521, "days_push": 108, "days_rel": 187, "gap_med": 6.5, "n_releases_24m": 15}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4357, forks 487 (observed 2026-08-28T04:08:46.459016+00:00)

## What it is
mcpo is a lightweight Python proxy that takes any MCP (Model Context Protocol) server command and exposes its tools as a standard OpenAPI-compatible REST HTTP server. It auto-generates interactive API docs, adds API-key auth, and supports stdio, SSE, and Streamable HTTP MCP server types, including multi-tool configs via a single file.

## Use cases
- expose an mcp server as a rest api
- convert mcp tools to openapi endpoints
- use mcp servers with openapi clients and sdks
- connect mcp tools to open webui
- add auth and docs to a stdio mcp server
- serve multiple mcp tools behind one proxy with a config file
- run an mcp server in docker as an http service

## When to choose
- Your apps, UIs, or SDKs only speak OpenAPI/REST but the tools you need are MCP servers
- You want Swagger-style interactive docs, API-key auth, and standard HTTP error handling around MCP tools with zero glue code
- You want to run many MCP tools behind one gateway, optionally under a reverse-proxy subpath

## When to avoid
- Your clients already speak native MCP directly over stdio, SSE, or Streamable HTTP and don't need an OpenAPI façade
- You need full MCP protocol features such as streaming or bidirectional sessions that a REST mapping does not preserve
- You are looking for an MCP client or multi-server aggregator rather than a protocol-translating proxy

## Facets
- artifact type: service
- maturity: active
- function: mcp, http-server, api-gateway, auth
- domain: large-language-models, apis, developer-tools
- platform: python, self-hosted, cli, cross-platform
- tags: mcp-proxy, openapi, model-context-protocol, rest-api, tool-server, stdio, sse, open-webui, auto-generated-docs, ai-agents, docker

## Member repositories
- open-webui/mcpo (main) score 70

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:46.459016+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:21:29.439116+00:00, confidence not recorded.
  - readme: https://github.com/open-webui/mcpo (fetched 2026-08-28T04:08:46.459016+00:00, sha f425c489c858)
- Data as of 2026-08-30T08:39:29.467469+00:00.
