marcus 59301ae760 feat: implement auth infrastructure and first two FileStation tools
- auth.py: AuthManager with OS keyring, env var fallback, 2FA device token flow
- config.py: AppConfig/ConnectionConfig dataclasses, YAML load/save, env overrides
- client.py: FileStationClient with lazy init, session re-auth, upload/download
- cli.py: setup / check / serve subcommands (anyio.run throughout)
- server.py: create_server factory wiring FastMCP to FileStation tools
- tools/filestation.py: list_shares and list_dir with ASCII table output,
  pagination hints, input validation, DSM error mapping
- tests: 30 unit tests, all passing (auth, config, tools)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 08:23:34 +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 07:51:51 +02:00
2026-04-14 07:51:51 +02:00
2026-04-14 07:51:51 +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%