Skip to main content
Glama

🐳 Docker Explorer MCP-сервер

Докер ЭксплорерПитонЛицензия

📋 Обзор

Docker Explorer — это мощный сервер Model Context Protocol (MCP), который предоставляет инструменты и ресурсы для взаимодействия с образами, контейнерами и реестрами Docker. Этот сервер позволяет помощникам ИИ, таким как Клод, искать, анализировать и взаимодействовать с ресурсами Docker через стандартизированный интерфейс, делая управление контейнерами и их исследование более доступными.

Related MCP server: ChatGPT MCP Server

✨ Особенности

Основные характеристики

  • Поиск образов Docker в реестрах

  • Поиск определенных тегов образов Docker

  • Поиск пользователей/организаций Docker Hub

  • Получите подробные метаданные об образах Docker

  • Анализ содержимого Dockerfile

  • Сравнение образов Docker

Расширенные инструменты

  • 🔒 Сканер безопасности : анализ образов Docker на наличие известных уязвимостей и проблем безопасности

  • 📦 Оптимизатор размера образа : получите рекомендации по уменьшению размера образа Docker

  • 📄 Docker Compose Generator : сгенерируйте файлы docker-compose.yml для ваших приложений

  • 📊 Анализатор времени выполнения контейнера : получите представление о поведении времени выполнения контейнера и использовании ресурсов.

  • 🔍 Инструмент сравнения образов : сравните два образа Docker и выделите их различия

  • 📜 Генератор Dockerfile : создание Dockerfile из описаний приложений на естественном языке

🚀 Установка

Предпосылки

  • Python 3.10 или выше

  • MCP Python SDK

  • Требуемые пакеты Python: requests , pydantic

Настраивать

  1. Клонируйте этот репозиторий :

git clone https://github.com/yourusername/docker-mcp-server.git cd docker-mcp-server
  1. Создайте виртуальную среду :

python -m venv .venv310 source .venv310/bin/activate # On Windows: .venv310\Scripts\activate
  1. Установить зависимости :

pip install -r requirements.txt

Или установите отдельные пакеты:

pip install anthropic-mcp requests pydantic

💻 Использование

Запуск сервера

Вы можете запустить сервер прямо из командной строки:

python docker_explorer.py

Это запустит сервер MCP на порту по умолчанию (5000).

Интеграция с Claude Desktop

Чтобы использовать сервер Docker Explorer MCP с Claude Desktop:

  1. Обновите конфигурацию Claude Desktop :

    • Откройте или создайте файл claude_desktop_config.json в каталоге конфигурации Claude Desktop.

    • Добавьте конфигурацию сервера Docker Explorer

{ "mcp_servers": [ { "name": "docker-explorer", "command": ["python", "/path/to/mcpIS421/docker_explorer.py"], "cwd": "/path/to/mcpIS421" } ] }
  1. Перезапустите Claude Desktop , чтобы загрузить новую конфигурацию.

Использование инструментов

После интеграции с Claude Desktop вы сможете использовать инструменты Docker Explorer, задавая Клоду такие вопросы:

Основные инструменты

  1. Поиск образов Docker :

    Can you search for Python Docker images?
  2. Получить сведения об изображении :

    What are the details of the python:3.11-slim image?
  3. Найти доступные теги :

    What tags are available for the nginx image?

Расширенные инструменты

  1. Сканер безопасности :

    Scan the security of the nginx image
  2. Оптимизатор размера изображения :

    How can I reduce the size of my python:3.9 image?
  3. Генератор Docker Compose :

    Generate a docker-compose file for nginx with port 8080:80
  4. Анализатор времени выполнения контейнера :

    Analyze the runtime behavior of mysql:5.7 as a database

👷 Развитие

Структура проекта

docker-explorer-mcp/ ├── docker_explorer.py # Main server implementation with all tools ├── requirements.txt # Project dependencies ├── .gitignore # Git ignore file └── docs/ # Documentation ├── server_guide.md # Guide for setting up and using the server ├── new_tools_suggestions.md # Ideas for additional tools └── docker_mcp_server_project.md # Project overview

Добавление новых функций

Чтобы добавить новый инструмент на сервер Docker Explorer MCP:

  1. Реализуйте функцию инструмента в docker_explorer.py с помощью декоратора инструмента MCP:

@mcp.tool() def my_new_tool( param1: str = Field(description="Description of param1"), param2: int = Field(default=10, description="Description of param2") ) -> str: """Description of what your tool does""" try: # Implementation logic here result = f"Your formatted result" return result except Exception as e: return f"Error in my_new_tool: {str(e)}"
  1. Следуйте этим рекомендациям по внедрению инструмента:

    • Сохраняйте выходные данные краткими и отформатированными для Claude Desktop

    • Обрабатывайте исключения изящно

    • Предоставьте четкие описания параметров

    • Возвращайте хорошо структурированные результаты

Тестирование

  1. Ручное тестирование :

    • Запускаем сервер: python docker_explorer.py

    • Тестируйте с помощью Claude Desktop, задавая соответствующие вопросы

  2. Отладка :

    • Проверьте вывод терминала на наличие ошибок.

    • Проверка ответов инструмента в Claude Desktop

    • Отрегулируйте форматирование вывода, если у Клода есть ограничения по емкости

📚 API-документация

Основные инструменты

search_images

  • Описание : Поиск образов Docker в реестрах.

  • Параметры :

    • query (строка): Поисковый запрос для образов Docker

    • limit (целое число, по умолчанию = 10): максимальное количество возвращаемых результатов

  • Возвращает : список образов Docker с метаданными.

search_tags

  • Описание : Поиск определенных тегов образа Docker.

  • Параметры :

    • image_name (string): Имя образа Docker

    • tag_pattern (string, default=""): Шаблон для сопоставления тегов

    • limit (целое число, по умолчанию = 25): максимальное количество возвращаемых результатов

  • Возвращает : Список соответствующих тегов

get_image_details

  • Описание : Получите подробную информацию об образе Docker.

  • Параметры :

    • image_name (string): Имя образа Docker

    • tag (string, default="latest"): тег образа Docker

  • Возврат : Подробная информация об изображении

Расширенные инструменты

scan_security

  • Описание : Анализ образов Docker на предмет известных уязвимостей и проблем безопасности.

  • Параметры :

    • image_name (string): Имя образа Docker

    • tag (string, default="latest"): тег образа Docker для сканирования

  • Возвращает : отчет по анализу безопасности с рекомендациями

optimize_image_size

  • Описание : Анализ образа Docker и предложение способов уменьшения его размера.

  • Параметры :

    • repository_url (строка): Полный URL-адрес репозитория Docker Hub

    • tag (string, default="latest"): тег образа Docker для анализа

  • Возврат : Рекомендации по оптимизации размера

generate_docker_compose

  • Описание : Создание файла docker-compose.yml на основе образа.

  • Параметры :

    • repository_url (строка): Полный URL-адрес репозитория Docker Hub

    • tag (string, default="latest"): тег образа Docker

    • port_mapping (string, default=""): Необязательное сопоставление портов (например, '8080:80')

    • environment_variables (string, default=""): Необязательные переменные среды

    • include_db (boolean, default=false): следует ли включать службу базы данных

  • Возвращает : сгенерированное содержимое docker-compose.yml

analyze_runtime

  • Описание : Анализ того, как контейнер может вести себя во время выполнения.

  • Параметры :

    • image_name (string): Имя образа Docker

    • tag (string, default="latest"): тег образа Docker

    • app_type (string, default="web"): Тип приложения (веб, база данных, кэш, API, пакетное)

  • Возвращает : анализ времени выполнения с прогнозами и рекомендациями по использованию ресурсов.

compare_images

  • Описание : Сравните два образа Docker и выделите различия.

  • Параметры :

    • image1 (строка): первый образ Docker для сравнения (например, «nginx:1.21» или «user/repo:tag»)

    • image2 (строка): второй образ Docker для сравнения (например, «nginx:1.22» или «user/repo:tag»)

  • Возврат : Подробный сравнительный отчет, в котором указаны различия в размерах, слоях, конфигурации и совместимости.

generate_dockerfile

  • Описание : Создание Dockerfile на основе требований приложения, описанных на естественном языке.

  • Параметры :

    • app_description (string): Описание приложения для контейнеризации (например, «веб-приложение Python Flask с Redis»)

    • app_type (string, default="web"): Тип приложения (веб, API, база данных, рабочий, статический)

    • base_image (string, default=""): необязательное базовое изображение для использования (например, 'python:3.9-alpine')

    • include_comments (boolean, default=true): включать ли пояснительные комментарии в Dockerfile

  • Возвращает : сгенерированный Dockerfile с инструкциями по использованию.

🔒 Вопросы безопасности

Сервер Docker Explorer MCP предназначен для образовательных и развивающих целей. При его использовании:

  • Не раскрывайте конфиденциальные учетные данные или ключи API.

  • Будьте осторожны при создании и запуске файлов Docker Compose.

  • Всегда проверяйте рекомендации по безопасности перед их реализацией.

📌 Лицензия

Массачусетский технологический институт

👥 Вклад

Вклады приветствуются! Пожалуйста, не стесняйтесь отправлять запрос на извлечение с новыми инструментами или улучшениями существующей функциональности.

-
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/jar285/mcp-docker'

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