mcp-server-docker
# mcp-server-docker
[](https://www.npmjs.com/package/mcp-docker-server)
[](https://www.npmjs.com/package/mcp-docker-server)
[](https://github.com/ofershap/mcp-server-docker/actions/workflows/ci.yml)
[](https://www.typescriptlang.org/)
[](https://opensource.org/licenses/MIT)
[](https://agent-plugins.org)
Control Docker containers, images, and services from your AI coding assistant. List, start, stop, read logs, run commands inside containers, and check resource usage.
```bash
npx mcp-docker-server
```
> Compatible with Claude Desktop, Cursor, VS Code Copilot, and any MCP-compatible client. No API keys needed. Connects to your local Docker socket automatically.
<p align="center">
<a href="https://cursor.com/en/install-mcp?name=docker&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIm1jcC1kb2NrZXItc2VydmVyIl19"><img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Install in Cursor" height="32" /></a>
<a href="vscode:mcp/install?%7B%22name%22%3A%22docker%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22mcp-docker-server%22%5D%7D"><img src="https://img.shields.io/badge/Add_to_VS_Code-007ACC?style=for-the-badge&logo=visualstudiocode&logoColor=white" alt="Add to VS Code" /></a>
</p>

<sub>Demo built with <a href="https://github.com/ofershap/remotion-readme-kit">remotion-readme-kit</a></sub>
## Why
If you work with Docker daily, you know the routine: switch to a terminal, type `docker ps`, scroll through logs, copy container IDs, restart services. It adds up. This MCP server lets your AI assistant handle those tasks for you while you stay focused on code. Ask it to check which containers are running, pull up logs from a failing service, or restart something that got stuck. It talks to Docker's API through the local socket, so there's nothing to configure and no credentials to manage.
## Tools
| Tool | What it does |
| ------------------- | ------------------------------------------------------------------- |
| `list_containers` | List running (or all) containers with status, ports, and image info |
| `container_logs` | Get recent logs from a container |
| `start_container` | Start a stopped container |
| `stop_container` | Stop a running container |
| `restart_container` | Restart a container |
| `remove_container` | Remove a container (with optional force) |
| `exec_command` | Execute a command inside a running container |
| `container_stats` | Get live CPU, memory, and network stats |
| `list_images` | List all Docker images on the host |
| `remove_image` | Remove a Docker image |
## Quick Start
### Cursor
Add to `.cursor/mcp.json`:
```json
{
"mcpServers": {
"docker": {
"command": "npx",
"args": ["-y", "mcp-docker-server"]
}
}
}
```
### Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"docker": {
"command": "npx",
"args": ["-y", "mcp-docker-server"]
}
}
}
```
### VS Code
Add to user settings or `.vscode/mcp.json`:
```json
{
"mcp": {
"servers": {
"docker": {
"command": "npx",
"args": ["-y", "mcp-docker-server"]
}
}
}
}
```
## Examples
- "List all running Docker containers"
- "Show me the logs from the nginx container"
- "Restart the api-server container"
- "What's the CPU and memory usage of my postgres container?"
- "Execute `ls -la /app` inside the web container"
- "List all Docker images and their sizes"
- "Stop all containers that are using the old image"
## Prerequisites
- **Docker** must be running on your machine
- The server connects to the Docker socket at `/var/run/docker.sock` (Linux/macOS) or the named pipe on Windows
- No API keys or tokens required
## Agent Plugins
This repo is an [Agent Plugins](https://agent-plugins.org) 1.0.0 package: `plugin.json`, portable `mcp.json`, and `skills/` ship together with the MCP server.
For Cursor, clone the repo and copy or symlink it to `~/.cursor/plugins/local/mcp-server-docker`, then reload the window. Skills and MCP show up under Customize > Plugins.
The Cursor and VS Code install buttons above still work: they add the same `npx -y mcp-docker-server` stdio server as manual JSON.
## FAQ
### What is mcp-docker-server?
The npm package for this MCP server (repo name `mcp-server-docker`). It talks to your local Docker socket to list containers, tail logs, exec commands, and manage images.
### Do I need Docker Desktop running?
Yes. The daemon must be up and the MCP process must reach `docker.sock` (or the Windows named pipe).
### Is this safe for production containers?
Treat stop/remove/restart as destructive. Confirm with the user before changing production workloads.
### Can I install it as an Agent Plugin in Cursor?
Yes. Use `~/.cursor/plugins/local/mcp-server-docker` so the bundled `docker-management` skill loads with the MCP config.
### Do I need API keys?
No. Only local Docker access.
## Development
```bash
git clone https://github.com/ofershap/mcp-server-docker.git
cd mcp-server-docker
npm install
npm test
npm run build
```
## See also
More MCP servers and developer tools on my [portfolio](https://gitshow.dev/ofershap).
## Author
[](https://gitshow.dev/ofershap)
[](https://linkedin.com/in/ofershap)
[](https://github.com/ofershap)
---
<sub>README built with [README Builder](https://ofershap.github.io/readme-builder/)</sub>
## License
MIT © 2026 Ofer Shapira
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose targeting specific Docker operations: logs, stats, exec, listing containers/images, removal, restart, start, and stop. There is no overlap or ambiguity between tools, as each handles a unique action on a well-defined resource.
All tool names follow a consistent verb_noun pattern with snake_case (e.g., list_containers, remove_image, start_container). The naming is predictable and uniform across all tools, making them easily readable and systematic.
With 10 tools, the server is well-scoped for Docker management, covering essential operations like lifecycle control (start, stop, restart), inspection (logs, stats, list), and cleanup (remove). Each tool earns its place without redundancy or bloat.
The toolset provides strong coverage for core Docker workflows, including CRUD-like operations for containers and images. A minor gap exists in creating or building images (e.g., build_image or pull_image), but agents can still perform most common tasks effectively with the available tools.