使用说明
本项目是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在让支持MCP的AI助手(如Claude Desktop, Continue, Cursor, Codeium等)能够安全地访问并控制您的 Synology NAS 设备上的文件系统和 Download Station 应用。
项目简介
Synology MCP Server 在您的环境中运行,充当 AI 助手与 Synology NAS 之间的桥梁。它将 NAS 的各项功能(如文件操作、下载管理)封装为 AI 可调用的“工具”,AI 助手可以通过标准化的 MCP 协议与该服务器通信,从而执行对 NAS 的操作,极大地扩展了 AI 助手的能力范围。
主要功能点
- 安全认证与会话管理: 支持通过用户名和密码安全登录 Synology NAS,并维护会话,确保操作的安全性。
- 文件系统操作:
- 列出所有共享文件夹。
- 浏览任意目录的内容,包括文件和子目录的详细信息(大小、时间、权限等)。
- 获取特定文件或目录的详细信息。
- 在指定路径下搜索文件(支持通配符)。
- 创建新文件(可指定内容)。
- 创建新目录(可选择同时创建父目录)。
- 删除文件或目录。
- 重命名文件或目录。
- 移动文件或目录到新位置。
- Download Station 管理:
- 获取 Download Station 的基本信息和设置。
- 列出所有当前的下载任务及其状态。
- 通过 URL 或磁力链接创建新的下载任务。
- 暂停和恢复指定的下载任务。
- 删除指定的下载任务。
- 获取实时的下载和上传统计信息。
安装步骤
本项目支持使用 Docker 或直接使用 Python 运行。推荐使用 Docker,配置和管理更为便捷。
使用 Docker (推荐)
- 克隆仓库: 打开终端,执行以下命令克隆项目代码并进入目录:
git clone https://github.com/atom2ueki/mcp-server-synology.git cd mcp-server-synology - 配置 '.env' 文件: 复制示例环境变量文件:
然后使用文本编辑器打开新生成的 '.env' 文件,填入您的 Synology NAS 连接信息。以下是必须配置的项:cp env.example .envSYNOLOGY_URL=http://your_nas_ip_or_hostname:5000 # 替换为您的NAS地址和端口 SYNOLOGY_USERNAME=your_username # 替换为您的NAS用户名 SYNOLOGY_PASSWORD=your_password # 替换为您的NAS密码 # 您还可以根据需要配置 AUTO_LOGIN=true 或 VERIFY_SSL=false 等选项 - 构建并运行: 执行 Docker Compose 命令构建镜像并以后台模式运行容器:
要查看日志,可以使用 'docker-compose logs -f'。docker-compose up -d --build
直接使用 Python 运行
- 克隆仓库: 执行上面 Docker 步骤中的克隆命令。
- 安装依赖: 确保您的系统安装了 Python 3.7+ 和 pip。在项目目录下安装依赖:
pip install -r requirements.txt - 配置 '.env' 文件: 执行上面 Docker 步骤中的复制命令,并编辑 '.env' 文件,填入您的 Synology NAS 连接信息。
- 运行服务器: 在项目目录下执行:
服务器将在当前终端中以前台模式运行。python main.py
服务器配置 (供 MCP 客户端参考)
Synology MCP Server 启动后,MCP 客户端需要知道如何连接到它。由于本项目默认使用 Stdio 协议(标准输入/输出),客户端通常通过启动一个进程来运行服务器程序,并通过该进程的 Stdio 流进行通信。
您需要在您的 MCP 客户端(如 Claude Desktop, Continue, Cursor, Codeium等)的配置文件中添加一个 MCP 服务器条目。配置通常是一个 JSON 结构,指示客户端如何启动服务器进程。以下是一个常见的配置示例及其说明:
{ "mcpServers": { "synology": { // 这是您为该服务器起的客户端内部名称,可自定义 "command": "docker-compose", // 用于启动服务器的命令 (这里示例为docker-compose) "args": [ // 传递给命令的参数 "-f", "/path/to/your/mcp-server-synology/docker-compose.yml", // 指定docker-compose文件路径 "run", "--rm", "synology-mcp" // 运行服务并容器退出后移除 ], "cwd": "/path/to/your/mcp-server-synology", // 命令执行时的工作目录 (即项目根目录) // 如果您是直接使用Python运行,配置可能类似: // "command": "python", // "args": ["/path/to/your/mcp-server-synology/main.py"], // "cwd": "/path/to/your/mcp-server-synology", // 您也可以选择在这里而不是在 .env 文件中配置敏感信息,例如: // "env": { // "SYNOLOGY_URL": "http://192.168.1.100:5000", // "SYNOLOGY_USERNAME": "your_username", // "SYNOLOGY_PASSWORD": "your_password" // } } } }
请根据您的具体安装方式(Docker 或 Python)和项目实际存放路径来修改 'command', 'args', 和 'cwd'。配置完成后,重新启动您的 MCP 客户端,它应该就能识别并连接到 Synology MCP Server。
基本使用方法
一旦您的 MCP 客户端成功连接到 Synology MCP Server,AI 助手即可通过调用该服务器提供的工具与您的 NAS 互动。具体的使用方式取决于您的 MCP 客户端界面,通常您可以直接在与 AI 的对话中提出需求,AI 会判断是否需要调用 Synology 工具并执行操作。
例如,您可以尝试:
- “列出我的 Synology NAS 上 downloads 共享文件夹里的内容。” (AI 可能调用 'list_directory' 工具)
- “帮我把文件 /volume1/documents/report.pdf 移动到 /volume1/archive 文件夹。” (AI 可能调用 'move_file' 工具)
- “请在 Download Station 里创建一个任务,下载这个链接:[一个下载链接] 到 downloads 文件夹。” (AI 可能调用 'ds_create_task' 工具)
- “我的 Download Station 当前有多少个任务在运行?” (AI 可能调用 'ds_list_tasks' 工具)
通过与 AI 助手自然语言交互,您可以便捷地管理您的 Synology NAS 文件和下载任务。
信息
分类
数据库与文件