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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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