Most MCP servers are stdio programs a client launches; anything that is not a desktop client - a web app, a script, a service - cannot use them. Fronting them with an HTTP proxy that also generates OpenAPI specifications turns a pile of local servers into something ordinary software can call, which is a different capability from just running them all at once.
An orchestrator. You describe your servers in a Compose-style YAML file, and it runs them as containers or processes and puts an HTTP proxy in front, translating stdio servers into HTTP endpoints along the way.
- One YAML file declaring every server, its protocol, command, arguments, capabilities, volumes and environment
- Servers started and stopped together or by name, with the usual up, down, restart and status commands
- An HTTP proxy that translates stdio servers to HTTP, so clients that only speak HTTP can reach them
- Docker and Podman both supported natively
- Session management and connection pooling for clients sharing the proxy
- A built-in dashboard for monitoring, and generated OpenAPI specifications for the servers behind it
Go and make to build, then put the binary on your PATH. An interactive init writes a starting configuration, or you write mcp-compose.yaml yourself. Start the servers with up, then run the proxy on a port of your choosing - the examples use 9876 - and check it with a request to the proxy's server listing. Any keys your servers need are passed through the environment as they would be in Docker Compose. The licence is AGPL-3.0.
Run a container — pull the image and point your client at it
