SynoLink MCP Server logo

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.

View on GitHub

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 filename
      • content (string) - Content of the file to upload
  • create_folder

    • Creates a new folder
    • Inputs:
      • path (string) - Full path to create folder at
      • name (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 folder
      • destination (string) - Full path to the destination location

Search and Information Tools

  • search

    • Searches for files and folders
    • Inputs:
      • keyword (string) - Search keyword
      • path (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

Acknowledgements