Skip to main content
Glama

dsm-mcp

Сервер Model Context Protocol для Synology DSM и Container Manager. Он позволяет MCP-клиенту (Claude) просматривать NAS и управлять его контейнерами напрямую через Synology Web API — без браузера и без входа в DSM/2FA при каждом запросе. Сервер входит один раз с выделенной служебной учётной записью и сам поддерживает сессию, что фактически и есть та самая «неистекающая сессия», которая вам нужна: Claude больше не аутентифицируется повторно.

Компаньон для arr-mcp. Та же форма (Python, streamable-HTTP, bearer-аутентификация), другой порт (8788) и клиент, специфичный для Synology.

Инструменты

Область

Инструменты

Обнаружение/здоровье

dsm_health, dsm_api_discover, dsm_raw_call

Система

dsm_system_info, dsm_storage, dsm_utilization

Контейнеры

dsm_docker_containers, dsm_docker_container, dsm_docker_action*, dsm_docker_logs, dsm_docker_projects

* = записывающее действие (запуск/остановка/перезапуск контейнера). dsm_raw_call может вызывать любой метод DSM, включая записывающие, — это запасной выход для тех частей API DSM, которые различаются в зависимости от версии.

Об API DSM (прочтите это)

Веб-API Synology управляется обнаружением и зависит от версии/модели. Каждый инструмент в момент вызова определяет правильный путь CGI и версию через SYNO.API.Info, поэтому инструменты для системы/хранилища/загрузки надёжны. Методы Docker/Container Manager менее последовательно документированы в разных версиях DSM — если dsm_docker_logs, dsm_docker_projects или параметры действия не совпадают с вашим DSM, запустите dsm_api_discover (запрос SYNO.Docker или all), чтобы увидеть точно, что предоставляет ваш NAS, а затем управляйте им через dsm_raw_call. Ничто не захардкожено так, чтобы это нельзя было обойти вживую.

Related MCP server: Synology MCP Server

Служебная учётная запись (сделайте это в первую очередь)

Не подключайте сюда своего основного администратора. В DSM:

  1. Панель управления → Пользователь и группа → Создать пользователя, например claude-svc.

  2. Предоставьте только необходимое: разрешение на приложение Container Manager и чтение системы/хранилища. Не включайте его в группу administrators, если ваша версия DSM позволяет использовать Docker API без администратора; если требуется администратор, лучше используйте отдельную учётную запись из группы администраторов, используемую только здесь.

    • Примечание: на момент написания служебная учётная запись должна быть членом группы администраторов, чтобы иметь доступ к конечным точкам Container Manager.

  3. Отключите 2FA для этой учётной записи (демон не может вводить сменяющийся код). Если ваша политика требует 2FA, один раз зарегистрируйте доверенное устройство и поместите его токен в DSM_DEVICE_ID.

  4. При желании ограничьте её локальной сетью (Панель управления → Безопасность → правила брандмауэра/IP), поскольку MCP-сервер находится в локальной сети, и только туннель является публичным.

Настройка

cp config.example.env .env
# edit .env: DSM_URL, the service account + password, a strong MCP_AUTH_TOKEN.
# HTTPS with the self-signed cert? use :5001 and set DSM_VERIFY_SSL=false

docker compose up -d --build
docker logs -f dsm-mcp        # confirm it starts; auth runs on the first tool call

Запуск без Docker (для разработки):

pip install -r requirements.txt
set -a; source .env; set +a
python server.py

Предоставление доступа Claude

Конечная точка: https://<ваш-хост>/mcp. То же, что и для arr-mcp:

  1. Пробросьте её (выделенный cloudflared или имя хоста на вашем существующем туннеле Jellyfin → http://dsm-mcp:8788), в идеале за Cloudflare Access.

  2. Claude → Настройки → Коннекторы → пользовательский коннектор → URL /mcp, с Authorization: Bearer <MCP_AUTH_TOKEN>.

Замечания по безопасности

  • Этот сервер может перезапускать контейнеры и читать внутренние данные системы, и он аутентифицируется как пользователь DSM. Держите учётную запись с минимальными привилегиями, ограничьте отключение 2FA только этой учётной записью в локальной сети и всегда защищайте конечную точку bearer-токеном (а в идеале — Cloudflare Access).

  • Учётные данные хранятся только в .env (исключён из git/docker). MCP-клиент никогда их не видит — он видит только результаты инструментов.

  • Не предоставляются инструменты удаления учётных записей, изменения настроек DSM или разрушительные инструменты для томов/пулов. dsm_raw_call по замыслу мощный; относитесь к аутентификации конечной точки соответственно.

Файлы

  • server.py — MCP-сервер + инструменты (streamable-HTTP + bearer-аутентификация)

  • dsm_client.py — клиент Synology Web API (обнаружение, вход, обновление сессии)

  • config.py — создаёт клиент из переменных окружения

  • Dockerfile / docker-compose.yml — контейнер + опциональный туннель

  • config.example.env — скопируйте в .env

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables managing Docker containers and Compose apps on a QNAP NAS via the Container Station API, including starting, stopping, restarting, and inspecting containers and applications.
    16
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables interaction with Synology NAS services including DSM, File Station, Calendar, Note Station, Contacts, Chat, Download Station, and Container Manager through a modular MCP interface with configurable safety modes.
    MIT

View all related MCP servers

Related MCP Connectors

  • Agent-first web hosting: deploy sites, apps, databases and domains over MCP.

  • MCP server for AI access to Swagger by SmartBear.

  • An authenticated remote MCP server for user-owned devices and one-shot capability invocation.

View all MCP Connectors

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/dogeared/dsm-mcp'

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