Skip to main content
Glama
vocweb

synology-office-mcp

by vocweb

synology-office-mcp

npm version License: MIT Node.js 22+ TypeScript PRs Welcome

Visit landing page.

A self-hosted Model Context Protocol server that exposes Synology Drive, Spreadsheet, MailPlus, and Calendar as structured tools for AI agents (Claude Code, Claude Desktop, GoClaw, or any MCP-compatible client).

Wraps the official Synology Office Suite REST API. LAN-only by default — no data leaves your network unless you explicitly opt in.

v0.3.0 milestone — All four modules (Drive, Spreadsheet, MailPlus, Calendar) implemented and unit-tested with MSW mocks. Smoke tests against a real DSM 7.2.2 NAS are needed before declaring v1.0.0 production-ready. See CHANGELOG for details.


Table of Contents


Related MCP server: nc-mcp-server

Features

Module

Tools

Key Capabilities

Drive

11

List / search / get info / download / upload / create folder / move / delete / share / labels

Spreadsheet

13

List / register-by-name / get info / read sheet / get styles / write cells / append rows / batch update / add-rename-delete sheet / create / export

MailPlus

6

List folders / list messages / get message / send / move / mark read-unread

Calendar

7

List calendars / list events / get event / create calendar / create event / update event / delete event

MCP Layer

Resources (file tree, mail folders, calendar list), prompts, stdio + SSE transports

Security

TLS verify, path-guard, origin-guard, bearer-auth, log redaction, confirm-required writes

Modules not included (no public API yet): Synology Docs, Synology Slides.

Design principles

  • Self-hosted, LAN-only by default — TLS verification on, SSE bound to 127.0.0.1 unless MCP_AUTH_TOKEN is set

  • No third-party MCP middlemen — every Synology call goes through the official REST API

  • Read-heavy, safe writes — destructive operations require an explicit confirm: true parameter

  • Stateless tool calls — each MCP invocation is independent; session/token lifecycle is internal

  • Single binary — compiled ESM TypeScript, deployable as node dist/index.js


Requirements

Component

Version

Node.js

>= 22.0.0 (ESM-only)

pnpm

>= 9.0.0 (dev only)

Synology DSM

7.2.2 build 72806+

Synology Drive

3.5.2+

Synology Office

3.7.0+ (for Spreadsheet)

Synology MailPlus

3.3.1+ (requires MailPlus Server package)

Synology Calendar

2.5.3+

Verify your DSM build: Control Panel > Info Center > DSM Version. Must be ≥ 72806.


Install

Global CLI (npm/pnpm):

npm install -g synology-office-mcp
# or
pnpm add -g synology-office-mcp

From source:

git clone https://github.com/vocweb/synology-mcp-server.git
cd synology-mcp-server
pnpm install && pnpm build

Quick Start

1. Deploy the Spreadsheet API container on your NAS

The Spreadsheet module talks to Synology's official synology/spreadsheet-api container — not to DSM directly. Skip this step only if you set SYNO_ENABLE_SPREADSHEET=false.

In Container Manager (DSM 7.2+) or via SSH:

# Pull the official image
sudo docker pull synology/spreadsheet-api:latest

# Run (port 3000 is the container default; map to whatever you prefer on the host)
sudo docker run -d \
  --name synology-spreadsheet-api \
  --restart unless-stopped \
  -p 3000:3000 \
  synology/spreadsheet-api:latest

Then in DSM:

  • Control Panel → Application Privileges → Synology Office — make sure the DSM account you'll use has access.

  • Control Panel → Security → Account — whitelist the Docker bridge subnet so the container's back-call to DSM is not auto-blocked.

Tip — homelab DSM with self-signed cert: the container ships without DSM's CA and will fail HTTPS verification on its /authorize back-call. Point the back-call at DSM's HTTP port via SYNO_SS_DSM_HTTPS=false + SYNO_SS_DSM_PORT=5000 (see env table below). Your MCP → DSM connection stays on HTTPS.

2. Configure environment variables

Copy .env.example to .env and edit, or export directly:

# ---- DSM connection (required) ----
export SYNO_HOST=192.168.1.100        # NAS hostname or IP
export SYNO_PORT=5001                  # 5000 = HTTP, 5001 = HTTPS
export SYNO_HTTPS=true                 # Use HTTPS for MCP → DSM
export SYNO_IGNORE_CERT=false          # true ONLY for trusted self-signed cert
export SYNO_USERNAME=your_nas_user
export SYNO_PASSWORD=your_nas_password

# ---- Spreadsheet API container (required if Spreadsheet module enabled) ----
export SYNO_SS_HOST=192.168.1.100      # Host running synology/spreadsheet-api
export SYNO_SS_PORT=3000               # Container port (default 3000)
export SYNO_SS_HTTPS=false             # Container default is plain HTTP

# ---- Spreadsheet container's back-call to DSM (advanced) ----
# Override only when the container can't TLS-verify DSM (e.g. self-signed cert).
# All three default to the matching SYNO_* value if left unset.
export SYNO_SS_DSM_HOST=192.168.1.100  # DSM host the container reaches
export SYNO_SS_DSM_PORT=5000           # Use DSM HTTP port to bypass cert issues
export SYNO_SS_DSM_HTTPS=false         # false → skip TLS verify on back-call

2FA accounts: the Spreadsheet /authorize endpoint does not accept OTP. Create a dedicated DSM service account without 2FA for unattended automation. Leave SYNO_OTP_CODE empty.

3. Run the MCP server

# stdio mode (default — used by Claude Desktop / Claude Code)
node dist/index.js

# Or via the global CLI after `npm install -g synology-office-mcp`
synology-mcp

The server prints a startup banner and waits for MCP JSON-RPC messages on stdin/stdout. See Configuration for the full env reference and Connecting an MCP Client for client wiring.


Configuration

All configuration is via environment variables, validated by Zod at startup. See .env.example for the full list with inline documentation.

Required

Variable

Description

SYNO_HOST

NAS hostname or IP (192.168.1.100 or nas.local)

SYNO_USERNAME

DSM account username

SYNO_PASSWORD

DSM account password (use an app-specific password if 2FA is enabled)

Common optional

Variable

Default

Description

SYNO_PORT

5001

DSM port (5000 HTTP, 5001 HTTPS)

SYNO_HTTPS

true

Use HTTPS

SYNO_IGNORE_CERT

false

Accept self-signed cert (trusted home NAS only)

SYNO_OTP_CODE

2FA TOTP code (prefer app-specific passwords instead)

MCP_TRANSPORT

stdio

stdio or sse

MCP_SSE_HOST

127.0.0.1

Bind address for SSE

MCP_SSE_PORT

3100

Port for SSE

MCP_AUTH_TOKEN

Required when MCP_SSE_HOST is non-loopback

LOG_LEVEL

info

debug | info | warn | error

Warning: SYNO_IGNORE_CERT=true disables MITM protection. Only use it on trusted home networks with self-signed certs you control.


Tool Reference

Full table of all 39 tools with input schemas: tool-reference.md.

Quick summary by module:

  • Drive (11): drive_list_files, drive_search_files, drive_get_file_info, drive_download_file, drive_upload_file, drive_create_folder, drive_move_file, drive_delete_file, drive_get_sharing_link, drive_list_labels, drive_add_label

  • Spreadsheet (13): spreadsheet_list, spreadsheet_register, spreadsheet_get_info, spreadsheet_read_sheet, spreadsheet_get_styles, spreadsheet_write_cells, spreadsheet_append_rows, spreadsheet_batch_update, spreadsheet_add_sheet, spreadsheet_rename_sheet, spreadsheet_delete_sheet, spreadsheet_create, spreadsheet_export

  • MailPlus (6): mailplus_list_folders, mailplus_list_messages, mailplus_get_message, mailplus_send_message, mailplus_move_messages, mailplus_mark_messages

  • Calendar (7): calendar_list_calendars, calendar_list_events, calendar_get_event, calendar_create_calendar, calendar_create_event, calendar_update_event, calendar_delete_event


Connecting an MCP Client

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "synology": {
      "command": "node",
      "args": [
        "<path_to_synology_mcp_server_source_code>/dist/index.js"
      ],
      "env": {
        "SYNO_HOST": "192.168.1.100",
        "SYNO_USERNAME": "dsm_username",
        "SYNO_PASSWORD": "dsm_password",
        "SYNO_SS_HOST": "192.168.1.100",
        "SYNO_SS_PORT": "3000",
        "SYNO_SS_HTTPS": "false",
        "SYNO_SS_DSM_HOST": "192.168.1.100",
        "SYNO_SS_DSM_PORT": "5001",
        "SYNO_SS_DSM_HTTPS": "false"
      }
    }
  }
}

See examples/claude-desktop-config.json for the complete snippet.

Claude Code

claude mcp add synology-office -- node /path/to/synology-office-mcp/dist/index.js

claude mcp add --scope user synology \
  -e SYNO_HOST=192.168.1.100 \
  -e SYNO_PORT=5001 \
  -e SYNO_HTTPS=true \
  -e SYNO_IGNORE_CERT=true \
  -e SYNO_USERNAME=dsm_username \
  -e 'SYNO_PASSWORD=dsm_password' \
  -e SYNO_SS_HOST=192.168.1.100 \
  -e SYNO_SS_PORT=3000 \
  -e SYNO_SS_HTTPS=false \
  -e SYNO_SS_DSM_HOST=192.168.1.100 \
  -e SYNO_SS_DSM_PORT=5000 \
  -e SYNO_SS_DSM_HTTPS=false \
  -- node <path_to_synology_mcp_server_source_code>/dist/index.js

See examples/claude-code-add.sh for the full command with env vars.

GoClaw

See examples/goclaw-mcp.json. Start the server in SSE mode first (see Transport Modes).


Transport Modes

stdio (default)

The default mode. The process communicates via stdin/stdout — used by Claude Desktop and Claude Code.

node dist/index.js
# or: MCP_TRANSPORT=stdio node dist/index.js

SSE (Server-Sent Events)

Used for multi-client setups and GoClaw integration.

MCP_TRANSPORT=sse \
MCP_SSE_HOST=127.0.0.1 \
MCP_SSE_PORT=3100 \
MCP_AUTH_TOKEN="$(openssl rand -hex 32)" \
node dist/index.js

Clients connect to http://<host>:3100/sse with Authorization: Bearer <token>.

Security: The server refuses to start when SSE is bound to a non-loopback address without MCP_AUTH_TOKEN. See security-model.md.


Architecture

┌─────────────────────────────────────────────────┐
│        MCP Client (Claude / GoClaw / …)          │
└──────────────────────┬──────────────────────────┘
                       │ MCP (JSON-RPC 2.0, stdio | SSE)
┌──────────────────────▼──────────────────────────┐
│            synology-office-mcp                   │
│                                                  │
│  ┌─────────────┐  ┌──────────────────────────┐  │
│  │  MCP Layer  │  │  Synology API Client      │  │
│  │  Tools      │  │  AuthManager + TokenCache │  │
│  │  Resources  │  │  BaseClient (HTTP)        │  │
│  │  Prompts    │  │  Drive / Sheet / Mail / … │  │
│  └──────┬──────┘  └────────────┬─────────────┘  │
└─────────┼────────────────────────┼──────────────┘
          │                        │ HTTPS
┌─────────▼────────────────────────▼──────────────┐
│       Synology NAS (DSM 7.2.2 + Office Suite)   │
└─────────────────────────────────────────────────┘

See integration-guide.md for client wiring across MCP-compatible agents.


Security Model

  • TLS verification on by default. SYNO_IGNORE_CERT=true is opt-in and logged at startup.

  • Credentials never appear in URLs. Login uses POST with form body; session id (sid) forwarded via Cookie: id=….

  • SSE binds loopback by default. Server refuses to start when SSE is bound to non-loopback without MCP_AUTH_TOKEN.

  • Sensitive values are redacted in logs via src/utils/redact.ts.

  • Path traversal is blocked at tool boundary by src/utils/path-guard.ts.

  • Destructive operations require confirm: true in the tool input.

Detailed threat model: security-model.md. Vulnerability disclosure: SECURITY.md.


Development

pnpm install            # install deps
pnpm dev                # build + watch
pnpm typecheck          # tsc --noEmit
pnpm lint               # eslint src --max-warnings 0
pnpm format             # prettier --write
pnpm test               # vitest run
pnpm test:coverage      # vitest run --coverage
pnpm build              # tsup → dist/

Pre-commit hooks (Husky + lint-staged) run typecheck, lint, and Prettier on staged files.

See CONTRIBUTING.md for the full contributor workflow.


Testing

Layer

Tooling

Notes

Unit

Vitest

All modules in tests/ — 311 tests

HTTP mocking

MSW

No real NAS required for unit tests

Smoke

Vitest, gated by SMOKE_TEST=1

Hits a real NAS — disabled in CI

pnpm test               # unit only
SMOKE_TEST=1 \
  SYNO_HOST=192.168.1.100 \
  SYNO_USERNAME=user \
  SYNO_PASSWORD=pass \
  pnpm test             # include smoke tests (requires real NAS)

See examples/smoke-test.ts for a standalone runnable smoke script.


Documentation

Document

Purpose

tool-reference.md

All 39 tools: name, module, confirm-required, summary

usage-guide.md

Sample prompts for invoking each tool from an MCP-aware agent

deployment-guide.md

Docker, systemd unit, Synology scheduled task

integration-guide.md

Client wiring (Claude, Cursor, Codex, LangChain, …)

troubleshooting.md

Common Synology error codes + fixes

security-model.md

Detailed threat model

CHANGELOG.md

Versioned release notes

CONTRIBUTING.md

Contributor workflow

SECURITY.md

Vulnerability disclosure


Contributing

PRs and issues are warmly welcomed — see CONTRIBUTING.md. For non-trivial changes, please open an issue first to discuss the approach.

This project follows Conventional Commits and Semantic Versioning.


License

MIT © 2026 Tien Chu — <chutien@gmail.com>

Synology, Synology Drive, Synology Office, MailPlus, and Synology Calendar are trademarks of Synology Inc. This project is an independent open-source client and is not affiliated with or endorsed by Synology Inc.

Available Tools

39 tools
calendar_create_calendarC

Create a new Synology Calendar.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
colorNoHex color code, e.g. '#4A90E2'
descriptionNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as side effects, permissions, or response format beyond a generic creation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short (5 words) and front-loaded, but lacks sufficient detail to be fully informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of annotations, output schema, and low parameter coverage, the description is insufficient for an agent to understand the tool's full behavior and context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (color has description), and the description adds no additional meaning to the parameters beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and the resource ('new Synology Calendar'), distinguishing it from sibling tools like calendar_create_event and calendar_list_calendars.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, nor any prerequisites or context for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calendar_create_eventB

Create a new Synology Calendar event. Requires confirm=true. ISO 8601 without timezone offset is interpreted as NAS local time.

ParametersJSON Schema
NameRequiredDescriptionDefault
calendar_idYesTarget calendar ID
titleYes
startYesEvent start in ISO 8601: 'YYYY-MM-DDTHH:mm:ss' or 'YYYY-MM-DD' for all-day. ISO without offset is interpreted as NAS local time.
endYesEvent end in ISO 8601. ISO without offset is interpreted as NAS local time.
all_dayNo
descriptionNo
locationNo
attendeesNo
recurrenceNoRFC 5545 RRULE string, e.g. 'RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR'. Passed through as-is.
reminder_minutesNoReminder in minutes before event start
confirmNoMust be true to create the event

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must fully disclose behavior. It only covers the confirm requirement and timezone handling. Missing details on whether creation is idempotent, what happens on conflict, or any side effects, leaving significant behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences cover the essential points: purpose, a critical constraint (confirm=true), and a key interpretation rule (timezone). No redundant words; front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters, 4 required, no output schema, and no annotations, the description is insufficient. It ignores recurrence behavior, attendee structure, and response expectations, leaving the agent underinformed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 55% schema coverage, the description should compensate for missing parameter documentation. It adds only the confirm requirement (already in schema) and timezone note (also in schema for start/end). Other parameters like attendees, recurrence, and reminder are not elaborated beyond their schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('Create') and the resource ('a new Synology Calendar event'), making the purpose immediately clear. It distinguishes from update/delete siblings by focusing exclusively on creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description notes the requirement for 'confirm=true' and explains timezone interpretation for ISO dates. However, it does not provide guidance on when to use this tool versus alternatives like calendar_update_event, nor does it mention prerequisites or common usage patterns.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calendar_delete_eventB

Delete a Synology Calendar event permanently. Requires confirm=true.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes
calendar_idYes
confirmNoMust be true to delete the event

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description only mentions 'permanently' and 'Requires confirm=true'. Does not disclose irreversibility, side effects on recurring events, or error conditions (e.g., event not found).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description is insufficient. It does not explain return behavior, error handling, or the effect on calendar state. Sibling tools like calendar_update_event might require such context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (33%), with only confirm having a description. Description repeats 'Requires confirm=true', adding little new information. event_id and calendar_id remain unexplained beyond their types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Delete', the resource 'Synology Calendar event', and the key requirement 'permanently', distinguishing it from siblings like calendar_update_event or calendar_list_events.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like calendar_update_event for soft deletes. No prerequisites or context for usage beyond the parameter requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calendar_get_eventB

Get details of a specific Synology Calendar event.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYesEvent identifier
calendar_idYesOwning calendar identifier

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, error handling for missing events, or any required permissions. The agent must infer behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence, concise and front-loaded. It contains no unnecessary information, though it could be slightly more informative without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple retrieval nature, 2 required parameters, no output schema, and no annotations, the description adequately states the basic function. It lacks details about return format but is sufficient for a straightforward get operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters ('Event identifier' and 'Owning calendar identifier'). The tool description adds no extra semantic value beyond the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'details of a specific Synology Calendar event.' This distinguishes it from sibling tools like calendar_list_events (which lists events) and event manipulation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives (e.g., calendar_list_events). No prerequisites, exclusions, or usage context are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calendar_list_calendarsA

List all Synology Calendar calendars accessible to the authenticated user.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'list' implies a read operation, no additional behavioral traits (e.g., pagination, rate limits, or safety guarantees) are disclosed beyond the basic purpose.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no extraneous information. It is front-loaded, directly stating the action and scope, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (no parameters, no output schema), the description is minimally viable but lacks details like return format or relation to sibling tools. It is adequate for a simple list operation but not enriched.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, schema coverage is 100% (vacuously). The description adds no parameter-specific meaning, but the baseline is 4 per guidelines for zero parameters. No additional value is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List all Synology Calendar calendars accessible to the authenticated user,' using a specific verb ('List') and resource ('calendars'). It distinguishes from sibling tools like 'calendar_create_calendar' and 'calendar_list_events' by specifying the resource type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives is provided. The description does not mention prerequisites, context, or scenarios for exclusion. It simply states what it does, leaving the agent without usage strategy.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

calendar_list_eventsA

List Synology Calendar events within a date range. ISO 8601 dates without a timezone offset are interpreted as NAS local time.

ParametersJSON Schema
NameRequiredDescriptionDefault
calendar_idNoFilter by calendar ID. If omitted, returns events from all calendars.
start_dateYesStart of range in ISO 8601: 'YYYY-MM-DD' or 'YYYY-MM-DDTHH:mm:ss'. ISO without offset is interpreted as NAS local time.
end_dateYesEnd of range in ISO 8601: 'YYYY-MM-DD' or 'YYYY-MM-DDTHH:mm:ss'. ISO without offset is interpreted as NAS local time.
limitNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses ISO 8601 timezone handling but omits other behaviors like pagination (limit parameter), result format, or error scenarios.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with clear front-loading: action first, then a single important caveat. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 4 parameters, the description covers purpose and date interpretation but lacks details on default limit, pagination, ordering, and response format, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 75%; the description adds no extra meaning beyond what the schema already provides for start_date/end_date (ISO interpretation). Calendar_id and limit lack additional context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists Synology Calendar events within a date range using a specific verb and resource. It distinguishes from sibling tools like calendar_create_event (creates) and calendar_list_calendars (lists calendars).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing events in a date range but provides no explicit when-to-use or when-not-to-use guidance, nor mentions alternatives like search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes
calendar_idYes
titleNo
startNoNew start in ISO 8601. ISO without offset is interpreted as NAS local time.
endNoNew end in ISO 8601. ISO without offset is interpreted as NAS local time.
descriptionNo
locationNo
confirmNoMust be true to update the event

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses partial update behavior and timezone interpretation. With no annotations, description carries full burden; missing details on idempotency, error handling, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with key points front-loaded. No unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main points (confirm, partial update, timezone) but lacks output specification, error cases, and permissions. For an 8-param tool with no output schema, more detail is warranted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 38%, but description adds little beyond 'Only provided fields are changed' and repeats 'confirm=true'. Does not explain un-described parameters like event_id, calendar_id, title, etc.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Update an existing Synology Calendar event' with specific verb and resource. Distinguishes from sibling tools like create, delete, get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions 'Requires confirm=true' and 'Only provided fields are changed', which provide context for usage. Does not explicitly state when not to use vs alternatives, but sibling tools are distinct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_add_labelB

Add a label to a file or folder in Synology Drive.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile/folder path or ID
label_nameYesLabel name to apply

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description must disclose behavioral traits such as whether adding a label overwrites existing ones, if the operation is reversible, or if any permissions are needed. The description lacks this context, providing only the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence with no extraneous information. Every word contributes to understanding the tool's purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of annotations and output schema, the description should include details on expected output (e.g., success message), side effects, or interaction with other tools. It is insufficient for an agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100% with clear descriptions for both parameters, so the description adds minimal value beyond what the schema already provides. It does not elaborate on path format or label name validity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Add a label') and the target resource ('to a file or folder in Synology Drive'), which is specific and distinct from sibling tools like 'drive_list_labels' or other file operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives; it does not mention prerequisites (e.g., the label must already exist) or whether it can add multiple labels. Sibling tools like 'drive_list_labels' are available, but the description offers no decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_create_folderA

Create a new folder in Synology Drive, optionally creating parent directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathYesParent folder path, e.g. '/mydrive/projects'
nameYesNew folder name
force_parentNoCreate parent directories if they don't exist

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description partly discloses behavior (force_parent option) but omits side effects like error handling for duplicate names or missing paths. Lacks detail beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 12 words, efficient and front-loaded. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given full schema coverage and no output schema, the description covers the core action adequately. Minor gaps: no mention of error conditions or permissions, but acceptable for a simple create operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes all 3 parameters with 100% coverage. Description adds context for force_parent but no new meaning for folder_path or name beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb (create), resource (folder in Synology Drive), and optional behavior (parent directories). It uniquely identifies the tool among siblings handling files, uploads, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Does not explain prerequisites like path existence, nor when not to use it (e.g., if folder already exists).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_delete_fileB

Delete a file or folder in Synology Drive (moves to trash by default). Set confirm=true to execute.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile or folder path or ID to delete
permanentNoIf true, permanently delete. If false, move to Synology Drive trash.
confirmNoREQUIRED: must be true to execute deletion

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses two key behaviors: default trash move and required confirmation. This is valuable for safe invocation, though it omits permissions or recursion behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no fluff. First sentence states purpose and default behavior; second sentence adds a critical requirement. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description is too short. It does not mention return values, error conditions, or behavior for folders (e.g., recursive deletion). Agents need more context for safe and effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond what the schema already provides for 'path', 'permanent', and 'confirm'. It only restates default behavior and requirement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete a file or folder in Synology Drive') and provides a key detail (moves to trash by default). However, it does not explicitly differentiate from sibling tools like drive_move_file or drive_search_files, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description only instructs to set confirm=true to execute, offering no guidance on when to use this tool versus alternatives such as drive_move_file or drive_add_label. Agents lack context for choosing this tool appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_download_fileA

Download a file from Synology Drive and return it as base64-encoded content with metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile path or file ID in Drive

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the output format (base64 with metadata), which is helpful given no annotations. However, it does not mention file size limits, permission requirements, or error conditions, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with 16 words, directly stating action and output. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description covers the essential output format. However, it could mention what metadata is included (e.g., filename, size) and potential errors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description adds no extra meaning beyond the schema's 'File path or file ID in Drive'. No examples, formats, or constraints provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Download' and the resource 'file from Synology Drive', and specifies the output format 'base64-encoded content with metadata'. It distinguishes from sibling tools like drive_upload_file or drive_delete_file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., drive_get_file_info for metadata only). No exclusion criteria or prerequisites mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_get_file_infoA

Get detailed metadata (size, owner, ACL, labels) for a specific Drive file or folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesFile or folder path, e.g. '/mydrive/reports/Q1.osheet', or a file ID like '552146100935505098'

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates a read operation ('get detailed metadata'), and no annotations are provided. It could more explicitly state that the operation is read-only and non-destructive, but the description itself is clear about the action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently conveys the action, resource, and scope. Every word adds value, with no repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description adequately states the type of data returned (size, owner, ACL, labels). It does not specify the output format but is sufficient for an agent to understand the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a well-described 'path' parameter including examples. The description adds no additional semantic information beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves detailed metadata for a Drive file or folder, listing specific metadata types (size, owner, ACL, labels). This distinguishes it from sibling tools like 'drive_list_files' (list files) and 'drive_get_sharing_link' (get share link), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for getting metadata of a specific file, but it does not explicitly state when to use this tool versus alternatives like 'drive_get_sharing_link' or 'drive_list_files'. No 'when not to use' or alternative suggestions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_list_filesA

List files and folders in a Synology Drive path. Supports pagination, sorting, and glob filtering.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoAbsolute path in Drive. Use '/mydrive' for private folder, '/team-folders/NAME' for shared folders./mydrive
limitNoMaximum number of items to return
offsetNoPagination offset
sort_byNoSort fieldname
sort_directionNoASC
file_typeNoFilter by typeall
patternNoGlob pattern filter, e.g. '*.osheet' or '*report*'

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It mentions pagination, sorting, and glob filtering but lacks details on read-only nature, authentication needs, or potential limitations. The description is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two front-loaded sentences that convey the core purpose and key features without extraneous information. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers basic functionality, it does not describe the return format, error handling, or behavior when the path does not exist. With no output schema, more detail on output would enhance completeness for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers 86% of parameters with descriptions. The tool description adds only the concept of 'glob filtering', which is already reflected in the 'pattern' parameter. Given high schema coverage, the description provides minimal additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists files and folders in a Synology Drive path and mentions supported features. It is specific enough but does not explicitly differentiate from the sibling tool drive_search_files, which may perform a similar function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing contents of a given path, but it does not provide explicit guidance on when to use this tool versus alternatives like drive_search_files, nor does it mention any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_list_labelsA

List all labels defined in Synology Drive (id, name, color).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. 'List' implies read-only and non-destructive; no side effects are mentioned. Sufficient for a simple list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with key info front-loaded ('List all labels'). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple list tool: states action, resource, and output fields. No output schema needed given the description sufficiently conveys return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema; description adds no additional parameter meaning. Baseline 3 applies as schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (List), resource (all labels in Synology Drive), and output fields (id, name, color). It is specific and distinguishes from sibling tool drive_add_label.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: listing labels is a read operation and complements drive_add_label. However, no explicit when-not or alternative guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesSource file/folder path or ID
dest_folder_pathYesDestination folder path
new_nameNoNew name after move (optional rename)
conflict_actionNoautorename
confirmNoMust be true to execute. Set false to dry-run (validate only)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description carries burden. It discloses move/rename and dry-run ability but omits permissions, side effects of overwrites, and conflict handling behavior, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with purpose, then usage instruction. No unnecessary words, efficiently conveys key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema; description covers main action and dry-run but lacks details on return values, error handling, and conflict behavior (conflict_action enum not explained). Adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80% (4 of 5 params documented). Description adds confirmation semantics already present in schema. No additional meaning for other parameters beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Move or rename a file/folder in Synology Drive,' specifying the verb and resource, and distinguishes from sibling drive tools that handle other operations like delete or upload.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance on using the confirm parameter for execution vs. dry-run. Siblings do not overlap, so no explicit when-not needed. Lacks exclusions or alternative suggestions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_search_filesA

Search for files across Synology Drive by name or keyword, with optional extension filter.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch keyword
folder_pathNoScope the search to this path. Default: entire Drive/mydrive
extensionNoFilter by extension, e.g. 'osheet', 'odoc', 'pdf'
limitNo

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full burden. It mentions search by name/keyword and extension filter but omits important behavioral details such as case sensitivity, recursion, pagination, or whether metadata is returned. This is a significant gap for a search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that succinctly captures the tool's purpose and key capabilities with no unnecessary words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 4 parameters (1 required), the description covers the essential action but lacks details on search behavior (e.g., recursive, case-sensitive) and return format. It is adequate for a basic search tool but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond the input schema by clarifying that 'query' is a name/keyword search and 'extension' is a filter. Schema coverage is 75%, so the description compensates for the missing description on 'limit'. However, 'folder_path' default is already in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches for files by name or keyword with an optional extension filter. It distinguishes from sibling tools like drive_list_files which likely list without search, and drive_get_file_info which targets a specific file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for searching by name/keyword but does not explicitly state when not to use it or mention alternatives. Sibling tools like drive_list_files or drive_get_file_info are not referenced.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

drive_upload_fileA

Upload a file to Synology Drive from a base64-encoded payload. Max recommended size: 50 MB.

ParametersJSON Schema
NameRequiredDescriptionDefault
dest_folder_pathYesDestination folder in Drive, e.g. '/mydrive/uploads'
file_nameYesFile name including extension, e.g. 'report.pdf'
content_base64YesBase64-encoded file content
mime_typeNoMIME type, e.g. 'application/pdf', 'text/csv'application/octet-stream
conflict_actionNoWhat to do if file already exists. 'version' overwrites with version history, 'autorename' renames new file, 'skip' abortsversion

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses a max recommended size of 50 MB, which is a key constraint, but omits details on error handling, auth requirements, or response behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences front-load the purpose and a critical constraint. Every word earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple upload tool with a complete schema, but lacks explanation of return values or response format since no output schema exists. Could be improved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline 3 applies. The description adds no additional parameter-specific meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Upload', the resource 'file to Synology Drive', and the method 'base64-encoded payload'. Distinct from sibling tools like drive_download_file or drive_delete_file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage via the name and purpose, but does not explicitly state when to use or not, nor list alternatives. The max size hint is useful but not a full guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mailplus_get_messageA

Get the full content of a MailPlus email message, with optional attachment download.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idYesMessage ID from mailplus_list_messages
include_attachmentsNoIf true, include attachment content as base64 in response

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It discloses it includes optional attachment download but lacks details on performance, rate limits, or what 'full content' includes (e.g., headers, body).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with zero wasted words. Efficiently conveys the main action and optional feature.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-param tool, the description is adequate. It could hint at return format (full message fields) but given no output schema, it's reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with good parameter descriptions. The description adds clarity on attachment download but no extra semantics beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves full email content with optional attachments, using specific verbs and resource. It distinguishes from siblings like mailplus_list_messages (list only) and mailplus_send_message.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after listing messages but does not explicitly state when to use or avoid it. No mention of alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mailplus_list_foldersA

List all mail folders (IMAP-like folder tree) for the MailPlus account.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountNoEmail account address. If omitted, uses the authenticated user's primary account.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It correctly implies a read-only operation by saying 'List', adding 'IMAP-like folder tree' suggests hierarchical structure. However, it omits details like whether all subfolders are included, authentication requirements, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately conveys the tool's purpose, with no wasted words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, no output schema), the description is largely complete. It indicates that folders are listed as a tree-like structure, which suffices for an agent. A minor omission is whether the response includes nested paths, but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single optional parameter 'account', which is already well-documented. The description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List', the resource 'mail folders', and adds 'IMAP-like folder tree' to indicate structure. It distinguishes itself from sibling mail tools like mailplus_list_messages by specifying that it lists folders, not messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as mailplus_list_messages or other folder-related operations. It does not mention prerequisites or context like 'use this to view folder hierarchy before moving messages.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mailplus_list_messagesA

List email messages in a MailPlus folder with pagination, sort, and keyword search.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoFolder path, e.g. 'INBOX', 'INBOX/Projects', 'Sent'INBOX
limitNo
offsetNo
sort_byNodate
sort_directionNoDESC
unread_onlyNoIf true, only return unread messages
searchNoKeyword search in subject/sender/body
accountNoEmail account address. If omitted, uses the authenticated user's primary account.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses features (pagination, sort, search) but not rate limits, auth needs, or behavior on missing folders.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence front-loads purpose and lists features, no superfluous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

8 parameters and no output schema; description covers core functionality but omits return format and pagination details, leaving gaps for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%. Description groups parameters (pagination, sort, search) adding meaning beyond schema, but lacks detailed semantics for undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'List' and resource 'email messages in a MailPlus folder', and mentions pagination, sort, and keyword search. It differs from siblings like mailplus_get_message (single message) and mailplus_list_folders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidelines on when to use vs alternatives like mailplus_get_message or mailplus_mark_messages. Context is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mailplus_mark_messagesB

Mark MailPlus messages as read, unread, flagged, or unflagged.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idsYes
actionYes
accountNoEmail account address. If omitted, uses the authenticated user's primary account.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It merely states the action without disclosing that it modifies message state, that it is a batch operation, or any permissions/irreversibility aspects. Minimal behavioral context beyond the verb.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that is front-loaded with the verb and lists all possible actions. No extraneous words. Concise and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no output schema, and no annotations, the description is too minimal. It does not explain that the tool operates on multiple messages, what happens if IDs are invalid, or what the tool returns. A more complete description would include batch behavior and success/failure feedback.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no meaning beyond the schema. The 'action' parameter is self-explanatory from its enum. The 'message_ids' array is not explained (e.g., format, batch capability). Only 'account' has a schema description, but the tool description does not mention it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'mark' and resource 'MailPlus messages' and enumerates all possible states: read, unread, flagged, or unflagged. This distinguishes it from sibling tools like mailplus_get_message, mailplus_move_messages, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives. There is no mention of prerequisites (e.g., needing message IDs), batch operation context, or exclusion scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mailplus_move_messagesB

Move MailPlus messages to another folder. Requires confirm=true to execute.

ParametersJSON Schema
NameRequiredDescriptionDefault
message_idsYes
dest_folderYesDestination folder path
accountNoEmail account address. If omitted, uses the authenticated user's primary account.
confirmNo

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose all behavioral traits. It only reveals the confirmation requirement, but omits important details such as whether the move is a copy+delete, whether the destination folder must exist, permissions needed, rate limits, or error handling. This is insufficient for safe agent selection.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loading the action in the first sentence and a key constraint in the second. No wasted words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters, no output schema, and no annotations, the description is too sparse. It does not cover return values, prerequisites (e.g., folder existence), error states, or behavioral details beyond the confirmation flag. Critical missing context for a state-changing operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 50% description coverage; two parameters (dest_folder, account) have descriptions, but message_ids and confirm do not. The description adds value only to confirm by stating it must be true for execution. No additional semantics are provided for other parameters, so the description only modestly compensates for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Move' and the resource 'MailPlus messages to another folder,' which is specific and distinguishes it from sibling tools like mailplus_get_message or mailplus_mark_messages. The addition of the confirm requirement adds precision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes the critical usage condition 'Requires confirm=true to execute,' but it does not provide guidance on when to use this tool vs. alternatives, such as other mailplus operations or when to avoid it. No explicit exclusions or alternative tools are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mailplus_send_messageB

Send an email via Synology MailPlus. Requires confirm=true to execute.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient email addresses
ccNo
bccNo
subjectYes
bodyYesEmail body. Plain text. Use \n for line breaks.
body_formatNotext
attachmentsNo
accountNoSending account email address. Defaults to primary account.
confirmNoMust be true to send the email

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description partially compensates by disclosing the mandatory confirm requirement, which is critical for safe use. However, it omits other behaviors like authentication needs, rate limits, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences that front-load the action and then the critical requirement. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of sending an email (with 9 parameters, no annotations, no output schema), the description is too sparse. It does not explain the confirmation requirement in context, how attachments work, or what happens after sending.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 44%, leaving parameters like cc, bcc, subject, attachments, body_format undocumented. The description adds no parameter-level details to fill these gaps, failing to help the agent understand parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Send an email') and the resource ('via Synology MailPlus'), and includes a key requirement ('Requires confirm=true to execute'). This differentiates it from sibling tools like mailplus_get_message or mailplus_list_messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like mailplus_get_message or when not to use it. It also lacks prerequisites or context about the confirm flag's necessity beyond stating it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spreadsheet_add_sheetB

Add a new sheet tab to an existing Synology Spreadsheet file. Provide either file_id or name.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.
sheet_nameYesName for the new sheet

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must fully explain behavioral traits, but it only states the action without mentioning error handling, duplicates, permission requirements, or side effects. This is insufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, straightforward and without unnecessary words. It front-loads the essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks details about return values, error scenarios, or behavior when the sheet name already exists. Given no output schema, the description is incomplete for an agent to fully understand the tool's effect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The description adds little beyond the schema, merely repeating the file identification requirement. No additional semantic meaning is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Add' and resource 'new sheet tab' to an 'existing Synology Spreadsheet file'. It clearly states the action and the context, distinguishing it from sibling tools like 'spreadsheet_delete_sheet' or 'spreadsheet_rename_sheet'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Provide either file_id or name', which is a basic usage requirement. However, it offers no guidance on when to use this tool versus alternatives, nor any when-not-to-use conditions, making it somewhat vague.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.
sheet_nameYesTarget sheet name
rowsYesArray of rows to append. Each row is an array of cell values.
confirmNo

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavior. It states that 'confirm=true' executes the operation, implying a dry-run when false, which is useful. However, it does not disclose whether the operation is reversible, any row width limitations, or authorization needs. More detail would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long with no redundant information. It is front-loaded with the core action and follows with key parameter guidance, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the description covers the basic usage pattern, it lacks details about return values (e.g., success status, appended row count), error handling, or edge cases like mismatched column widths. Given the tool has 6 parameters and no output schema, more information would be beneficial for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (83%), but the description adds value by explaining the optional use of 'file_id' or 'name' and the role of 'confirm'. This goes beyond the schema definitions, helping an agent understand parameter relationships.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Append rows') and resource ('Synology Spreadsheet sheet'), clearly distinguishing it from siblings like 'spreadsheet_write_cells' which overwrites cells. It is immediately clear what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using either 'file_id' or 'name' and setting 'confirm=true' to execute, providing basic guidance. However, it does not explicitly differentiate when to use this tool instead of alternatives like 'spreadsheet_write_cells' or 'spreadsheet_batch_update', which would be helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spreadsheet_batch_updateB

Insert or delete rows/columns in a Synology Spreadsheet. Provide either file_id or name. Set confirm=true to execute.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.
sheet_idYesInternal ID of the sheet
actionYesBatch operation: insert or delete rows/columns
indexYesStarting row/column index (0-based)
countYesNumber of rows/columns to insert or delete
confirmNo

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behaviors. It mentions confirm=true to execute, implying a dry-run capability or two-step process, but does not explain what happens with confirm=false, whether changes are reversible, or required permissions for destructive operations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with purpose, and includes essential usage hints without excess words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description omits return value information. It covers basic usage but lacks details on error behavior, atomicity, and the meaning of confirm=false, which are important for an 8-parameter batch operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (88%). The description adds minor value by noting 'confirm=true to execute' beyond the schema's default false, and clarifies the file_id/name choice. However, it does not elaborate on other parameters (path, sheet_id, index, count) beyond schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool inserts or deletes rows/columns in a Synology Spreadsheet, with a specific verb and resource. It distinguishes from siblings like spreadsheet_append_rows and spreadsheet_write_cells by focusing on batch structural changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a hint about providing file_id/name and setting confirm=true to execute, but it does not clarify when to use this over other spreadsheet tools (e.g., when to insert rows vs. append rows) or any prerequisites like sheet existence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSpreadsheet name (without extension)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must compensate by describing behavior. It discloses the API limitation about destination folders, which is valuable. However, it does not mention what happens on duplicate names, required permissions, or the return value, leaving some behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, no redundant information. The structure efficiently states the action followed by a critical note, earning maximum score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one parameter, no output schema) and the context of sibling tools, the description provides essential info but lacks mention of the return value, error handling, or conflict behavior. Adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers the single parameter with a clear description ('Spreadsheet name (without extension)'), and the description adds no further parameter details. Baseline of 3 is appropriate for 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and the resource 'new empty Synology Spreadsheet (.osheet)', making the purpose unambiguous. It also differentiates from sibling tools by specifying it creates an empty file, not adding sheets or rows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a helpful note about the API's lack of destination folder support and suggests using Drive tools to move the file, guiding when to use alternate tools. However, it does not explicitly state when not to use this tool or mention other prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.
confirmNoMust be true to actually delete.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so description carries burden. It warns about permanence, mentions cache eviction, requires confirm flag, and notes API version requirement (Synology Office >= 3.7.0).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, well-structured sentence with warning first, then key distinction, technical detail, and usage guidance. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive action with 4 params and no output schema, description covers purpose, alternatives, prerequisites, side effects, and technical requirements comprehensively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage; description adds mutual exclusivity of file_id/name, cache resolution for name, path disambiguation, and confirm requirement beyond schema defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it deletes an entire spreadsheet file and explicitly distinguishes from spreadsheet_delete_sheet (deletes a tab) and drive_delete (for non-spreadsheet files).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: use spreadsheet_delete_sheet for tab removal, drive_delete for non-spreadsheet files, and specifies to provide file_id or name with confirm=true to execute.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.
sheet_idYesInternal ID of the sheet to delete
confirmNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, so the description bears the full burden. It discloses irreversibility ('This action cannot be undone') and the need to set confirm=true. However, it does not detail what happens when confirm=false (e.g., does it abort silently?) or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with purpose, then critical warning, then usage instruction. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no output schema and 5 parameters, the description covers irreversibility and confirmation but omits return values (presumably success/failure), error conditions, and potential side effects (e.g., broken references). Adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80%, and the description adds value by clarifying the relationship between file_id and name (alternatives) and the confirmation requirement. This goes beyond the schema's individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Delete') and resource ('a sheet tab from a Synology Spreadsheet'). It differentiates from sibling tools like 'spreadsheet_add_sheet' and 'spreadsheet_rename_sheet' by specifying deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for use: it is destructive and requires confirmation. It also tells to 'Provide either file_id or name' and 'Set confirm=true to execute'. However, it does not explicitly mention when to use this tool over alternative deletion tools like 'spreadsheet_delete_file'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spreadsheet_exportA

Export a Synology Spreadsheet to xlsx or csv format. Returns the file content as base64. Provide either file_id or name.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.
formatYesExport format
sheet_nameNoFor CSV export: which sheet to export. Defaults to first sheet.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It states it returns base64 content and implies a download-like operation, but does not mention authentication requirements, rate limits, or side effects (though export is likely read-only). The information is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, immediately stating the core purpose and key parameter distinction. Every phrase is necessary; no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description explains the return format (base64 content). It does not cover error cases or performance considerations, but for a straightforward export tool, the completeness is sufficient. Sibling tools are primarily spreadsheet editors and readers, making the purpose clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, providing a baseline of 3. The description adds value by explaining the override behavior of file_id over name, the disambiguation role of path, and the default sheet for CSV export, which is not fully captured in schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the action (export), resource (Synology Spreadsheet), target formats (xlsx/csv), and output (base64 content). It distinguishes from sibling tools like spreadsheet_read_sheet by focusing on full file export.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions providing file_id or name, and the path for disambiguation, but lacks explicit guidance on when to use this tool versus alternatives like spreadsheet_read_sheet or calendar export tools. The sheet_name detail is helpful for CSV.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spreadsheet_get_infoA

Get metadata about a Synology Spreadsheet file: sheet names, row and column counts. Provide either file_id or name.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so description must fully disclose behavior. States it returns metadata but doesn't explicitly declare it as read-only or safe. Simple get operation, no contradictions, but lacks explicit safety cues.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with verb and resource, then specific output. No extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description explains what is returned: sheet names, row and column counts. Sufficient for a simple metadata tool. Could mention other possible metadata but acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, baseline 3. Description adds value by clarifying that 'file_id' or 'name' should be provided (one of the two) and 'path' disambiguates. Provides practical usage guidance beyond property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb 'Get metadata' specifies the resource 'Synology Spreadsheet file' and includes concrete output 'sheet names, row and column counts'. Differentiates from sibling tools like spreadsheet_read_sheet (cell data) and spreadsheet_list (file list).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides basic instruction 'Provide either file_id or name', but no explicit guidance on when to use this tool vs alternatives. Implied by purpose but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.
sheet_nameYesTarget sheet name
rangeYesCell range in A1 notation, e.g. "A1:C10"

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states the basic operation of getting styling information, with no disclosure of potential behaviors such as permissions required, cost of retrieval, or handling of empty ranges. This is insufficient for a read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at one sentence with a useful usage note. It is front-loaded but could benefit from slightly more structure (e.g., separating purpose from parameters). No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 5 parameters, no output schema, and no annotations, the description is incomplete. It does not explain the return format (e.g., what the styling data looks like), error conditions, or behavior for edge cases like invalid ranges. The tool is for complex styling data and needs more detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already describes all parameters. The description adds only the note 'Provide either file_id or name', which is already implied by the schema. It does not provide additional semantic depth beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'cell styling information (fonts, colors, alignment, number formats)', and specifies the scope 'for a range in a Synology Spreadsheet'. It distinguishes itself from siblings like spreadsheet_read_sheet and spreadsheet_write_styles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by saying 'Provide either file_id or name', but it does not explicitly state when to use this tool versus alternatives like spreadsheet_read_sheet for reading cell values or spreadsheet_write_styles for writing styles. No when-not or alternative guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spreadsheet_listC

List all Synology Spreadsheet (.osheet) files in a Drive folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathNoDrive folder to search in/mydrive
limitNo
offsetNo

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It only says 'List', implying read-only, but no behavioral details such as authorization needs, performance impact, or side effects. The description lacks transparency about the nature of the operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence, very concise and front-loaded. It wastes no words but could be enhanced with minimal additional structure (e.g., mentioning pagination).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is incomplete. It does not explain the return format, pagination behavior (limit/offset), or folder_path syntax. Essential context for a list tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (only 'folder_path' has a description). The tool's description adds no additional meaning for parameters 'limit' and 'offset', which are undocumented in the schema. It fails to compensate for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists Synology Spreadsheet (.osheet) files in a Drive folder, using a specific verb 'List' and resource 'Synology Spreadsheet files'. It distinguishes from sibling tools like 'drive_list_files' (all files) and 'spreadsheet_read_sheet' (reads content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of when not to use it or comparison to similar tools like 'drive_list_files' or 'spreadsheet_get_info'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.
sheet_nameNoSheet name. If omitted, reads the first sheet.
rangeNoA1-notation range, e.g. 'A1:D20'. If omitted, reads all non-empty cells.
include_formulasNoIf true, return formula strings instead of computed values where applicable.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It correctly implies a non-destructive read operation but does not explicitly state read-only, nor does it disclose authentication needs, rate limits, or potential edge cases like empty sheets. The mention of return structure is helpful but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: first defines purpose and output, second clarifies input selection. No redundant or filler content. Front-loaded with the most critical information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read operation with no output schema, the description adequately states what is returned. However, it lacks details on error handling, empty results, or behavior when both file_id and name are provided. Given the tool's simplicity, it meets basic needs but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description adds limited value beyond the schema. It reinforces the 'file_id or name' requirement and summarizes return content, but does not explain parameter interplay (e.g., range vs. sheet_name) or provide examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reads cell data from a Synology Spreadsheet sheet and specifies the return structure (headers, data rows, totals). It effectively distinguishes itself from sibling write/append/delete tools by focusing on read-only access.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the need to provide file_id or name but does not provide explicit guidance on when to use this tool versus alternatives (e.g., spreadsheet_export for larger datasets). Lacks when-not-to-use or alternative tool references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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}.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesSpreadsheet display name used to look up the file later.
spreadsheet_idYesAlphanumeric Spreadsheet ID, e.g. extracted from /oo/r/{id}.
pathNoOptional Drive path (e.g. /mydrive/Reports/Sales.osheet) to disambiguate same-name files.

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description explains extraction of ID from URL but does not mention persistence, idempotency, or error handling (e.g., duplicate registration). Moderate transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, no redundancy, correctly front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and low parameter complexity, description fully covers registration purpose, ID extraction, and parameter semantics. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions. Description adds value by specifying 'alphanumeric ID from /oo/r/{id}' for spreadsheet_id and 'display name used to look up' for name, going beyond basic schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it 'registers a Synology Spreadsheet so it can be addressed by name', distinguishing it from siblings like spreadsheet_create (creates new files) and spreadsheet_list (lists existing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies use when you have an existing spreadsheet ID and want to assign a name for later lookup, but lacks explicit when-not or alternatives (e.g., vs. spreadsheet_create). Context is clear but no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spreadsheet_rename_sheetA

Rename a sheet tab in a Synology Spreadsheet. Provide either file_id or name. Set confirm=true to execute.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.
sheet_idYesInternal ID of the sheet to rename
new_nameYesNew name for the sheet
confirmNo

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Mentions the confirmation step, implying a safety mechanism, but does not disclose other behaviors like permissions or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: one key sentence plus a critical instruction. Front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is minimal. It covers the main action but lacks details on results, errors, or prerequisite conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 83%, so baseline is 3. Description adds value by indicating to provide either file_id or name and setting confirm=true, but does not detail sheet_id, new_name, or path beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action ('Rename'), resource ('sheet tab'), and product ('Synology Spreadsheet'). Distinguishes from sibling tools like spreadsheet_add_sheet and spreadsheet_delete_sheet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on providing file_id or name and setting confirm=true for execution. However, lacks comparison with alternatives or when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.
sheet_nameYesTarget sheet name
start_cellYesTop-left cell in A1 notation, e.g. 'A1', 'B3'
valuesYes2D array of values. Outer = rows, inner = columns. e.g. [['Name','Age'],['Alice',30]]
confirmNoMust be true to execute the write operation

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description hints at a write operation with a confirm safety mechanism, but does not detail consequences (e.g., overwriting behavior), permission requirements, or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero redundancy; front-loads the action and critical usage instructions. Efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Describes core operation but lacks details on return values (no output schema), handling of optional parameters, and edge cases. Adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 7 parameters with descriptions, so baseline is 3. The description adds a note about confirm=true but does not enrich understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Write values to a range of cells'), identifies the resource ('Synology Spreadsheet sheet'), and distinguishes from siblings like append_rows by specifying 'to a range' and mentioning the confirm flag.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides basic guidance on providing file_id/name and setting confirm=true, but does not explicitly differentiate when to use this tool over alternatives such as spreadsheet_append_rows or spreadsheet_batch_update.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idNoAlphanumeric Spreadsheet ID (overrides name lookup).
nameNoSpreadsheet display name (resolved via local cache).
pathNoOptional Drive path to disambiguate same-name files.
sheet_nameYesTarget sheet name, e.g. "Sheet1"
start_rowYes0-based starting row offset
start_colYes0-based starting column offset
stylesYes2D grid; styles[i][j] applies to cell (start_row+i, start_col+j). Must be rectangular.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the operation as a bulk overwrite, the endpoint (PUT /styles), and the style-only nature. While it doesn't explicitly state that unspecified styles are reset, 'overwrite' implies replacement. The description adds behavioral context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (two sentences plus a requirement note) and front-loads the core purpose and key differentiator. Every sentence adds value, though the version requirement could be integrated more succinctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema and nested parameters, the description covers the tool's purpose, usage context, and key requirements. It provides enough information for an AI to select and invoke the tool correctly, though more detail on the overwrite behavior (e.g., that unspecified styles are cleared) could enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each parameter already has a description. The description adds value by clarifying the optionality of file_id vs name ('Provide either file_id or name') and by summarizing the style fields. This goes beyond the schema's individual descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it overwrites cell styles for a rectangular block, lists specific style attributes, and distinguishes itself from the sibling tool spreadsheet_batch_update by noting it is simpler for style-only writes. The verb 'overwrite' and resource 'cell styles' are specific and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool over alternatives: 'simpler than batch_update for style-only writes' and directs to 'use spreadsheet_batch_update' for mixed edits. It also mentions the required Synology Office version. No explicit when-not-to-use or prerequisites, but the guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 39 tool updatesv0.5.0
    • First observedcalendar_create_calendar
    • First observedcalendar_create_event
    • First observedcalendar_delete_event
    • First observedcalendar_get_event
    • First observedcalendar_list_calendars
    • First observedcalendar_list_events
    • First observedcalendar_update_event
    • First observeddrive_add_label
    • First observeddrive_create_folder
    • First observeddrive_delete_file
    • First observeddrive_download_file
    • First observeddrive_get_file_info
    • First observeddrive_get_sharing_link
    • First observeddrive_list_files
    • First observeddrive_list_labels
    • First observeddrive_move_file
    • First observeddrive_search_files
    • First observeddrive_upload_file
    • First observedmailplus_get_message
    • First observedmailplus_list_folders
    • First observedmailplus_list_messages
    • First observedmailplus_mark_messages
    • First observedmailplus_move_messages
    • First observedmailplus_send_message
    • First observedspreadsheet_add_sheet
    • First observedspreadsheet_append_rows
    • First observedspreadsheet_batch_update
    • First observedspreadsheet_create
    • First observedspreadsheet_delete_file
    • First observedspreadsheet_delete_sheet
    • First observedspreadsheet_export
    • First observedspreadsheet_get_info
    • First observedspreadsheet_get_styles
    • First observedspreadsheet_list
    • First observedspreadsheet_read_sheet
    • First observedspreadsheet_register
    • First observedspreadsheet_rename_sheet
    • First observedspreadsheet_write_cells
    • First observedspreadsheet_write_styles

TDQS

A3.8/5.0
Disambiguation5/5

Each tool has a distinct domain prefix (calendar_, drive_, mailplus_, spreadsheet_) and action-verb naming, making it unambiguous which resource and operation each tool targets. No two tools overlap in purpose.

Naming Consistency5/5

All tools follow a consistent snake_case pattern with domain prefix and verb_noun structure (e.g., calendar_create_event, drive_upload_file, spreadsheet_read_sheet). No mixed conventions or vague verbs.

Tool Count4/5

With 39 tools across four distinct domains (Calendar: 5, Drive: 10, MailPlus: 6, Spreadsheet: 18), the count is slightly elevated but justified by the breadth of Synology Office functionality. The spreadsheet subdomain, in particular, requires many fine-grained operations (cells, styles, sheets, etc.).

Completeness5/5

Each domain provides comprehensive CRUD and lifecycle operations: Calendar has full CRUD, Drive covers file management (create, delete, move, upload, download, search, labels, sharing), MailPlus covers send, move, mark, and folder navigation, and Spreadsheet covers sheet creation, cell/styling manipulation, export, and file management. No obvious gaps for common workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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