Skip to main content
Glama
01men

synology-filestation-mcp

by 01men

synology-filestation-mcp

Servicio MCP (Model Context Protocol) basado en la API web de Synology File Station, que permite a los agentes de IA gestionar directamente archivos en un NAS Synology: navegar directorios, buscar, subir/descargar, crear/renombrar/copiar/mover/eliminar, comprimir/descomprimir, etc.

Admite dos modos de ejecución:

  • Modo local stdio (src/index.js): se ejecuta en la computadora personal, las credenciales se colocan en variables de entorno locales.

  • Modo remoto HTTP Streamable (src/http.js): se despliega centralizadamente en un servidor, varios usuarios lo comparten, y las credenciales de cada NAS se pasan mediante encabezados de solicitud.

Requisitos del entorno

  • Node.js >= 18 (desarrollo verificado con Node 24; servidores con glibc baja pueden usar las compilaciones unofficial-builds para glibc-217)

  • DSM 7.x (probado en DSM 7.2)

Related MCP server: Synology MCP Server

Instalación

npm install

Modo 1: Modo local stdio

Proporcione la información de conexión del NAS mediante variables de entorno (también puede copiar .env.example como .env y completarlo, el servicio lo cargará automáticamente al iniciar):

Variable

Descripción

SYNOLOGY_HOST

Dirección DSM, por ejemplo http://192.168.1.1:5000 (sin barra diagonal al final)

SYNOLOGY_USER

Cuenta DSM

SYNOLOGY_PASSWORD

Contraseña DSM

SYNOLOGY_DOWNLOAD_DIR

Opcional, directorio local predeterminado para fs_download

Tomando como ejemplo Claude Desktop, configure claude_desktop_config.json:

{
  "mcpServers": {
    "synology-filestation": {
      "command": "node",
      "args": ["D:/path/to/synology-filestation-mcp/src/index.js"],
      "env": {
        "SYNOLOGY_HOST": "http://192.168.1.1:5000",
        "SYNOLOGY_USER": "your_username",
        "SYNOLOGY_PASSWORD": "your_password"
      }
    }
  }
}

Modo 2: Modo HTTP remoto (compartido entre múltiples usuarios)

Inicio del servidor:

# .env 或环境变量
SYNOLOGY_HOST=http://192.168.1.1:5000   # 默认 NAS 地址(客户端可用 X-NAS-Host 覆盖)
PORT=3000
MCP_AUTH_TOKEN=<随机令牌>                # 设置后客户端必须带 Bearer token

npm run start:http

Características:

  • Multi-usuario: cada sesión MCP mantiene de forma independiente el estado de inicio de sesión del NAS (pool de sid), sin interferencias.

  • Transferencia de credenciales: el cliente proporciona su propia cuenta NAS X-NAS-User / X-NAS-Password mediante encabezados de solicitud, y opcionalmente X-NAS-Host para sobrescribir el predeterminado del servidor; si falta, se recurre a las variables de entorno del servidor (admite cuentas unificadas gestionadas por el servidor).

  • Autenticación: si se establece MCP_AUTH_TOKEN, todas las solicitudes /mcp deben incluir Authorization: Bearer <token>.

  • Gestión de sesiones: las sesiones inactivas durante 30 minutos se limpian automáticamente y cierran sesión en el NAS (SESSION_IDLE_TTL_MS ajustable).

  • Verificación de salud: GET /health

Configuración del cliente (compatible con clientes MCP remotos, mediante URL):

{
  "mcpServers": {
    "synology-filestation": {
      "url": "http://<部署服务器>:3000/mcp",
      "headers": {
        "Authorization": "Bearer <MCP_AUTH_TOKEN>",
        "X-NAS-User": "同事自己的 NAS 账号",
        "X-NAS-Password": "同事自己的 NAS 密码"
      }
    }
  }
}

Ejemplo de despliegue con systemd:

[Unit]
Description=Synology FileStation MCP (HTTP)
After=network.target

[Service]
WorkingDirectory=/opt/synology-filestation-mcp
ExecStart=/usr/bin/node src/http.js
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

Consejo de seguridad: en producción, se recomienda usar HTTPS (proxy inverso) para terminar TLS, evitando que las credenciales del NAS viajen en texto claro en los encabezados.

Lista de herramientas

Herramienta

Descripción

API subyacente

fs_list_shares

Listar carpetas compartidas

SYNO.FileStation.List / list_share

fs_list

Listar contenido del directorio (con paginación, orden, filtro por comodín)

SYNO.FileStation.List / list

fs_get_info

Obtener información detallada del archivo/directorio

SYNO.FileStation.List / getinfo

fs_search

Buscar archivos por patrón (sondeo automático hasta completar)

SYNO.FileStation.Search / start+list

fs_search_stop

Detener tarea de búsqueda

SYNO.FileStation.Search / stop

fs_search_clean

Limpiar todas las tareas de búsqueda

SYNO.FileStation.Search / clean

fs_create_folder

Crear carpeta

SYNO.FileStation.CreateFolder / create

fs_rename

Renombrar archivo/carpeta

SYNO.FileStation.Rename / rename

fs_copy_move

Copiar/mover (tarea asíncrona, devuelve taskid)

SYNO.FileStation.CopyMove / start

fs_task_status

Consultar progreso de tarea en segundo plano

SYNO.FileStation.BackgroundTask / list

fs_delete

Eliminar (tarea asíncrona, irreversible)

SYNO.FileStation.Delete / start

fs_download

Descargar archivo del NAS al directorio local

SYNO.FileStation.Download / download

fs_upload

Subir archivo local al NAS

SYNO.FileStation.Upload / upload

fs_compress

Comprimir en zip/7z en el NAS (tarea asíncrona)

SYNO.FileStation.Compress / start

fs_extract

Descomprimir en el NAS (tarea asíncrona, el directorio destino debe existir)

SYNO.FileStation.Extract / start

Pruebas

SYNOLOGY_HOST=http://192.168.0.196:5000 SYNOLOGY_USER=xxx SYNOLOGY_PASSWORD=xxx npm test

La prueba de humo ejecuta un flujo completo contra el NAS: iniciar sesión → listar carpetas compartidas → crear directorio → subir archivo → listar → consultar información → renombrar → copiar → buscar → descargar y verificar contenido → eliminar limpiando → cerrar sesión. La prueba creará un directorio temporal mcp-smoke-test bajo alguna carpeta compartida con permisos de escritura, y lo eliminará automáticamente al finalizar.

También hay una prueba de capacidades extendidas test/extended.mjs (node test/extended.mjs, también lee variables de entorno): cubre la verificación byte por byte de subida/descarga de 23 formatos de archivo (documentos/imágenes/videos/audio/comprimidos/base de datos/imágenes de máquina virtual), copia/movimiento/eliminación masiva, descompresión en el NAS, verificación de ubicación en la papelera de reciclaje, y sondeo de límites de permisos y seguridad.

Notas de implementación (compatibilidad DSM 7.x)

  • Al iniciar, primero llama a SYNO.API.Info para descubrir la ruta y versión de cada API; el inicio de sesión usa SYNO.API.Auth (format=sid).

  • El parámetro additional de SYNO.FileStation.List v2 requiere formato de array JSON (por ejemplo ["size","time"]); una cadena separada por comas se ignora silenciosamente.

  • La consulta de información de archivos usa SYNO.FileStation.List / getinfo (SYNO.FileStation.Info / get devuelve la configuración del servidor File Station, no la información del archivo).

  • La subida usa la versión 2 de la API: en la práctica, en v3 el parámetro overwrite no funciona y los archivos con el mismo nombre devuelven 414. El sid se transmite mediante doble canal: campo de formulario y Cookie: id=<sid>.

  • Copiar/mover/eliminar son tareas asíncronas; SYNO.FileStation.BackgroundTask en DSM 7.x solo tiene el método list (sin status), se consulta el progreso filtrando por taskid.

  • La búsqueda es una tarea asíncrona; la herramienta sondea internamente list hasta que finished.

  • El directorio de destino de SYNO.FileStation.Extract debe existir previamente, de lo contrario devuelve 408 (No such file or directory).

  • SYNO.FileStation.Compress depende de los permisos de aplicación de la cuenta en DSM; si devuelve 105 (session does not have permission), se deben otorgar los permisos correspondientes a la cuenta en el Panel de control de DSM.

Límites de capacidad (fuera del alcance de la API de File Station)

Las siguientes capacidades no existen en la API oficial de File Station, por lo que este MCP no puede proporcionarlas:

  • Gestión de permisos ACL: pertenece a las funciones del Panel de control de DSM (interfaces privadas SYNO.Core.*, no son API pública de File Station).

  • Cifrado AES de carpetas compartidas: pertenece a las funciones de gestión de almacenamiento de DSM (crear/montar carpetas compartidas cifradas).

  • Marcas de solo lectura/no eliminables: la API de File Station no tiene entrada de configuración; se puede implementar indirectamente montando la carpeta compartida como solo lectura.

  • Papelera de reciclaje de red: la acción de eliminación sigue automáticamente la configuración de la papelera de reciclaje de cada carpeta compartida (si está activada, los archivos eliminados van a <share>/#recycle); la API no necesita ni puede controlarlo por separado.

Estructura del directorio

src/
  index.js    stdio 入口(本地模式)
  http.js     HTTP 入口(远程模式,Streamable HTTP + 多用户会话池)
  server.js   共享的 MCP Server 构建(注册全部工具)
  env.js      .env 加载
  client.js   Synology API 客户端:API 发现、认证、请求封装、错误码映射
  tools/      每个 File Station API 一个工具模块
test/
  smoke.mjs      对真实 NAS 的全链路冒烟测试(stdio 层逻辑)
  http-smoke.mjs HTTP 模式自测(鉴权、会话、工具调用、会话关闭)
  extended.mjs   扩展能力测试(多格式、批量、解压、回收站)
F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    -
    quality
    D
    maintenance
    Provides secure file system operations for AI assistants including directory listing, file reading/writing, deletion, searching, and copying. Features safety controls like path validation, permission checks, and file size limits.
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI agents to perform FTP/FTPS/SFTP file operations including upload, download, sync, and directory management with multi-server support.
    36
    34
    1
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    Provides file system access and operations, enabling AI assistants to read, write, list, search, and manage files and directories through a standardized interface.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • File uploads for AI agents. Upload, list, and manage files. No signup required.

  • Securely search and manage workspace context files for AI agents and teams.

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/01men/synology-filestation-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server