It goes well past file access — disk health, UPS state, volume and pool status, and full container control, with an aggregate health call so an agent asks one question instead of six. Take the credential advice literally: this holds a password rather than a scoped token, so give it a dedicated account with minimal rights. And if you expose the HTTP mode, put the authentication in front of it yourself; the server's host and origin checks guard browsers, not callers.
A server over Synology DSM's APIs, covering File Station, Download Station, system health, Container Manager and NFS, with session handling across one or several NAS units.
- Files: shares and directories listed, file details, recursive search, and create, rename, move and delete
- Downloads: tasks listed, created from a URL or magnet link, paused, resumed and deleted, with Download Station's own statistics
- Health: system information, utilisation, disk health and SMART data, volume and storage pool status, network, UPS, services and system log — plus one call that aggregates the lot
- Container Manager: containers listed, inspected, started, stopped, restarted and deleted, their logs and live resource use read, and Compose projects, images, registries and networks managed
- NFS status read, enabled, shares listed and permissions set
- Session handling with an explicit login and logout, a status call, and a list of the NAS units you have configured
- A remote mode that serves the same tools over Streamable HTTP, for the common case where the NAS is not on the machine running your client
Your NAS URL, a username and a password, supplied as environment variables — commonly through the project's Docker Compose setup, or Python directly. The project asks for a dedicated low-privilege DSM account with two-factor authentication off, because the server cannot answer a two-factor prompt. In the remote HTTP mode there is no application-level authentication at all: anything that can reach the endpoint can call every tool, so keep it on loopback behind a reverse proxy that terminates TLS and adds auth. A multi-NAS settings file must be readable only by its owner or the server refuses to load it.
One command plus a key — pip install ., then supply credentials
