Overview
Every tool is a typed JSON-RPC method. Inputs and outputs are validated by Zod schemas at the server boundary; clients receive a 422-equivalent error before the call ever reaches Synology.
Tool names follow the convention <module>_<verb>_<object>. The verb encodes the read/write split — list, search, get, read are reads; create, update, delete, send, write, append, label, share, move, mark are writes.
Writes always require an explicit confirm:true argument at the tool boundary. The agent must restate intent before any destructive call lands.
Response envelope
Reads return the data shape directly. Writes return an envelope describing what changed:
// Read response{ files: [...], truncated: false }// Write response{ persisted: true, fileId: "f-9a3c2e1b", path: "/team/finance/Q2-tracker.osheet" }// Error response (thrown — never returned){ code: "PATH_GUARD_VIOLATION", message: "/etc/passwd is outside DRIVE_ROOT_PATH" }
Error codes
Errors are typed by code. The agent should branch on code, not on message text — message text is human-readable and may change.
| Code | Meaning | Recoverable |
|---|---|---|
| PATH_GUARD_VIOLATION | Path falls outside the configured root prefix. | No — fix the path. |
| CONFIRM_REQUIRED | Write tool called without confirm:true. | Yes — restate and retry. |
| AUTH_EXPIRED | Synology session id expired. Server will refresh on next call. | Yes — automatic. |
| NOT_FOUND | Resource (file, event, message) does not exist. | No. |
| SYNOLOGY_API_ERROR | Upstream Synology REST API returned an error. Inner code carried. | Depends on inner code. |
| VALIDATION_ERROR | Input failed Zod validation. Path of failing field included. | No — fix the input. |
| RATE_LIMITED | Exceeded MCP_RATE_LIMIT_RPS. Retry-after returned. | Yes — back off. |
Tool index
Full per-tool detail lives on each module page. This is the cross-module index.
| Module | Read | Write | Total |
|---|---|---|---|
| Drive | 5 | 6 | 11 |
| Spreadsheet | 5 | 8 | 13 |
| MailPlus | 3 | 3 | 6 |
| Calendar | 4 | 3 | 7 |
| — | 17 | 20 | 37 |
Browse the module pages for individual tool signatures, examples, and confirm-flag requirements.