🐋 Docker MCP-сервер
MCP-сервер для управления Docker с помощью естественного языка!
🪩 Что он может делать?
- 🚀 Создавайте контейнеры на естественном языке
- 🔍 Самоанализ и отладка запущенных контейнеров
- 📀 Управляйте постоянными данными с помощью томов Docker
❓ Для кого это?
- Администраторы серверов: подключаются к удаленным серверам Docker, например, для управления общедоступным веб-сайтом.
- Мастера своего дела: запускайте контейнеры локально и экспериментируйте с приложениями с открытым исходным кодом, поддерживающими Docker.
- Энтузиасты ИИ: расширьте границы возможностей LLM!
Демо
Краткая демонстрация развертывания WordPress с использованием естественного языка:
https://github.com/user-attachments/assets/65e35e67-bce0-4449-af7e-9f4dd773b4b3
🏎️ Быстрый старт
Установить
Клод Десктоп
В MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
В Windows: %APPDATA%/Claude/claude_desktop_config.json
Если у вас не установлен uv
, следуйте инструкциям по установке для вашей системы: ссылка
Затем добавьте следующее в файл вашего сервера MCP:
Чисто для удобства сервер может работать в контейнере Docker.
После клонирования этого репозитория создайте образ Docker:
Затем добавьте следующее в файл вашего сервера MCP:
Обратите внимание, что мы монтируем сокет Docker как том; это гарантирует, что сервер MCP сможет подключаться к локальному демону Docker и управлять им.
📝 Подсказки
🎻 docker_compose
Используйте естественный язык для создания контейнеров. Демонстрацию см. выше .
Укажите название проекта и описание желаемых контейнеров, а остальное пусть сделает LLM.
Это приглашение инструктирует LLM войти в цикл plan+apply
. Ваше взаимодействие с LLM будет включать следующие шаги:
- Вы даете LLM инструкции о том, какие контейнеры следует поднять
- LLM составляет краткий план естественного языка и представляет его вам
- Вы либо:
- Применить план
- Предоставьте обратную связь LLM, и LLM пересчитает план
Примеры
- имя:
nginx
, контейнеры: «развернуть контейнер nginx, открыв его на порту 9000» - имя:
wordpress
, контейнеры: «развернуть контейнер WordPress и поддерживающий его контейнер MySQL, предоставляя Wordpress на порту 9000»
Возобновление проекта
При запуске нового чата с помощью этого приглашения LLM получит статус всех контейнеров, томов и сетей, созданных с указанным name
проекта.
Это в основном полезно для очистки, в случае если вы потеряете чат, который отвечал за множество контейнеров.
📔 Ресурсы
Сервер реализует несколько ресурсов для каждого контейнера:
- Статистика: ЦП, память и т. д. для контейнера
- Журналы: некоторые журналы из контейнера
🔨 Инструменты
Контейнеры
list_containers
create_container
run_container
recreate_container
start_container
fetch_container_logs
stop_container
remove_container
Изображения
list_images
pull_image
push_image
build_image
remove_image
Сети
list_networks
create_network
remove_network
Объемы
list_volumes
create_volume
remove_volume
🚧 Отказ от ответственности
Конфиденциальные данные
НЕ НАСТРАИВАЙТЕ КОНТЕЙНЕРЫ С КОНФИДЕНЦИАЛЬНЫМИ ДАННЫМИ. Это включает в себя ключи API, пароли баз данных и т. д.
Любые конфиденциальные данные, передаваемые с помощью LLM, по сути скомпрометированы, если только LLM не запущен на вашем локальном компьютере.
Если вы заинтересованы в безопасной передаче секретов в контейнеры, отправьте запрос в этот репозиторий с описанием вашего варианта использования.
Просмотр созданных контейнеров
Будьте внимательны при просмотре контейнеров, которые создает LLM. Docker не является безопасной песочницей, и поэтому сервер MCP может потенциально влиять на хост-машину через Docker.
Из соображений безопасности этот сервер MCP не поддерживает чувствительные параметры Docker, такие как --privileged
или --cap-add/--cap-drop
. Если эти функции вас интересуют, отправьте запрос в этот репозиторий с вашим вариантом использования.
🛠️ Конфигурация
Этот сервер использует метод from_env
Python Docker SDK. Подробности конфигурации см. в документации .
Подключитесь к Docker через SSH
Этот сервер MCP может подключаться к удаленному демону Docker по протоколу SSH.
Просто укажите URL-адрес хоста ssh://
в определении сервера MCP:
💻 Развитие
Для настройки среды разработки предпочтительнее использовать Devbox.
Полезные команды разработки см. в devbox.json
.
После настройки devbox вы можете настроить конфигурацию Claude MCP для его использования:
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Сервер MCP, позволяющий управлять контейнерами Docker с помощью естественного языка, что позволяет пользователям составлять, анализировать и отлаживать контейнеры без самостоятельного запуска команд.
- 🪩 Что он может делать?
- ❓ Для кого это?
- Демо
- 🏎️ Быстрый старт
- 📝 Подсказки
- 📔 Ресурсы
- 🔨 Инструменты
- 🚧 Отказ от ответственности
- 🛠️ Конфигурация
- 💻 Развитие
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityAn MCP server to run commands.Last updated -2265150TypeScriptMIT License
- AsecurityAlicenseAqualityA powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.Last updated -4160PythonMIT License
- AsecurityAlicenseAqualityA MCP server for managing and storing code snippets in various programming languages, allowing users to create, list, and delete snippets via a standardized interface.Last updated -34JavaScriptMIT License
- AsecurityFlicenseAqualityAn MCP server implementation that enables interaction with the Unstructured API, providing tools to list, create, update, and manage sources, destinations, and workflows.Last updated -3928