A Dockerized proxy to expose any MCP (Master Control Program) server as a standard OpenAPI interface, enabling integration with LLMs and other developer tools.
This project is powered by mcpo and secured with Bearer token authentication.
This proxy allows Large Language Models (LLMs) and other developer tools to interact with OpenAPI-compliant endpoints, enabling a wide range of automation and integration possibilities.
- Compatibility: Makes non-standard MCP APIs compatible with the vast ecosystem of OpenAPI tools, such as code generators, testing frameworks, and API explorers.
- LLM Integration: Enables LLMs to understand and interact with your APIs for tasks like automated testing, data retrieval, and complex workflow execution. An example of this is with OpenWebUI, which can use this proxy to give its LLMs tools to interact with the real world.
- Simplified Authentication: Abstracts complex authentication mechanisms behind a simple, unified Bearer token, simplifying client-side code.
- Standardization: Presents a consistent, predictable API interface, regardless of the underlying MCP implementation.
- OpenAPI Transformation: Converts an MCP into a standard OpenAPI specification.
- Secure Authentication: Automatically generates a secure Bearer token on startup.
- Dockerized: Easy to deploy and manage with Docker Compose.
- Customizable: Supports custom Bearer tokens and flexible configuration.
- Docker and Docker Compose
- Access to an MCP server with API credentials
-
Configure API Access: Copy the
template.config.jsontoconfig.json:cp template.config.json config.json
Edit
config.jsonto point to your MCP server and include the necessary authentication headers. Seeexample.config.jsonfor an Armis integration example. -
Start the Proxy Service:
docker compose up -d
-
Retrieve the Bearer Token: The authentication token is saved in the
./.mcpodirectory. To view it, run:./show-token.sh
- API Endpoint:
http://localhost:8100/<your-mcp-server-name> - OpenAPI Docs:
http://localhost:8100/docs
Use the API endpoint and the generated Bearer token to interact with your MCP server.
- API Key: The
config.jsonfile contains your API key and is ignored by Git. Keep this file secure. - Bearer Token: A new, secure token is generated each time the container starts and stored in the
./.mcpodirectory. For production, consider using a long-lived token by settingMCPO_BEARER_TOKENindocker-compose.yml. - Network: The service is exposed on
0.0.0.0:8100. For production, restrict access to trusted IPs or place it behind a reverse proxy with TLS.
- View Logs:
docker logs mcpo-proxy - Restart Service:
docker compose restart(generates a new token) - Stop Service:
docker compose down