Skip to main content
Glama
shunnnnn-png

synology-chat-hermes-mcp

by shunnnnn-png

synology-chat-hermes-mcp

English · 繁體中文

Ограниченный HTTP-сервер FastMCP, который предоставляет агентам ИИ фиксированную SMB-папку Synology NAS как инструменты для чтения/записи файлов — со строгой изоляцией путей, ограничениями размера и блокировкой активного контента.

Изначально создан как файловый канал для семейного развёртывания Hermes (управляющий агент → MCP → SMB3 → NAS). Работает с любым MCP-клиентом (Hermes, Claude и т.д.).

Зачем это нужно

Агенты ИИ с доступом к файлам безопасны только в том случае, если доступ ограничен. Этот сервер:

  • Изолирует каждый путь до одной фиксированной папки (NAS_SHARE). Обход пути (.., абсолютные пути, symlink/reparse-point escape) отклоняется до любого SMB-вызова.

  • Отклоняет публичные WAN-серверыNAS_SERVER должен быть частным, link-local или Tailscale (100.64.0.0/10) литеральным IP. DNS-имена и публичные IP-адреса не принимаются.

  • Никогда не хранит учётные данные — пароль SMB читается из docker secret-файла при запуске (NAS_PASSWORD_FILE), никогда из переменных окружения или кода.

  • Блокирует активный контент — генераторы DOCX/XLSX/PDF создают только очищенные документы; бинарные загрузки проверяются на макросы, внешние связи и скрипты; несоответствия расширения и медиатипа отклоняются.

  • Ограничивает всё — размер файла, размер бинарного файла, количество символов в документе, ячеек в таблице, пикселей изображения, результаты поиска — всё имеет жёсткие лимиты.

  • Аудирует операции — каждое изменение добавляется в JSONL-журнал аудита.

Related MCP server: MCP File System Server

Архитектура

Hermes (or any MCP client)
  → HTTP :8000/mcp (FastMCP, streamable HTTP)
    → NasService (validation, limits, audit)
      → SMBBackend (smbprotocol, SMB3, encryption+signing required)
        → Synology NAS share

Инструменты

Инструмент

Описание

health

Проверка подключения SMB3

list_directory

Список содержимого каталога внутри папки

search_files

Поиск имен файлов по пути

read_file

Чтение текстового файла UTF-8 с ограничением размера

write_file

Атомарная запись UTF-8 (существующие файлы защищены, если не указан overwrite)

write_binary_file

Валидированная запись base64 (TXT/DOCX/XLSX/PDF/PNG/JPEG)

create_document

Безопасный DOCX из заголовка + обычного/Markdown-подобного текста

create_spreadsheet

Безопасный XLSX (формулы отклоняются)

create_pdf

Статический PDF (без скриптов/ссылок/встроенных файлов)

read_document

Извлечение текста из TXT/MD/CSV/JSON/YAML/DOCX/XLSX/PDF

create_directory

Создание каталога (создавайте по одному уровню за раз — parents=True ненадёжен, см. ниже)

move_file

Перемещение внутри папки

get_file_info

Метаданные без содержимого

Известное ограничение: create_directory проверяет родительский каталог до вызова makedirs, поэтому многоуровневый путь, первый сегмент которого не существует, возвращает not_found даже с parents=True. Создавайте по одному уровню за раз.

Быстрый старт

cp .env.example .env   # set NAS_SERVER (Tailscale/private IP), NAS_USERNAME
# provide the SMB password as a docker secret:
printf '%s' 'YOUR_SMB_PASSWORD' > ./synology_password
chmod 600 ./synology_password

docker build -t nas-mcp .
docker run -d --name nas-mcp \
  --env-file .env \
  -v "$PWD/synology_password:/run/secrets/synology_password:ro" \
  -v nas-mcp-audit:/var/log/nas-mcp \
  -p 8000:8000 \
  nas-mcp

Проверка работоспособности:

curl -X POST http://127.0.0.1:8000/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"health","arguments":{}}}'

Конфигурация Hermes MCP

mcp_servers:
  nas-mcp:
    type: http
    url: http://nas-mcp:8000/mcp

Запуск тестов

python -m nas_mcp.smoke   # exercises the full tool chain against the live share

Справочник переменных окружения

Переменная

Обязательная

По умолчанию

Примечания

NAS_SERVER

Только частный IP или Tailscale (литерал)

NAS_SHARE

Фиксированное имя общего ресурса, применяется во время выполнения

NAS_USERNAME

Пользователь SMB на уровне папки

NAS_PASSWORD_FILE

/run/secrets/synology_password

Путь к секрету Docker

NAS_CONNECT_TIMEOUT_SECONDS

8

NAS_REQUIRE_ENCRYPTION

true

Требуется шифрование SMB3

NAS_REQUIRE_SIGNING

true

Требуется подпись SMB3

NAS_AUDIT_LOG

/var/log/nas-mcp/audit.jsonl

NAS_MAX_FILE_BYTES

1048576

NAS_MAX_BINARY_FILE_BYTES

8388608

NAS_MAX_DOCUMENT_CHARS

100000

NAS_MAX_SPREADSHEET_CELLS

50000

NAS_MAX_DOCUMENT_EXPANDED_BYTES

67108864

NAS_MAX_IMAGE_PIXELS

25000000

NAS_MAX_SEARCH_ENTRIES

5000

NAS_MAX_SEARCH_RESULTS

100

NAS_MCP_HOST / NAS_MCP_PORT

0.0.0.0 / 8000

Замечания по безопасности

  • Пароль SMB — единственный секрет в системе, и он находится только в файле docker secret. Ничего не зашито жёстко, ничего не хранится в .env в открытом виде, кроме несекретных настроечных значений (а .env игнорируется git).

  • В продакшене привязывайтесь к частному интерфейсу; не открывайте :8000 публично.

  • Имя общего ресурса и пользователь SMB являются конфигурационными (NAS_SHARE, NAS_USERNAME) — задавайте их для каждого развёртывания; в коде не предполагается конкретное значение.

Лицензия

MIT

A
license - permissive license
-
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

  • A
    license
    -
    quality
    C
    maintenance
    Provides a secure, constrained filesystem workspace for LLM agents to manage files, notes, and code artifacts via stdio or remote HTTP. It features granular access controls, including extension whitelisting, storage quotas, and immutable paths for safe automated file operations.
    BSD 3-Clause
  • F
    license
    -
    quality
    C
    maintenance
    A secure, sandboxed file system server that enables reading, writing, searching, and managing files through MCP-compatible AI clients with path traversal protection and size limits.
  • A
    license
    -
    quality
    B
    maintenance
    Exposes local file system operations to AI assistants via Streamable HTTP with security features like auth, path whitelisting, and audit logging.
    2,884
    1
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    MCP server enabling AI agents to manage and monitor Synology NAS via official DSM API, including file operations, system stats, backups, downloads, and camera lists.
    15

View all related MCP servers

Related MCP Connectors

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

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

  • Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.

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/shunnnnn-png/synology-chat-hermes-mcp'

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