synology-office-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Log level: debug | info | warn | error | info |
| SYNO_HOST | Yes | NAS hostname or IP (e.g., 192.168.1.100 or nas.local) | |
| SYNO_PORT | No | DSM port (5000 HTTP, 5001 HTTPS) | 5001 |
| SYNO_HTTPS | No | Use HTTPS for MCP → DSM connection | true |
| MCP_SSE_HOST | No | Bind address for SSE | 127.0.0.1 |
| MCP_SSE_PORT | No | Port for SSE | 3100 |
| SYNO_SS_HOST | No | Host running the Spreadsheet API container (required if Spreadsheet module enabled) | |
| SYNO_SS_PORT | No | Spreadsheet API container port | 3000 |
| MCP_TRANSPORT | No | Transport mode: stdio or sse | stdio |
| SYNO_OTP_CODE | No | 2FA TOTP code (prefer app-specific passwords instead) | |
| SYNO_PASSWORD | Yes | DSM account password (use an app-specific password if 2FA is enabled) | |
| SYNO_SS_HTTPS | No | Use HTTPS for Spreadsheet API container connection | false |
| SYNO_USERNAME | Yes | DSM account username | |
| MCP_AUTH_TOKEN | No | Required when MCP_SSE_HOST is non-loopback | |
| SYNO_IGNORE_CERT | No | Accept self-signed cert (trusted home NAS only) | false |
| SYNO_SS_DSM_HOST | No | DSM host that the Spreadsheet container reaches (overrides SYNO_HOST for back-call) | |
| SYNO_SS_DSM_PORT | No | DSM port that the Spreadsheet container reaches (overrides SYNO_PORT for back-call) | |
| SYNO_SS_DSM_HTTPS | No | Use HTTPS for Spreadsheet container's back-call to DSM | false |
| SYNO_ENABLE_SPREADSHEET | No | Set to false to disable the Spreadsheet module | true |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| drive_list_filesA | List files and folders in a Synology Drive path. Supports pagination, sorting, and glob filtering. |
| drive_get_file_infoA | Get detailed metadata (size, owner, ACL, labels) for a specific Drive file or folder. |
| drive_search_filesA | Search for files across Synology Drive by name or keyword, with optional extension filter. |
| drive_upload_fileA | Upload a file to Synology Drive from a base64-encoded payload. Max recommended size: 50 MB. |
| drive_download_fileA | Download a file from Synology Drive and return it as base64-encoded content with metadata. |
| drive_create_folderA | Create a new folder in Synology Drive, optionally creating parent directories. |
| drive_move_fileA | Move or rename a file/folder in Synology Drive. Set confirm=true to execute; omit or set false for a dry-run check. |
| drive_delete_fileB | Delete a file or folder in Synology Drive (moves to trash by default). Set confirm=true to execute. |
| drive_list_labelsA | List all labels defined in Synology Drive (id, name, color). |
| drive_add_labelB | Add a label to a file or folder in Synology Drive. |
| drive_get_sharing_linkA | Generate or retrieve a sharing link for a Synology Drive file with configurable permission and optional expiry. |
| spreadsheet_listC | List all Synology Spreadsheet (.osheet) files in a Drive folder. |
| spreadsheet_get_infoA | Get metadata about a Synology Spreadsheet file: sheet names, row and column counts. Provide either file_id or name. |
| spreadsheet_read_sheetA | Read cell data from a Synology Spreadsheet sheet. Returns headers (first row), data rows, and totals. Provide either file_id or name. |
| spreadsheet_write_cellsA | Write values to a range of cells in a Synology Spreadsheet sheet. Provide either file_id or name. Set confirm=true to execute. |
| spreadsheet_append_rowsA | Append rows to the end of existing data in a Synology Spreadsheet sheet. Provide either file_id or name. Set confirm=true to execute. |
| spreadsheet_createA | Create a new empty Synology Spreadsheet (.osheet). Note: the Spreadsheet API has no notion of destination folder; use Drive tools to move the file afterwards if needed. |
| spreadsheet_add_sheetB | Add a new sheet tab to an existing Synology Spreadsheet file. Provide either file_id or name. |
| spreadsheet_exportA | Export a Synology Spreadsheet to xlsx or csv format. Returns the file content as base64. Provide either file_id or name. |
| spreadsheet_get_stylesB | Get cell styling information (fonts, colors, alignment, number formats) for a range in a Synology Spreadsheet. Provide either file_id or name. |
| spreadsheet_write_stylesA | Bulk overwrite cell styles (fonts, colors, alignment, number formats, borders) for a rectangular block in a Synology Spreadsheet. Uses offset-based PUT /styles endpoint — simpler than batch_update for style-only writes. Requires Synology Office >= 3.7.0. For mixed value+style edits use spreadsheet_batch_update. Provide either file_id or name. |
| spreadsheet_rename_sheetA | Rename a sheet tab in a Synology Spreadsheet. Provide either file_id or name. Set confirm=true to execute. |
| spreadsheet_delete_sheetA | Delete a sheet tab from a Synology Spreadsheet. This action cannot be undone. Provide either file_id or name. Set confirm=true to execute. |
| spreadsheet_delete_fileA | WARNING: Permanently delete an ENTIRE spreadsheet file (.osheet). Different from spreadsheet_delete_sheet which removes only one tab inside a file. Uses the dedicated Spreadsheet API endpoint (Synology Office >= 3.7.0) and also evicts the file from the local name cache. For non-spreadsheet files use drive_delete. Provide either file_id or name; set confirm=true to execute. |
| spreadsheet_batch_updateB | Insert or delete rows/columns in a Synology Spreadsheet. Provide either file_id or name. Set confirm=true to execute. |
| spreadsheet_registerA | Register a Synology Spreadsheet so it can be addressed by name in other tools. Provide the alphanumeric ID from the file URL /oo/r/{id}. |
| mailplus_list_foldersA | List all mail folders (IMAP-like folder tree) for the MailPlus account. |
| mailplus_list_messagesA | List email messages in a MailPlus folder with pagination, sort, and keyword search. |
| mailplus_get_messageA | Get the full content of a MailPlus email message, with optional attachment download. |
| mailplus_send_messageB | Send an email via Synology MailPlus. Requires confirm=true to execute. |
| mailplus_mark_messagesB | Mark MailPlus messages as read, unread, flagged, or unflagged. |
| mailplus_move_messagesB | Move MailPlus messages to another folder. Requires confirm=true to execute. |
| calendar_list_calendarsA | List all Synology Calendar calendars accessible to the authenticated user. |
| calendar_list_eventsA | List Synology Calendar events within a date range. ISO 8601 dates without a timezone offset are interpreted as NAS local time. |
| calendar_get_eventB | Get details of a specific Synology Calendar event. |
| calendar_create_eventB | Create a new Synology Calendar event. Requires confirm=true. ISO 8601 without timezone offset is interpreted as NAS local time. |
| calendar_update_eventA | Update an existing Synology Calendar event. Requires confirm=true. Only provided fields are changed. ISO 8601 without timezone offset is interpreted as NAS local time. |
| calendar_delete_eventB | Delete a Synology Calendar event permanently. Requires confirm=true. |
| calendar_create_calendarC | Create a new Synology Calendar. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| summarize-spreadsheet | Summarize the content of a Synology Spreadsheet file, with optional focus area. |
| draft-email-from-spreadsheet | Draft an email using data from a specific row in a Synology Spreadsheet. |
| schedule-from-list | Create calendar events from rows in a Synology Spreadsheet list. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Drive files at /mydrive | File metadata at the /mydrive root path. Replace path segment as needed. |
| Drive folder listing at /mydrive | Lists files inside /mydrive. Replace path segment for other folders. |
| All calendars | Lists all calendars accessible to the authenticated user. |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vocweb/synology-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server