Skip to main content
Glama
shunnnnn-png

synology-chat-hermes-mcp

by shunnnnn-png

synology-chat-hermes-mcp

영어 · 繁體中文

제한된 FastMCP HTTP 서버로, 고정된 Synology NAS SMB 공유를 AI 에이전트에 읽기/쓰기 파일 도구로 노출합니다. 엄격한 경로 감옥, 크기 제한, 활성 콘텐츠 거부가 내장되어 있습니다.

원래 가족 Hermes 배포(제어 에이전트 → MCP → SMB3 → NAS)의 파일 채널로 구축되었습니다. 모든 MCP 클라이언트(Hermes, Claude 등)와 함께 작동합니다.

존재 이유

파일 접근 권한이 있는 AI 에이전트는 접근이 제한될 때만 안전합니다. 이 서버는:

  • 모든 경로를 하나의 고정된 공유(NAS_SHARE)로 감금합니다. 경로 탐색(.., 절대 경로, 심볼릭 링크/재분석 지점 탈출)은 SMB 호출 전에 거부됩니다.

  • 공용 WAN 서버를 거부합니다NAS_SERVER는 사설, 링크-로컬 또는 Tailscale(100.64.0.0/10) 리터럴 IP여야 합니다. DNS 이름과 공용 IP는 거부됩니다.

  • 자격 증명을 저장하지 않습니다 — SMB 비밀번호는 시작 시 도커 시크릿 파일(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

제목 + 일반/Markdown 유사 텍스트로 안전한 DOCX 생성

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_directorymakedirs 전에 부모를 검증하므로, 첫 번째 세그먼트가 존재하지 않는 다중 레벨 경로는 parents=True에서도 not_found를 반환합니다. 한 번에 한 레벨씩 생성하세요.

빠른 시작

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

사설/Tailscale 리터럴 IP만

NAS_SHARE

고정된 공유 이름, 런타임에 적용

NAS_USERNAME

공유 수준 SMB 사용자

NAS_PASSWORD_FILE

/run/secrets/synology_password

도커 시크릿 경로

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 비밀번호는 시스템의 유일한 비밀이며 오직 도커 시크릿 파일에만 존재합니다. 하드코딩된 것은 없으며, 비밀이 아닌 조정 값 외에는 .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