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