mcp-server-docker
Provides tools for executing arbitrary commands inside Docker containers, with support for Docker Compose services, secure container allowlists, configurable timeouts, and real-time output capture.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-server-docker run npm test in frontend service"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server: Docker Command Runner
This MCP (Model Context Protocol) server provides a secure interface for running commands inside Docker containers. It acts as a privileged sidecar that can execute arbitrary commands within specified Docker Compose service containers.
Features
STDIO-based MCP transport for integration with Claude and other MCP clients
Execute commands in any Docker Compose service container
Real-time capture of stdout/stderr output
Secure container allowlist configuration
Configurable timeouts for long-running commands
Clear error messages for common Docker issues
Minimal dependencies and secure by design
Related MCP server: MCP Docker Server
Installation
Via NPX (Recommended)
Run the MCP server directly without cloning:
npx mcp-server-dockerOr install globally:
npm install -g mcp-server-docker
mcp-server-dockerAs a Docker Service
Add the following to your docker-compose.yml:
services:
mcp-docker:
build: ./mcp-server-docker
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "3001:3000" # Expose MCP server
environment:
- COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME}
- DEFAULT_SERVICE=app
- COMPOSE_FILE=docker-compose.yml
- PORT=3000
networks:
- your-networkFor Local Development
cd mcp-server-docker
npm install
npm run buildConfiguration
The server accepts the following environment variables:
ALLOWED_CONTAINERS: Comma-separated list of allowed service:container pairs (e.g., "app:myapp_container,db:mydb_container")DEFAULT_SERVICE: Default service to run commands in (default: "laravel_app")COMMAND_TIMEOUT: Command timeout in milliseconds (default: 300000)
MCP Tool: run_command
The server exposes a single tool called run_command:
Input Schema
{
"command": "string (required) - The command to execute",
"service": "string (optional) - Docker service name"
}Example Usage
{
"command": "npm test",
"service": "frontend"
}Response Format
The tool returns the command output with the following structure:
Standard output (if any)
Standard error (if any, prefixed with [stderr])
Exit code
Usage
The server uses STDIO transport for MCP communication. When run with npx mcp-server-docker, it will:
Parse environment variables for allowed containers
Start the MCP server listening on stdin/stdout
Log startup information to stderr
Wait for MCP protocol messages
Security Notes
This server requires access to the Docker socket - ensure Docker is running and accessible
No command filtering is applied - relies on container isolation for security
Commands timeout after 5 minutes by default
Only allowed containers (configured via ALLOWED_CONTAINERS) can be accessed
Development
# Run in development mode
npm run dev
# Build TypeScript
npm run build
# Run tests
npm testTroubleshooting
Common Errors
"Cannot connect to Docker daemon": Ensure Docker is running and the socket is mounted
"Service not found": Check that the service name exists in your docker-compose.yml
"Command timed out": Command exceeded 5-minute timeout, consider breaking it into smaller operations
Available Tools
1 toolrun_commandC
Execute a command inside a Docker container service
Inputs: command (required), service.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusion between tools. The tool's purpose is clear and distinct from any non-existent others.
The single tool name 'run_command' follows a clear verb_noun pattern. With only one tool, there are no inconsistencies to evaluate.
The server is named for Docker but has only one tool, which is clearly too few for Docker-related operations. A single tool feels minimal and restricts the server's utility.
The tool surface is severely incomplete for a Docker server. It only supports running commands inside containers, with no tools for managing containers, images, networks, or volumes. This will cause agent failures in most Docker workflows.
Maintenance
Related MCP Connectors
Linux server administration over OAuth MCP: shell, Docker, systemd, files and monitoring.
Termalin's hosted MCP server. Claude, ChatGPT or any MCP client runs commands, moves files over SFTP, queries databases and reads server metrics and monitoring alerts on your servers, keylessly through Termalin Connectors: no SSH key is handed over and no inbound port is opened. Per-host command policy and an audit log. Needs a termal.in Pro or Team account (new accounts start with a 14-day Pro trial).
Remote.It hosted MCP: inventory devices, open connections, manage services and run scripts.
Deploy services, add databases, run agents, read logs, check vulnerabilities and publish pages.
Related MCP Servers
- AlicenseAqualityFmaintenanceAllows executing shell commands within a secure Docker container through Claude's MCP interface, providing Kubernetes tools and isolated environment without host Docker daemon access.250 npm5MIT
- AlicenseNot gradedqualityDmaintenanceEnables secure Docker command execution from isolated environments like containers through MCP protocol. Provides tools for managing Docker containers, images, and Docker Compose services with security validation and async operation support.MIT
- AlicenseNot gradedqualityDmaintenanceEnables secure execution of shell commands and file operations within isolated Docker containers. Provides process management, interactive input handling, and comprehensive file system operations for containerized development environments.77 npm6MIT
- AlicenseNot gradedqualityDmaintenanceEnables remote Docker management over SSH via a local MCP server, providing tools to manage containers, images, Compose, and system resources.1GPL 3.0