Skip to main content
Glama
good-gis

Docker MCP Server

by good-gis
README.md
# Docker MCP Server

MCP сервер для управления Docker контейнерами через Claude Desktop.

## Возможности

- ✅ Запуск Docker контейнеров
- ✅ Просмотр списка контейнеров
- ✅ Остановка контейнеров
- ✅ Удаление контейнеров
- ✅ Просмотр логов контейнеров
- ✅ Автоматическое скачивание образов

## Установка

### 1. Установите зависимости

```bash
npm install
```

### 2. Соберите проект

```bash
npm run build
```

## Настройка Claude Desktop

### Windows

Откройте файл конфигурации:
```
%APPDATA%\Claude\claude_desktop_config.json
```

### macOS

Откройте файл конфигурации:
```
~/Library/Application Support/Claude/claude_desktop_config.json
```

### Linux

Откройте файл конфигурации:
```
~/.config/Claude/claude_desktop_config.json
```

### Добавьте конфигурацию

Замените `/ПОЛНЫЙ/ПУТЬ/К/docker-mcp-server` на реальный путь к проекту:

```json
{
  "mcpServers": {
    "docker": {
      "command": "node",
      "args": [
        "/ПОЛНЫЙ/ПУТЬ/К/docker-mcp-server/dist/index.js"
      ]
    }
  }
}
```

**Важно:** Используйте ПОЛНЫЙ абсолютный путь!

Пример для macOS:
```json
{
  "mcpServers": {
    "docker": {
      "command": "node",
      "args": [
        "/Users/username/projects/docker-mcp-server/dist/index.js"
      ]
    }
  }
}
```

## Перезапустите Claude Desktop

После изменения конфигурации полностью закройте и перезапустите Claude Desktop.

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

Теперь вы можете давать Claude команды для работы с Docker:

```
Запусти nginx контейнер на порту 8080
```

```
Покажи все запущенные контейнеры
```

```
Останови контейнер nginx
```

```
Покажи логи контейнера my-app
```

## Доступные инструменты

### docker_run
Запустить новый контейнер

Параметры:
- `image` (обязательный) - название образа (например, "nginx:latest")
- `name` - имя контейнера
- `ports` - проброс портов
- `env` - переменные окружения
- `cmd` - команда для выполнения

### docker_ps
Список контейнеров

Параметры:
- `all` - показать все (включая остановленные)

### docker_stop
Остановить контейнер

Параметры:
- `container` (обязательный) - ID или имя контейнера

### docker_remove
Удалить контейнер

Параметры:
- `container` (обязательный) - ID или имя контейнера
- `force` - принудительное удаление

### docker_logs
Получить логи контейнера

Параметры:
- `container` (обязательный) - ID или имя контейнера
- `tail` - количество последних строк (по умолчанию 100)

## Требования

- Node.js 18+
- Docker установлен и запущен
- Claude Desktop

## Отладка

Если MCP сервер не работает:

1. Проверьте, что Docker запущен:
   ```bash
   docker ps
   ```

2. Проверьте, что путь в конфигурации правильный (абсолютный!)

3. Проверьте логи Claude Desktop:
   - **macOS**: `~/Library/Logs/Claude/`
   - **Windows**: `%APPDATA%\Claude\logs\`

4. Попробуйте запустить сервер вручную для тестирования:
   ```bash
   npm run dev
   ```

## Разработка

Для разработки используйте:

```bash
npm run dev
```

Это запустит сервер через `tsx` без предварительной компиляции.

## Лицензия

MIT

TDQS

A3.6/5.0

Scored across 5 tools

Disambiguation5/5

Each tool addresses a distinct container lifecycle action: run, list, stop, remove, and logs. There is no overlap in purpose, making tool selection unambiguous.

Naming Consistency5/5

All tools follow a consistent docker_verb naming pattern, using lowercase snake_case. This predictability aids agent comprehension and usage.

Tool Count5/5

With exactly 5 tools, the server is well-scoped for basic Docker container management. Each tool covers an essential operation without redundancy.

Completeness4/5

The core container lifecycle (create/run, list, stop, remove, logs) is covered. A notable gap is the lack of a start command for stopped containers, but this can be worked around by running a new container.

Maintenance

ActivityInactive
ResponsivenessNo issues