Server profile

mcpo MCP Server

mcpo makes MCP tools available through an OpenAPI-compatible HTTP server. It is for agents and applications that consume OpenAPI endpoints rather than communicating with MCP servers directly.

Server facts

mcpo MCP Server

Tech

Runtime / language
pythonPython
Transports
stdio
Remote available
No
Authentication
Not specified

Activity

GitHub stars
4,403
Last commit
Data as of

Tags

  • Http Proxy
  • Mcp To Openapi
  • Open Webui
  • Openapi

Overview

mcpo adapts MCP servers into HTTP interfaces that OpenAPI-aware applications can consume. Instead of requiring the caller to speak MCP, it generates an OpenAPI schema and interactive documentation for the tools exposed by a connected server. The quick-start pattern launches a local MCP command behind the proxy, while other examples connect to existing SSE or Streamable HTTP services. An API-key option protects the HTTP interface in the documented examples. This is especially relevant to Open WebUI and other clients designed around OpenAPI tool servers rather than native MCP connections.

A configuration file can describe multiple upstream servers using a familiar MCP-client structure. Each configured server receives its own route and documentation, and optional hot reload watches for configuration changes. The README also shows filtering disabled tools and supplying headers to an upstream connection. For servers requiring OAuth, mcpo documents OAuth 2.1 support for Streamable HTTP, with dynamic client registration, browser authorization, and file-based or in-memory token storage. Deployment options include uvx, a Python package installation, and Docker. Python 3.8 or newer is required, while uv is recommended rather than mandatory. A configured root path supports reverse-proxy deployments under a subpath. The proxy does not provide a fixed business-tool catalog of its own; the actual operations depend on the MCP servers selected behind it.

Install & configure

Requirements

  • Python 3.8 or newer
  • uv/uvx for this launch method
  • The mcp-server-time upstream used in the documented example
  • An OpenAPI-compatible consumer
Documented launch / install command
uvx mcpo --port 8000 --api-key top-secret -- uvx mcp-server-time --local-timezone=America/New_York

This exact README example proxies the time server to OpenAPI HTTP, not a native MCP HTTP endpoint. Replace the example top-secret API key before real use. Interactive documentation is available at http://localhost:8000/docs.

Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.

A supported configuration example is not available for this client and transport. Check the client documentation for its connection flow; do not substitute an undocumented JSON format.

Read the Claude Desktop setup guide

Config file · Project: .cursor/mcp.json

User: ~/.cursor/mcp.json

The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.

Cursor configuration
{
  "mcpServers": {
    "mcpo": {
      "url": "http://localhost:8000/"
    }
  }
}

Read the Cursor setup guide

Config file · Workspace: .vscode/mcp.json

For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.

VS Code configuration
{
  "servers": {
    "mcpo": {
      "type": "http",
      "url": "http://localhost:8000/"
    }
  }
}

Read the VS Code setup guide

Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json

Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.

Windsurf configuration
{
  "mcpServers": {
    "mcpo": {
      "serverUrl": "http://localhost:8000/"
    }
  }
}

Read the Windsurf setup guide

Config file · Project scope: .mcp.json at the repository root

The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.

Claude Code configuration
{
  "mcpServers": {
    "mcpo": {
      "type": "http",
      "url": "http://localhost:8000/"
    }
  }
}

Read the Claude Code setup guide

Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.

Tools

No individual tool names were confirmed in the source material. Check the repository for its current tool list.

Names, permissions, and defaults can change. Check the current upstream documentation before granting access.

Use cases

  • Use existing MCP tools from an OpenAPI-based application.
  • Connect MCP services to Open WebUI.
  • Serve several upstream servers under individual HTTP routes.
  • Inspect generated interactive documentation for exposed tools.

Strengths

  • Generates OpenAPI schemas and interactive tool documentation.
  • Accepts local stdio, SSE, and Streamable HTTP upstreams.
  • Supports multi-server configuration, hot reload, and upstream OAuth.

Limitations

  • Actual tool availability depends on separately configured MCP servers.
  • The documented OAuth support is limited to Streamable HTTP server types.
  • The sample API key is only an example and needs replacement for a real deployment.

Frequently asked questions

The main purpose is exposing MCP tools through OpenAPI-compatible HTTP so OpenAPI clients can call them.

Yes. The README gives SSE and Streamable HTTP upstream examples, including upstream headers.

Yes. A configuration file can define multiple servers, each with a separate route and schema.

For Streamable HTTP upstreams, mcpo supports OAuth 2.1 with dynamic client registration by default and browser-based authorization.

Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.

Related MCP servers

Supergateway

MCP Gateways & Proxies

Supergateway bridges MCP transports so stdio servers can reach network clients and remote services can appear locally over stdio. It supports SSE, WebSockets, and Streamable HTTP modes through command-line configuration.

Unla MCP Gateway

MCP Gateways & Proxies

Unla is a Go gateway that exposes existing APIs and MCP servers through MCP endpoints using configuration. It includes a management interface, recoverable sessions, multi-tenant support, and deployment options for containers or Kubernetes.

mcp-proxy

MCP Gateways & Proxies

mcp-proxy bridges MCP transport mismatches between clients and servers. It can connect a stdio client to a remote SSE or Streamable HTTP server, or expose local stdio servers through network endpoints.

MCPHub

MCP Gateways & Proxies

Organize multiple MCP servers behind shared HTTP or SSE endpoints. MCPHub adds a management dashboard, group-level visibility controls, semantic routing, authentication, and a terminal interface.

ContextForge

MCP Gateways & Proxies

ContextForge registers and proxies tools, agents, and APIs behind a unified gateway. It targets teams that need discovery, authentication, observability, and policy controls across MCP, A2A, REST, and gRPC services.

MCP Proxy Server

MCP Gateways & Proxies

MCP Proxy Server combines multiple MCP backends behind one HTTP entrypoint. It aggregates tools, prompts, and resources while connecting to stdio, SSE, or streamable HTTP servers.

MCP Hub

MCP Gateways & Proxies

MCP Hub coordinates multiple MCP servers behind one client endpoint. It provides a REST management API and web UI, with server lifecycle controls, authentication handling, and live capability updates.

MCP Link

MCP Gateways & Proxies

MCP Link converts OpenAPI V3 descriptions into MCP interfaces for existing REST APIs. Developers can expose API operations to agents without changing the original implementation and filter which routes are included.