dsm-mcp
dsm-mcp
一个用于 Synology DSM 和 Container Manager 的 Model Context Protocol 服务器。它让 MCP 客户端(Claude)能够直接通过 Synology Web API 检查 NAS 并管理其容器——无需浏览器,也无需每次请求都进行 DSM 登录/2FA。服务器使用专用服务账户登录一次,并自行保持会话存活,这实际上就是你想要的“不过期会话”:Claude 永远不会重新认证。
是 arr-mcp 的配套项目。同样的形态(Python、streamable-HTTP、bearer 认证),不同的端口(8788),以及一个 Synology 专用的客户端。
工具
区域 | 工具 |
发现/健康 |
|
系统 |
|
容器 |
|
* = 写操作(启动/停止/重启容器)。dsm_raw_call 可以调用任何 DSM 方法,包括写操作——它是处理 DSM API 中因版本而异的部分的逃生舱。
关于 DSM 的 API(请阅读)
Synology 的 Web API 是发现驱动且版本/型号相关的。每个工具在调用时通过 SYNO.API.Info 解析正确的 CGI 路径和版本,因此系统/存储/利用率工具是健壮的。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
服务账户(请先执行此操作)
不要将其指向你的主管理员。在 DSM 中:
控制面板 → 用户与群组 → 创建一个用户,例如
claude-svc。仅授予所需权限:Container Manager 应用权限,以及系统/存储的读取权限。如果你的 DSM 版本允许非管理员使用 Docker API,则将其排除在
administrators之外;如果要求管理员,则优先使用一个仅在此处使用的独立管理员组账户。注意:截至撰写本文时,服务账户必须是 administrators 组的成员才能访问容器管理器端点。
禁用此账户的 2FA(守护进程无法输入动态验证码)。如果你的策略强制要求 2FA,请一次性注册一个受信任设备,并将其令牌放入
DSM_DEVICE_ID。可选地将其限制在局域网内(控制面板 → 安全性 → 防火墙/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 相同:
将其隧道化(专用的
cloudflared,或你现有 Jellyfin 隧道上的主机名 →http://dsm-mcp:8788),理想情况下放在 Cloudflare Access 后面。Claude → 设置 → 连接器 → 自定义连接器 →
/mcpURL,并带有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
This server cannot be deployed
Maintenance
Related MCP Connectors
Host any HTTP API as a standard MCP server; auto-distribute to 12+ mainstream agent platforms.
Manage uptime monitors, incidents and status pages from any MCP client.
Agent-first web hosting: deploy sites, apps, databases and domains over MCP.
Remote MCP for 1,500+ APIs. Vault-managed credentials; OAuth or API key. Search, load, and execute.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceComprehensive Synology NAS management through MCP, enabling file operations, downloads, backups, Docker, photos, VMs, snapshots, and more across up to 9 NAS units.5MIT
- AlicenseNot gradedqualityDmaintenanceEnables 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
- AlicenseNot gradedqualityDmaintenanceAn MCP server that exposes a Synology NAS through the official DSM WebAPI, covering File Station, Download Station, Synology Photos, Container Manager, and system management with curated tools and a generic bridge for other APIs.MIT
- FlicenseAqualityDmaintenanceMCP server enabling AI agents to manage and monitor Synology NAS via official DSM API, including file operations, system stats, backups, downloads, and camera lists.15-