Skip to main content
Glama

Docker MCP Server

🐋 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:

"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

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Сервер MCP, позволяющий управлять контейнерами Docker с помощью естественного языка, что позволяет пользователям составлять, анализировать и отлаживать контейнеры без самостоятельного запуска команд.

  1. 🪩 Что он может делать?
    1. ❓ Для кого это?
      1. Демо
        1. 🏎️ Быстрый старт
          1. Установить
        2. 📝 Подсказки
          1. 🎻 docker_compose
        3. 📔 Ресурсы
          1. 🔨 Инструменты
            1. Контейнеры
            2. Изображения
            3. Сети
            4. Объемы
          2. 🚧 Отказ от ответственности
            1. Конфиденциальные данные
            2. Просмотр созданных контейнеров
          3. 🛠️ Конфигурация
            1. Подключитесь к Docker через SSH
          4. 💻 Развитие

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              An MCP server to run commands.
              Last updated -
              2
              265
              150
              TypeScript
              MIT License
              • Apple
            • A
              security
              A
              license
              A
              quality
              A powerful Model Context Protocol (MCP) server for Docker operations, enabling seamless container and compose stack management through Claude AI.
              Last updated -
              4
              160
              Python
              MIT License
              • Apple
            • A
              security
              A
              license
              A
              quality
              A 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 -
              3
              4
              JavaScript
              MIT License
            • A
              security
              F
              license
              A
              quality
              An MCP server implementation that enables interaction with the Unstructured API, providing tools to list, create, update, and manage sources, destinations, and workflows.
              Last updated -
              39
              28
              • Apple

            View all related MCP servers

            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