Docker MCP сервер
MCP-сервер для управления Docker с помощью естественного языка. Позволяет администраторам и разработчикам создавать, инспектировать и управлять контейнерами, образами, сетями и томами без ввода команд вручную.
Установка
Через uv
Установите сервер командой:
uv pip install git+https://github.com/ckreiling/mcp-server-docker
Затем добавьте в конфигурационный файл MCP (например, для Claude Desktop):
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-server-docker": {
"command": "uv",
"args": [
"--directory",
"/path/to/repo",
"run",
"mcp-server-docker"
]
}
}
}
Через Docker
Клонируйте репозиторий и соберите образ:
docker build -t mcp-server-docker .
Добавьте в конфигурацию MCP:
{
"mcpServers": {
"mcp-server-docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"/var/run/docker.sock:/var/run/docker.sock",
"mcp-server-docker:latest"
]
}
}
}
Быстрый старт
После настройки можно использовать промпт docker_compose для описания желаемой конфигурации контейнеров на естественном языке. Например:
name: nginx, containers: "deploy an nginx container exposing it on port 9000"
name: wordpress, containers: "deploy a WordPress container and a supporting MySQL container, exposing WordPress on port 9000"
Сервер входит в цикл «план → применение»: LLM предлагает план, вы его утверждаете или даёте замечания.
Конфигурация
Сервер использует метод from_env из Python Docker SDK. Дополнительные настройки описаны в документации Docker SDK.
Возможности
Ресурсы для каждого контейнера
- Stats: статистика CPU, памяти и т.д.
- Logs: хвост логов контейнера.
Инструменты
Контейнеры:
list_containers, create_container, run_container, recreate_container
start_container, stop_container, remove_container, fetch_container_logs
Образы:
list_images, pull_image, push_image, build_image, remove_image
Сети:
list_networks, create_network, remove_network
Тома:
list_volumes, create_volume, remove_volume
Предупреждения
- Конфиденциальные данные: не указывайте API-ключи, пароли и другие секреты в описании контейнеров — данные, переданные LLM, могут быть скомпрометированы, если модель не работает локально.
- Проверка созданных контейнеров: Docker не является изолированной песочницей; проверяйте создаваемые контейнеры. Сервер не поддерживает
--privileged или --cap-add/--cap-drop. Если нужны такие возможности, создайте issue в репозитории.
Разработка
Для настройки окружения рекомендуется Devbox. Команды для разработки указаны в devbox.json репозитория.
Комментарии
Комментариев пока нет. Будьте первым.