MCP-Compose

by phildougherty

56 282 downloads Not rated yet AGPL-3.0

About

Orchestration tool for managing multiple MCP servers with a Docker Compose-style interface and a unified HTTP proxy.

Details

License
AGPL-3.0

Explore

- Docker Compose-style YAML configuration
- HTTP proxy with automatic protocol translation (STDIO → HTTP)
- Native support for Docker and Podman
- Session management and connection pooling
- Built-in dashboard and monitoring
- OpenAPI spec generation

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name MCP-Compose
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

git clone https://github.com/phildougherty/mcp-compose.git
cd mcp-compose
make build

bash
mcp-compose init

Follow the prompts to create your configuration.

Create mcp-compose.yaml:

yaml
version: '1'
servers:
filesystem:
protocol: stdio
command: npx
args:
- "-y"
- "@modelcontextprotocol/server-filesystem"
- "/tmp"
capabilities: [resources, tools]

Start servers:

bash
mcp-compose up

Start the HTTP proxy:

bash
mcp-compose proxy --port 9876

Test it:

bash
curl http://localhost:9876/api/servers

proxy_auth:
enabled: true
api_key: "${MCP_API_KEY}"

servers:
my-server:
protocol: string # stdio, http, sse
command: string # Executable (e.g., npx, python, node)
args: [string] # Command arguments
capabilities: [string] # tools, resources, prompts, sampling
env: # Environment variables
KEY: value
volumes: # Volume mounts
- "host:container:mode"

In your config:

env:
API_KEY: "${MY_API_KEY}"

In your shell:

export MY_API_KEY="secret"
mcp-compose up

mcp-compose validate

curl -X POST http://localhost:9876/filesystem \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

curl -X POST http://localhost:9876/filesystem \
-H "Content-Type: application/json" \
-d '{
"jsonrpc":"2.0",
"id":1,
"method":"tools/call",
"params":{
"name":"read_file",
"arguments":{"path":"/tmp/test.txt"}
}
}'
```

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mcp-compose": {
            "mcp-compose": {
                "command": "docker",
                "args": [
                    "ps",
                    "-a",
                    "#",
                    "Check",
                    "container",
                    "status"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-compose": {
        "command": "docker",
        "args": [
            "ps",
            "-a",
            "#",
            "Check",
            "container",
            "status"
        ]
    }
}

codecov
Go Report Card
License: AGPL v3
Release

Docker Compose for Model Context Protocol servers. Run multiple MCP servers with unified configuration, HTTP proxy, and container orchestration.

MCP-Compose Demo

Features

- Docker Compose-style YAML configuration
- HTTP proxy with automatic protocol translation (STDIO → HTTP)
- Native support for Docker and Podman
- Session management and connection pooling
- Built-in dashboard and monitoring
- OpenAPI spec generation

Installation

```bash
git clone https://github.com/phildougherty/mcp-compose.git
cd mcp-compose
make build

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.