Docker MCP — управление Docker через ИИ-ассистента (Claude)
Docker MCP — это сервер по протоколу Model Context Protocol (MCP), который позволяет управлять Docker-контейнерами и стеками Docker Compose напрямую из Claude Desktop. Вместо ручного ввода команд вы просто описываете словами, что нужно сделать, и ассистент выполняет операцию.
Возможности
- 🚀 Создание и запуск отдельных контейнеров
- 📦 Развёртывание стеков Docker Compose
- 🔍 Получение логов выбранного контейнера
- 📊 Список всех контейнеров с их статусом
Быстрый старт
Чтобы подключить сервер в Claude Desktop, добавьте в файл конфигурации claude_desktop_config.json следующую запись (используется uvx — готовый пакет):
{
"mcpServers": {
"docker-mcp": {
"command": "uvx",
"args": ["docker-mcp"]
}
}
}
Также можно установить автоматически через Smithery:
npx @smithery/cli install docker-mcp --client claude
Где лежит файл конфигурации
- macOS:
~/Library/Application\ Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%/Claude/claude_desktop_config.json
Требования
- UV — менеджер пакетов для Python
- Python 3.12+
- Docker Desktop или Docker Engine
- Claude Desktop
Установка для разработки
Если вы хотите запускать сервер из локальной копии репозитория:
git clone https://github.com/QuantGeekDev/docker-mcp.git
cd docker-mcp
python -m venv venv
source venv/bin/activate # На Windows: venv\Scripts\activate
uv sync
В конфигурацию Claude добавьте:
{
"mcpServers": {
"docker-mcp": {
"command": "uv",
"args": ["--directory", "<путь-к-папке-docker-mcp>", "run", "docker-mcp"]
}
}
}
Отладка
npx @modelcontextprotocol/inspector uv --directory <путь-к-docker-mcp> run docker-mcp
После запуска откроется веб-интерфейс инспектора МСР.
Доступные инструменты
create-container — создать контейнер
{
"image": "nginx:latest",
"name": "my-web",
"ports": { "8080": "80" },
"environment": { "NGINX_HOST": "localhost" }
}
deploy-compose — развернуть стек Docker Compose
{
"project_name": "my-stack",
"compose_yaml": "version: '3.8'\nservices:\n web:\n image: nginx:latest\n ports:\n - '8080:80'"
}
get-logs — получить логи контейнера
{
"container_name": "my-web"
}
list-containers — список всех контейнеров
{}
Ограничения (на данный момент)
- Нет встроенной поддержки переменных окружения для контейнеров
- Нет управления томами (volumes)
- Нет управления сетями
- Нет проверок здоровья (health checks)
- Нет политик перезапуска (restart policies)
- Нет лимитов ресурсов (CPU, память)
Участие в разработке
Форкните репозиторий, создайте ветку с изменениями, отправьте pull request.
Лицензия
MIT
Авторы
- Alex Andru — @QuantGeekDev
- Ali Sadykov — @md-archive
Комментарии
Комментариев пока нет. Будьте первым.