marcus e3fa71b458 fix: retry _poll_task on transient 599 instead of aborting immediately
DirSize for large directories (e.g. /docker, 8441 folders, 46832 files)
takes ~800ms to compute. While running, status returns intermediate
progress (finished=false). But on the very first poll the task can return
599 transiently (task just started, not yet available). Previously
_poll_task caught any SynologyError and returned immediately, making
dir_size always fail on the first 599.

Fix: treat 599 as a transient condition and continue polling. Give up
only after 5 consecutive 599 responses. All other error codes remain
immediately fatal.

Investigation confirmed with test_dirsize_md5.py:
- /test-mcp (2937 B): finished=true at 0ms
- /docker (3.9 GB, 46832 files): finished=false at 35ms, finished=true at 789ms

Tests: 2 new cases (retry-succeeds, 5x-599-gives-up) → 95 total

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 13:01:27 +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%