An MCP (Model Context Protocol) server that enables Claude to manage Docker Compose containers on your local machine.
- Update containers: Stop, pull latest images, and restart containers in one command
- Run any docker compose command: Execute arbitrary docker compose commands
- Safe error handling: Graceful error handling with detailed feedback
- Install dependencies:
npm install- Build the TypeScript code:
npm run buildAdd this to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"docker-compose": {
"command": "node",
"args": [
"/absolute/path/to/docker-compose-mcp-server/dist/index.js"
]
}
}
}Replace /absolute/path/to/docker-compose-mcp-server with the actual path where you saved this project.
Once configured, you can interact with Docker Compose through Claude:
"Update my chemdraw containers at /Users/matt/Documents/chemdraw-js/chemdraw-js-compose.yml"
"Show me the status of my docker containers in /Users/matt/Documents/chemdraw-js/chemdraw-js-compose.yml"
"Show me the logs from my docker containers"
"Restart the containers in my compose file"
Updates Docker Compose containers by:
- Stopping running containers (
docker compose down) - Pulling latest images (
docker compose pull) - Starting containers (
docker compose up -d)
Parameters:
compose_file(string, required): Absolute path to the docker-compose.yml filedetached(boolean, optional): Run in detached mode (default: true)
Execute any docker compose command.
Parameters:
compose_file(string, required): Absolute path to the docker-compose.yml filecommand(string, required): Docker compose command to run (e.g., "ps", "logs", "restart")
This MCP server executes docker commands with the permissions of the user running Claude Desktop. Ensure you:
- Only use trusted compose files
- Understand the commands being executed
- Review Claude's suggested commands before confirming destructive operations
Watch mode for development:
npm run devMake sure Docker is installed and in your PATH. Test by running docker --version in your terminal.
Ensure your user has permission to run Docker commands. On Linux, you may need to add your user to the docker group.
Make sure you've run npm run build before starting the server.
MIT