marcus 4145d929a6 fix: correct DirSize/MD5 polling — initial_delay=0 and MD5 status v1
Live NAS investigation (test_dirsize_md5.py) revealed two bugs:

1. _poll_task() always slept 200ms before the first status call.
   DirSize and MD5 complete near-instantly on small data, so the result
   window closes before the first poll. Fix: add initial_delay parameter
   (default 0.2s for CopyMove/Delete/Compress/Extract); DirSize and MD5
   pass initial_delay=0.0 to poll immediately after start.

2. get_md5 used status version=2, but the NAS only serves the result on
   status v1 (v2 always returns 599 regardless of timing). Fix: change
   _poll_task version to 1 for SYNO.FileStation.MD5.

MD5 is one-shot: the result is consumed on the first successful status
read. Polling at 0ms ensures we catch it before it expires.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 12:35:43 +02:00
2026-04-14 07:51:51 +02:00
2026-04-14 07:51:51 +02:00
2026-04-14 07:51:51 +02:00
2026-04-14 11:26:08 +02:00

mcp-synology-filestation

MCP server for Synology FileStation — browse, search, transfer, and manage files on your NAS via Claude.

Status

Work in progress. See SPEC.md for the planned tool set.

Planned Tools

Tool Description
list_shares List all shared folders
list_dir Directory contents with pagination and sorting
get_info File or folder metadata
search Recursive pattern search
download Download a file (base64 content)
create_folder Create a new directory
rename Rename a file or folder
move Move to a new location
copy Copy to a new location
delete Delete a path (requires confirmation)
upload Upload a file from base64 content

Setup

uv tool install git+https://gitea.gecheckt.de/marcus/mcp-synology-filestation.git
mcp-synology-filestation setup

Development

uv sync --dev
uv run pytest
uv run ruff check src/
uv run ruff format src/
S
Description
No description provided
Readme 805 KiB
Languages
Python 100%