Skip to main content
Glama

🐋 Docker MCP-сервер

MCP-сервер для управления Docker с помощью естественного языка!

🪩 Что он может делать?

  • 🚀 Создавайте контейнеры на естественном языке

  • 🔍 Самоанализ и отладка запущенных контейнеров

  • 📀 Управляйте постоянными данными с помощью томов Docker

Related MCP server: ChatGPT MCP Server

❓ Для кого это?

  • Администраторы серверов: подключаются к удаленным серверам 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:

"mcpServers": { "mcp-server-docker": { "command": "uvx", "args": [ "mcp-server-docker" ] } }

Чисто для удобства сервер может работать в контейнере 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 как том; это гарантирует, что сервер MCP сможет подключаться к локальному демону Docker и управлять им.

📝 Подсказки

🎻 docker_compose

Используйте естественный язык для создания контейнеров. Демонстрацию см. выше .

Укажите название проекта и описание желаемых контейнеров, а остальное пусть сделает LLM.

Это приглашение инструктирует LLM войти в цикл plan+apply . Ваше взаимодействие с LLM будет включать следующие шаги:

  1. Вы даете LLM инструкции о том, какие контейнеры следует поднять

  2. LLM составляет краткий план естественного языка и представляет его вам

  3. Вы либо:

    • Применить план

    • Предоставьте обратную связь 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:

"mcpServers": { "mcp-server-docker": { "command": "uvx", "args": [ "mcp-server-docker" ], "env": { "DOCKER_HOST": "ssh://myusername@myhost.example.com" } } }

💻 Развитие

Для настройки среды разработки предпочтительнее использовать Devbox.

Полезные команды разработки см. в devbox.json .

После настройки devbox вы можете настроить конфигурацию Claude MCP для его использования:

"docker": { "command": "/path/to/repo/.devbox/nix/profile/default/bin/uv", "args": [ "--directory", "/path/to/repo/", "run", "mcp-server-docker" ] },
-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ckreiling/mcp-server-docker'

If you have feedback or need assistance with the MCP directory API, please join our Discord server