mcpo logo

mcpo

by open-webui

mcpo is a proxy that exposes any MCP tool as an OpenAPI-compatible HTTP server, making it accessible via standard RESTful OpenAPI for use with LLM agents and apps. It eliminates the need for custom protocols and glue code.

View on GitHub

Last updated: N/A

What is mcpo?

mcpo is a dead-simple proxy that transforms MCP server commands into standard RESTful OpenAPI endpoints. This allows MCP tools to be easily integrated with LLM agents and other applications that expect OpenAPI servers.

How to use mcpo?

Install mcpo using pip or uv, or run it via Docker. Then, execute mcpo with the path to your MCP server command, specifying the port and API key. Alternatively, you can use a config file to serve multiple MCP tools.

Key features of mcpo

  • Exposes MCP tools as OpenAPI-compatible HTTP servers

  • Auto-generates interactive documentation

  • Adds security, stability, and scalability using web standards

  • Supports SSE-compatible MCP servers

  • Can be configured via command-line arguments or a config file

Use cases of mcpo

  • Integrating MCP tools with LLM agents

  • Making MCP tools accessible to applications that expect OpenAPI servers

  • Securing and scaling MCP tools

  • Providing interactive documentation for MCP tools

  • Simplifying the deployment and management of MCP tools

FAQ from mcpo

Why use mcpo instead of native MCP?

Native MCP servers usually speak over raw stdio, which is inherently insecure, incompatible with most tools, and missing standard features like docs, auth, and error handling. mcpo solves these problems by exposing MCP tools as standard OpenAPI servers.

How do I specify an API key?

Use the --api-key flag when running mcpo, e.g., mcpo --port 8000 --api-key "top-secret" -- your_mcp_server_command.

Can I serve multiple MCP tools with mcpo?

Yes, you can use a config file to serve multiple MCP tools. Each tool will be accessible under its own unique route.

How do I access the OpenAPI schema?

The OpenAPI schema is automatically generated and can be accessed at http://localhost:8000/docs (or http://localhost:8000/<tool>/docs when using a config file).

What are the requirements for running mcpo?

mcpo requires Python 3.8+ and uv (optional, but highly recommended).