Skip to main content
Glama
mcp-synology

mcp-synology

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SYNOLOGY_HOSTYesNAS hostname or IP
SYNOLOGY_PASSWORDYesDSM password
SYNOLOGY_USERNAMEYesDSM 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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_sharesA

List all shared folders on the NAS: the top-level folders every file path starts with (/video). Call this first to discover paths. Shows each share's volume, that volume's free space (shared by every share on it) and whether its recycle bin is on; for how much space a share uses, call get_dir_size.

list_filesA

List the files and folders directly inside one folder (one level; subfolders' contents aren't listed). To find files anywhere below a folder by name, extension, size or date, use search_files. Folders show no size; for a folder's total, use get_dir_size. DSM sorts folders and files separately: ascending lists folders first, descending files first. A long listing is paged, and the reply says which offset is next.

list_recycle_binA

List what's in one shared folder's recycle bin: the files and folders deleted from that share. list_shares shows which shares have a bin; for files that weren't deleted, use list_files. Without pattern, only the bin's top level is listed, and DSM sorts folders and files separately, as in list_files. With pattern, the bin is searched, subfolders included (up to 200 folders and 5,000 items; the reply says when it stops early), and each match shows its path in the bin. Modified is the file's own time, not when it was deleted.

search_filesA

Search a folder and everything below it for files and folders by name, extension, size or modified date. For what's in one known folder, use list_files; for how much space a folder uses, use get_dir_size, not a search. With no filter, it returns everything under the folder, up to limit. A search that runs out of time returns what it found so far and says so.

get_file_infoA

Get detailed metadata for files or folders whose paths you know: size, owner, timestamps, permissions and real path on the volume. To see what's in a folder, use list_files; for a folder's total size, use get_dir_size. A path that doesn't exist is reported as not found.

get_dir_sizeA

Calculate the total size of a folder, including everything below it: total size, file count and folder count. This is the tool for 'how much space does X use' questions. Counts only what this DSM user can read: a subfolder it can't read is left out without notice. A very large tree can take minutes, and the call gives up after a timeout (120 s unless the server is configured otherwise).

download_fileA

Download a NAS file to a folder on this machine (where this server runs). A folder downloads as a ZIP of it, saved as <folder>.zip; a whole shared folder can't be downloaded. An existing local file is not replaced unless overwrite is true.

create_folderA

Create one or more folders, each given as a full path starting with its shared folder (/video/TV Shows/New Show). By default (force_parent=true), missing folders above it are created too, and a folder that already exists is not an error.

renameA

Rename a file or folder in place. If the new name is already taken in that folder, DSM refuses and nothing is replaced. To move something to another folder, use move_files.

copy_filesA

Copy files or folders into a destination folder; a folder is copied with everything in it, and the sources stay in place. To move instead, use move_files. dest_folder must already exist; it isn't created. With overwrite=false (default), items already at the destination are skipped and listed, and the rest are copied. If any source is missing, nothing is copied. A long copy keeps running on the NAS and returns a handle for file_task.

move_filesA

Move files or folders into a destination folder; a folder moves with everything in it, and the sources are removed. To keep the sources, use copy_files. dest_folder must already exist; it isn't created. With overwrite=false (default), items already at the destination are skipped, listed and left at the source. If any source is missing, nothing is moved. A long move keeps running on the NAS and returns a handle for file_task.

delete_filesA

Delete files or folders. A folder is deleted with everything in it (recursive, default true). On a share with a recycle bin, deleted items go to the bin: list_recycle_bin shows them and restore_from_recycle_bin brings them back. Without a bin, and for anything inside a bin (/<share>/#recycle), deletion is permanent. Paths are exact, not wildcard patterns, and if any path is missing nothing is deleted. A long delete keeps running on the NAS and returns a handle for file_task.

upload_fileA

Upload one file from this machine (where this server runs) to a NAS folder; a local folder can't be uploaded. An existing NAS file of the same name is not replaced unless overwrite is true.

restore_from_recycle_binA

Restore deleted files or folders from one shared folder's recycle bin. Check what's there first with list_recycle_bin: every path must be in that share's bin, or nothing is restored. Without dest_folder, each item goes back to its original folder, which is re-created if it's gone. An item already at the destination is skipped and stays in the bin, unless overwrite=true, which replaces the existing one. A long restore keeps running on the NAS and returns a handle for file_task.

file_taskA

Follow up on a delete, copy, move or restore that is still running on the NAS. Those tools hand off long operations and return a handle such as delete:FileStation_…, because the NAS keeps working after the reply. With a handle: action="status" shows progress, or the final result if DSM still has it; action="stop" stops it, and the operation may then be partly done. Without a handle: lists this user's running operations, which is useful in a new chat or after a restart. Handles only work for the same NAS user. Don't poll in a loop: check when the user asks, or before doing something that depends on the result.

list_downloadsA

List download tasks in the Download Station queue. Returns a table with id, title, type (bt/http/ftp/nzb), status, size, progress%, download and upload speed, ETA, and completion time. Paged (25 by default); the footer gives the true total and the next offset. A status filter or sort covers the whole queue, not just one page: sort_by=completed with limit=1 gives the most recently finished task. 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. For totals across all tasks, use get_download_stats; for settings, use get_download_config.

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, from URIs or from a local .torrent / .nzb file. destination must be an existing folder, share-relative (DS doesn't create folders; make a new one first with File Station's create_folder when File Station write is enabled, or ask the user to create it in DSM). Omit it to use your default destination (a non-manager who has none must set it first with set_download_config, because DS won't start their tasks until then). Returns the new task IDs when DSM provides them (not for URLs with username / password); long magnet links and URI lists are supported.

delete_downloadA

Remove one or more download tasks. A deleted task can't be restored (its source URL is gone with it), so name the tasks and confirm with the user before deleting. Files from finished tasks are always kept. For unfinished tasks the partial data is discarded (irreversible); don't rely on force_complete to keep it.

pause_downloadA

Pause one or more download tasks. When some of the tasks can be paused, an already-paused or finished one is refused for its id (error 405) or shown as not paused: already finished, and the others are paused. When none can be paused (one finished or already-paused task alone, a missing id, or another user's task), the whole call fails with invalid_parameter; list_downloads shows each task's status.

resume_downloadA

Resume one or more paused download tasks. An active or finished task is refused for that id (error 405), while the others are resumed. list_downloads with status_filter=paused finds the paused tasks.

edit_downloadA

Edit task parameters. Currently supports destination (change the task's output share). Requires a newer Download Station (Task API v2); older versions get a clear error. This changes only the listed tasks; for global settings, use set_download_config. A finished task's file isn't moved: the reply says not changed for it.

set_download_configA

Set Download Station global configuration. All parameters are optional: only the fields you pass are updated. The rate fields require a Download Station manager/admin account: DSM silently ignores them from other accounts, so the tool refuses them. Any user can set default_destination: DSM applies it per user, and DS won't start a non-manager's tasks until it is set.

set_scheduleA

Set the Download Station schedule; get_schedule shows the current one. All parameters are optional: only what you pass is updated. enabled / emule_enabled toggle whether the schedule applies (DSM lets any Download Station user toggle this NAS-wide flag). schedule_plan is in the NAS's local hours, and download_rate / upload_rate are the limited speed. The plan and rates need a Download Station manager/admin account; if that write is refused, nothing is applied.

get_system_infoA

Get everything DSM reports about the NAS. Every account gets the model, serial number, DSM version, RAM, uptime, the NAS's local time and its code page, and the temperature where the NAS has a sensor. A DSM administrator account also gets the CPU, time zone with the current UTC offset, NTP server, firmware date, DSM's update-ready and crash flags, eSATA and attached devices, the network-card flag on DSM 7.2.2 and later, and redundant power on models that report it; any other account gets a line saying so. Use this to identify the NAS, check its basic health or tell the time on it. For live CPU, memory, disk and network load, use get_resource_usage.

get_resource_usageA

Get live resource utilization: CPU load, memory usage, disk I/O, and network throughput. Needs a DSM administrator account; any other account gets permission_denied. Use this to check if the NAS is under heavy load before starting expensive work on it. For the model, firmware, temperature and uptime, use get_system_info.

list_photosA

List or search photos and videos in Synology Photos, newest first by default, with the total. folder, person and tag combine with the date, type, rating and favorite filters; album, place, concept and keyword each work alone. Each row has the item's id, filename, taken time, type, size and folder; pass the ids to get_photo for full details or to download_photos to save the files. For files outside Photos, use File Station's list_files when that module is enabled.

list_photo_collectionsA

List one type of Synology Photos collection with ids and item counts: albums, albums shared with you, people, tags, places, concepts or folders. Use it to find the ids and names that list_photos filters by. Paged; name narrows the list by substring.

get_photoA

Get full details for Synology Photos items by id: filename, folder, taken time, size, resolution, rating, favorite (Photos 1.9.1+), description, tags, people, GPS location and address, and camera details, plus the full EXIF table with exif=true. Use it when list_photos' one-line rows aren't enough. IDs that don't exist are listed as not found.

download_photosA

Download Synology Photos items by id to a folder on this machine: the original files or JPEG previews, one file per item, named after the original. Only writes inside the allowed local folders, and never replaces an existing file unless overwrite=true. For files outside Photos, use File Station's download_file when that module is enabled.

photo_albumA

Create or change a Synology Photos album: create one (normal, or smart: filled automatically from a condition), rename it, add or remove items, set its cover, copy it, or replace a smart album's condition. The photos themselves never move. Personal space albums only. To delete albums use delete_photo_albums; to share one, photo_share_link.

photo_share_linkA

Share a Synology Photos album by link, change the link's public access, password, expiry and members, or stop sharing. A password or an expiry needs public view or download: Photos drops them on a link without public access, so they're refused there. Stopping keeps the link, and sharing again brings it back with its settings reset. Personal space albums only.

photo_folderA

Create or rename a folder in Synology Photos, or set its cover photo. A name the parent folder already has is refused. To copy or move folders use copy_photos / move_photos; to delete, delete_photo_folders. For folders outside Photos, use File Station's create_folder and rename when File Station write is enabled, or ask the user to do it in DSM.

tag_photosA

Add or remove tags on Synology Photos items. Photos writes tags into the original files and re-indexes them, so file dates and sizes change. A tag disappears once no item has it, so to delete a tag remove it from every item that has it (list_photos tag=...); to rename, add the new name to those items, then remove the old one.

edit_photoA

Edit Synology Photos items: rating, description, taken time (set or shift), rotation and favorite (Photos 1.9.1+). Pass only the fields to change; they apply to every id given. Photos writes these into the original files, so file dates and sizes change. Location can't be edited; for tags use tag_photos.

edit_personA

Change one person (a face-recognition group) in Synology Photos: rename them, hide or unhide them in the people list, or set their cover photo. To combine groups that are the same person, use merge_people.

photo_requestA

Manage Synology Photos photo requests: links that let anyone with the link upload files into one of your Photos folders. action: create (returns the link), list (every request with its passphrase and link), update, or delete (its link stops working).

merge_peopleA

Merge people (face-recognition groups) in Synology Photos that are the same person: every person in merge joins target, which keeps its id, and the merged people are gone. If any person isn't found, nothing is merged. This can't be undone, so confirm with the user first. To rename or hide one person, use edit_person.

delete_photo_albumsA

Delete Synology Photos albums (normal or smart) and their share links. The photos in them stay where they are, but the albums' selections, conditions and links can't be recovered. Confirm with the user first. To only take items out of an album, use photo_album action=remove; to delete the photos themselves, delete_photos.

upload_photosA

Upload photos or videos from this machine into a Synology Photos folder, optionally adding them to an existing album. Only reads files inside the allowed local folders. Starts no new file after the configured task timeout (30 s by default, at most 45 s) and lists the files not tried, to pass to another call. Photos indexes new items over the next seconds to minutes; until then their taken dates and previews may be missing.

copy_photosA

Copy Synology Photos items and/or whole folders into another folder, in the same space or the other one. Waits up to the configured task timeout (30 s by default); a longer copy keeps running on the NAS and the reply gives a handle for photo_task. With on_conflict=overwrite it replaces files at the destination.

move_photosA

Move Synology Photos items and/or whole folders into another folder of the same space, or from the personal space into Shared Space (Photos can't move out of Shared Space: copy, then delete). Waits up to the configured task timeout (30 s by default); a longer move keeps running on the NAS and the reply gives a handle for photo_task. With on_conflict=overwrite it replaces files at the destination.

photo_taskA

Follow up on a Synology Photos copy, move or delete that is still running. With a handle (photos:): action=status shows progress; action=stop stops it (it may then be partly done). Without a handle: lists this user's copy, move and delete tasks. action=clear removes finished tasks from that list. Don't poll in a loop: check when the user asks, or before doing something that depends on the result.

delete_photosA

Delete Synology Photos items (the files themselves) by id. They go to the recycle bin of the share that holds the space if it has one, otherwise they're gone. A large delete keeps running on the NAS and the reply gives a handle for photo_task. Confirm with the user first. To only take items out of an album, use photo_album remove.

delete_photo_foldersA

Delete folders in Synology Photos with everything in them (files and subfolders). They go to the recycle bin of the share that holds the space if it has one, otherwise they're gone. A large delete keeps running on the NAS and the reply gives a handle for photo_task. Confirm with the user first.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4/5.0

Scored across 48 tools

Disambiguation4/5

Most tools target clearly distinct actions and resources, and the descriptions include useful cross-references (e.g. list_files vs search_files vs get_dir_size; delete_photos vs delete_photo_albums vs delete_photo_folders). However, with 48 tools there is still some overlap an agent must resolve, such as copy_photos vs copy_files, photo_task vs file_task, and get_download_stats vs get_resource_usage vs get_download_info.

Naming Consistency4/5

The set is overwhelmingly snake_case and uses a predictable verb_noun pattern (get_*, list_*, create_*, delete_*, copy_*, move_*, upload_*, download_*, edit_*, set_*). The main deviations are grouped noun-first tools like photo_album, photo_folder, photo_share_link, file_task and photo_task, plus the bare rename, but these remain readable and mostly consistent with resource grouping.

Tool Count2/5

48 tools is too many for one MCP server and exceeds the practical range where an agent can reliably select among them. The server bundles three large domains (File Station, Download Station, and Synology Photos), each with many similar-sounding operations, which would be better split into separate servers or reduced with more action-parameterized tools.

Completeness4/5

The surface is extensive and covers core lifecycles well: file CRUD/search/upload/download/recycle bin, download task creation/pause/resume/deletion/config/schedule, and Photos listing/editing/album/folder/people/request operations. Some gaps remain, such as finer Download Station per-file controls, File Station permission/compression operations, and richer photo sharing beyond album links, but agents can work around most of them.

Maintenance

ActivityMaintained
ResponsivenessSyncing