Writing Skills
writing-skills
效率与协作技能,来自 obra/superpowers,查看原文获取完整用途和操作说明。
synology-nas【部署与运维】Use this skill for ANY task on a Synology NAS via the mcp-server-synology MCP — managing files and folders on the NAS, searching NAS shares, reading or creating NAS files, running Download Station tasks (torrents, magnets, downloads), checking NAS health (disks, SMART, volumes, RAID, SHR, UPS, CPU/memory utilization), managing Container Manager conta…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
This skill teaches you how to use the mcp-server-synology MCP effectively. The MCP exposes ~80 tools across seven domains; the trick is picking the right tool, targeting the right NAS, and not exploding a single user request into a dozen redundant calls.
Three things shape almost every interaction:
nas_name (or base_url) on every tool call. Don't guess; discover first.synology_login yourself. Check status first; only log in if status says you must.Once those three are settled, the rest is picking the right domain.
Before any operation, run discovery — it's two cheap calls and answers "which NAS?" and "am I logged in?":
synology_list_nas — lists configured NAS units with names, URLs, connection status.synology_status — shows which sessions are active.If the user mentions a NAS by name (e.g. "the backup NAS", "nas2"), match it to a nas_name from synology_list_nas. If only one NAS is configured, you can omit nas_name on subsequent calls. If multiple are configured and the user is ambiguous, ask which one — don't pick.
Every operational tool accepts an optional target argument:
nas_name (preferred) — the identifier from settings.json, e.g. "nas1".base_url — fallback when the NAS isn't in settings.json.Pass at most one. Omit both only when there's a single NAS configured.
Path arguments must start with /. User-facing data lives under /volume1/ (or /volume2/, etc., for additional volumes). The root / lists shares; /homes, /photo, /video etc. are share-level mount points underneath. Don't invent paths — list the parent first if unsure.
When the user asks about… → read…
| User says | Domain | Reference |
|---|---|---|
| login, logout, session, "who's logged in", multi-NAS, settings.json | auth | references/auth.md |
| list/find/search files, read/create/delete/move/rename files & folders, shares | filestation | references/files.md |
| download, torrent, magnet, BT, transmission-style task | Download Station | references/downloads.md |
| disks, SMART, RAID/SHR, volume, UPS, CPU/memory utilization, system info, "is the NAS healthy" | health | references/health.md |
| containers, Docker, compose projects, images, registries, networks, logs, resource usage | Container Manager | references/containers.md |
| NFS, share permissions, "let host X mount", create share | shares & NFS | references/shares-nfs.md |
| users, groups, permissions, "add user", "remove from group" | user management | references/users.md |
Read the reference for a domain before doing non-trivial work in it. Each reference covers the tool list, the right call ordering, and known gotchas. Don't read every reference — only the ones you need.
If the user asks "is the NAS healthy?" or "give me a system report," call synology_health_summary once instead of fanning out to synology_system_info + synology_utilization + synology_disk_health + synology_volume_status. The summary is one round-trip and returns the same data. Reach for the individual tools only when the user wants one specific reading (e.g. "what's the CPU at right now?").
When in doubt about a destructive action, list/inspect first:
delete: get_file_info to confirm the path resolves to what you think.ds_delete_tasks: ds_list_tasks to confirm the IDs.synology_container_delete, synology_container_project_delete, synology_container_image_delete, or synology_container_network_delete: inspect/list the target first.synology_delete_user: synology_get_user to confirm the account.This is a real NAS with real data — there is no "undo" for these tools.
Tools that accept offset/limit (e.g. ds_list_tasks, search_files) default to sensible values. Don't add pagination unless the user mentions a large dataset or a previous call returned suspiciously few results.
Auto-login is on by default — the server logs in to every configured NAS at startup. You should expect operational tools to "just work" without calling synology_login first. If a tool returns an auth error, then call synology_status to diagnose, and only call synology_login if no session is active. See references/auth.md for the full state machine.
If the user says "list shares and then list the photos folder," do those two calls — don't preface them with a discovery dance. Discovery (synology_list_nas/synology_status) is for when targeting or auth is genuinely unclear, not as a ritual before every request.
GHCR pulls:
synology_container_registry_list; require using: GitHub Container Registry for ghcr.io/....2202 or docker.io/ghcr.io/..., switch registry in DSM, then synology_container_registry_download.owner/image first with GHCR active; try ghcr.io/owner/image only if needed.synology_container_image_list.start fails, run synology_container_project_build for DSM logs/start behavior.Runtime DNS:
synology_container_logs.Temporary failure in name resolution and NAS has internet: use network_mode: host for single-port apps; remove ports:.dns: first; Synology compose may accept it then fail with 2202.Optional companion services: skip when README says optional and main app works; add when user needs feature.
synology_login reflexively. Auto-login almost always handled it.synology_health_summary./Documents/foo or ~/photos. Real paths start with /volume1/. List the parent if unsure.synology_create_share (see shares-nfs.md). Creating a folder under a share is create_directory.share_path.ds_delete_tasks or delete.User says: "Check on my NAS — anything I should worry about?"
Good response:
synology_list_nas → confirm which NAS (or that there's only one).synology_health_summary → one call, full picture.Avoid:
synology_login (unnecessary).synology_system_info, then synology_utilization, then synology_disk_health, then synology_volume_status (4 calls when 1 suffices).The MCP's own tool descriptions sometimes say "from secrets.json" — settings actually live at ~/.config/synology-mcp/settings.json. Trust this skill over those stale strings. If the user reports an actual auth/config bug, point them at the project README's "Configuration Options" section and don't try to "fix" it from inside Claude.