Model Context Protocol (MCP) server for Synology NAS.
Expose your Synology DSM to any MCP-compatible AI client (Claude Desktop, Claude Code, or any OpenAI-compatible agent) through a clean set of tools covering File Station, Download Station, Container Manager, Virtual Machine Manager, Task Scheduler, Log Center, Power, Shared Folders, User Management, and more.
| Property | Value |
|---|---|
| Transport | stdio — JSON-RPC 2.0 |
| Protocol | MCP 2024-11-05 |
| Auth | DSM session (username + password) |
| Multi-NAS | Yes — manage multiple devices from a single server |
| Python | ≥ 3.11 |
docker run -i --rm \
-e SYNOLOGY_HOST=192.168.1.1 \
-e SYNOLOGY_PORT=5001 \
-e SYNOLOGY_HTTPS=true \
-e SYNOLOGY_VERIFY_SSL=false \
-e SYNOLOGY_USER=admin \
-e SYNOLOGY_PASSWORD=secret \
lordraw/synology-mcp
The
-iflag is required — the server communicates over stdin/stdout.
Create /path/to/nas_config.json:
{
"home": {
"host": "192.168.1.1",
"port": 5001,
"https": true,
"verify_ssl": false,
"user": "admin",
"password": "secret"
},
"backup": {
"host": "10.0.0.2",
"port": 5001,
"https": true,
"verify_ssl": true,
"user": "admin",
"password": "secret2"
}
}
docker run -i --rm \
-v /path/to/nas_config.json:/config/nas_config.json:ro \
-e NAS_CONFIG=/config/nas_config.json \
lordraw/synology-mcp
When more than one NAS is configured, every tool gains an optional nas
parameter ("home", "backup", …). The first entry is the default.
Use the list_nas tool to see all available devices.
Add to claude_desktop_config.json
(~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"synology": {
"command": "docker",
"args": ["run", "-i", "--rm",
"-e", "SYNOLOGY_HOST=192.168.1.1",
"-e", "SYNOLOGY_PORT=5001",
"-e", "SYNOLOGY_HTTPS=true",
"-e", "SYNOLOGY_VERIFY_SSL=false",
"-e", "SYNOLOGY_USER=admin",
"-e", "SYNOLOGY_PASSWORD=secret",
"lordraw/synology-mcp"]
}
}
}
claude mcp add synology -- docker run -i --rm \
-e SYNOLOGY_HOST=192.168.1.1 \
-e SYNOLOGY_USER=admin \
-e SYNOLOGY_PASSWORD=secret \
lordraw/synology-mcp
List all shared folders on my NAS.
What files are inside /volume1/photos?
How much space does the /volume1/docker folder use?
Search for all PDF files inside /volume1/Doc.
Create a folder called "archive" inside /volume1/share.
Rename /volume1/share/old-report.pdf to final-report.pdf.
Generate a download link for /volume1/share/presentation.pptx.
Create a public sharing link for /volume1/share/budget.xlsx,
password-protected and expiring on 2025-12-31.
Show me all active download tasks.
Add this magnet link to Download Station: magnet:?xt=urn:btih:...
Pause all running download tasks.
Delete completed download tasks.
What is the current DSM version and model of my NAS?
Show me CPU and RAM usage right now.
How much free space is left on volume1?
List all installed DSM packages.
List all running Docker containers.
Show me the logs for the homeassistant container.
Restart the nginx container.
Stop the portainer container.
List all Docker Compose projects and their status.
List all virtual machines and their power state.
Power on the ubuntu-server VM.
Take a snapshot of the win11 VM called "before-update".
List all snapshots for the ubuntu-server VM.
List all scheduled tasks.
Run the backup-task script immediately.
Disable the cleanup-logs scheduled task.
Show the last execution log of the rsync-task.
Show me the last 50 error-level log entries.
Are there any warning or error logs from today?
Show connection logs for the last 24 hours.
Reboot the NAS.
Put the NAS drives into hibernation.
What is the auto power-on/off schedule?
List all local DSM users.
Create a new user called "john" with the email [email protected].
Disable the user account "guest".
List all groups and their members.
Add users alice and bob to the "developers" group.
List all configured NAS devices.
Show me the shared folders on my backup NAS.
How much free space is left on the home NAS vs the backup NAS?
Check if there are any error logs on the backup NAS.
list_nas
list_shares · list_files · get_file_info · create_folder · rename
· delete · search_files · get_download_url · get_folder_size
list_sharing_links · get_sharing_link_info · create_sharing_link
· delete_sharing_links · clear_invalid_sharing_links
list_tasks · get_task_info · create_task · pause_task · resume_task
· delete_task · get_download_station_info · get_download_station_config
get_dsm_info · get_storage_info · get_network_info
· get_system_utilization · list_packages · list_users · get_quota
list_tasks · get_task_output · run_task · set_task_enabled
· delete_task
get_logs · get_connection_logs · clear_logs
shutdown_nas · reboot_nas · hibernate_nas · get_power_schedule
list_containers · get_container · start_container · stop_container
· restart_container · get_container_logs · list_images · delete_image
· list_projects · set_project_state
list_vms · get_vm · poweron_vm · shutdown_vm · poweroff_vm
· list_vm_snapshots · create_vm_snapshot · delete_vm_snapshot
list_shared_folders · get_shared_folder · create_shared_folder
· delete_shared_folder · get_folder_permissions · set_folder_permissions
create_user · delete_user · update_user · set_user_enabled
· list_groups · create_group · delete_group · set_group_members
:ro) to reduce the attack surface.admin account.Content type
Image
Digest
sha256:2055754e6…
Size
65.2 MB
Last updated
4 months ago
docker pull lordraw/synology-mcp