task_scheduler_create_taskLABSCO SUMMARY
The stdio-to-HTTP translation is what earns the extra process.
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.
What it is
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.
What you get
- 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
Requirements
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.
Setup effort
Build from source — git clone https://github.com/phildougherty/mcp-compose.git
USE CASES
Running a fixed set of servers as one unit
Declare them all in the YAML file and bring them up together, rather than configuring each in each client.
Calling an MCP server from something that is not a chat client
Run the proxy and use the generated OpenAPI specification, so a normal HTTP client can reach a stdio server.
Sharing servers between several users or clients
Let the proxy handle sessions and pool the connections instead of every client spawning its own process.
Seeing what is actually running
Check status from the command line or open the built-in dashboard for monitoring.
8 tools
Listed in project docs. Your client may show a different list.
task_scheduler_list_taskstask_scheduler_get_tasktask_scheduler_pause_tasktask_scheduler_resume_tasktask_scheduler_delete_tasktask_scheduler_update_scheduletask_scheduler_run_nowBEFORE YOU INSTALL
What to know first
Tools you get
8 tools named in the project's documentation.
Requires
- Docker 20.10+
- Go 1.19+
INSTALLATION
Connect your client
Server setup
git clone https://github.com/phildougherty/mcp-compose.git
cd mcp-compose
make build
# Add to PATH
sudo cp build/mcp-compose /usr/local/bin/
# OR
export PATH="$PWD/build:$PATH"MCP Clients
Claude Desktop
mcp-compose create-config --type claude --output ./claude-config