Synology MCP Server
Allows managing Docker containers, images, projects, logs, and live stats on the Synology NAS, including starting, stopping, and restarting containers.
Provides comprehensive tools for monitoring and managing a Synology DSM 7 NAS, including system health, storage, disks, files, apps (Docker, Virtual Machine Manager, Download Station, Hyper Backup, Surveillance Station, Synology Photos, Drive), administration, security, certificates, and dashboards.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Synology MCP Servershow me the current volume usage"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Synology MCP Server
Monitor and manage a Synology DSM 7 NAS from any MCP client — and build live dashboards right inside the chat.
A Model Context Protocol (MCP) server that gives an LLM client such as Claude 71 tools to monitor and manage a Synology DSM 7 NAS: system health, storage and disks, files, Docker, virtual machines, packages, DSM updates, Download Station, Hyper Backup, users, services, security, certificates and more — plus a one-call snapshot for rendering beautiful dashboards as artifacts.
It speaks the official DSM Web API (entry.cgi), handles login (including 2FA via a
persistent trusted-device token), caches the session and re-authenticates automatically.
Tested on DSM 7.3.2 (DS423+). Most tools use stable core APIs and work across DSM 7.x.
Table of contents
Related MCP server: Synology MCP Server
What is an MCP server?
The Model Context Protocol (MCP) is an open standard that lets AI assistants talk to external tools and data sources in a uniform way. An MCP server exposes a set of tools (functions the model can call) over a simple protocol; an MCP client (the app you chat in, e.g. Claude Desktop) connects to the server and lets the model call those tools on your behalf.
Think of it as a universal adapter between the AI and your software: instead of the model guessing, it calls a real function that returns real data.
This project is an MCP server for your Synology NAS. It translates plain requests like “how full are my volumes?” or “restart the Home Assistant container” into authenticated calls to the Synology DSM API, and hands structured results back to the model — which then answers you or renders a dashboard.
You ──▶ Claude (MCP client) ──▶ Synology MCP server ──▶ DSM Web API ──▶ your NAS
▲ │
└────────────── results / dashboard ◀───────────────────┘You don't need to know any of the API details — just install the server, point it at your NAS, connect your client, and ask in natural language.
How it fits together
flowchart LR
U["👤 You"] -->|natural language| C["🤖 Claude<br/>(MCP client)"]
C -->|tool call| S["⚙️ Synology MCP server<br/>71 tools"]
S -->|HTTPS entry.cgi| D["🟦 Synology DSM 7 API"]
D --> N["🗄️ Your NAS<br/>storage · docker · vms · users …"]
N -->|JSON| S
S -->|structured result| C
C -->|answer or 📊 dashboard| UThe server authenticates once (with optional 2FA via a trusted-device token), caches the session, and re-authenticates automatically when it expires.
Features
71 tools across 21 domains — see the full Tool Reference.
Monitoring: system info, CPU/RAM/network load, health, connections, processes.
Storage: volumes, storage pools, per-disk S.M.A.R.T. and temperatures.
Files: browse, search, info, directory size, MD5, create/rename/copy/move/delete, extract archives, public share links.
Apps: Docker (containers, images, projects, logs, live stats, start/stop/restart), Virtual Machine Manager, Download Station, Hyper Backup, Task Scheduler, Surveillance Station (cameras), Synology Photos and Synology Drive.
Administration: packages & DSM updates, users/groups, shared folders (create/delete), file services (SMB/AFP/NFS/FTP), SSH/SNMP, hardware/UPS, security, certificates, DDNS, QuickConnect, notifications, logs, security scan.
Dashboards:
get_overviewreturns a complete snapshot in one call; the bundled skill teaches the client to render it as a polished HTML dashboard.Safe by design: state-changing tools are tagged
control; destructive power operations (reboot/shutdown/DSM update) are disabled unless explicitly enabled.No hard-coded secrets: all credentials come from environment variables /
.env.
Quick start
Option A — guided setup (recommended)
One interactive script creates the environment, asks for your NAS details, handles 2FA, tests the connection and registers the server in Claude Desktop for you:
git clone https://github.com/rafalr100/synology-mcp.git
cd synology-mcp
python3 configure.pyThen fully quit and reopen Claude Desktop. That's it.
Option B — manual
# 1. Clone
git clone https://github.com/rafalr100/synology-mcp.git
cd synology-mcp
# 2. Install (uv recommended)
uv venv --python 3.12 .venv
uv pip install --python .venv -e .
# …or: python3 -m venv .venv && .venv/bin/pip install -e .
# 3. Configure
cp .env.example .env # then edit URL / username / password
# 4. (only if your account uses 2FA) get a device token
.venv/bin/python bootstrap_2fa.py 123456 # 123456 = current OTP code
# 5. Verify
.venv/bin/python smoke_test.pyThen connect it to a client.
Configuration
Step 1 — Prepare the NAS
Find the NAS address & port. In DSM: Control Panel → Network → Network Interface (or your router). The default Web API port is 5000 (HTTP) / 5001 (HTTPS). Your URL will look like
http://192.168.1.100:5000.(Recommended) Create a dedicated user. Control Panel → User & Group → Create. Give it only the access it needs (the apps and shared folders you want to manage). Admin-group membership is required for some tools (storage, users, services, certificates, power).
2FA? If the account uses two-factor auth, keep your authenticator app handy for Step 4. The DSM Web API itself is enabled by default — nothing else to turn on.
Step 2 — Create your .env
Copy .env.example to .env and fill it in:
SYNOLOGY_URL=http://192.168.1.100:5000
SYNOLOGY_USER=your_username
SYNOLOGY_PASS=your_passwordEnvironment variables
Variable | Required | Default | Description |
| ✅ |
| Base URL of the NAS (use |
| ✅ | — | DSM username |
| ✅ | — | DSM password |
| 2FA only | — | Trusted-device token (from |
| — | — | One-time OTP (bootstrap only; prefer the device token) |
| — |
| Verify the TLS certificate |
| — |
| HTTP timeout (seconds) |
| — |
| Session name shown in DSM |
| — |
| Device name shown in DSM |
| — |
| Allow |
See docs/CONFIGURATION.md for details.
Step 3 — How login works
flowchart TD
A["Server starts"] --> B{"SYNOLOGY_DEVICE_ID set?"}
B -->|yes| C["Login with password + device token"]
B -->|no| E{"SYNOLOGY_OTP set?"}
E -->|yes| F["Login with password + OTP (one-off)"]
E -->|no| G["Login with password only"]
C --> H["✅ Session cached"]
F --> H
G --> H
H --> I["Auto re-login if the session expires"]Two-factor authentication (2FA)
If your account has 2FA enabled, a password alone cannot log in. Exchange one OTP code for a persistent trusted-device token (so you never need an OTP again):
.venv/bin/python bootstrap_2fa.py 123456 # current 6-digit code from your authenticatorThis appends SYNOLOGY_DEVICE_ID=… to your .env. If the token is ever invalidated
(e.g. after a password change), simply run the bootstrap again.
Connecting an MCP client
The server runs locally and talks to your NAS over the LAN. It works with local clients (Claude Desktop, Claude Code). It is not reachable from the claude.ai web app, whose cloud servers cannot see your local network.
Claude Desktop
Edit the config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"synology": {
"command": "/absolute/path/to/synology-mcp/.venv/bin/python",
"args": ["-m", "synology_mcp"],
"env": {
"PYTHONPATH": "/absolute/path/to/synology-mcp",
"SYNOLOGY_URL": "http://192.168.1.100:5000",
"SYNOLOGY_USER": "your_username",
"SYNOLOGY_PASS": "your_password",
"SYNOLOGY_DEVICE_ID": "your_device_token_if_2fa"
}
}
}
}Fully quit and reopen Claude Desktop — the Synology tools then appear in the tools menu.
A ready-to-edit copy lives in examples/claude_desktop_config.example.json.
Claude Code
claude mcp add synology -- /absolute/path/to/synology-mcp/.venv/bin/python -m synology_mcp…or drop a project-scoped .mcp.json in your working directory.
Tip: keep credentials only in
.env— the server auto-loads it from its own directory, so you can omit theenvblock in the client config.
Dashboards & the skill
Ask the client for “a dashboard of my NAS” and it will call get_overview (one
round-trip returning system, load, storage, disks and workload counts) and render a
self-contained HTML dashboard as an artifact.
The repo ships a Claude skill (skills/synology-nas/SKILL.md)
that teaches the client when to use which tool and how to render dashboards — including a
design guide and an
HTML template. See
docs/DASHBOARDS.md.
Usage examples
Natural-language prompts you can use once connected:
“Give me an overview / dashboard of my NAS.”
“How full are my volumes, and are all disks healthy?”
“Is a DSM update available? Which Docker images can be updated?”
“Show running containers and restart
homeassistant.” (asks to confirm)“List virtual machines and their state.”
“What’s connected right now, and show the last 10 system log entries.”
“Search
/homefor*.pdfand tell me the size of/docker.”“Are SSH and SMB enabled? What’s my DDNS hostname and certificate expiry?”
More in examples/prompts.md.
Tool reference
All 71 tools are documented — with parameters and what each returns — in docs/TOOLS.md. Summary by domain:
Domain | Tools |
Dashboard |
|
System monitoring |
|
Health & activity |
|
Storage |
|
Files |
|
Packages & updates |
|
Docker |
|
Virtual machines |
|
Surveillance Station |
|
Synology Photos |
|
Synology Drive |
|
Download Station |
|
Backup |
|
Task Scheduler |
|
Users & shares |
|
Services |
|
Hardware |
|
Security |
|
Network services |
|
Notifications |
|
Logs & scan |
|
Power (opt-in) |
|
Architecture
synology_mcp/
├── config.py # settings from env / .env (no hard-coded secrets)
├── api.py # async DSM client: login, 2FA, session, auto-reauth
├── app.py # shared FastMCP instance + formatting helpers
├── server.py # entry point (python -m synology_mcp)
└── tools/ # one module per domain; importing registers the tools
├── dashboard.py monitoring.py system.py storage.py
├── files.py packages.py docker.py virtualization.py
├── downloads.py backup.py scheduler.py admin.py
├── services.py hardware.py security.py network_services.py
├── notifications.py power.py
skills/synology-nas/ # Claude skill: tool guidance + dashboard rendering
docs/ # TOOLS.md, CONFIGURATION.md, DASHBOARDS.md
examples/ # client config + example promptsEvery call goes through the DSM entry.cgi gateway; API versions were verified against a
live DSM 7.3.2 system. Adding a tool: write an @mcp.tool() async function in a module
under synology_mcp/tools/ and add the module to tools/__init__.py.
Security
Credentials live in
.env/ client config, never in code..envand.mcp.jsonare git-ignored.Prefer a dedicated DSM account with only the privileges you need over the main admin.
Intended for trusted local-network use.
Power operations are opt-in via
SYNOLOGY_ENABLE_POWER_CONTROL=true.The HTTP client silences request logging so credentials never reach stderr.
Troubleshooting
Symptom | Cause / fix |
| Wrong username or password. |
| Account uses 2FA — run |
| The OTP expired (30 s window) — re-run the bootstrap with a fresh code. |
| Your account lacks permission for that action (use an admin account). |
| Session expired — handled automatically; if it persists, restart the server. |
Tools don’t appear in Claude Desktop | Fully quit (not just close) and reopen; check the config path and that the |
| Set |
Connection timeout | Check |
TLS certificate error | Use |
A feature tool errors | That package/feature may not be installed/enabled (e.g. VMM, Docker, UPS, DDNS). |
FAQ
Does this work with the claude.ai website or mobile app? No — those run in Anthropic’s cloud, which can’t reach a NAS on your LAN. Use a local client (Claude Desktop / Claude Code). For remote access you’d need a VPN (e.g. Tailscale) and a remote MCP transport, which is out of scope here.
Which DSM versions are supported? Built and tested on DSM 7.x (7.3.2). DSM 6 uses older API paths and is not supported.
Is it safe? Can it delete my data?
Read tools are safe. State-changing tools are tagged control; a well-behaved client
confirms before using them. Reboot/shutdown/update require an explicit opt-in flag.
Does it store my password?
Only where you put it — in .env or the client config, both local to your machine.
Can I run it without 2FA? Yes. 2FA is optional; without it, username + password is enough.
Roadmap
Planned additions (Surveillance Station, Synology Photos & Drive, richer logs, time/NTP, and more) are tracked in docs/ROADMAP.md.
Contributing
Issues and pull requests are welcome — see CONTRIBUTING.md.
License
MIT.
Not affiliated with or endorsed by Synology Inc. “Synology” and “DSM” are trademarks of their respective owners.
Available Tools
71 toolsadd_downloadA
Add a new download task from a URL or magnet link. [control]
Args: url: HTTP/FTP URL or magnet link to download destination: Shared-folder path (without leading slash), e.g. "video/movies". Required by Download Station.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| destination | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must cover behavioral traits. It only mentions the action and parameter requirements, omitting critical details like permissions, idempotency, or what happens on error. The '[control]' tag is unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence and a brief Args section. It is front-loaded and free of fluff, though the '[control]' tag could be omitted for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 simple params) and the presumed existence of an output schema, the description adequately covers parameters. However, it lacks details on error handling, progress, or return behavior, which would be useful for a download tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds meaningful guidance: 'HTTP/FTP URL or magnet link' for url and 'Shared-folder path (without leading slash), e.g. "video/movies"' for destination. This compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Add a new download task' and specifies the sources 'from a URL or magnet link'. This precisely identifies the tool's function and distinguishes it from siblings like list_downloads and manage_download.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains required parameters and destination format, implying usage context, but does not explicitly contrast with sibling tools or state when to avoid using this tool. No guidance on prerequisites or when alternatives are better.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_dsm_updateA
Check whether a DSM (operating system) update is available for the NAS.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations; description only says 'Check', implying read-only but lacks details on response format or potential 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with no parameters and output schema, but could add context about using it before install_dsm_update.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0 parameters with 100% coverage; description adds no parameter info but baseline is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool checks for DSM update availability, distinguishing it from install_dsm_update and other get/list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: use before installing an update. No explicit when-not or alternatives given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
copy_move_itemA
Copy or move files/folders into an existing destination folder. [control]
Args: paths: Comma-separated source paths dest_folder: Existing destination folder path move: True to move, False to copy (default) overwrite: Overwrite existing files (default False)
| Name | Required | Description | Default |
|---|---|---|---|
| move | No | ||
| paths | Yes | ||
| overwrite | No | ||
| dest_folder | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the move/overwrite behavior and default values, but does not specify error handling (e.g., if destination missing, if overwrite=false and file exists) or side effects (e.g., recursive move for folders). No annotations provided, so description carries full burden but falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is short and front-loaded with the main purpose, then bulleted args. No fluff, but the unexplained '[control]' tag adds minor confusion. Overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description omits critical details like error scenarios, behavior for multiple paths, and folder traversal rules. For a 4-parameter tool, this is insufficient for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description fully compensates by explaining each parameter: paths as comma-separated, dest_folder as existing folder, move as boolean toggle, overwrite as existing file handling. Adds meaning beyond the schema's titles and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Copy or move files/folders into an existing destination folder,' specifying the verb (copy/move), resource (files/folders), and context (existing destination). This distinguishes it from siblings like delete_item or rename_item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., create_folder, rename_item). No mention of prerequisites like source existence or destination validity, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_folderB
Create a new folder.
Args: parent_path: Where to create the folder e.g. /home name: New folder name
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose side effects, but it only states the basic action. It does not mention whether the folder is created silently, what happens if it already exists, or any return value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a one-line tool statement followed by clear parameter descriptions. It avoids fluff but could be more structured with a return value note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description doesn't need to detail returns. However, it lacks usage guidelines and behavioral details, leaving gaps for a simple but critical creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It provides examples and purposes for both parameters ('Where to create the folder e.g. /home' and 'New folder name'), adding value beyond the schema titles but not fully specifying format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a new folder,' specifying the verb and resource. It clearly distinguishes from sibling tools like copy_move_item or rename_item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, prerequisites, or alternatives. The description does not indicate that parent_path must exist or any error conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_itemB
Delete files or folders. [control]
Args: paths: Comma-separated paths to delete recursive: Delete folder contents recursively (default True)
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | ||
| recursive | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It does not disclose important behaviors such as whether deletions are permanent, if confirmation is needed, or permission requirements. The '[control]' tag is ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no wasted words. It is front-loaded with the action and parameters are clearly listed. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of a delete operation with two parameters and the presence of an output schema (which covers return values), the description is mostly complete. It could mention error handling or reversible behavior, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds useful meaning beyond the schema: it specifies that 'paths' are comma-separated and explains the 'recursive' parameter's behavior. This compensates for the schema's 0% description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete' and the resource 'files or folders', which is specific. However, it does not distinguish between this tool and similar siblings like 'delete_shared_folder', but the purpose is still clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'delete_shared_folder' or other deletion-related tools. The description only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_archiveC
Extract an archive (ZIP, etc.) into a destination folder. [control]
Args: archive_path: Full path to the archive file dest_folder: Destination folder path
| Name | Required | Description | Default |
|---|---|---|---|
| dest_folder | Yes | ||
| archive_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description fails to disclose behavioral traits like overwriting behavior, error handling, permission requirements, or side effects. The description provides no additional behavioral context beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but under-specified, with a redundant Args list that adds no value beyond the input schema. It is not truly concise as it fails to include essential information while still being wasteful with space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (unknown content) and only two parameters, the description omits any mention of return values, success/failure behavior, or side effects. For a basic extract operation, more detail is needed to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description repeats parameter names without adding meaningful context beyond the schema. Schema coverage is 0%, and the description does not explain parameter formats, types, or constraints, leaving the agent with no additional semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Extract an archive (ZIP, etc.) into a destination folder,' which specifies the verb, resource, and scope. No sibling tool duplicates this functionality, 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.
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 or any prerequisites. The description lacks explicit context for appropriate usage, such as file type compatibility or error handling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_connectionsA
List currently active connections to the NAS (who, from where, which protocol).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation by stating 'list currently active connections', which is transparent. However, without annotations, it does not disclose any potential side effects, permission requirements, or refresh behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the purpose with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema (not shown), the description adequately covers the tool's functionality. It names the key attributes returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the baseline is 4. The description need not add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists active connections and specifies the attributes: who, from where, which protocol. It distinguishes itself from sibling list tools like list_processes or list_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description does not mention prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_autoblock_settingsA
Get the auto-block policy (block IPs after failed login attempts).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation ('Get'), but with no annotations, it fails to disclose any behavioral traits such as authentication requirements, rate limits, or side effects. It is minimally adequate for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the verb and resource. Every word earns its place with no redundancies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists (context signal), the description sufficiently covers the tool's purpose. The output schema will detail the return values, so no further explanation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description has no need to add parameter semantics. Baseline score of 4 applies as per guidelines for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('auto-block policy') with a parenthetical explanation ('block IPs after failed login attempts'), making the purpose unambiguous. It distinguishes itself from siblings like get_security_settings by focusing specifically on auto-block policy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 prerequisites, context for use, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_container_logsA
Get recent log lines for a Docker container.
Args: name: Container name (from list_containers) lines: Number of recent log lines (default 50)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| lines | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It describes a read operation ('Get') but does not disclose any behavioral traits beyond retrieving logs, such as rate limits, output size, or potential truncation. The default for 'lines' (50) is helpful but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences plus the Args block. Every sentence adds value with no redundant or filler text. Arguments are clearly presented in a standard format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (not shown but context indicates it does), the description does not need to explain return values. It covers the basic purpose and parameters. It could mention that logs are from stdout/stderr, but for a simple retrieval, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% coverage (no parameter descriptions), so the description adds meaning by explaining that 'name' is the container name from list_containers and 'lines' is the number of recent log lines with a default of 50. This compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get recent log lines' for a specific resource 'Docker container', which is a distinct verb-resource pairing. It differentiates from siblings like 'get_container_stats' and 'list_containers' by targeting log retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage hint by noting that the 'name' parameter comes from 'list_containers', implying a prerequisite. However, it does not explicitly state when to use this tool vs. alternatives like 'get_container_stats' or provide when-not-to-use guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_container_statsA
Get live CPU / memory / network / disk usage for a running container.
Args: name: Container name (from list_containers)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It mentions 'live' and lists metrics (CPU, memory, network, disk) but does not specify error behavior, permission requirements, or what happens if the container is not running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The purpose is front-loaded, and the parameter is explained concisely. Every part is useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one parameter, simple stat retrieval) and the presence of an output schema, the description adequately covers the tool's purpose and parameter. No significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by specifying the source of the name ('from list_containers'), adding context beyond the schema's type and title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'live CPU / memory / network / disk usage for a running container'. It is specific and distinguishes from siblings like get_container_logs and list_containers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the container must be running and notes the name comes from list_containers. However, it does not explicitly compare when to use this versus similar siblings like get_resource_usage or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ddns_statusA
Get configured DDNS records (hostname, external IP, last update, status).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description must disclose behavioral traits. 'Get' implies read-only, but no explicit statement about safety or side effects. No mention of permissions needed or whether records are cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, effectively communicates purpose and output content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema (exists but not shown), the description is fairly complete. It lists the main fields but could mention existence of output schema for agent reference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters, so 100% coverage. Baseline is 4 for zero params, and description adds no parameter info as none needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' and resource 'configured DDNS records', listing returned fields (hostname, external IP, last update, status). Clearly distinguishes from sibling tools like get_system_info or get_network_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool, prerequisites, or comparison with alternatives. The description only states what it does, not when it's appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_directory_sizeA
Calculate the total size and item count of a folder (recursively).
Args: path: Folder path e.g. /docker
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It discloses that the tool calculates size and count recursively, but does not mention permissions, side effects, or whether it is read-only. The behavioral info is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with one sentence for purpose and a single-arg docstring. It front-loads the action, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given only one parameter and an output schema (not shown but exists), the description covers the input adequately. It does not need to explain the output because the schema handles that. It is complete enough for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description compensates by adding parameter details: it specifies the path argument with an example (/docker). This adds meaningful context beyond the schema's type and requirement fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool calculates total size and item count of a folder recursively. It uses a specific verb (calculate) and resource (folder), which distinguishes it from sibling tools like get_disk_info or get_file_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not mention exclusions, prerequisites, or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_disk_infoB
Get individual disk details: model, temperature, health (S.M.A.R.T.) and status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. Lacks disclosure of required permissions, read-only nature, error behavior, or side effects. Only states what is retrieved, not behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, concise sentence with no filler. Front-loaded with verb and resource. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (not shown), the description claims 'individual disk' but provides no parameter to specify which disk. This mismatch reduces completeness. No mention of scope or default behavior. Basic info is present but lacks critical context for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0 parameters, so schema coverage is 100% trivially. Baseline for no parameters is 4. Description adds value by specifying returned details (model, temperature, health, status), though it misses clarifying how 'individual' disk is identified without parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('individual disk details'), listing specific attributes (model, temperature, health, status). It distinguishes from sibling tools like get_storage_info by focusing on a single disk's details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., get_storage_info, get_storage_pools). No mention of 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.
get_file_infoB
Get detailed info (size, owner, timestamps) for one or more files/folders.
Args: paths: Comma-separated paths e.g. /home/report.pdf,/photo
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only states the action and parameter format, omitting details on read-only nature, error handling, path resolution logic, or limits on number of paths.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences and a parameter list. It is front-loaded with the purpose and efficiently provides parameter details without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description need not explain return values. However, it lacks information on error scenarios, path interpretation, and batch size limits, making it minimally complete for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions, so the description compensates by specifying the format ('Comma-separated paths') and providing an example ('/home/report.pdf,/photo'). This adds meaningful context beyond the schema's bare type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed info (size, owner, timestamps) for one or more files/folders. It distinguishes from siblings like 'get_file_md5' and 'get_directory_size' by listing specific attributes, though not explicitly differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives such as 'list_files' or 'search_files', nor does it specify prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_md5B
Compute the MD5 checksum of a file.
Args: path: Full file path
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It states the action but does not disclose if it is read-only, permissions required, or error behavior (e.g., file not found). Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two lines, front-loaded with the purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool, it is mostly adequate but missing context about file existence, permissions, or what happens on error. Output schema exists but not described, though that is not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds 'Full file path' to the path parameter, clarifying it should be absolute. With 0% schema coverage, this provides minimal but helpful extra meaning. However, it could specify format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool computes the MD5 checksum of a file. The verb 'compute' and resource 'MD5 checksum' are specific. Distinguishes from siblings like get_file_info which likely return metadata, not a checksum.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., other file-related tools like get_file_info). No mention of prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_servicesA
Get the enabled state and key settings of SMB, AFP, NFS and FTP file services.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the burden of disclosing behavior. The verb 'Get' implies a read-only operation, but no explicit confirmation of non-destructiveness or read-only nature is given. The description is acceptable but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence of 15 words, front-loading the action 'Get', with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema (which handles return value documentation), the description fully captures what the tool retrieves: enabled state and key settings for four specific file services, which is complete for a simple getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters with 100% coverage, so the baseline is 3. The description adds no parameter information, which is acceptable as none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the enabled state and key settings for SMB, AFP, NFS, and FTP file services, using a specific verb and resource that distinguishes it from siblings like set_file_service.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 set_file_service for modifying settings. The description only states what it does, not the context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_firewall_statusC
Get firewall profile information.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states it 'gets' information, implying a read operation. No further details on permissions, side effects, or response size are given, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and to the point. For a simple parameterless tool, this is efficient. However, it could be slightly expanded for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and presence of output schema, the description is minimally adequate. It does not elaborate on the content or structure of the firewall profile information, but the output schema may compensate. Still, the description feels incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has zero parameters, and coverage is 100%. Description adds no additional parameter semantics, but baseline is 3 per high coverage. No extra value provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets firewall profile information, distinguishing it from sibling tools like get_autoblock_settings or get_security_settings. However, it could be more specific about what constitutes 'firewall profile information'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With many sibling 'get_*' tools, an agent would benefit from context on when firewall status is needed versus other system info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hibernation_settingsB
Get disk hibernation (power-saving) settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states a read-like operation without confirming it is non-destructive, requiring authentication, or any side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key information. Every word earns its place, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple getter with output schema. However, it could benefit from mentioning it is read-only or distinguishing from related tools like get_power_settings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. Per guidelines, baseline is 4 for zero parameters. The description adds no parameter semantics but is acceptable given no inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the tool retrieves disk hibernation settings and clarifies 'power-saving' to avoid confusion. It clearly states the verb 'Get' and the resource 'disk hibernation settings', but does not differentiate from siblings like get_power_settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The purpose implies it's for querying disk hibernation configuration, but exclusions or prerequisites are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_infoA
Get network interfaces with IP addresses, link speed and status, plus gateway/DNS.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 indicates a read operation but does not explicitly state that it is non-destructive or any other behavioral traits like caching or authentication requirements. The description is minimally adequate but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key action and lists what is retrieved. Every word provides value, and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has no parameters and an output schema is present, the description covers the essential information about what the tool returns. It is complete for a straightforward information retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add meaning beyond the schema. The baseline for zero parameters is 4, and the description does not contradict or miss any parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves network interfaces with IP addresses, link speed, status, gateway, and DNS. It uses a specific verb ('Get') and specific resource ('network interfaces'), and the listed details differentiate it from other 'get_*' sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the tool is simple and parameterless, there is no explicit guidance on when to use it versus alternatives like 'get_system_info' or 'get_connection_info'. The usage is implied but not clarified with exclusions or recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notification_settingsA
Get e-mail notification settings (enabled state, sender, SMTP).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description minimally indicates a read operation ('Get'), but does not disclose auth requirements, rate limits, or other behavioral traits beyond what is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words, front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and the existence of an output schema, the description sufficiently covers what the tool retrieves (enabled state, sender, SMTP) without needing to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is empty (no parameters), and schema coverage is 100%. The description does not add parameter details; it only describes the output, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get' and the resource 'e-mail notification settings', specifying the included aspects (enabled state, sender, SMTP). It is distinct from sibling get_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving notification settings, but does not provide explicit when-to-use or when-not-to-use guidance, nor mentions alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_overviewA
Get a complete NAS snapshot in one call — ideal for building a dashboard.
Aggregates: system identity, CPU/RAM/network load, per-volume storage, per-disk health, overall health, and counts of packages, containers, VMs, download tasks and recent log severities. Use this, then render a dashboard artifact from the returned JSON.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation ('Get a complete NAS snapshot') but does not explicitly state non-destructiveness, permissions required, or potential rate limits. The listed aggregated data suggests safe retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words. The first sentence states purpose and use case; the second details aggregated data and suggests a next step. Perfectly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (context signal), the description does not need to explain return values. It lists the conceptual categories of aggregated data, which is sufficient for the agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100%. According to guidelines, a baseline of 4 applies, and the description adds no parameter information because none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: getting a complete NAS snapshot for building a dashboard. It enumerates the specific aggregated data categories, distinguishing it from sibling tools that provide individual metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('ideal for building a dashboard') and suggests a follow-up action ('render a dashboard artifact'). However, it does not explicitly mention when to avoid this tool or list alternative tools for more specific queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_power_settingsA
Get power-related hardware settings: power recovery, LED brightness, beep and power schedule.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for disclosing behavioral traits. It only states 'Get...' without mentioning read-only nature, permissions, or side effects. For a getter, it's minimally adequate but fails to add value beyond the action verb.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently communicates the tool's purpose and what it retrieves. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description adequately outlines the types of settings returned. It could be more explicit about the output format, but the output schema likely covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and schema coverage is 100%. The description correctly implies no parameters are needed. No additional parameter explanation is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get power-related hardware settings'. It lists specific settings (power recovery, LED brightness, beep, power schedule), making it distinct from sibling getter tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. However, the tool is self-explanatory as a getter for power settings, and no sibling tool targets the same resource, so the lack of guidelines is acceptable but not optimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quickconnect_statusA
Get QuickConnect configuration (enabled state and QuickConnect ID).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. States it retrieves configuration (enabled state and ID), implying read-only. Does not mention permissions or side effects, but acceptable for a simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence directly states tool's purpose with no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 0 parameters and an output schema, description provides enough context: what it returns. Could mention output format but not necessary. Complete for a simple query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage 100%. Description adds no parameter info but is not needed. Baseline score of 4 for 0-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Get' and resource 'QuickConnect configuration', lists returned fields (enabled state, ID). Clearly distinguishes from sibling getter tools like get_ddns_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for checking QuickConnect status, but no explicit guidance on when to use vs alternatives or prerequisites. Adequate for a simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resource_historyA
Get recent Resource Monitor threshold events (CPU/RAM/IO spikes over time).
Useful for plotting recent trends or spotting recurring load problems.
Args: limit: Max events to return (default 25)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description bears full burden. It does not explicitly state read-only nature, auth requirements, rate limits, or data retention. Only implies it is a read operation via the verb 'get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences for purpose and usage, plus one line for parameter. Front-loaded with the core function, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and parameter adequately. With an output schema present, return value description is not needed. Could mention ordering or timestamp inclusion but overall sufficient for a simple historical event tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description explains the limit parameter's purpose and default value, adding meaning beyond the schema's type and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly specifies verb 'get', resource 'Resource Monitor threshold events', and scope 'recent (CPU/RAM/IO spikes over time)'. This distinguishes it from sibling tools like get_resource_usage which would be current metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Context is provided ('Useful for plotting recent trends or spotting recurring load problems') but no explicit when-not-to-use or alternative tools are mentioned. Adequate but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_resource_usageA
Get real-time CPU usage, memory usage and network throughput.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description must disclose behavior. It says 'real-time' implying a snapshot, but doesn't mention permission needs or performance impact. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, direct sentence with no redundancy. Efficiently communicates tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not detail return values. It covers what metrics are fetched, though it omits potential units or format. Acceptable for a simple snapshot tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%). Baseline 4 applies; description doesn't add beyond naming the metrics, which is fine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves real-time CPU, memory, and network throughput. Distinct from siblings like get_resource_history which likely provides historical data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use versus alternatives such as get_resource_history or get_disk_info. Lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_security_scan_statusB
Get the result of the Security Advisor scan (malware, network, system, updates).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavior. It only states it 'gets the result' but does not mention what happens if no scan has been run, whether it triggers a scan, or any rate limits. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no extraneous information. Every word adds value, perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic purpose. With no parameters and an output schema, it is mostly complete, though it could mention that the scan must have been run to have a result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description correctly omits parameter details. Baseline 4 is appropriate as no additional meaning is needed beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the result of a Security Advisor scan, listing specific scan types (malware, network, system, updates). This distinguishes it from broader 'get_security_settings' but could more explicitly separate it from sibling tools like 'get_system_health'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'get_security_settings' or 'get_system_health'. The description lacks context about prerequisites or expected state of the scan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_security_settingsA
Get DSM security settings (session timeout, CSRF protection, IP checking).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior. It implies a read-only operation but doesn't detail auth requirements, side effects, or output format. The output schema may compensate, but the description itself is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that lists key examples. No wasted words, front-loaded with the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with no parameters and an output schema, the description is fairly complete. It identifies the resource and sample settings, though it could mention that the output schema provides full details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema coverage is 100%. The description doesn't need to add parameter info, but it also doesn't provide any additional semantic meaning beyond the schema. Baseline 4 is appropriate for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves DSM security settings and lists specific examples (session timeout, CSRF protection, IP checking), making it distinct from sibling 'get_*' tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like get_autoblock_settings or get_firewall_status. The description does not mention exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_snmp_settingsA
Get SNMP service settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Get' implies a safe, read-only operation, but no details about authentication, rate limits, or how the tool behaves if SNMP is not configured. Adequate for a simple getter, but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words. It is front-loaded and efficient, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no annotations, and a likely self-explanatory output schema (since it's a simple getter), the description is adequate. It could mention that settings are read-only or include a hint about the output fields, but overall it is complete enough for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%. The description doesn't need to add parameter details. However, it could hint at the output schema or the nature of the settings, but this is not critical.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get SNMP service settings,' identifying the specific resource (SNMP service) and action (get). It distinguishes from sibling tools like get_disk_info or get_firewall_status, which target different resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, prerequisites, or conditions. Since there are many getter siblings, explicit usage context would help the agent decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_storage_infoB
Get storage volumes: RAID type, filesystem, used/free space and health status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as read-only nature, idempotency, authentication requirements, or rate limits. The verb 'Get' implies retrieval, but explicit confirmation is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that concisely conveys the tool's purpose and key data points. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and an output schema, the description covers what it returns. However, it lacks context about scope (e.g., all volumes or specific selection?) and potential relationships to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Description does not need to add parameter information, but it helpfully lists the returned fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves storage volumes and lists specific details like RAID type, filesystem, used/free space, and health status. However, it does not differentiate from sibling tools like get_storage_pools or get_disk_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention that for more specific disk details, get_disk_info might be appropriate, or that it returns all storage volumes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_storage_poolsA
Get storage pools with RAID type, status and data-scrubbing state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although no annotations are provided, the description makes the tool's behavior clear: it retrieves storage pool data with specific attributes. It does not explicitly state it is read-only, but 'get' implies no side effects. The description adds value by naming the returned fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded, containing no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the output schema exists (though not shown), the description adequately lists the key fields returned (RAID type, status, data-scrubbing state). It is sufficiently complete 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%. The description does not add parameter information, which is acceptable since none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('get') and the resource ('storage pools'), and specifies the information returned (RAID type, status, data-scrubbing state). This distinguishes it from sibling tools like get_storage_info or get_disk_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. It is implied as a simple retrieval tool, but no conditions or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_surveillance_infoA
Get Surveillance Station info: version, camera count and licence usage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states what information is retrieved but does not mention that the tool is read-only, any required permissions, or potential side effects. For a simple getter with no parameters, this is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key information. It is efficient with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description adequately specifies the main outputs. It could be considered complete for a simple info retrieval tool, though additional context (e.g., that it only applies to Surveillance Station) might help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (trivially). The description adds value by specifying the output fields (version, camera count, licence usage), which gives the user context beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets Surveillance Station info and specifies the specific information retrieved (version, camera count, licence usage). The verb 'get' and resource 'Surveillance Station info' are precise, and it distinguishes from sibling tools like list_cameras.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that the tool is used to retrieve Surveillance Station information but provides no explicit guidance on when to use it over sibling tools or any conditions for use. There is no mention of when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_healthA
Get overall system health: status, uptime, reboot-required flag and fan status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden of behavioral disclosure. It does not explicitly state that the operation is read-only, safe, or has no side effects, which could leave the agent uncertain. However, the listed fields (status, uptime, etc.) suggest a safe query, so it is not misleading but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's purpose and key output fields. It is front-loaded and free of extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and the existence of an output schema, the description adequately outlines the main fields. It could be slightly more complete by mentioning that the output schema contains these fields, but overall it is sufficient for a low-complexity tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema description coverage is 100% (trivially). Per the baseline rule for zero parameters, a score of 4 is appropriate. The description adds no param info because none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves overall system health and names specific fields: status, uptime, reboot-required flag, fan status. This distinguishes it from many sibling get_* tools that target specific subsystems (e.g., get_disk_info, get_network_info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is provided on when to use this tool versus alternatives. The usage is implied by the name and description, but there is no mention of prerequisites or conditions that would make this preferable over other health-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_infoA
Get NAS model, DSM version, hostname, uptime, RAM, temperature and serial number.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation ('Get'), but with no annotations, it lacks details on potential side effects, required permissions, or error conditions. The simple nature of the tool reduces the need for extensive disclosure, but a statement about being non-destructive would be helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence (15 words) with no superfluous information. It is front-loaded with the action and key outputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters, output schema exists), the description provides a solid list of return values. It could be enhanced by noting any prerequisites or that it requires no user input, but it is sufficient for a straightforward info retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the description cannot add meaning beyond the empty schema. However, it lists the returned fields, which provides context for what the tool outputs; this exceeds the baseline for no-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets specific system information: NAS model, DSM version, hostname, uptime, RAM, temperature, and serial number. It uses a specific verb ('Get') and resource ('system info'), and it distinguishes itself from sibling tools like get_disk_info and get_network_info by covering a broader set of attributes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus sibling tools. While the broad scope implies it is for a general system overview, a brief note clarifying that it aggregates multiple hardware and software details would improve decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_logsA
Get recent system log entries.
Args: limit: Max entries to return (default 30) level: Optional filter — "info", "warning" or "error"
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Get recent system log entries' without mentioning read-only nature, permission requirements, ordering, or truncation limits. This is minimally informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, using a list format for arguments. No extraneous sentences. Purpose is stated first, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return values are covered. However, the description lacks details about log ordering, time range, or maximum limit. For a simple log retrieval tool, it is minimally adequate but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates by explaining both parameters: limit (default 30) and level (allowed values 'info', 'warning', 'error'). This adds value beyond the schema, which lacks descriptions and enums. Could mention case sensitivity but overall good.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get recent system log entries,' specifying the verb (get) and resource (system log entries). It distinguishes from siblings like get_container_logs, which target container-specific logs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. It assumes the agent understands to use it for system logs, but with many sibling log-related tools, clearer guidance on exclusions (e.g., 'not container logs') would help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_terminal_settingsA
Get SSH / Telnet terminal access settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description should cover behavioral traits. It only indicates a read operation ('Get'), but fails to disclose any side effects, authentication needs, or configuration prerequisites. The lack of depth leaves the agent with limited understanding of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It is front-loaded and clearly communicates the tool's purpose without excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with no parameters and an existing output schema (though not shown), the description is sufficiently complete. It could mention the type of settings, but the output schema likely covers that. Minor improvement possible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so baseline is 4. The description does not add any parameter information, but since there are none, this is acceptable. Schema description coverage is 100%, meeting expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool retrieves 'SSH / Telnet terminal access settings,' clearly identifying the specific verb and resource. It distinguishes itself from other get_* tools in the sibling list by being unique to terminal settings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when terminal settings are needed but provides no explicit guidance on when to use this tool versus alternatives, nor any conditions or prerequisites. Given the sibling list, no directly competing tool exists, so implied usage is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_time_settingsA
Get the NAS time, timezone and NTP synchronization settings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It only states what is retrieved, not any behavioral traits like permissions, side effects, or safety. Minimal addition beyond the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no wasted words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, output schema present), the description adequately covers what the tool does. Could mention it returns current settings, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so schema coverage is 100%. Description adds meaning by specifying exactly what settings are retrieved, which is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves NAS time, timezone, and NTP settings. It uses a specific verb and resource, distinguishing it from other get_* sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_system_info. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ups_statusA
Get UPS (uninterruptible power supply) status and configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the basic purpose without disclosing any behavioral traits such as 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words, front-loading the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description provides sufficient context for this simple read-only tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters; thus the baseline is 4. No parameter information is needed, and the description adds no redundant detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves UPS status and configuration, which is specific and distinguishes it from sibling tools that focus on files, network, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, but its uniqueness among siblings implies usage for UPS monitoring.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
install_dsm_updateA
Download and install an available DSM update, then reboot. [control][power] Requires SYNOLOGY_ENABLE_POWER_CONTROL=true. Check availability first with check_dsm_update.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even without annotations, the description fully discloses the destructive nature (reboot), the action sequence (download, install, reboot), and the environment variable requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences plus a requirement line. Every word adds value, front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, prerequisites, and related tool. Could mention that the NAS becomes unavailable during reboot, but that is implicit. Has output schema, so return values are handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description adds no parameter info beyond the schema. Baseline 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool downloads and installs a DSM update and reboots. It distinguishes itself from the sibling check_dsm_update by advising to check availability first.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear prerequisite (SYNOLOGY_ENABLE_POWER_CONTROL=true) and ordering advice with check_dsm_update, but does not explicitly state when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_backup_tasksA
List Hyper Backup tasks with their current state and target.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description confirms the tool lists tasks with state and target, implying a read-only operation. However, with no annotations, it does not explicitly state side effects, authentication needs, or performance characteristics, which is acceptable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is concise, clear, and front-loaded with the essential information. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an existing output schema, the description is sufficient to convey the tool's purpose and output. It could mention that these are Hyper Backup tasks specifically, but it is complete enough for use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description adds value by specifying the content of the output (state and target), which is not in the schema. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific verb 'list' and resource 'Hyper Backup tasks', and specifies the included information (state and target). This clearly distinguishes it from sibling tools like list_cameras or list_containers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, but the purpose is clear enough that an agent can infer when listing backup tasks is needed. No when-not-to-use conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_camerasA
List Surveillance Station cameras with model, IP and status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must convey behavioral traits. It only states the function without disclosing authentication requirements, potential empty results, or whether the tool is read-only. Lacks depth for a safe assessment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence with no redundant words. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and an existing output schema, the description covers the essential purpose. It could optionally mention if the tool requires Surveillance Station to be installed, but this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema provides no information. The description adds value by specifying the fields included in the output (model, IP, status), which helps the agent understand what data to expect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and resource 'Surveillance Station cameras', and includes the details returned (model, IP, status). It clearly distinguishes from sibling list tools that target other resources like containers or files.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. The description implies usage for retrieving camera information, but does not mention alternatives or prerequisites. Given the simplicity of a parameterless list tool, this is adequate but minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_certificatesA
List installed TLS/SSL certificates with validity dates and assigned services.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is minimal but accurate. It implies a read-only operation but does not disclose permissions or side effects. It relies on the name and context for transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded with the essential action and details. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (0 parameters, output schema present), the description is complete. It covers the purpose and what is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (scheme coverage 100%), so the description does not need to add parameter information. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool lists installed TLS/SSL certificates and specifies the included details (validity dates, assigned services). Distinguishes from siblings as no other tool deals with certificates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for use (listing certificates), but does not explicitly mention when not to use it or alternatives. Since no sibling tool serves the same purpose, this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_containersA
List all Docker / Container Manager containers with their state and image.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool lists containers (read operation) with no destructive implications. This is sufficient for a straightforward 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no extraneous words. Every word adds value, making it optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with an output schema, the description fully covers behavior (list all containers) and output (state and image). No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters (0 required), so the description does not need to add parameter-level details. The baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List'), resource ('Docker / Container Manager containers'), and included attributes ('state and image'). It is distinct from sibling tools like get_container_logs or set_container_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for retrieving all containers, which is clear. No explicit guidance on when not to use it or alternatives, but the context is simple and usage is self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_docker_imagesA
List Docker images stored on the NAS, including whether an update is available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description correctly implies a read-only operation. It adds context about update availability, but lacks explicit mention of safety or side effects. Given no parameters and no destructive potential, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no wasted words. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered. Description mentions update availability, adding useful context. However, it does not mention prerequisites (e.g., Docker must be installed). Still, for a simple list tool, it's largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. The description does not need to add parameter details. Baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Docker images and includes a specific detail (update availability), distinguishing it from siblings like list_containers and list_docker_projects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives provided, but given the simplicity and zero parameters, usage is implied. Sibling tools exist but no guidance on selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_docker_projectsA
List Docker Compose / Container Manager projects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states the action without revealing any behavioral traits (e.g., read-only nature, prerequisites, or limitations).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, output schema exists), the description is adequate but could briefly clarify what constitutes a 'project'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%; the description adds nothing beyond the schema, but baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Docker Compose/Container Manager projects, distinguishing it from sibling tools like list_containers or list_docker_images.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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; no when-not-to-use or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_downloadsA
List Download Station tasks with progress, size and transfer speed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It does not disclose behavioral traits like real-time status, pagination, caching, or scope (e.g., all tasks vs. user-specific). Minimal 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list operation with no parameters and an output schema, the description is adequate. It lists key output fields (progress, size, speed). However, it lacks details on filtering or scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema fully covers them. The description adds no additional parameter semantics, but this is acceptable given no parameters exist. Baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Download Station tasks and mentions specific attributes (progress, size, transfer speed). It distinguishes itself from other list tools by specifying the resource (Download Station).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no prerequisites or context for usage. The agent is left to infer its applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_drive_connectionsA
List Synology Drive client connections (devices syncing with the NAS).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure. It correctly indicates a read operation ('List') but adds no detail on side effects, permissions, or pagination. Adequate for a simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no wasted words. Front-loaded with the key action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, an output schema, and a simple listing purpose, the description fully informs the agent. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100% vacuously. The description adds no param info, which is acceptable. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'Synology Drive client connections' with a helpful parenthetical. However, it does not differentiate from sibling 'get_active_connections', which may overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'get_active_connections'. The description implies listing all connections but lacks exclusionary context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesA
List files and folders at a given path.
Args: path: Full path e.g. /home or /docker/app limit: Max items to return (default 100) offset: Pagination offset sort_by: name | size | user | group | mtime | atime | crtime | posix sort_direction: asc | desc pattern: Optional filename filter (supports wildcards, e.g. *.pdf)
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| limit | No | ||
| offset | No | ||
| pattern | No | ||
| sort_by | No | name | |
| sort_direction | No | asc |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 that it lists files and folders, supports pagination (limit, offset), sorting (sort_by, sort_direction), and wildcard pattern filtering. It does not mention side effects (likely none) or permissions, but overall is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-sentence introduction followed by a bullet-style parameter list. Every line adds value with no redundancy. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description does not need to explain return values. It covers all parameters and common constraints (e.g., pattern wildcards). Minor gaps: it does not specify that listing is non-recursive (only direct children) or clarify how offset works relative to limit. Still fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds critical meaning. It explains each parameter: path as full path, limit as max items, offset as pagination offset, sort_by with possible values (name, size, etc.), sort_direction as asc/desc, and pattern with wildcard support (e.g., *.pdf). This fully compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List files and folders at a given path,' specifying the action (list), resource (files and folders), and scope (path). This distinguishes it from siblings like search_files (content search) and get_file_info (single file details).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains parameters but provides no explicit guidance on when to use this tool versus alternatives like search_files or get_file_info. Usage is implied through parameters (e.g., pattern for filtering), but no when-not or context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_groupsB
List local user groups.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description does not disclose behavioral traits beyond listing; no mention of permissions, scope, or return value details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, single sentence, front-loaded with the key action and resource; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and minimal description, important context is missing—such as what information is returned (despite an output schema) and usage prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%; description adds value by specifying 'local' scope, which clarifies meaning beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists local user groups, with specific verb 'List' and resource 'local user groups', distinguishing it from sibling tools like list_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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; simply states what it does without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_packagesA
List installed packages (apps) with their version and running status.
Args: running_only: If True, only return packages that are currently running.
| Name | Required | Description | Default |
|---|---|---|---|
| running_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden but only states the basic operation. No disclosure of permissions, side effects, or that it is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with two sentences that efficiently convey the tool's purpose and parameter information without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with an output schema, the description is nearly complete. It covers the returned information and the parameter, though it omits mention of prerequisites or typical usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clearly explains the single parameter 'running_only' with its effect, fully compensating for 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists installed packages and includes version and running status. It is specific enough to distinguish from other list_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidelines are provided on when to use this tool versus alternatives such as set_package_state or other list tools. The description lacks explicit usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_photo_albumsA
List albums in Synology Photos (personal space).
Args: limit: Max albums to return (default 50) offset: Pagination offset
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It only mentions listing, implying a read operation, but does not confirm it as read-only. No details on pagination behavior beyond offset/limit, no auth requirements, rate limits, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with the purpose stated first and parameter explanations following. Every sentence is necessary and there is no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with an output schema, the description covers the core purpose and parameters. However, it omits details like sorting order, error conditions, and whether the output includes all albums. It is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description compensates by explaining 'limit' as max albums and 'offset' as pagination offset, adding meaning beyond the schema's type and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists albums in Synology Photos personal space, with a specific verb and resource. This distinguishes it from sibling tools like list_files or list_shares.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is given; usage is implied by the resource name. There is 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.
list_processesB
List top running processes by CPU or memory usage.
Args: top: Number of processes to return (default 15) sort_by: "cpu" or "mem" (default cpu)
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | ||
| sort_by | No | cpu |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It does not mention permissions, system impact, side effects, or whether the listing is limited to current user or system-wide. The tool is read-only, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two short sentences plus two parameter descriptions. No fluff, every word adds value. Information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is simple, an output schema exists but its content is not shown. The description could mention that it returns a list of processes with details, or clarify that it shows system-wide processes. It is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the tool description adds meaning: it specifies default values for both parameters and indicates valid values for sort_by ('cpu' or 'mem'). This compensates well for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists top running processes and specifies sorting by CPU or memory. It uses a specific verb and resource, distinguishing it from other list tools like list_files or list_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Among sibling tools, there are many list/get tools, but the description does not specify when to prefer list_processes over them or mention any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_scheduled_tasksB
List scheduled tasks (cron jobs, scripts, scheduled backups, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It only states the action without disclosing safety (read-only), permissions required, or any side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 10 words, front-loaded with the core action. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-parameter tool with an output schema, the description is mostly adequate. It could clarify scope (e.g., all tasks or user-specific) but is otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100% trivially. Baseline for 0 parameters is 4. Description adds nothing about parameters but isn't needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List scheduled tasks' with explicit examples (cron jobs, scripts, scheduled backups). It identifies the resource and action but does not distinguish from siblings like list_backup_tasks, which may cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. For example, list_backup_tasks likely overlaps; the description should specify when to use each.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usb_devicesA
List USB devices connected to the NAS.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, and the description does not disclose any behavioral traits such as permissions required, error conditions, or limitations beyond the basic function.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an output schema available, the description is fairly complete for a simple listing tool, though it could benefit from mentioning any edge cases or default behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters (0), so the description does not need to clarify them. According to the rubric, 0 parameters yields a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List USB devices connected to the NAS' clearly states the verb (List) and the resource (USB devices), and distinguishes it from sibling tools that handle other entities like downloads, shares, or updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, nor any prerequisites or context for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usersA
List local user accounts with description, email, 2FA and status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read operation (list), but since no annotations are provided, it does not disclose authentication requirements or other behavioral traits. The behavior is straightforward, so this is minimally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded and to the point, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no parameters, output schema exists), the description provides sufficient context for an agent to understand what the tool does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and the schema coverage is 100%. Per guidelines, a baseline of 4 is appropriate as the description adds no additional parameter info beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists local user accounts and specifies the fields returned (description, email, 2FA, status), making it distinct from other list tools like list_groups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided, but the purpose is clear enough for an agent to infer its use case. With many sibling list tools, explicit differentiation would improve this score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_virtual_machinesA
List Virtual Machine Manager guests with their state and resource allocation.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation that returns data, which is sufficient given no annotations exist. It could mention that no modifications are made, but the verb 'list' implies non-destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's purpose without any unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema (likely covering the return values mentioned), the description provides sufficient context. It explicitly states what is returned, aligning with expected output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the description does not need to add parameter information since the schema is empty. The baseline for no parameters is 4, and the description meets it without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and identifies the resource ('Virtual Machine Manager guests') and what is returned ('state and resource allocation'). This clearly distinguishes it from sibling tools like set_vm_state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states what the tool does but does not provide any guidance on when to use it versus alternatives. There is no mention of exclusions or context for choosing this tool over others like list_containers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manage_downloadA
Pause, resume or delete download tasks. [control]
Args: task_ids: Comma-separated task ids (from list_downloads) action: "pause", "resume" or "delete"
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| task_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 lists the actions (pause, resume, delete) but does not disclose any side effects, such as whether deleting is permanent or pausing affects ongoing downloads. This lack of behavioral detail is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence stating the purpose followed by a brief args list. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the basic actions and parameters, it lacks context about prerequisites (e.g., task states for valid actions) and error conditions. Given that an output schema exists (from context), the absence of return value explanation is acceptable, but overall completeness is minimal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It explains task_ids as 'Comma-separated task ids (from list_downloads)' and action as 'pause', 'resume', or 'delete', which provides clear semantics beyond the schema's type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Pause, resume or delete download tasks.' This is a specific verb-resource combination that distinguishes it from sibling tools like add_download and list_downloads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that task_ids should come from list_downloads, providing a clear usage context. However, it does not explicitly state when not to use this tool or mention alternatives, but the implied workflow is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reboot_nasA
Reboot the NAS. [control][power] Requires SYNOLOGY_ENABLE_POWER_CONTROL=true.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the burden is on the description. It discloses a prerequisite (SYNOLOGY_ENABLE_POWER_CONTROL) and tags [control][power] hint at the action type, but lacks detail on potential side effects like service disruption or reboot duration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with one sentence plus a tag. The core action is front-loaded, and every part contributes information without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (no parameters, output schema exists), the description adequately covers the action and a key prerequisite. It could mention immediate effects like system restart or downtime, but is generally complete for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so no additional parameter information is needed. The description correctly does not add redundant detail; baseline for zero params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Reboot the NAS', clearly indicating the action (reboot) and resource (NAS). It distinguishes from sibling tools like 'shutdown_nas' which performs a different action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a required configuration (SYNOLOGY_ENABLE_POWER_CONTROL=true) but does not provide guidance on when to reboot vs shutdown or other alternatives. The usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_itemB
Rename a file or folder.
Args: path: Full path of the item to rename new_name: New name only (not a full path)
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| new_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like overwriting behavior, permissions required, or renaming within the same directory. It only says 'Rename a file or folder' without any such details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no wasted words. It uses a clear format with argument descriptions, making it easy to parse. Every sentence is necessary and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description omits behavioral context (e.g., does renaming overwrite existing items? Are there restrictions on characters?). It is adequate for simple usage but lacks completeness relative to its complexity and the presence of sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no parameter descriptions, but the tool description adds essential semantics: 'path' is the full path, 'new_name' is just the name (not a full path). This clarifies usage beyond the schema's bare property titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'rename' and the resource 'file or folder', making the purpose immediately obvious. It differentiates from sibling tools like 'copy_move_item' or 'delete_item' by focusing specifically on renaming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., 'copy_move_item' could also rename a file). The description lacks context on prerequisites or common usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_backup_taskB
Start a Hyper Backup task immediately. [control]
Args: task_id: Numeric task id (from list_backup_tasks)
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden. It only mentions that the task starts 'immediately', which is a minimal behavioral trait. It does not disclose whether the operation is destructive, requires permissions, or what the response entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and to the point, using two lines. The '[control]' tag is cryptic but not overly distracting. The structure is front-loaded with the action, then parameter details. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter and an output schema is present, the description is nearly complete. It covers purpose and parameter context. However, it lacks explanation of any side effects or the output format beyond what schema provides.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for parameters. The description adds that task_id is 'Numeric task id (from list_backup_tasks)', providing the source and data type. This significantly aids understanding. However, it lacks constraints like valid ranges or formatting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Start' and the resource 'Hyper Backup task', making the action unambiguous. It is distinct from sibling tools like 'list_backup_tasks' and 'run_scheduled_task' in its focus on immediate execution. However, it does not explicitly differentiate itself from 'run_scheduled_task' which might also trigger tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'list_backup_tasks' or 'run_scheduled_task'. The description does not include any context about prerequisites, scenarios, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_scheduled_taskA
Trigger a scheduled task to run immediately. [control]
Args: task_id: Numeric task id (from list_scheduled_tasks)
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only states the immediate trigger action without mentioning any side effects, permissions, or consequences, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences, front-loading the main action. However, the '[control]' tag is unclear and slightly detracts from clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a single parameter and an existing output schema, the description omits return information and success indicators, which would help completeness for a trigger action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no description (0% coverage), so the description must compensate. It explains the task_id is numeric and comes from list_scheduled_tasks, adding context, but lacks details on validation or error handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Trigger a scheduled task to run immediately') with a specific verb and resource, distinguishing it from sibling tools like list_scheduled_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by noting the task_id comes from list_scheduled_tasks, but it does not explicitly state when to use this tool vs alternatives or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_filesA
Search for files by name pattern within a folder.
Args: folder_path: Root folder to search e.g. /home pattern: Filename pattern e.g. .pdf or report recursive: Search subdirectories (default True) limit: Max results (default 50)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| pattern | Yes | ||
| recursive | No | ||
| folder_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 that search is recursive by default, limits results, and matches patterns. However, it does not mention read-only nature, permissions, or behavior on no match.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses a clean Args format with short explanations. It is efficient but could be slightly more concise by omitting redundant words like 'e.g.' for all parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to explain return values. It covers all four parameters adequately for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning. It does: provides examples for pattern and folder_path, explains recursive and limit, and mentions defaults. This adds significant value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for files by name pattern within a folder.' This differentiates it from sibling tools like list_files, which lists all files without pattern matching. The verb 'search' and resource 'files' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching by pattern but does not explicitly state when to use this tool over alternatives like list_files. No guidance on when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_container_stateA
Start, stop or restart a Docker container. [control]
Args: name: Container name (from list_containers) action: "start", "stop" or "restart"
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| action | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 three actions but does not mention requirements (e.g., container must exist), auth needs, or potential destructiveness of stop/restart.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, front-loads the purpose, and uses a clear Args format. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple state-change tool with an output schema present, the description is mostly complete. It could explicitly list the allowed actions (start, stop, restart) within the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds value by indicating name comes from list_containers and action takes specific values. However, it does not fully enumerate all possible actions or validate input constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (start, stop, restart) and resource (Docker container). It distinguishes from sibling tools like list_containers, get_container_logs, and get_container_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for controlling container state but does not explicitly guide when to use this tool vs alternatives like list_containers or get_container_stats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_file_serviceB
Enable or disable a file-sharing protocol. [control]
Args: service: One of "smb", "afp", "nfs", "ftp" enabled: True to enable, False to disable
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| service | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the full burden. It discloses the mutation action (enable/disable) but omits behavioral traits such as required permissions, side effects on active connections, or system impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point, containing one main sentence plus a parameter list. It is front-loaded and avoids unnecessary words, though the embedded '[control]' tag is superfluous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter setter, the description covers the fundamental action and parameters. However, it does not describe the return value or confirm success, which would improve completeness given the tool's mutation nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the parameters beyond the schema: lists valid values for 'service' and clarifies 'enabled' as a boolean toggle. However, with 0% schema coverage, more detail would be beneficial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: enable or disable a file-sharing protocol. It specifies the protocol types (smb, afp, nfs, ftp). This distinguishes it from sibling getter tools like 'get_file_services'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when toggling file-sharing services but does not explicitly state when to use this tool versus alternatives, nor does it provide context on prerequisites or aftereffects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_package_stateA
Start or stop an installed package. [control]
Args: package_id: Package id from list_packages (e.g. "WebStation", "DownloadStation") action: "start" or "stop"
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| package_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states 'Start or stop' without elaborating on effects of already being in that state, failure modes, permission requirements, or reversibility. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no wasted words. It is front-loaded with the core action, followed by parameter details in a clear bullet-style list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (start/stop a package) and the existence of an output schema (which would cover return info), the description covers the essential functionality. However, lacking behavioral transparency slightly reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description adds critical meaning by specifying allowed values for action ('start' or 'stop') and providing an example for package_id ('e.g. WebStation, DownloadStation'). This compensates for the lack of enums in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Start or stop an installed package,' which is a specific verb+resource pair. It distinguishes this tool from siblings like set_container_state or set_vm_state, which operate on different resource types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied (when you want to control a package's state), but there is no explicit guidance on when to use versus alternatives, no mention of prerequisites (e.g., package must be installed), and no when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_vm_stateA
Power a virtual machine on or off. [control]
Args: name: VM name (from list_virtual_machines) action: "poweron", "poweroff" (force off), "shutdown" (graceful) or "restart"
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| action | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clarifies that poweroff is a force off and shutdown is graceful, which are important behavioral traits not deducible from the schema alone. It does not mention permissions or side effects, but the actions are sufficiently characterized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence plus a compact argument list. Every word adds value, and the [control] tag might be slightly redundant but not harmful. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given its simplicity and the presence of an output schema (not shown), the description covers the essential: what the tool does and the parameter semantics. It lacks error handling details, but for a straightforward power control tool, it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains that 'name' should come from list_virtual_machines and gives explicit examples for 'action'. This adds meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it powers a VM on/off and lists four specific actions (poweron, poweroff, shutdown, restart). The verb 'power' combined with the actions leaves no ambiguity. Among sibling tools, only set_vm_state handles VM power, so it is well-distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by providing the VM name source (list_virtual_machines) and listing actions, but it does not explicitly state when to use this tool versus alternatives or when not to use it. The guidance is implicit but present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shutdown_nasA
Shut down (power off) the NAS. [control][power] Requires SYNOLOGY_ENABLE_POWER_CONTROL=true.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds the requirement for an environment variable, indicating safety implications. However, it does not disclose behavior if the variable is unset or other side effects, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one sentence plus tags and requirement. Front-loaded with the action, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive tool with no parameters and an output schema (not shown but known), the description covers purpose and a key precondition. It could mention output handling, but the output schema exists to cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so baseline is 4. The description adds no param info, which is acceptable as none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Shut down (power off)') and the resource ('the NAS'), distinguishing it from sibling tools like reboot_nas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly mentions a prerequisite (SYNOLOGY_ENABLE_POWER_CONTROL=true) which guides when to use, though it doesn't explicitly state when not to use (e.g., for restarting) but the sibling context implies differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes, with only minor overlaps like list_shared_folders vs list_shares and check_dsm_update vs install_dsm_update. Overall, an agent can reliably differentiate them.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., get_system_info, list_files, create_folder). There are no mixing of conventions or ambiguous verb choices.
With 71 tools, the server is overly large for a single MCP service. While each tool may be individually useful, the excessive count overwhelms the interface and suggests the server should be split into smaller, domain-specific servers.
The tool set covers a wide range of NAS management tasks including system info, storage, file operations, Docker, VMs, downloads, backup, and more. Minor gaps exist (e.g., no user creation tool), but core workflows are well-supported.
Maintenance
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
Uptime, SSL, DNS and domain monitoring you can talk to from Claude or any MCP client.
Drive WhatsApp from any MCP client: pair devices, send text and media, manage contacts and groups.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for Synology NAS — modular, secure (2FA-ready), permission-tiered. File management and beyond.6Apache 2.0
- AlicenseNot gradedqualityFmaintenanceComprehensive Synology NAS management through MCP, enabling file operations, downloads, backups, Docker, photos, VMs, snapshots, and more across up to 9 NAS units.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables interaction with Synology NAS services including DSM, File Station, Calendar, Note Station, Contacts, Chat, Download Station, and Container Manager through a modular MCP interface with configurable safety modes.MIT
- FlicenseNot gradedqualityBmaintenanceAn MCP server that exposes a Synology NAS through the official DSM WebAPI, covering File Station, Download Station, Synology Photos, Container Manager, and system management with curated tools and a generic bridge for other APIs.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/rafalr100/synology-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server