mcp-synology
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SYNOLOGY_HOST | Yes | NAS hostname or IP | |
| SYNOLOGY_PASSWORD | Yes | DSM password | |
| SYNOLOGY_USERNAME | Yes | DSM username |
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
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_sharesA | List all shared folders on the NAS. This is the starting point for file navigation — call this first to discover available paths. Shows each share's volume and that volume's free space (shared by every share on it); for how much space a share uses, call get_dir_size. |
| list_filesB | List files and folders in a directory. Supports glob pattern filtering, file type filtering, sorting, and pagination. |
| list_recycle_binC | List the contents of a shared folder's recycle bin. Shows recently deleted files that can be restored. |
| search_filesA | Search recursively for files by keyword, extension, size, or modification date. The pattern parameter is a keyword/substring match on filenames (not glob). Use extension for file type filtering (e.g., extension="mkv"). Accepts human-readable sizes like "500MiB". mtime_from / mtime_to accept ISO 8601 ("2026-04-01T12:00:00+00:00"), a calendar date ("YYYY-MM-DD"), or Unix epoch seconds; naive dates are treated as UTC. For directory contents or sizes, use list_files or get_dir_size instead. |
| get_file_infoA | Get detailed metadata for specific files or folders: size, owner, timestamps, permissions, and real path. |
| get_dir_sizeA | Calculate the total size of a directory, including all files and subdirectories. Returns total size, file count, and directory count. This is the best tool for answering 'how much space does X use' questions. |
| download_fileA | Download a NAS file to a local directory on this machine. Provide the NAS file path. dest_folder is optional if default_download_dir is configured. Does not overwrite existing local files by default. |
| create_folderB | Create one or more new folders. Creates parent directories automatically by default. Idempotent — creating an existing folder succeeds. |
| renameA | Rename a file or folder. Provide the full current path and the new name (just the name, not a full path). |
| copy_filesA | Copy files or folders to a destination folder. Source files remain in place. Set overwrite=true to replace existing files. |
| move_filesA | Move files or folders to a new location. Source files are REMOVED after transfer. Set overwrite=true to replace existing files. |
| delete_filesB | Delete files or folders. If the share has a recycle bin, files can be recovered. Otherwise deletion is permanent, as is deleting inside //#recycle. |
| upload_fileA | Upload a local file from this machine to a NAS folder. Provide the local file path. dest_folder is optional if default_upload_dir is configured. Does not overwrite existing NAS files by default. |
| restore_from_recycle_binB | Restore deleted files from a shared folder's recycle bin to their original location or a specified destination. |
| list_downloadsA | List download tasks in the Download Station queue. Filter by status (downloading/finished/paused/error/all). Returns a table with id, title, type (bt/http/ftp/nzb), status, size, progress%, download and upload speed, ETA, and completion time. Paged with offset/limit (default 25); the footer gives the true total and the next offset. sort_by: queue (default, oldest first), created or completed (newest first; e.g. sort_by=completed, limit=1 gives the most recently finished task). A status filter or sort covers the whole queue, not just one page. Accounts that are not Download Station managers see only their own tasks (the output says so), so an empty list does not mean the NAS is idle. |
| get_download_infoA | Get detailed information for a specific download task: detail (status, destination, URI), transfer (size downloaded/uploaded, speed, peers), files (per-file selection for BT), trackers (BT only), peers (BT only). Use list_downloads first to find the task_id. |
| get_download_statsA | Get current Download Station throughput statistics: total download and upload speed across all tasks, plus eMule download/upload speed when the eMule service is enabled. For per-task speeds use list_downloads. |
| get_download_configA | Get Download Station global configuration: default destination, BT/HTTP/FTP/NZB/eMule max speeds, eMule and auto-unzip state. For accounts that are not Download Station managers DSM returns a per-user view (labeled as such), not the NAS-wide settings. Use get_schedule for the weekly plan. |
| get_scheduleA | Get the Download Station schedule: whether it is enabled, the limited-speed (alt) download/upload rates, and the weekly plan as a 7-day × 24-hour grid where each hour is full speed, limited, or no download. The weekly plan needs a Download Station manager/admin account; otherwise only the flags are shown. |
| create_downloadA | Create one or more download tasks. Pass a comma-separated list of URIs (HTTP, FTP, magnet, etc.) via |
| delete_downloadA | Remove one or more download tasks. |
| pause_downloadA | Pause one or more download tasks. |
| resume_downloadA | Resume one or more paused download tasks. |
| edit_downloadA | Edit task parameters. |
| set_download_configA | Set Download Station global configuration. All parameters are optional — only fields you pass get updated. Rates are KB/s; 0 means unlimited. Pass |
| set_scheduleA | Set the Download Station schedule. All parameters optional — only what you pass gets updated. |
| get_system_infoA | Get NAS hardware and software info: model, firmware, CPU, RAM, temperature, uptime. Use this to identify the NAS and check its basic health. |
| get_resource_usageA | Get live resource utilization: CPU load, memory usage, disk I/O, and network throughput. Use this to check if the NAS is under heavy load before running expensive operations like search or large file copies. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 28 tools
Each tool has a clearly distinct purpose: file operations (list, search, copy, move, delete), download management (create, pause, resume, delete, edit), and system info. Overlaps are minimal and well-clarified by descriptions (e.g., get_download_info vs list_downloads).
Most tools follow a consistent snake_case verb_noun pattern (e.g., set_schedule, get_system_info, list_files, create_folder, delete_files). A few deviations like rename (no object) and get_dir_size (verb_noun but with abbreviated noun) are minor and still clear.
28 tools is on the higher side for a Synology NAS MCP, but the server covers multiple domains (file management, download station, system monitoring) and most tools are justified by specific operations. Some could potentially be consolidated, but the breadth is reasonable.
The toolset provides comprehensive coverage: full file operations (list, search, create, read, update, delete, copy, move), download lifecycle management (create, list, info, pause, resume, edit, delete, config, schedule), and system monitoring. No obvious gaps for the stated purpose.