SynoLink MCP Server
by Do-Boo
SynoLink MCP Server is a Node.js server that implements the Model Context Protocol (MCP) for Synology NAS file operations. It allows interaction with a Synology NAS device through Claude or other compatible AI assistants.
Last updated: N/A
SynoLink MCP Server
A Node.js server implementing Model Context Protocol (MCP) for Synology NAS file operations. This server allows you to interact with your Synology NAS device through Claude or other compatible AI assistants.
Features
- Login/logout to Synology DSM
- List files and folders
- Download file contents
- Upload files
- Create folders
- Delete files/folders
- Move/rename files and folders
- Search functionality
- Create and list sharing links
- Get server information
- Get quota information
Prerequisites
- Node.js 18 or higher
- npm or yarn
- Synology NAS with DSM 6.0 or higher
- Network access to your Synology NAS
Installation
Clone this repository:
git clone https://github.com/Do-Boo/MCP-SynoLink.git
cd MCP-SynoLink
Install dependencies:
npm install
Build the project:
npm run build
Usage with Claude Desktop
Node.js Method
Add this to your claude_desktop_config.json
:
{
"mcpServers": {
"synolink": {
"command": "node",
"args": [
"/path/to/MCP-SynoLink/dist/index.js",
"https://your-synology-url:port",
"your-username",
"your-password"
]
}
}
}
Docker Method
Build the Docker image:
docker build -t mcp/synolink .
Then add this to your claude_desktop_config.json
:
{
"mcpServers": {
"synolink": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"mcp/synolink",
"https://your-synology-url:port",
"your-username",
"your-password"
]
}
}
}
Security Note
Always be careful with credentials. The current implementation sends the password as a command-line argument, which may be visible in process listings. For improved security in a production environment, consider implementing alternative authentication methods.
API Documentation
The server provides the following tools:
Authentication Tools
-
login
- Authenticates with the Synology NAS
- No parameters required (uses credentials from command line)
-
logout
- Logs out from the Synology NAS
- No parameters required
File Management Tools
-
list_folders
- Lists files and folders in a directory
- Input:
path
(string) - Path to list files from, e.g., '/photos'
-
get_file
- Gets the content of a file
- Input:
path
(string) - Full path to the file on Synology NAS
-
upload_file
- Uploads a file to Synology NAS
- Inputs:
path
(string) - Destination path on Synology NAS including filenamecontent
(string) - Content of the file to upload
-
create_folder
- Creates a new folder
- Inputs:
path
(string) - Full path to create folder atname
(string) - Name of the new folder
-
delete_item
- Deletes a file or folder
- Input:
path
(string) - Full path to the file or folder to delete
-
move_item
- Moves or renames a file or folder
- Inputs:
source
(string) - Full path to the source file or folderdestination
(string) - Full path to the destination location
Search and Information Tools
-
search
- Searches for files and folders
- Inputs:
keyword
(string) - Search keywordpath
(string, optional) - Path to search in, defaults to "/"
-
get_share_links
- Gets or creates sharing links for a file or folder
- Input:
path
(string) - Path to get share links for
-
get_server_info
- Gets information about the Synology server
- No parameters required
-
get_quota_info
- Gets quota information for volumes
- Input:
volume
(string, optional) - Volume name, if omitted shows all volumes
License
MIT License