Synology Docker MCP Server
Synology Docker MCP Server
(Прокрутите вниз для английской версии / Scroll down for English version)
🇨🇳 中文说明 (Китайская версия)
Это сервер Model Context Protocol (MCP), специально разработанный для Synology NAS. Он предназначен для прямого управления, настройки и отладки контейнеров Docker и проектов Docker Compose в Synology Container Manager с помощью больших языковых моделей.
✨ Основные функции и преимущества
Безопасное управление через SSH: Прямое взаимодействие с вашим Synology NAS через SSH, безопасное выполнение нативных команд, что полностью исключает риски, связанные с открытием Docker TCP-интерфейса.
Автоматическое повышение привилегий (Auto-Privilege Escalation): Автоматическая подстановка учетных данных для скрытого выполнения
sudo, что идеально решает проблемуPermission Denied, с которой часто сталкиваются администраторы Synology при выполнении команд docker.Полная совместимость с Synology Container Manager: Нативная поддержка и принудительное использование тегов
docker-compose -p, что гарантирует, что проекты, запущенные или обновленные через этот MCP-сервер, будут идеально синхронизированы с веб-интерфейсом Synology (сохраняя статус «зеленой точки»).Комплексный набор инструментов:
synology_docker_ps: Просмотр всех запущенных контейнеров.synology_docker_logs: Получение и отслеживание логов контейнеров.synology_docker_manage: Управление запуском, остановкой, перезапуском или удалением контейнеров.synology_project_list: Автоматический поиск и обнаружение всех проектов в директории/volume1/docker/.synology_project_manage: Нативное выполнение команд Pull, Up, Down или Restart для проектов.synology_read_file/synology_write_file: Удаленное чтение или изменение конфигурационных файлов.envиdocker-compose.yml.
🔒 Журнал усиления безопасности (v1.1.0)
Уязвимость | Решение |
Раскрытие спецсимволов пароля ( | Замена |
Инъекция команд (имя контейнера/проекта/путь) | Все пользовательские данные оборачиваются в |
Непроверенный параметр action | Проверка по «белому списку» на уровне кода, независимо от schema enum |
Обход пути (например, |
|
Инъекция параметров | Принудительное использование положительного целого числа, лимит 10000, по умолчанию 100 |
Отсутствие таймаута SSH-соединения | Добавлен |
🚀 Быстрый старт
Включите службу SSH на Synology: Перейдите в Панель управления -> Терминал и SNMP и установите флажок Включить службу SSH.
Настройте переменные окружения: Скопируйте
.env.exampleв.envи введите данные для подключения к вашему NAS:NAS_HOST=192.168.1.xxx NAS_PORT=22 NAS_USER=your_admin_account NAS_PASSWORD=your_admin_password NAS_DOCKER_DIR=/volume1/dockerУстановите зависимости и выполните сборку:
npm install npm run buildПодключитесь к MCP-клиенту (например, Claude Desktop или Cursor): Добавьте следующее содержимое в JSON-файл конфигурации MCP вашего клиента:
{ "mcpServers": { "synology-docker": { "command": "node", "args": [ "--env-file=e:\\Dev\\Synology Docker MCP\\.env", "e:\\Dev\\Synology Docker MCP\\build\\index.js" ] } } }
🇬🇧 English Version
This is a Model Context Protocol (MCP) server specifically designed to manage, configure, and debug Docker containers and Docker Compose projects on Synology NAS devices.
✨ Features & Highlights
SSH-Based Management: Communicates with your Synology NAS directly via SSH, ensuring secure execution of native commands without needing to expose the Docker TCP socket.
Auto-Privilege Escalation: Automatically injects credentials to run
sudosilently, bypassing thePermission Deniedissues commonly faced by Synology administrator accounts.Synology Container Manager Compatibility: Native support for
docker-compose -p, ensuring that projects started or updated via this MCP server perfectly align with the Synology Container Manager GUI (maintaining the green status indicator).Comprehensive Toolset:
synology_docker_ps: View all running containers.synology_docker_logs: Stream container logs.synology_docker_manage: Start, stop, restart, or remove containers.synology_project_list: Discover projects mapped in/volume1/docker/.synology_project_manage: Pull, up, down, or restart Docker Compose projects natively.synology_read_file/synology_write_file: Edit.envanddocker-compose.ymlconfigurations remotely.
🔒 Security Hardening (v1.1.0)
Vulnerability | Fix |
Password shell expansion ( | Replaced |
Command injection (container/project name/path concatenation) | All user inputs wrapped with |
Unvalidated | Code-level whitelist enforced independently of schema enum |
Path traversal (e.g. reading |
|
| Enforced positive integer, capped at 10000, defaults to 100 |
SSH connection hangs indefinitely | Added |
🚀 Setup Instructions
Enable SSH on Synology NAS: Go to Control Panel -> Terminal & SNMP and check Enable SSH service.
Configure Credentials: Copy
.env.exampleto.envand fill in your NAS connection details:NAS_HOST=192.168.1.xxx NAS_PORT=22 NAS_USER=your_admin_account NAS_PASSWORD=your_admin_password NAS_DOCKER_DIR=/volume1/dockerInstall Dependencies & Build:
npm install npm run buildConnect to MCP Client (e.g. Claude Desktop / Cursor): Add the following to your MCP configuration JSON:
{ "mcpServers": { "synology-docker": { "command": "node", "args": [ "--env-file=e:\\Dev\\Synology Docker MCP\\.env", "e:\\Dev\\Synology Docker MCP\\build\\index.js" ] } } }
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/hifishhe/Synology-Docker-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server