Synology MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SYNOLOGY_OTP | No | One-time OTP for 2FA bootstrap (use instead of device token for first time) | |
| SYNOLOGY_URL | Yes | Base URL of the NAS (e.g., http://192.168.1.100:5000) | http://localhost:5000 |
| SYNOLOGY_PASS | Yes | DSM password | |
| SYNOLOGY_USER | Yes | DSM username | |
| SYNOLOGY_TIMEOUT | No | HTTP timeout in seconds (default 30) | 30 |
| SYNOLOGY_DEVICE_ID | No | Trusted-device token for 2FA (from bootstrap_2fa.py) | |
| SYNOLOGY_VERIFY_SSL | No | Verify TLS certificate (default false) | false |
| SYNOLOGY_DEVICE_NAME | No | Device name shown in DSM (default SynologyMCP) | SynologyMCP |
| SYNOLOGY_SESSION_NAME | No | Session name shown in DSM (default SynologyMCP) | SynologyMCP |
| SYNOLOGY_ENABLE_POWER_CONTROL | No | Allow reboot/shutdown/update tools (default false) | false |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_usersA | List local user accounts with description, email, 2FA and status. |
| list_groupsB | List local user groups. |
| list_shared_foldersA | List shared folders with their volume location and description (admin view). |
| create_shared_folderB | Create a new shared folder. [control] Args: name: Name of the shared folder volume: Volume path to create it on (default /volume1) description: Optional description |
| delete_shared_folderA | Delete a shared folder (and its contents). [control] Args: name: Name of the shared folder to delete |
| get_system_logsA | Get recent system log entries. Args: limit: Max entries to return (default 30) level: Optional filter — "info", "warning" or "error" |
| get_security_scan_statusB | Get the result of the Security Advisor scan (malware, network, system, updates). |
| list_backup_tasksA | List Hyper Backup tasks with their current state and target. |
| run_backup_taskB | Start a Hyper Backup task immediately. [control] Args: task_id: Numeric task id (from list_backup_tasks) |
| get_overviewA | Get a complete NAS snapshot in one call — ideal for building a dashboard. Aggregates: system identity, CPU/RAM/network load, per-volume storage, per-disk health, overall health, and counts of packages, containers, VMs, download tasks and recent log severities. Use this, then render a dashboard artifact from the returned JSON. |
| list_containersA | List all Docker / Container Manager containers with their state and image. |
| get_container_logsA | Get recent log lines for a Docker container. Args: name: Container name (from list_containers) lines: Number of recent log lines (default 50) |
| set_container_stateA | Start, stop or restart a Docker container. [control] Args: name: Container name (from list_containers) action: "start", "stop" or "restart" |
| get_container_statsA | Get live CPU / memory / network / disk usage for a running container. Args: name: Container name (from list_containers) |
| list_docker_projectsA | List Docker Compose / Container Manager projects. |
| list_docker_imagesA | List Docker images stored on the NAS, including whether an update is available. |
| list_downloadsA | List Download Station tasks with progress, size and transfer speed. |
| add_downloadA | Add a new download task from a URL or magnet link. [control] Args: url: HTTP/FTP URL or magnet link to download destination: Shared-folder path (without leading slash), e.g. "video/movies". Required by Download Station. |
| manage_downloadA | Pause, resume or delete download tasks. [control] Args: task_ids: Comma-separated task ids (from list_downloads) action: "pause", "resume" or "delete" |
| list_drive_connectionsA | List Synology Drive client connections (devices syncing with the NAS). |
| list_sharesB | List all available shared folders (File Station view). |
| list_filesA | List files and folders at a given path. Args: path: Full path e.g. /home or /docker/app limit: Max items to return (default 100) offset: Pagination offset sort_by: name | size | user | group | mtime | atime | crtime | posix sort_direction: asc | desc pattern: Optional filename filter (supports wildcards, e.g. *.pdf) |
| get_file_infoB | Get detailed info (size, owner, timestamps) for one or more files/folders. Args: paths: Comma-separated paths e.g. /home/report.pdf,/photo |
| get_directory_sizeA | Calculate the total size and item count of a folder (recursively). Args: path: Folder path e.g. /docker |
| get_file_md5B | Compute the MD5 checksum of a file. Args: path: Full file path |
| create_folderB | Create a new folder. Args: parent_path: Where to create the folder e.g. /home name: New folder name |
| rename_itemB | Rename a file or folder. Args: path: Full path of the item to rename new_name: New name only (not a full path) |
| copy_move_itemA | Copy or move files/folders into an existing destination folder. [control] Args: paths: Comma-separated source paths dest_folder: Existing destination folder path move: True to move, False to copy (default) overwrite: Overwrite existing files (default False) |
| delete_itemB | Delete files or folders. [control] Args: paths: Comma-separated paths to delete recursive: Delete folder contents recursively (default True) |
| search_filesA | Search for files by name pattern within a folder. Args: folder_path: Root folder to search e.g. /home pattern: Filename pattern e.g. .pdf or report recursive: Search subdirectories (default True) limit: Max results (default 50) |
| extract_archiveC | Extract an archive (ZIP, etc.) into a destination folder. [control] Args: archive_path: Full path to the archive file dest_folder: Destination folder path |
| create_share_linkA | Create a public sharing link for a file or folder. [control] Args: path: Full path to share password: Optional password to protect the link |
| get_power_settingsA | Get power-related hardware settings: power recovery, LED brightness, beep and power schedule. |
| get_hibernation_settingsB | Get disk hibernation (power-saving) settings. |
| get_ups_statusA | Get UPS (uninterruptible power supply) status and configuration. |
| list_usb_devicesA | List USB devices connected to the NAS. |
| get_system_infoA | Get NAS model, DSM version, hostname, uptime, RAM, temperature and serial number. |
| get_resource_usageA | Get real-time CPU usage, memory usage and network throughput. |
| get_resource_historyA | Get recent Resource Monitor threshold events (CPU/RAM/IO spikes over time). Useful for plotting recent trends or spotting recurring load problems. Args: limit: Max events to return (default 25) |
| get_network_infoA | Get network interfaces with IP addresses, link speed and status, plus gateway/DNS. |
| get_ddns_statusA | Get configured DDNS records (hostname, external IP, last update, status). |
| get_quickconnect_statusA | Get QuickConnect configuration (enabled state and QuickConnect ID). |
| get_notification_settingsA | Get e-mail notification settings (enabled state, sender, SMTP). |
| check_dsm_updateA | Check whether a DSM (operating system) update is available for the NAS. |
| list_packagesA | List installed packages (apps) with their version and running status. Args: running_only: If True, only return packages that are currently running. |
| set_package_stateA | Start or stop an installed package. [control] Args: package_id: Package id from list_packages (e.g. "WebStation", "DownloadStation") action: "start" or "stop" |
| list_photo_albumsA | List albums in Synology Photos (personal space). Args: limit: Max albums to return (default 50) offset: Pagination offset |
| reboot_nasA | Reboot the NAS. [control][power] Requires SYNOLOGY_ENABLE_POWER_CONTROL=true. |
| shutdown_nasA | Shut down (power off) the NAS. [control][power] Requires SYNOLOGY_ENABLE_POWER_CONTROL=true. |
| install_dsm_updateA | Download and install an available DSM update, then reboot. [control][power] Requires SYNOLOGY_ENABLE_POWER_CONTROL=true. Check availability first with check_dsm_update. |
| list_scheduled_tasksB | List scheduled tasks (cron jobs, scripts, scheduled backups, etc.). |
| run_scheduled_taskA | Trigger a scheduled task to run immediately. [control] Args: task_id: Numeric task id (from list_scheduled_tasks) |
| get_security_settingsA | Get DSM security settings (session timeout, CSRF protection, IP checking). |
| get_autoblock_settingsA | Get the auto-block policy (block IPs after failed login attempts). |
| get_firewall_statusC | Get firewall profile information. |
| list_certificatesA | List installed TLS/SSL certificates with validity dates and assigned services. |
| get_file_servicesA | Get the enabled state and key settings of SMB, AFP, NFS and FTP file services. |
| set_file_serviceB | Enable or disable a file-sharing protocol. [control] Args: service: One of "smb", "afp", "nfs", "ftp" enabled: True to enable, False to disable |
| get_terminal_settingsA | Get SSH / Telnet terminal access settings. |
| get_snmp_settingsA | Get SNMP service settings. |
| get_storage_infoB | Get storage volumes: RAID type, filesystem, used/free space and health status. |
| get_storage_poolsA | Get storage pools with RAID type, status and data-scrubbing state. |
| get_disk_infoB | Get individual disk details: model, temperature, health (S.M.A.R.T.) and status. |
| get_surveillance_infoA | Get Surveillance Station info: version, camera count and licence usage. |
| list_camerasA | List Surveillance Station cameras with model, IP and status. |
| get_system_healthA | Get overall system health: status, uptime, reboot-required flag and fan status. |
| get_active_connectionsA | List currently active connections to the NAS (who, from where, which protocol). |
| get_time_settingsA | Get the NAS time, timezone and NTP synchronization settings. |
| list_processesB | List top running processes by CPU or memory usage. Args: top: Number of processes to return (default 15) sort_by: "cpu" or "mem" (default cpu) |
| list_virtual_machinesA | List Virtual Machine Manager guests with their state and resource allocation. |
| set_vm_stateA | Power a virtual machine on or off. [control] Args: name: VM name (from list_virtual_machines) action: "poweron", "poweroff" (force off), "shutdown" (graceful) or "restart" |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/rafalr100/synology-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server