Skip to main content
Glama

dsm-mcp

一个用于 Synology DSMContainer ManagerModel Context Protocol 服务器。它让 MCP 客户端(Claude)能够直接通过 Synology Web API 检查 NAS 并管理其容器——无需浏览器,也无需每次请求都进行 DSM 登录/2FA。服务器使用专用服务账户登录一次,并自行保持会话存活,这实际上就是你想要的“不过期会话”:Claude 永远不会重新认证。

arr-mcp 的配套项目。同样的形态(Python、streamable-HTTP、bearer 认证),不同的端口(8788),以及一个 Synology 专用的客户端。

工具

区域

工具

发现/健康

dsm_healthdsm_api_discoverdsm_raw_call

系统

dsm_system_infodsm_storagedsm_utilization

容器

dsm_docker_containersdsm_docker_containerdsm_docker_action*dsm_docker_logsdsm_docker_projects

* = 写操作(启动/停止/重启容器)。dsm_raw_call 可以调用任何 DSM 方法,包括写操作——它是处理 DSM API 中因版本而异的部分的逃生舱。

关于 DSM 的 API(请阅读)

Synology 的 Web API 是发现驱动且版本/型号相关的。每个工具在调用时通过 SYNO.API.Info 解析正确的 CGI 路径和版本,因此系统/存储/利用率工具是健壮的。Docker/Container Manager 方法在不同 DSM 版本中的文档一致性较差——如果 dsm_docker_logsdsm_docker_projects 或某个操作的参数与你的 DSM 不匹配,请运行 dsm_api_discover(查询 SYNO.Dockerall)来查看你的 NAS 实际暴露了什么,然后使用 dsm_raw_call 驱动它。没有什么是硬编码到无法现场解决的。

Related MCP server: Synology MCP Server

服务账户(请先执行此操作)

不要将其指向你的主管理员。在 DSM 中:

  1. 控制面板 → 用户与群组 → 创建一个用户,例如 claude-svc

  2. 仅授予所需权限:Container Manager 应用权限,以及系统/存储的读取权限。如果你的 DSM 版本允许非管理员使用 Docker API,则将其排除在 administrators 之外;如果要求管理员,则优先使用一个仅在此处使用的独立管理员组账户。

    • 注意:截至撰写本文时,服务账户必须是 administrators 组的成员才能访问容器管理器端点。

  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://<your-hostname>/mcp。与 arr-mcp 相同:

  1. 将其隧道化(专用的 cloudflared,或你现有 Jellyfin 隧道上的主机名 → http://dsm-mcp:8788),理想情况下放在 Cloudflare Access 后面。

  2. Claude → 设置 → 连接器 → 自定义连接器 → /mcp URL,并带有 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