by atom2ueki
💾 Model Context Protocol (MCP) server for Synology NAS - Enables AI assistants (Claude, Cursor, Continue) to manage files, downloads, and system operations through secure API integration. Features Docker deployment, auto-authentication, and comprehensive file system tools.
# Add to your Claude Code skills
git clone https://github.com/atom2ueki/mcp-server-synologyGuides for using ai agents skills like mcp-server-synology.

A Model Context Protocol (MCP) server for Synology NAS devices. Enables AI assistants to manage files and downloads through secure authentication and session management.
🌟 NEW: Unified server supports both Claude/Cursor (stdio) and Xiaozhi (WebSocket) simultaneously!
# Clone repository
git clone https://github.com/atom2ueki/mcp-server-synology.git
cd mcp-server-synology
# Create environment file
cp env.example .env
Basic Configuration (Claude/Cursor only):
# Required: Synology NAS connection
SYNOLOGY_URL=http://192.168.1.100:5000
SYNOLOGY_USERNAME=your_username
SYNOLOGY_PASSWORD=your_password
# Optional: Auto-login on startup
AUTO_LOGIN=true
VERIFY_SSL=false
Extended Configuration (Both Claude/Cursor + Xiaozhi):
# Required: Synology NAS connection
SYNOLOGY_URL=http://192.168.1.100:5000
SYNOLOGY_USERNAME=your_username
SYNOLOGY_PASSWORD=your_password
# Optional: Auto-login on startup
AUTO_LOGIN=true
VERIFY_SSL=false
# Enable Xiaozhi support
ENABLE_XIAOZHI=true
XIAOZHI_TOKEN=your_xiaozhi_token_here
XIAOZHI_MCP_ENDPOINT=wss://api.xiaozhi.me/mcp/
One simple command supports both modes:
# Claude/Cursor only mode (default if ENABLE_XIAOZHI not set)
docker-compose up -d
# Both Claude/Cursor + Xiaozhi mode (if ENABLE_XIAOZHI=true in .env)
docker-compose up -d
# Build and run
docker-compose up -d --build
No comments yet. Be the first to share your thoughts!
# Install dependencies
pip install -r requirements.txt
# Run with environment control
python main.py
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"synology": {
"command": "docker-compose",
"args": [
"-f", "/path/to/your/mcp-server-synology/docker-compose.yml",
"run", "--rm", "synology-mcp"
],
"cwd": "/path/to/your/mcp-server-synology"
}
}
}
Add to your Cursor MCP settings:
{
"mcpServers": {
"synology": {
"command": "docker-compose",
"args": [
"-f", "/path/to/your/mcp-server-synology/docker-compose.yml",
"run", "--rm", "synology-mcp"
],
"cwd": "/path/to/your/mcp-server-synology"
}
}
}
Add to your Continue configuration (.continue/config.json):
{
"mcpServers": {
"synology": {
"command": "docker-compose",
"args": [
"-f", "/path/to/your/mcp-server-synology/docker-compose.yml",
"run", "--rm", "synology-mcp"
],
"cwd": "/path/to/your/mcp-server-synology"
}
}
}
For Codeium's MCP support:
{
"mcpServers": {
"synology": {
"command": "docker-compose",
"args": [
"-f", "/path/to/your/mcp-server-synology/docker-compose.yml",
"run", "--rm", "synology-mcp"
],
"cwd": "/path/to/your/mcp-server-synology"
}
}
}
If you prefer not to use Docker:
{
"mcpServers": {
"synology": {
"command": "python",
"args": ["main.py"],
"cwd": "/path/to/your/mcp-server-synology",
"env": {
"SYNOLOGY_URL": "http://192.168.1.100:5000",
"SYNOLOGY_USERNAME": "your_username",
"SYNOLOGY_PASSWORD": "your_password",
"AUTO_LOGIN": "true",
"ENABLE_XIAOZHI": "false"
}
}
}
}
New unified architecture supports both clients simultaneously!
ENABLE_XIAOZHI=true
XIAOZHI_TOKEN=your_xiaozhi_token_here
# Same command, different behavior based on environment
python main.py
# OR
docker-compose up
Claude/Cursor only mode:
🚀 Synology MCP Server
==============================
📌 Claude/Cursor only mode (ENABLE_XIAOZHI=false)
Both clients mode:
🚀 Synology MCP Server with Xiaozhi Bridge
==================================================
🌟 Supports BOTH Xiaozhi and Claude/Cursor simultaneously!
synology_status - Check authentication status and active sessionssynology_list_nas - List all configured NAS units from settings.jsonsynology_login - Authenticate with Synology NAS (conditional)synology_logout - Logout from session (conditional)list_shares - List all available NAS shareslist_directory - List directory contents with metadata
path (required): Directory path starting with /get_file_info - Get detailed file/directory information
path (required): File path starting with /search_files - Search files matching pattern
path (required): Search directorypattern (required): Search pattern (e.g., *.pdf)create_file - Create new files with content
path (required): Full file path starting with /content (optional): File content (default: empty string)overwrite (optional): Overwrite existing files (default: false)create_directory - Create new directories
folder_path (required): Parent directory path starting with /name (required): New directory nameforce_parent (optional): Create parent directories if needed (default: false)delete - Delete files or directories (auto-detects type)
path (required): File/directory path starting with /rename_file - Rename files or directories
path (required): Current file pathnew_name (required): New filenamemove_file - Move files to new location
source_path (required): Source file pathdestination_path (required): Destination pathoverwrite (optional): Overwrite existing filesds_get_info - Get Download Station informationds_list_tasks - List all download tasks with status
offset (optional): Pagination offsetlimit (optional): Max tasks to returnds_create_task - Create new download task
uri (required): Download URL or magnet linkdestination (optional): Download folder pathds_pause_tasks - Pause download tasks
task_ids (required): Array of task IDsds_resume_tasks - Resume paused tasks
task_ids (required): Array of task IDsds_delete_tasks - Delete download tasks
task_ids (required): Array of task IDsforce_complete (optional): Force delete completedds_get_statistics - Get download/upload statisticssynology_system_info - Get system model, serial, DSM version, uptime, temperaturesynology_utilization - Get real-time CPU, memory, swap, and disk I/O utilizationsynology_disk_health - List all physical disks with SMART status, model, temp, sizesynology_disk_smart - Get detailed SMART attributes for a specific disksynology_volume_status - List all volumes with status, size, usage, filesystem typesynology_storage_pool - List RAID/storage pools with level, status, member diskssynology_network - Get network interface status and transfer ratessynology_ups - Get UPS status, battery level, power readingssynology_services - List installed packages and their running statussynology_system_log - Get recent system log entriessynology_health_summary - Aggregate system info, utilization, disk health, and volume statussynology_nfs_status - Get NFS service status and configurationsynology_nfs_enable - Enable or disable the NFS servicesynology_nfs_list_shares - List all shared folders with their NFS permissionssynology_nfs_set_permission - Set NFS client access permissions on a shared folderFor Claude Code, Claude Desktop, and claude.ai users, this repo ships an Anthropic Agent Skill that teaches Claude how to use the MCP tools effectively — picking the right tool, targeting the right NAS in multi-NAS setups, preferring aggregate health checks over fan-out calls, and using correct path conventions.
The skill lives at skills/synology-nas/ and uses progressive disclosure across six domains (auth, files, downloads, health, shares/NFS, user management).
Install:
~/.claude/skills/synology-nas/synology-nas/ folder via the Skills settings pageThe skill is purely additive — it works alongside the MCP and only triggers on Synology/NAS-related prompts.
⚠️ Security Warning: Use a Dedicated Account
For this MCP server, create a dedicated Synology user account with appropriate permissions. This account should:
- NOT have 2FA enabled - The MCP server cannot hand