mcp-synology
Provides tools for monitoring and inspecting a Synology NAS running DSM 7. It can query system health, storage volumes and disk health, network configuration, installed packages and updates, hardware and power settings, Cloud Sync progress and logs, Task Scheduler tasks and run history, Log Center logs, DSM notifications, and files and shared folders. It is read-only by default, with optional write permission to pause and resume Cloud Sync connections.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-synology Is my cloud sync finished, and how long is left?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-synology
Ask your AI assistant about your Synology NAS. This is an MCP server that lets Claude (or any MCP client) check your NAS's health, storage, Cloud Sync progress, scheduled tasks, logs and files, in plain language.
"Is my cloud sync finished? How long is left?" "Did last night's backup task succeed?" "Any disk or RAID warnings this month?" "Who failed to log in over SSH last week?" "What's in /media/film?"
It is read-only by default. Actions that change anything are switched off unless you turn them on.
Requirements
A Synology NAS running DSM 7. Developed and tested against DSM 7.3; other DSM 7 releases are untested.
uv, which provides
uvxand fetches Python and everything else automatically.A DSM user account. See Choosing an account.
Related MCP server: Synology_MCP
Setup
You need four details: your NAS's address, the DSM port, and a username and password.
The port is the one you use to open DSM in a browser: 5001 for HTTPS by default, or 5000 for HTTP. If you changed it, it's under Control Panel → Login Portal → DSM.
Claude Code
claude mcp add synology \
-e SYNOLOGY_HOST=192.168.1.10 \
-e SYNOLOGY_PORT=5001 \
-e SYNOLOGY_USER=your-user \
-e SYNOLOGY_PASSWORD='your-password' \
-- uvx --from git+https://github.com/danjam/mcp-synology mcp-synologyAdd -s user to make it available in every project. Run /mcp inside Claude Code to check that it connected.
Claude Code, per project (.mcp.json)
To share the server with everyone working in a project, put a .mcp.json file in the project root. Claude Code expands ${VAR} from your environment, so credentials stay out of the file:
{
"mcpServers": {
"synology": {
"command": "uvx",
"args": ["--from", "git+https://github.com/danjam/mcp-synology", "mcp-synology"],
"env": {
"SYNOLOGY_HOST": "192.168.1.10",
"SYNOLOGY_PORT": "5001",
"SYNOLOGY_PERMISSION": "read",
"SYNOLOGY_USER": "${SYNOLOGY_USER}",
"SYNOLOGY_PASSWORD": "${SYNOLOGY_PASSWORD}"
}
}
}
}Set SYNOLOGY_USER and SYNOLOGY_PASSWORD in your shell profile. Claude Code asks you to approve a project's servers the first time.
Claude Desktop and other MCP clients
Add this to your client's MCP configuration (for Claude Desktop: Settings → Developer → Edit Config):
{
"mcpServers": {
"synology": {
"command": "uvx",
"args": ["--from", "git+https://github.com/danjam/mcp-synology", "mcp-synology"],
"env": {
"SYNOLOGY_HOST": "192.168.1.10",
"SYNOLOGY_PORT": "5001",
"SYNOLOGY_USER": "your-user",
"SYNOLOGY_PASSWORD": "your-password"
}
}
}
}Restart the client after saving.
Self-signed certificate
If your NAS uses DSM's default self-signed certificate rather than one from a certificate authority, connecting fails with a certificate verification error. Add:
SYNOLOGY_VERIFY_SSL=0This skips the certificate check. Only do that on a network you trust.
Settings
Setting | Default | What it does |
| (required) | NAS IP address or hostname |
| (required) | DSM username |
| (required) | DSM password |
|
| DSM port |
|
|
|
|
|
|
|
|
|
Permissions
Level | What the assistant can do |
| Look only. Nothing on the NAS is changed. |
| Also pause and resume Cloud Sync connections. |
Tools above your chosen level are hidden from the assistant entirely, so it can't call them by mistake. A destructive level is reserved for future tools that delete data or shut the NAS down. It needs both SYNOLOGY_PERMISSION=destructive and SYNOLOGY_ALLOW_DESTRUCTIVE=1, and no tools use it yet.
Choosing an account
Task Scheduler, Log Center and notifications show system-wide information, including tasks that run as root. They have been tested only with an account in the
administratorsgroup. With a regular account they may fail or show less.Two-factor authentication isn't supported. An account with 2FA enabled can't log in. If you use 2FA on your own account, create a separate account for the assistant.
A dedicated account also makes the assistant's sign-ins easy to tell apart from yours in DSM's connection log.
What it can see
Area | You can ask about |
System | Model, DSM version, uptime, temperature, CPU and memory load, disk and network activity |
Storage | Volume usage and free space, drive health (status, SMART, temperature) |
Network | Hostname, gateway, DNS servers, and each network port's IP address, MAC, link speed and MTU |
Packages | Installed packages, whether each is running, and available updates from Package Center, including third-party sources you've added such as SynoCommunity (flagging security releases) |
Hardware & power | Disk hibernation timers, recent disk wake-ups, hibernation debug mode, fan mode, power schedule, restart after power loss, Wake-on-LAN and UPS |
Cloud Sync | Each connection's status, files still to sync, cloud quota, sync folders, bandwidth limits and sync schedule, a time-remaining estimate, live transfers with each file's speed, and the full sync log (filter by upload, download or delete, or by file name) |
Task Scheduler | Every scheduled task with its schedule, next run and last result, and the run history of any task, e.g. "did my nightly task succeed every night this week?" |
Log Center | System log (hardware, disks, network, updates), connection log (sign-ins and failed logins) and SMB file-access log, filtered by severity, keyword and date range, or summarised (how many, since when, how often, per day or hour) |
Security | Security Advisor's latest scan and failing checks, and installed certificates with their expiry dates |
Notifications | DSM's desktop notifications, e.g. security advisories and available updates |
Files | Shared folders, folder listings and file details, with sizes and dates |
Times are shown in the NAS's own time zone, with the zone named in each answer.
Troubleshooting
Error | Fix |
| Set the listed settings in your MCP client's configuration. |
| Check the username and password. Repeated failures can trigger DSM's auto-block (Control Panel → Security → Protection). |
| The account uses 2FA, which isn't supported; use an account without it. |
| DSM's auto-block has blocked your computer. Unblock it under Control Panel → Security → Protection. |
| Self-signed certificate: set |
| Wrong host or port, or HTTPS/HTTP mismatch. Use the port you use in the browser, and set |
Limitations
Task Scheduler shows each run's result (success or exit code) but not its output. DSM 7.3 doesn't expose that through its API.
Filtering logs by severity reads up to 20,000 entries per request, so rare entries in a very large log may take several requests to reach.
Cloud Sync has no per-connection speed figure: DSM reports each file's speed, which doesn't add up to a reliable total. Network traffic for the whole NAS is under System.
DSM doesn't report whether a disk is spun down right now. You can see when disks last woke up, and the hibernation settings.
The hibernation debug log itself isn't readable through DSM's API, only whether debug mode is on.
Only one NAS per server entry. Add another entry with a different name for a second NAS.
Acknowledgements
Built on synology-api and the official MCP Python SDK.
License
MIT. See LICENSE.
Available Tools
16 toolscloudsync_activityBRead-only
Cloud Sync live activity: files transferring right now (with progress) and the latest completed changes.
Inputs: limit. Returns: object
cloudsync_logsARead-only
Cloud Sync log history for one connection, newest first: what was uploaded, downloaded or deleted, and errors. Filter by action or keyword.
Inputs: conn_id (required), limit, action, offset, +1 more. Returns: object
cloudsync_statusARead-only
Cloud Sync overview (Dropbox, Google Drive, OneDrive, S3, ...): per connection status, files left, cloud quota, sync tasks, throughput and ETA. Start here for "is the sync done / how long left".
Inputs: estimate_rate. Returns: object
dsm_notificationsBRead-only
DSM desktop notifications, newest first (e.g. Security Advisor, package and DSM updates). Titles are DSM message ids; params are their values.
Inputs: limit. Returns: object
filestation_infoCRead-only
Size, modified time and real volume path for specific files or folders.
Inputs: paths (required). Returns: object
filestation_listBRead-only
List a folder's contents with size and modified time.
Inputs: path (required), limit, offset, pattern, +2 more. Returns: object
hardware_powerBRead-only
Disk hibernation timers (internal and USB disks), hibernation debug settings, recent disk wake-ups from the system log, fan mode, power-on/off schedule, restart after power loss, Wake-on-LAN and UPS status. DSM does not report whether a disk is currently spun down.
Inputs: wake_events. Returns: object
logcenter_logsBRead-only
DSM Log Center, newest first. system: hardware, disk/RAID, network link, updates, services. connection: sign-ins and failed logins (DSM, SSH, SMB, NFS...). smb: SMB file operations (who, IP, path).
Inputs: log, level, limit, since, +3 more. Returns: object
network_configARead-only
Network setup (static configuration): hostname, default gateway, DNS servers, and each interface's IP/subnet, MAC, link status, negotiated speed/duplex and MTU. Live throughput is in system_utilization.
Inputs: no named parameters. Returns: object
packagesARead-only
Installed packages with version, running/stopped status and available updates (new version, and whether it is a security release), checked against Package Center's catalogue and any third-party feeds configured there. Packages in neither (system components, manual installs) show update_to "not in catalogue".
Inputs: no named parameters. Returns: object
storage_statusBRead-only
Disk and volume health: volume usage and free space; drive model, status, SMART, temperature.
Inputs: no named parameters. Returns: object
system_infoARead-only
NAS hardware and DSM version: model, CPU, RAM, uptime, temperature, crash/upgrade flags, USB devices.
Inputs: no named parameters. Returns: object
system_utilizationARead-only
Live load: CPU %, load average, memory, per-disk and per-network-interface throughput.
Inputs: no named parameters. Returns: object
taskscheduler_runsARead-only
Run history of one scheduled task, newest first: start time, duration and exit result. Also shows the task's action (the command, for script tasks).
Inputs: task_id (required), limit. Returns: object
taskscheduler_tasksARead-only
DSM Task Scheduler: every scheduled and event-triggered task (including root's) with schedule, next run and the last run's result and duration. Use to confirm a nightly job (e.g. a backup) succeeded.
Inputs: no named parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 16 tools
Most tools target clearly distinct resources: system_utilization vs system_info vs storage_status are well separated, and taskscheduler_tasks vs taskscheduler_runs are distinct. The main risk is the cloudsync trio (status/activity/logs) and the filestation pair (list_shares vs list), though the descriptions resolve these by scope (overview vs live vs history; top-level vs folder contents).
All names use lowercase snake_case with a consistent <domain>_<subject> pattern (cloudsync_status, taskscheduler_runs, filestation_list_shares). Minor deviation: 'packages' has no domain prefix and verb-style varies (status/utilization/info), but overall it is predictable and readable.
16 tools is slightly heavy but justified by the breadth of NAS domains covered (cloud sync, storage, system, scheduler, logs, network, packages, power, file station). Each tool maps to a real distinct area, so nothing is obviously redundant or trivial.
The surface is thorough for monitoring/inspection but read-only: no tools to create/update scheduled tasks, manage cloud sync connections, or perform file operations (upload/download/delete) despite filestation listing tools existing. Coverage of the observation domain is good, but write/lifecycle operations are notable gaps.
Related MCP Connectors
- DNS-DATA RemoteDeprecatedcom.dns-data
Connect AI assistants to authorized Windows and macOS devices for files, commands, and management.
Connect AI assistants to your approved computer for files, commands, browser and desktop tasks.
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to manage Synology NAS devices with file operations (create, delete, move, search) and Download Station control through secure authentication and session management.133 PyPI250MIT
- 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
- 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-
- FlicenseNot gradedqualityCmaintenanceEnables MCP clients to inspect Synology NAS system, storage, and utilization, and manage Docker containers via the Synology Web API with automatic session handling.-