Plex MCP server
Provides comprehensive integration with Plex, exposing all 405 Plex API operations as tools, covering both local media server management (libraries, playlists, transcoder, hubs, settings, DVRs, live TV, etc.) and plex.tv cloud services (watchlist, sharing, devices, account).
Click on "Deploy 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., "@Plex MCP serverwhat's currently playing on my Plex?"
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.
Plex MCP server
Run Plex from Claude.ai and Claude Code. All 405 operations are tools: 353 on your media server and 52 on the plex.tv cloud services, each routed to the right host automatically. Not a curated subset.
Why not the other options
Measured against the community spec Plex's own SDKs are generated from, which has 344 paths and 405 operations:
Server | Plex tools | Coverage |
| ~40 | 10 % |
| libraries, playlists, clients | partial |
| viewing context and subtitles | partial |
This one | 405 | 100 % |
The existing servers cover libraries, playlists and what is playing. None of them reach the transcoder, the hub and discovery endpoints, butler tasks, server settings, sync, or the plex.tv side at all: watchlist, sharing, devices and account.
Related MCP server: Plex-MCP
How it stays complete
Plex publishes no OpenAPI document. LukeHagar/plex-api-spec is the community one Plex's own SDKs are generated from; scripts/convert_spec.py slims its 2.5 MB down to what the generator reads and records which host each operation belongs to:
curl -o plex-api-spec.yaml https://raw.githubusercontent.com/LukeHagar/plex-api-spec/main/plex-api-spec.yaml
python scripts/convert_spec.py plex-api-spec.yaml openapi.json
python scripts/generate_tools.py openapi.json src/plex_mcp/tools.pyA test compares every generated call against every operation in the spec, in both directions. An endpoint Plex adds and this misses fails the build; so does a tool pointing at an endpoint the spec does not define.
Tool names
Verb first, derived from the method and path, so the name says what it does:
Pattern | Meaning | Example |
| Read a collection |
|
| Read one record |
|
| POST |
|
| PUT |
|
| DELETE |
|
405 tools is a lot to put in front of a model at once. If your client supports tool filtering, narrow it to the groups you use.
Two APIs, one server
Plex splits across the media server and the plex.tv cloud. The spec records which host each operation belongs to and the client routes on it, so a watchlist call reaches plex.tv while a library call reaches your server:
Host | Operations |
Your media server | 353 |
| 27 |
| 11 |
| 6 |
| 4 |
| 4 |
What is covered
Activities, Authentication, Butler, Collections, Content, DVRs, Devices, Download Queue, EPG, Events, General, Hubs, Library, Library Collections, Library Playlists, Live TV, Log, Play Queue, Playback, Playlist, Playlists, Plex, Preferences, Provider, Rate, Search, Status, Subscriptions, Timeline, Transcoder, UltraBlur, Updater, Users.
Setup
git clone https://github.com/rollecode/plex-mcp.git
cd plex-mcp
uv venv && uv pip install -e .export PLEX_URL=http://127.0.0.1:32400
export PLEX_TOKEN=... # see belowFind the token by opening any item in the Plex web app, choosing Get Info, then View XML: it is the X-Plex-Token in the address bar.
Claude Code
claude mcp add plex -- /path/to/plex-mcp/.venv/bin/plex-mcpNotes
Plex answers in XML unless asked for JSON, which the client does; a few endpoints ignore that and their raw XML comes back as text. Rating keys identify items, section keys identify libraries.
Hosting it
Running it over HTTP puts it in reach of Claude.ai as a custom connector, and of Claude Code on other machines. Three tiers, the same shape the other servers in this family use:
Tier | Port | What it does |
| 8590 | The server. No login of its own, never exposed |
nginx | 8591 | Front door, behind a Cloudflare Tunnel |
| 8592 | OAuth 2.1 sign-in, or a fixed bearer token |
npm install
node set-password.js 'a password for the sign-in page'
printf 'PLEX_URL=...\nPLEX_TOKEN=...\n' > ~/.config/plex-mcp/env
chmod 600 ~/.config/plex-mcp/envCopy systemd/*.service into /etc/systemd/system/, replacing YOUR_USER and the ISSUER hostname, then:
sudo systemctl enable --now plex-mcp plex-mcp-authPoint nginx/plex-mcp.conf at your own hostname and send the tunnel at 127.0.0.1:8591.
Claude.ai
Settings, Connectors, Add custom connector, URL https://plex-mcp.your-domain/mcp, client ID and secret blank. The sign-in page asks for the password set above.
Development
uv pip install -e . pytest ruff
.venv/bin/python -m pytest tests
.venv/bin/ruff check .Available Tools
405 toolscreate_actions_add_to_watchlistBIdempotent
Add to Watchlist.
POST /actions/addToWatchlist
Args: uri: The URI of the item to add or remove
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, so the mutation aspect is known. The description adds the specific target of the mutation (the watchlist) and the HTTP endpoint, but does not explain side effects, authorization needs, or what happens when uri is null. It provides some context beyond annotations but not rich behavioral detail.
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 front-loaded with the core purpose. The endpoint and parameter line are compact, though the 'add or remove' phrase adds confusion rather than value. Overall it is concise and readable.
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 single-parameter tool with annotations and an output schema, the description is minimally adequate. It identifies the action and parameter but misses usage guidance and contains an ambiguous parameter description. These gaps make it viable but not fully 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 must compensate. It does clarify that 'uri' is the URI of the item involved, which is meaningful. However, saying 'add or remove' is confusing and contradicts the tool's stated purpose, and it does not clarify the URI format or the effect of the default null value.
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 first line 'Add to Watchlist' states a specific verb and resource, and the endpoint /actions/addToWatchlist reinforces the action. It is distinguishable from the sibling create_actions_remove_from_watchlist. However, the Args line says the URI is for the item 'to add or remove', which introduces ambiguity about whether this tool also removes items.
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 gives no guidance on when to use this tool versus create_actions_remove_from_watchlist or any other alternative. It does not state prerequisites, exclusions, or a preferred context. An agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_actions_remove_from_watchlistCIdempotent
Remove from Watchlist.
POST /actions/removeFromWatchlist
Args: uri: The URI of the item to add or remove
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal an idempotent, non-destructive mutation. The description adds the HTTP method and endpoint, but the 'add or remove' phrase conflicts with the remove-only operation and no additional behavior (such as missing-item handling or auth needs) is disclosed.
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 appropriately short and front-loaded with the operation. There is no filler, though the misleading 'add or remove' phrase is a substantive error even if it does not make the description overly long.
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 tool itself is simple and the output schema plus annotations cover return values and safety. However, the conflicting parameter wording and lack of guidance for selecting this tool over its add-to-watchlist sibling leave the description incomplete for reliable agent 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?
With 0% schema description coverage, the description carries the full burden of explaining uri. It identifies uri as the item URI, but says 'add or remove' for a removal endpoint and fails to explain optionality, expected URI format, or what null/default means.
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 opening line 'Remove from Watchlist' plus the endpoint POST /actions/removeFromWatchlist clearly states the action and resource. It is distinguishable from the sibling create_actions_add_to_watchlist by the word 'remove', though it does not explicitly reference that sibling. The parameter line's 'add or remove' wording slightly muddies the otherwise clear purpose.
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 given about when to use this tool versus create_actions_add_to_watchlist or other watchlist-related tools. The agent must infer usage entirely from the tool name and the one-line summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_auth_jwkBIdempotent
Register Device JWK.
POST /auth/jwk
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, idempotent, non-destructive operation, and the description's 'Register' plus POST aligns with that. It adds a small behavioral hint by directing the agent to consult the GET or /schema endpoint first, but it does not disclose side effects, auth requirements, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: action first, then endpoint, then the single argument with guidance. Every line earns its place, though the parameter guidance is necessarily brief.
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 presence of an output schema and annotations reduces the burden on the description, and the pointer to GET/schema helps compensate for the opaque body parameter. However, it lacks context about when registration is appropriate and what the device JWK is used for, leaving the agent to infer the tool's role from its name.
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 describes 'body' as the request payload and tells the agent to discover expected fields via the matching GET or /schema endpoint, which is useful but still leaves actual field semantics undisclosed.
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 phrase 'Register Device JWK' names a specific action and resource, and the endpoint 'POST /auth/jwk' reinforces the intent. It does not explicitly compare itself to sibling tools, but the JWK resource is distinctive enough for an agent to narrow down among the many create_* 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 gives no guidance on when to use this tool versus alternatives such as create_auth_token or create_security_token. The only process advice is to read the matching GET or /schema endpoint first, which is about parameter discovery, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_auth_tokenCIdempotent
Exchange JWT Token.
POST /auth/token
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and idempotentHint=true, so the description does not need to restate mutation or idempotency. It adds the POST method and points to /schema/GET for field discovery, but it does not disclose authentication requirements, side effects, or what the resulting token is used for. This is minimally adequate given the annotations.
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 tight and front-loaded: the action and endpoint come first, followed by a short argument note. There is no fluff, though the phrase 'Exchange JWT Token' could be more precise.
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 one-parameter endpoint with an output schema and annotations, the description is mostly sufficient. However, it omits when to use this tool over token-related siblings and leaves the exchange semantics ambiguous. The /schema pointer helps with parameters but does not compensate for missing use-case 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 schema provides only a free-form body object with additionalProperties=true and no field documentation, so the description carries most of the burden. It names body as the request payload and directs the agent to the matching GET or /schema endpoint to learn the expected fields, but it does not define actual field names, types, or formats.
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 a specific endpoint and action ('Exchange JWT Token', POST /auth/token), so an agent can tell it deals with token creation/exchange. However, it does not clarify what is exchanged for what, and it does not differentiate it from siblings like create_security_token or create_auth_jwk.
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?
There is no guidance on when to use this tool versus alternatives such as create_security_token or create_users_signin. The only instruction is to read the matching GET or /schema endpoint first, which is about payload discovery rather than usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_butlerAIdempotent
Start all Butler tasks.
POST /butler
| 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?
Annotations already indicate this is a mutating, idempotent, non-destructive operation. The description adds the scope 'all' and the HTTP endpoint, but gives no additional behavioral context such as side effects, task scheduling behavior, or requirements. It does not contradict the annotations.
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 and front-loaded: 'Start all Butler tasks.' states the action immediately, and the endpoint line adds a minor implementation detail without padding.
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 rich annotations and an output schema, this is minimally viable. However, it lacks any usage distinction among the closely related butler siblings and gives no detail on what 'starting all tasks' entails, leaving some ambiguity for an agent selecting among similar 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 tool has zero parameters and the schema covers 100% of them, so there is nothing for the description to document. The baseline for a no-parameter tool 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 uses a specific verb ('Start') and a specific resource ('all Butler tasks'), and the word 'all' clearly distinguishes this from the sibling create_butler_by_butler_task, which targets a single task. Even without naming alternatives, an agent can tell what this tool does.
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?
There is no guidance about when to choose this tool over alternatives such as create_butler_by_butler_task or list_butler. The description implies a general trigger action but does not state exclusions, prerequisites, or conditions favoring one sibling over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_butler_by_butler_taskCIdempotent
Start a single Butler task.
POST /butler/{butlerTask}
Args: butler_task: The task name
| Name | Required | Description | Default |
|---|---|---|---|
| butler_task | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds the HTTP method and endpoint, which implies a state-changing operation but is consistent with annotations. It doesn't disclose side effects, required permissions, or what happens on success/failure, but the annotations cover the basic safety profile. No contradiction.
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 front-loads the core action. The endpoint line is useful. However, the 'Args' section is redundant with the schema and could be removed or expanded. Overall, it's concise and structured acceptably.
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 one parameter, no output schema details, and minimal annotations, the description is incomplete. It doesn't explain what a Butler task is, how to discover valid task names, what the response contains, or any side effects. The sibling list includes create_butler and list_butler, but the description doesn't help an agent choose among them.
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 only says 'butler_task: The task name', which adds minimal meaning beyond the schema's type/title. It doesn't explain what a valid task name looks like, where to find available tasks, or any format constraints. This is a significant gap for a single-parameter tool.
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 a specific verb ('Start') and resource ('a single Butler task'), and includes the HTTP endpoint POST /butler/{butlerTask}. It clearly identifies the action and resource, though it doesn't explicitly differentiate from the sibling create_butler or list_butler. The name itself is somewhat redundant, but the description adds enough clarity.
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 like create_butler or list_butler. It doesn't mention prerequisites, context, or exclusions. The only usage hint is the endpoint and the parameter, which is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_by_transcode_type_transcode_universal_fallbackCIdempotent
Manually trigger a transcoder fallback.
POST /{transcodeType}/:/transcode/universal/fallback
Args: transcode_type: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| transcode_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, idempotent, non-destructive action. The description adds only the endpoint and the fact that it is a manual trigger, without explaining side effects, whether an active transcode session is affected, or what a fallback actually changes. Useful behavioral context 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?
The description is concise and front-loaded with the action, then provides the endpoint and argument. No unnecessary words are present, though the brevity comes at the cost of completeness.
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 an action that manually triggers a transcoder fallback, the description omits practical context such as when to call it, what transcode_type values are accepted, and what the operation does to existing transcodes. The presence of an output schema does not compensate for this missing operational guidance.
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 single parameter has no schema description and schema coverage is 0%. The description merely labels transcode_type as a path parameter, which restates structural information already visible in the endpoint template. It does not explain valid values, format, or semantics beyond the parameter name.
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 a specific verb and resource: 'Manually trigger a transcoder fallback.' The endpoint and tool name reinforce this. It does not explicitly contrast with sibling transcode tools, but 'fallback' is distinct enough for basic recognition.
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 given about when a fallback should be triggered, what conditions warrant it, or how it differs from related tools like get_by_transcode_type_transcode_universal_decision or start_extension. The agent must infer usage entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_download_queueBIdempotent
Create download queue.
POST /downloadQueue
| 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?
Annotations indicate readOnlyHint=false and idempotentHint=true, so the mutation aspect is already covered. The description adds no behavioral context beyond the endpoint, such as whether the queue is created empty, what side effects occur, or whether authentication is required.
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 and front-loaded: the purpose appears first, followed by the endpoint. No filler is present, though the endpoint line could arguably be merged with the first line.
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 exists, the minimal description is workable for invoking the operation. However, it provides no context about what a download queue is or how this creation relates to the many sibling queue-management tools, leaving some ambiguity 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?
The tool takes zero parameters, and schema description coverage is 100%. There is nothing for the description to add about parameter meaning; the 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 action and resource: 'Create download queue.' The explicit POST /downloadQueue endpoint adds concrete routing information. However, it does not distinguish this from sibling tools like create_download_queue_by_queue_id_add, which are also creation-related.
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?
There is no guidance on when to use this tool versus the many download-queue-related siblings. No prerequisites, use-case context, or exclusions are provided; the description simply states the action and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_download_queue_by_queue_id_addCIdempotent
Add to download queue.
POST /downloadQueue/{queueId}/add
Args: queue_id: The queue id keys: Keys to add
| Name | Required | Description | Default |
|---|---|---|---|
| keys | No | ||
| queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a write operation (readOnlyHint=false), idempotent (idempotentHint=true), and non-destructive (destructiveHint=false). The description adds only the endpoint and the generic action, without extra behavioral context such as duplicate handling, required permissions, or effects on existing queue items. It does not contradict the annotations.
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 compact, front-loaded with the main purpose, and organized into endpoint and args sections. Every line is short, though the arg descriptions could be slightly more substantive without bloating the 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?
With only two parameters and existing annotations, the tool is simple, but the meaning of 'keys' is critically underspecified. The presence of an output schema reduces the need to describe return values, but the description still lacks enough detail about valid inputs and operational context for confident invocation.
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 for the schema's silence. It names queue_id and keys with terse glosses ('The queue id', 'Keys to add'), but it never explains what a queue id refers to or what format/values keys should take. This is insufficient for an agent to construct a valid request.
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 a specific action ('Add to download queue') and exposes the endpoint POST /downloadQueue/{queueId}/add, making the operation clear. It is distinguishable from the sibling create_download_queue by the verb 'add' versus 'create', though it does not explicitly call out that difference.
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 about when to use this tool instead of alternatives such as create_download_queue or the download-queue item deletion/restart tools. There is no mention of prerequisites like an existing queue or what kinds of keys are valid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_download_queue_by_queue_id_items_by_item_id_restartBIdempotent
Restart processing of items from the decision.
POST /downloadQueue/{queueId}/items/{itemId}/restart
Args: queue_id: The queue id item_id: The item ids
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ||
| queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), so the description only needs to add operational context. It does add that the tool restarts 'processing' tied to 'the decision,' but it does not explain side effects, prerequisites, or whether existing progress is reset. No contradiction with annotations.
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 minimal and front-loaded: a one-line purpose, the endpoint, and the parameter definitions. Every sentence earns its place, with no redundant prose or filler.
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 mutating restart action, the description is too sparse. It does not explain what 'the decision' refers to, when restarting is appropriate, or how the array-valued item_id affects processing. An output schema exists, so return values need not be described, but the missing operational context leaves an agent uncertain about correct 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?
Schema description coverage is 0%, so the description carries the burden, but it only restates the parameter names: 'queue_id: The queue id' and 'item_id: The item ids.' These add no real constraints, formats, or relationships beyond what the schema already shows. The plural 'ids' mirrors the array type without adding meaning.
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 a specific action ('Restart processing of items') and identifies the resource through the endpoint path (downloadQueue/{queueId}/items/{itemId}/restart). However, 'from the decision' is ambiguous, and it does not explicitly distinguish this from related download-queue tools, so it does not earn a 5.
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?
There is no guidance on when to use this tool versus siblings such as create_download_queue_by_queue_id_add, get_download_queue_by_queue_id_items, or delete_download_queue_by_queue_id_items_by_item_id. No alternatives, exclusions, or conditions are mentioned; the only clue is the operation name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_home_usersBIdempotent
Create Home User.
POST /home/users
| 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?
Annotations already convey that this writes, is idempotent, and is non-destructive, so the description's burden is moderate, but it adds nothing beyond the endpoint. It does not disclose side effects (e.g., impact on the home-screen listing), authentication requirements, or what 'creating a home user' entails beyond the annotation-covered safety profile.
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 and front-loaded, with no wasted words. However, the brevity reflects under-specification rather than efficient coverage of meaningful content, so it cannot earn full marks.
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?
Complexity is low: zero parameters, an output schema, and annotations cover safety and return values. The remaining gap is semantic — the description never explains what a 'home user' is or what creation accomplishes, leaving the agent to infer the domain 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 schema has zero parameters with 100% coverage, so there is nothing for the description to document. Per the 0-parameter baseline, the description is not penalized; the endpoint reference adds minor context about how the call is made.
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 a specific verb and resource — 'Create Home User' — and confirms the operation with the endpoint 'POST /home/users'. It is clear about what it does, though it does not differentiate from the sibling create_home_users_by_id_switch or other home-user operations.
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 given on when to use this tool versus alternatives such as create_home_users_by_id_switch, update_home_users_by_user_id, or list_home_users. There is no mention of prerequisites, context in which creation is appropriate, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_home_users_by_id_switchCIdempotent
Switch Home User.
POST /home/users/{id}/switch
Args: id: The unique identifier of the item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds nothing beyond the bare 'Switch Home User' phrase and the HTTP endpoint, so it does not meaningfully explain side effects, session changes, or other behavioral implications beyond what annotations already convey.
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 and front-loads the core action, with the endpoint and argument list following immediately. It contains no filler, though the brevity comes at the cost of semantic depth.
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 single-parameter tool with annotations and an output schema present, the description provides enough to make a basic call: the verb, resource, endpoint, and required id. However, it leaves usage context and behavioral nuance unstated, so it is only minimally 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 must compensate for the sole parameter 'id'. However, it only says 'The unique identifier of the item', which is nearly as generic as the schema and does not clarify that the id refers to a Home User or explain how the id should be obtained.
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 a concrete action and resource: 'Switch Home User' plus the endpoint 'POST /home/users/{id}/switch'. This is clear enough to distinguish it from sibling tools like update_home_users_by_user_id, but it does not explicitly contrast itself with those alternatives.
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?
There is no guidance about when to use this tool versus the many related home-user tools such as create_home_users, update_home_users_by_user_id, or delete_home_users_by_user_id. The description only restates the action and endpoint, leaving all usage decisions to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_hubs_sections_by_section_id_manageCIdempotent
Create a custom hub.
POST /hubs/sections/{sectionId}/manage
Args: section_id: The section ID for the hubs to reorder metadata_item_id: The metadata item on which to base this hub. This must currently be a collection promoted_to_recommended: Whether this hub should be displayed in recommended promoted_to_own_home: Whether this hub should be displayed in admin's home promoted_to_shared_home: Whether this hub should be displayed in shared user's home
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes | ||
| metadata_item_id | No | ||
| promoted_to_own_home | No | ||
| promoted_to_recommended | No | ||
| promoted_to_shared_home | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations say readOnlyHint=false and idempotentHint=true, which tell the agent this is a (possibly re-runnable) write. But the description adds no behavioral context beyond that: no side effects, no requirement that metadata_item_id must currently be a collection is emphasized as a precondition, no error/conflict behavior, and no explanation of what 'displayed in recommended/own home/shared home' actually changes.
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, but not necessarily well-structured: it opens by restating the endpoint path (already in the tool name) and then lists parameters that are also in the schema. No key semantic clarification is front-loaded; the single most useful constraint (metadata_item_id must be a collection) is buried in a parameter gloss.
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 tool has an output schema, so return-value documentation is less critical, but for a mutating create operation with 5 parameters and 0% schema coverage, the description should define what a 'custom hub' is, how it relates to section and metadata item, and what the promotion flags do. It leaves the core semantics unexplained and relies on the reader to infer from a URL-shaped name.
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, and it does list all parameters with brief glosses. However, the glosses are thin and partly confusing: section_id is 'for the hubs to reorder' on a create operation, and no format or relationship details are provided for the promotion flags. It adds more than the bare schema but not enough to fully compensate.
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 'Create a custom hub,' which names a verb and a resource, but it does not distinguish this tool from the many related hub-management siblings such as get_hubs_sections_by_section_id_manage, update_hubs_sections_by_section_id_manage_by_identifier, and delete_hubs_sections_by_section_id_manage. The phrase 'custom hub' and the 'manage' endpoint context are left undefined.
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?
There is no guidance on when to use this tool versus alternatives, no prerequisites (e.g., that metadata_item_id must be a collection is mentioned but not framed as a requirement), and no exclusions. An agent selecting among the many create_/update_/delete_ hubs_ siblings gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_collectionsBIdempotent
Create collection.
POST /library/collections
Args: section_id: The section where this collection will be created uri: The URI for processing the smart collection. Required for a smart collection
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | ||
| section_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint false), idempotent (idempotentHint true), and non-destructive (destructiveHint false). The description adds context by noting the URI is for smart collections, implying behavior about collection type, but does not disclose what happens on success, failure, or side effects. Since annotations cover the safety profile, the description adds some value but lacks rich behavioral detail.
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 and well-structured, leading with the purpose and then listing parameters with explanations. The inclusion of the HTTP method and endpoint is useful. It is front-loaded and efficient, with no filler 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?
Given that the tool has an output schema (not shown), the description does not need to explain return values. However, it lacks context about what a 'collection' is, prerequisites like authentication, or the relationship between section_id and uri. It also does not clarify whether section_id is always required (schema says optional). The description covers the basic parameters but is incomplete for a creation tool with multiple variants (smart vs. regular collections).
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 does so effectively: section_id is described as 'The section where this collection will be created', and uri is described as 'The URI for processing the smart collection. Required for a smart collection', clarifying its purpose and conditional necessity. This goes beyond the bare parameter names and adds meaningful semantics.
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 a clear verb and resource: 'Create collection' with the specific endpoint POST /library/collections. It is unambiguous about the operation, though it could better distinguish from other collection-related tools (e.g., update/delete). The resource is explicit enough for an agent to identify the 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 provides minimal guidance on when to use this tool versus alternatives. It does not mention that this is for creating new collections, while update and delete tools handle modifications and removals. The only hint is the mention of 'smart collection' for the uri parameter, which is more about parameter usage than overall tool selection. No exclusions or conditions for using this tool are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_fileBIdempotent
Ingest a transient item.
POST /library/file
Args: url: The file of the file to ingest. virtual_file_path: A virtual path to use when the url is opaque. compute_hashes: Whether or not to compute Plex and OpenSubtitle hashes for the file. Defaults to 0. ingest_non_matches: Whether or not non matching media should be stored. Defaults to 0.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| compute_hashes | No | ||
| virtual_file_path | No | ||
| ingest_non_matches | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds some context by calling the item 'transient' and explaining hash computation and non-match storage, but it does not clarify what 'transient' means or what the actual side effects are beyond ingestion.
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, front-loaded with the main action and endpoint, and the Args list is dense and useful. It loses a point for minor grammar issues and because 'POST /library/file' repeats information that the endpoint-oriented name already suggests, though it still 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?
With no required parameters and an output schema present, the description does not need to document return values. However, it leaves 'transient item' undefined and does not explain how this operation relates to other library file ingestion workflows, which is a meaningful gap for correct invocation.
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 carries the full burden, and it does describe all four parameters with defaults. The url line is garbled ('The file of the file to ingest'), but virtual_file_path, compute_hashes, and ingest_non_matches are meaningfully explained beyond the raw 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 states a specific verb+resource ('Ingest a transient item') and gives the concrete endpoint POST /library/file, which differentiates it from library siblings like create_library_collections or create_library_metadata_by_ids. However, the phrase 'transient item' is jargon and not fully explained, so it stops short of a 5.
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?
There is no guidance on when to use this tool versus alternative library creation/ingestion tools. It does not name any sibling or state exclusions, so an agent must infer appropriateness from the endpoint and parameter names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_metadata_by_id_artsBIdempotent
Upload media art Art.
POST /library/metadata/{id}/arts
Args: id: The unique identifier of the item body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, and the description does not contradict them — 'Upload' is consistent with a write operation. The description adds the useful context that the body schema is open-world and must be discovered via the GET or /schema endpoint. It does not, however, disclose what happens to existing art, whether the upload replaces or appends, or what content formats are accepted.
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 compact and well-ordered: one-line purpose, endpoint path, then a two-line args list. Nothing is wasted. The awkward 'media art Art' phrasing is a blemish, but structurally it is front-loaded and appropriately sized for a two-parameter tool.
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 two-parameter tool with an output schema and safety annotations, the critical gap is the open-world body parameter, which the description addresses by pointing the agent to the GET/schema endpoints. The remaining gaps — what 'art' means versus posters, whether existing art is replaced, and what the response represents — are not covered, and these matter given the large set of library metadata siblings.
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 carries the burden of explaining parameters. It explains id as 'the unique identifier of the item' and, more valuably, tells the agent how to discover the body structure since the schema defines body as an unconstrained additionalProperties:true object. The id explanation is somewhat vague ('the item' is not clearly identified), so compensation for the 0% coverage is only partial.
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 a specific verb and resource — 'Upload media art' for a library metadata item identified by id. This is clear enough for an agent to know the operation performs an upload of artwork. However, the phrasing is garbled ('media art Art') and it does not distinguish this from the close sibling create_library_metadata_by_id_posters, so it misses the differentiator bar.
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 given on when to use this tool versus alternatives such as create_library_metadata_by_id_posters or create_library_metadata_by_ids_by_element. The advice to 'Read the matching GET or the /schema endpoint first' is a field-discovery instruction, not a tool-selection guideline. There are no exclusions, prerequisites, or alternative routing provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_metadata_by_id_postersBIdempotent
Upload media art Poster.
POST /library/metadata/{id}/posters
Args: id: The unique identifier of the item body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as non-read-only, idempotent, and non-destructive, and the description reinforces the write nature with 'Upload.' It adds only the procedural hint to consult GET/schema first, but says nothing about whether an existing poster is replaced, what payload format is expected, or what response to expect. No contradiction with annotations.
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 brief, front-loaded with the core purpose, and avoids fluff. The endpoint and args lines are somewhat redundant with the tool name and schema, but the overall size is appropriate and 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?
For a two-parameter create call with an output schema, the description gives the essential operation and tells the agent how to discover the body contract. It is incomplete regarding poster-versus-art selection, expected payload format, whether a URL or binary file is required, and any permission constraints.
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 `id` parameter gets a generic but acceptable gloss, and `body` is described only as a request payload with a pointer to GET/schema for its fields. With schema description coverage at 0%, this is helpful for discovery but does not specify the actual structure, media encoding, or upload format.
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 starts with 'Upload media art Poster,' a specific verb and resource, and the endpoint path clarifies the target object. It does not differentiate from the closely named sibling create_library_metadata_by_id_arts, so it stops short of full sibling distinction.
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 implies the tool is used to upload a poster for a library item, and it advises reading the matching GET or /schema endpoint before constructing the body. However, it does not explicitly state when to prefer this over the arts sibling or exclude alternatives, leaving much of that decision to the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_metadata_by_ids_by_elementAIdempotent
Set an item's artwork, theme, etc.
POST /library/metadata/{ids}/{element}
Args: ids: Comma-separated list of IDs element: The type of artwork element (e.g., art, poster, thumb) url: The url of the new asset. If not provided, the binary of the asset must be provided in the post body.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| url | No | ||
| element | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a writable, idempotent, non-destructive operation. The description adds valuable behavior by explaining that if no URL is provided, the asset binary must be sent in the POST body, and it clarifies that `element` represents an artwork type.
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 front-loaded with the purpose, then uses an Args block to add parameter semantics efficiently. The endpoint line is somewhat redundant with the tool name, but there is no filler or unnecessary detail.
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 three-parameter write endpoint with an output schema and annotations already covering idempotency/safety, the description covers the route, all parameter meanings, and the critical URL-or-binary-body behavior. It does not define the exact binary format or effects on existing artwork, but the essential calling context is present.
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 carries the full burden for parameters. It documents all three: `ids` as comma-separated, `element` with concrete examples, and `url` as optional with a precise binary-body fallback. Valid values for `element` remain open-ended.
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 a concrete action ('Set an item's artwork, theme') and identifies the target resource via the route and name. It is clear but does not explicitly differentiate this from sibling tools that also manipulate library artwork/metadata, so it stops short of a 5.
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?
There is no when-to-use guidance, exclusions, or mention of alternatives. The endpoint and argument list imply usage, but the agent is not told when to choose this tool over the many sibling library metadata tools such as update_library_metadata_by_ids_by_element.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_metadata_by_ids_extrasCIdempotent
Add to an item's extras.
POST /library/metadata/{ids}/extras
Args: ids: Comma-separated list of IDs extra_type: The metadata type of the extra url: The URL of the extra
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| url | No | ||
| extra_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'Add to an item's extras' and lists args. It doesn't explain whether extras are appended or overwritten, what the effect of repeated calls is (though idempotentHint is present), or any auth/rate-limit context. Annotations cover idempotency and non-destructiveness, but the description adds no extra behavioral detail.
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 one-line summary, an endpoint line, and a list of args. No fluff, and the main verb is front-loaded. However, its brevity borders on under-specification, so it's not perfect.
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 tool has an output schema and annotations, so return values and safety profile are covered. But given the tool's mutating nature and the need to distinguish extras from other metadata types, the description lacks essential context about what 'extras' are, valid extra_type values, and when to call this. Minimal 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?
The description provides one-line explanations for each parameter, clarifying that ids are comma-separated, extra_type is a metadata type, and url is the URL. However, it doesn't explain possible values for extra_type or the role of url in the request. With 0% schema description coverage, this is better than nothing but still incomplete.
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 'Add to an item's extras' which is a clear verb and resource. However, it doesn't differentiate from sibling tools like create_library_metadata_by_ids_marker or create_library_metadata_by_id_arts; the name itself does most of the differentiation.
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?
There is no guidance on when to use this tool instead of alternative create operations for library metadata. No mention of alternatives, prerequisites, or scenarios. Only a bare description of the operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_metadata_by_ids_markerCIdempotent
Create a marker.
POST /library/metadata/{ids}/marker
Args: ids: Comma-separated list of IDs type: The type of marker to edit/create start_time_offset: The start time of the marker end_time_offset: The end time of the marker attributes: The attributes to assign to this marker
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| type | No | ||
| attributes | No | ||
| end_time_offset | No | ||
| start_time_offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly=false, destructive=false, and idempotentHint=true. The description adds a small behavioral cue by describing type as 'the type of marker to edit/create', suggesting the operation may create or update a marker, but it does not clarify overwrite behavior, permissions, or other 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 definition is compact and front-loaded with the action, followed by the endpoint and parameter list. There is no filler, although the endpoint line duplicates information in the tool name and the args list overlaps with the schema.
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 that creates markers with time offsets and attributes, the description omits what a marker actually is, when creating is preferable to updating, and how time offsets should be expressed. The output schema exists, but input/selection context and parameter constraints remain underspecified.
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 define the parameters, but its definitions are mostly tautological. 'start_time_offset' is only described as 'the start time of the marker' without units, offset basis, or allowed values; 'attributes' gives no structure; 'type' does not enumerate valid values.
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 opens with 'Create a marker' and gives the POST endpoint, clearly identifying the action (create) and resource (library metadata marker). It is distinct from siblings like update_library_metadata_by_ids_marker_by_marker and delete_library_metadata_by_ids_marker_by_marker through the verb, though it does not explicitly call out that distinction.
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 choose this tool over the update or delete marker siblings. It does not state prerequisites, whether markers must already exist, or when creating vs editing is appropriate. Usage must be inferred from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_optimizeCIdempotent
Optimize Library.
POST /library/optimize
| 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?
Annotations already indicate this is non-read-only, idempotent, and non-destructive, and the description adds only the HTTP method and path without any behavioral context. It does not explain side effects, prerequisites, or what the optimization does to library data, so the description contributes little beyond what the annotations provide.
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 under-specified sentence that does not earn its place, rather than being effectively concise. It provides the endpoint but omits essential context, making it closer to a placeholder than a well-structured tool definition.
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?
Even though the tool has no parameters and an output schema exists, the description leaves out what optimization is, who should call it, and how it relates to the many similar siblings. An agent would be hard-pressed to safely or correctly invoke this based on the description alone.
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)Skip, so there is nothing for the description to explain. The baseline for a 0-parameter tool is 4, and the description, while terse, does not need to clarify any argument semantics.
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 is just 'Optimize Library.' which is a verb+resource but essentially repeats the tool name without any elaboration. It does not explain what optimizing entails or how this action differs from sibling tools like create_library_sections_by_section_id_optimize or get_library_sections_by_section_id_optimize, leaving the agent to infer meaning from the endpoint path alone.
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?
There is zero guidance on when to invoke this tool versus the many sibling tools containing 'optimize' or related library operations. No context, exclusions, or conditions are provided, so an agent has no basis for choosing this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_sections_allBIdempotent
Add a library section.
POST /library/sections/all
Args:
name: The name of the new section
type: The type of library section
scanner: The scanner this section should use
agent: The agent this section should use for metadata
metadata_agent_provider_group_id: The agent group id for this section
language: The language of this section
locations: The locations on disk to add to this section
prefs: The preferences for this section
relative: If set, paths are relative to Media Upload path
import_fromi_tunes: If set, import media from iTunes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| type | No | ||
| agent | No | ||
| prefs | No | ||
| scanner | No | ||
| language | No | ||
| relative | No | ||
| locations | No | ||
| import_fromi_tunes | No | ||
| metadata_agent_provider_group_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate that this is a non-read-only, idempotent, non-destructive operation. The description adds no behavioral context beyond that: no mention of required permissions, side effects, failure behavior, or implications of creating a section. It does not contradict the annotations.
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 front-loaded with a one-sentence summary followed by a compact args list. It avoids filler, and the arg list earns its length because the schema provides no descriptions. Minor formatting and typo issues such as import_fromi_tunes keep it from being perfect.
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?
This is a complex creation tool with ten parameters, no schema descriptions, and no enums. The shallow parameter labels are insufficient for reliably constructing a valid call: requiredness is unclear despite the schema marking everything optional, and there is no guidance on valid type values or how to obtain scanner/agent/group identifiers. The output schema covers return values but not the missing input 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 schema has zero descriptions, so the description's args list adds meaningful plain-language meaning for all ten parameters, including non-obvious ones like relative and import_fromi_tunes. However, it still leaves value domains unresolved—integer type codes, scanner/agent identifiers, and the prefs object shape are not explained.
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 opens with a clear, specific statement—'Add a library section'—and gives the endpoint. It accurately conveys the verb and resource, but it does not explicitly distinguish this tool from sibling section-management tools like create_library_sections_refresh or update_library_sections_by_section_id.
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?
There is no guidance on when to use this tool versus alternatives, no preconditions, and no exclusions. The wording only implies use when a section needs to be created, but does not help an agent decide between this and related create/update/delete section operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_sections_by_section_id_empty_trashCIdempotent
Empty Trash.
POST /library/sections/{sectionId}/emptyTrash
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and idempotentHint=true, and the description adds the HTTP method and endpoint. However, it does not disclose side effects, what gets removed, permission requirements, or reversibility. It does not contradict the annotations but adds little behavioral context beyond them.
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 minimal: a two-word action, the endpoint, and one arg line. It is front-loaded and avoids filler, though it may be slightly too terse to fully convey necessary context.
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 includes the HTTP method, endpoint, and parameter, which is enough to invoke the tool. It omits when to use it relative to the get/update empty_trash siblings and any behavioral consequences. Since an output schema exists, return value explanation is not required, but the lack of usage guidance prevents a higher score.
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 section_id as 'the unique identifier of the library section,' adding meaningful context beyond the schema's 'Section Id.' No format or examples are given, but this is sufficient for a simple integer ID.
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 opens with 'Empty Trash.', which clearly states the action and target. However, it does not distinguish itself from sibling tools like get_library_sections_by_section_id_empty_trash or update_library_sections_by_section_id_empty_trash, so it lacks sibling differentiation.
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 given on when to use this tool versus the get_ or update_ empty_trash siblings. The description only provides the endpoint and parameter, with no contextual usage conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_sections_by_section_id_optimizeCIdempotent
Optimize Section.
POST /library/sections/{sectionId}/optimize
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond what the annotations already provide. It does not contradict the annotations, but it also gives no context about side effects, whether the operation is asynchronous, or what changes to expect, leaving the agent without important behavioral knowledge.
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 and front-loads the action and parameter documentation. It avoids unnecessary words, but the brevity leaves out essential context that would make it more helpful.
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 ambiguity of 'optimize' and the presence of sibling tools like get_library_sections_by_section_id_optimize, the description is incomplete. It fails to explain the operation's purpose, expected effects, or how it relates to related endpoints, so an agent would lack sufficient context to confidently invoke it.
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 schema description coverage at 0%, the description partially compensates by explaining section_id as 'the unique identifier of the library section'. This adds meaningful role context that the schema does not provide, though it could be more detailed.
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 a specific verb and resource ('Optimize Section') and includes the endpoint, but it does not explain what optimizing a library section actually does. This is more than a pure tautology because the HTTP path adds context, yet it remains vague and does not sufficiently distinguish this from sibling operations like refresh or analyze.
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. There is no mention of prerequisites, expected outcomes, or when a refresh or analysis would be more appropriate than an optimize action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_sections_by_section_id_refreshBIdempotent
Refresh Section.
POST /library/sections/{sectionId}/refresh
Args: section_id: Section identifier force: Whether the update of metadata and items should be performed even if modification dates indicate the items have not change path: Restrict refresh to the specified path
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| force | No | ||
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the idempotentHint and destructiveHint flags, so the safety profile is known. The description adds that force controls whether metadata/items update regardless of modification dates and that path restricts the refresh, which is useful behavioral context. However, it does not disclose whether the operation is synchronous or asynchronous, nor any potential performance or side-effect implications.
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 and front-loaded with the action 'Refresh Section', followed by the endpoint and parameter list. There is no unnecessary filler, though the HTTP method and path line is somewhat redundant given the tool name already encodes the route. Overall it is tight and organized.
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?
Although an output schema exists, which reduces the need to document return values, the description still lacks important context for an agent: when to choose this refresh tool over sibling refresh endpoints and whether the operation completes immediately or runs in the background. These gaps prevent it from being fully complete for a mutation 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?
With schema description coverage at 0%, the Args section in the description is the only source of parameter meaning. It explains all three parameters: section_id, force, and path. While section_id's explanation is minimal, force and path have substantive descriptions, giving the description enough compensation for the missing schema documentation.
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 'Refresh Section' followed by the HTTP endpoint, clearly indicating that this tool triggers a refresh of a library section. This is a specific verb plus resource. However, it does not differentiate itself from sibling refresh tools like create_library_sections_refresh or delete_library_sections_by_section_id_refresh, so it falls short of a 5.
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. There is no mention of when a refresh is needed, how it should be preferred over other refresh endpoints, or any exclusions. It only implies the action without contextual usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_library_sections_refreshBIdempotent
Refresh all sections.
POST /library/sections/refresh
Args: force: Force refresh of metadata
| Name | Required | Description | Default |
|---|---|---|---|
| force | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false, and the description does not contradict them. The description adds modest value by explaining the force parameter ('Force refresh of metadata') and giving the exact HTTP route. It does not, however, disclose behavioral traits such as what refreshing all sections entails (e.g., triggering a library scan, potential duration/resource load) or side effects consistent with openWorldHint=true.
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 compact (five short lines) and front-loads the purpose before the endpoint and args. Every line serves a function: purpose, HTTP route, and parameter meaning. The 'Args:' header is mild boilerplate, and the brevity edges toward under-specification, but the structure is clean and readable.
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 single-optional-parameter tool with an output schema and annotations, the description is nearly sufficient: purpose, route, and parameter meaning are present. What is missing is the operational context — what a full-section refresh triggers, when force is necessary, whether the call is expensive or asynchronous, and any side effects given the openWorldHint. These gaps keep it at minimum viable.
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 carries the full burden of explaining the lone parameter. It provides only 'force: Force refresh of metadata', which names the effect without clarifying the default/null behavior, the difference in behavior when force is false vs absent, or when an agent should set it to true. This is minimal compensation for a completely undocumented 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 states a specific verb ('refresh') and resource ('all sections'), and the scope word 'all' implicitly differentiates it from siblings like create_library_sections_by_section_id_refresh, which target a single section. The endpoint POST /library/sections/refresh reinforces this. However, it never names or references the per-section alternative, so the differentiation is implicit rather than explicit.
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 given on when to use this tool versus its many refresh-related siblings (create_library_sections_by_section_id_refresh, delete_library_sections_all_refresh, get_library_sections_by_section_id_refresh, update_library_metadata_by_ids_refresh). The only usage signal is the word 'all' in the one-line purpose, which is implied rather than stated. There are no exclusions, prerequisites, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_livetv_dvrsCIdempotent
Create a DVR.
POST /livetv/dvrs
Args: lineup: The EPG lineup. device: The device. language: The language.
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | ||
| lineup | No | ||
| language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey that this is a non-read-only, non-destructive, idempotent creation operation, but the description adds no behavioral details beyond that. It does not mention side effects, required context such as an existing lineup/device, or any caveats around the optional parameters.
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 structure is clean and front-loaded with 'Create a DVR,' followed by an endpoint and a simple Args list. However, the parameter lines add almost no informational value, so the entry is concise partly because it is under-specified rather than because every line 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?
For a creation operation with three undocumented optional parameters, the description leaves too much unknown: what values are valid, where those values come from, and what creating a DVR actually does. The output schema may describe the response, but it does not help an agent construct the request.
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, but 'lineup: The EPG lineup,' 'device: The device,' and 'language: The language' are near-tautological restatements of the property names. It omits value formats, how to obtain valid lineups/devices, language code conventions, and the expected shape of the device array.
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 opens with 'Create a DVR,' a specific verb and resource, and the endpoint 'POST /livetv/dvrs' confirms the target. It is distinguishable from the update/delete/list DVR siblings, though it never explains what a DVR represents or why someone would create one.
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?
There is no guidance on when to use this tool versus update_livetv_dvrs_by_dvr_id, delete_livetv_dvrs_by_dvr_id, or list_livetv_dvrs. No prerequisites or context are provided, so the only implied usage is that the agent already wants to create a DVR.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_livetv_dvrs_by_dvr_id_channels_by_channel_tuneBIdempotent
Tune a channel on a DVR.
POST /livetv/dvrs/{dvrId}/channels/{channel}/tune
Args: dvr_id: The ID of the DVR. channel: The channel ID to tune
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes | ||
| channel | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-destructive, idempotent mutation. The description adds no further behavioral details: it does not mention side effects like starting a live session, requiring an active DVR, or state changes beyond tuning. It repeats the HTTP method and path, which is schema-level information, not new 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?
The description is compact: a one-sentence purpose, the HTTP endpoint, and a short Args list. The front-loaded purpose is effective, and there is no fluff. The Args section is slightly redundant with the schema but adds required semantic clarification, so it 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 that an output schema exists, return values are covered, but the description lacks essential operational context: it does not specify what happens after tuning (e.g., a session is created), whether the DVR must be online, or what errors might occur. For a live TV action with mutation semantics, this is a notable 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?
Schema description coverage is 0%, so the description must compensate. It provides one-line meanings for both parameters: 'The ID of the DVR' and 'The channel ID to tune'. This adds minimal value beyond the schema titles but is sufficient for the agent to understand what each parameter refers to, though it lacks detail on formats or where to obtain valid IDs.
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 'Tune a channel on a DVR' with a clear verb-resource pair. It distinguishes this from all sibling tools because no other tool mentions tuning, and it is unambiguous about the operation performed.
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 given on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., DVR must exist, channel must be active), when not to use it, or how it relates to operations like get_livetv_dvrs_by_dvr_id_channels or create_livetv_dvrs. The usage context is only implied by the verb 'tune'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_livetv_dvrs_by_dvr_id_reload_guideBIdempotent
Tell a DVR to reload program guide.
POST /livetv/dvrs/{dvrId}/reloadGuide
Args: dvr_id: The ID of the DVR.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the intent of causing a guide reload but does not disclose side effects like cache invalidation, potential latency, or whether the DVR must be online. It offers minimal behavioral context beyond the annotations, so a 3 is appropriate.
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?
Three short lines convey the action, the endpoint, and the argument. The primary purpose is front-loaded in the first sentence, and there is no filler or redundant explanation. Every sentence 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?
For a single-parameter command with an output schema and useful annotations, the core action and argument are documented. However, it lacks usage guidance and operational context (e.g., what happens after the reload is triggered, whether it blocks). It is minimally viable but leaves gaps an agent might need filled for correct invocation in 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?
Schema description coverage is 0%, so the description carries responsibility for parameter meaning. It states 'dvr_id: The ID of the DVR,' which clarifies the purpose of the only parameter. However, it adds little beyond the schema's title 'Dvr Id' and does not explain how to obtain a valid DVR ID or whether it corresponds to list_livetv_dvrs output. Basic but adequate for a simple integer identifier.
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 opens with a clear verb+resource statement: 'Tell a DVR to reload program guide.' It names the specific action and resource, and the embedded POST endpoint reinforces the operation. It does not explicitly contrast with siblings like delete_livetv_dvrs_by_dvr_id_reload_guide, but the purpose is 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?
The description provides no guidance on when to invoke this tool versus related DVR tools, such as get_livetv_dvrs_by_dvr_id_guide, delete_livetv_dvrs_by_dvr_id_reload_guide, or update_livetv_dvrs_by_dvr_id. There are no prerequisites, no mention of how frequently a reload should be triggered, and no exclusions. The agent is left to infer usage entirely from the action name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_logAIdempotent
Logging a multi-line message to the Plex Media Server log.
POST /log
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey the safety profile (readOnly false, idempotent true, destructive false), and the description adds that this operation targets the Plex Media Server log and accepts multi-line content. It does not cover response handling, authentication, or side effects, but given annotation coverage this is an acceptable baseline.
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 front-loaded: the first sentence states the purpose, followed by the endpoint and a compact parameter note. Every line adds useful information, and there is no filler or redundant wording.
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 one open-world body parameter, existing output schema, and comprehensive safety annotations, the description is mostly sufficient. It explains the action, names the endpoint, and directs the agent to the right place to discover body fields. It is slightly thin regarding choice between this and the closely related create_log_networked and update_log tools, but the core invocation path is covered.
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 only parameter, body, is an opaque object with additionalProperties true, and schema description coverage is 0%. The description labels it 'Request payload' and tells the agent to look at the /schema endpoint, but it provides no concrete meaning for the body structure or fields. This leaves the agent dependent on external discovery rather than the tool definition itself.
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 opening sentence states a specific action (logging a multi-line message) and a specific target (the Plex Media Server log), which clearly communicates what the tool does. It does not explicitly compare against closely related siblings like update_log or create_log_networked, so it stops short of full differentiation.
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 use case is unambiguous: posting a log message to the Plex server. It also gives a clear prerequisite by telling the agent to read the matching GET or /schema endpoint before supplying the body, which is practical guidance. It does not mention alternatives or when-not conditions, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_log_networkedBIdempotent
Enabling Papertrail.
POST /log/networked
Args: minutes: The number of minutes logging should be sent to Papertrail
| Name | Required | Description | Default |
|---|---|---|---|
| minutes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover mutation, destructiveness, idempotence, and open-world hints. The description adds that logs are sent to Papertrail and that the minutes parameter controls the duration. However, it does not clarify what happens when minutes is null, whether this replaces existing log destinations, or what the endpoint returns.
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, front-loads the purpose, and includes only the endpoint and the parameter explanation. There is no filler, though the phrase 'Enabling Papertrail' is a somewhat awkward fragment.
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 tool is simple with one optional parameter and an output schema, and annotations cover several behavioral aspects. However, the description leaves the default/null behavior of minutes ambiguous and provides no usage context or alternative routing, making it minimally adequate rather than 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 coverage is 0%, so the description carries the burden of explaining the one parameter. It explains minutes as 'the number of minutes logging should be sent to Papertrail,' which gives the parameter clear duration semantics beyond the bare schema. It falls short of describing valid ranges or the meaning of null/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 opens with 'Enabling Papertrail' and identifies the endpoint POST /log/networked, making the core action clear. It does not explicitly differentiate itself from create_log or update_log by name, but the Papertrail reference provides a distinguishing signal.
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 explicit guidance about when to use this tool versus create_log, update_log, or other logging tools. The only implied usage is 'when Papertrail logging is desired,' but there are no alternatives, prerequisites, or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_media_grabbers_devicesCIdempotent
Add a device.
POST /media/grabbers/devices
Args: uri: The URI of the device.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the act of adding, such as idempotency implications, response behavior, or side effects. Annotations already state readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so there is no contradiction, but the description contributes nothing about what happens when a device with a duplicate or invalid URI is provided.
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 compact: a one-line purpose, the endpoint, and a single parameter. Every element is useful and no filler is present, 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?
Although the operation is simple and an output schema exists, the description leaves a key ambiguity: the URI parameter is nullable and not required, yet no guidance explains when a null/omitted URI is acceptable. It also does not explain how this relates to sibling discovery/scan tools, so an agent may not know the correct context for creating a media grabber device.
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 must carry parameter meaning, and it does state 'uri: The URI of the device.' This is minimal and largely mirrors the parameter name, but for a single simple parameter it is adequate; it does not clarify URI format, validity, or why the parameter has a null 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 uses a specific verb ('Add') and resource ('a device'), and includes the endpoint POST /media/grabbers/devices, clearly identifying it as the create-device operation. It differentiates from sibling operations like update_media_grabbers_devices_by_device_id and delete_media_grabbers_devices_by_device_id, though it does not explicitly contrast with them.
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 given about when to use this tool versus the many related siblings (e.g., list_media_grabbers_devices_discover, create_media_grabbers_devices_by_device_id_scan, update_media_grabbers_devices_by_device_id). 'Add a device' implies a basic registration scenario but does not mention prerequisites, alternatives, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_media_grabbers_devices_by_device_id_scanBIdempotent
Tell a device to scan for channels.
POST /media/grabbers/devices/{deviceId}/scan
Args: device_id: The ID of the device. source: A valid source for the scan
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal that this operation mutates state, is idempotent, and is not destructive. The description adds the channel-scan action but does not explain whether the scan is asynchronous, how long it may run, or what side effects occur on the device. This is acceptable given the annotations, but it lacks additional behavioral nuance.
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 front-loads the action before the argument list, with no filler. The endpoint line is somewhat redundant with the name, but it does not hurt clarity. Overall it is concise and readable, though sparse.
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 core action is clear, and the output schema covers return values, but the source parameter is critically underspecified. An agent would not know what values are valid or that it can be omitted, which threatens correct invocation. For a tool with 0% schema description coverage, this is a significant 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?
Schema description coverage is 0%, so the description must define parameters. device_id is minimally explained, but source is only described as 'a valid source' with no format, allowed values, or origin. The description also fails to note that source is optional despite the schema showing a default of null, making correct invocation uncertain.
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 opens with a specific action and object: 'Tell a device to scan for channels,' which clearly identifies the tool's purpose. The HTTP path reinforces the target resource, and this distinguishes the tool from siblings like creating or updating a device. No explicit sibling contrast is needed because the verb and resource are 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?
There is no guidance on when to use this tool versus alternatives such as update_media_grabbers_devices_by_device_id or delete_media_grabbers_devices_by_device_id_scan. The description provides no prerequisites, exclusions, or context for choosing this endpoint, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_media_providersAIdempotent
Add a media provider.
POST /media/providers
Args: url: The URL of the media provider to add.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a non-read-only, non-destructive, idempotent operation. The description adds the specific behavior that it adds a provider and shows the HTTP method and path, but does not disclose side effects, duplicate handling, authentication needs, or other behavioral details. No contradiction with annotations.
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 front-loaded with the core action. The endpoint and Args block are useful and not redundant with the schema, adding the HTTP path and parameter meaning without unnecessary prose. It is efficient, though slightly more structured than needed.
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 one-parameter tool with an output schema and informative annotations, the description covers the essential purpose and parameter. However, it omits context about what a media provider is, prerequisites, duplicate/idempotency behavior, and any caveats. It is adequate but leaves gaps an agent might need to resolve.
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 carry parameter meaning. It does this by explicitly stating that 'url' is 'The URL of the media provider to add.' This adds real semantics beyond the schema's title/type. It does not clarify optionality or URL format constraints, but the schema's default null and zero required parameters cover optionality.
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 opens with 'Add a media provider.', a specific verb plus resource that immediately states the tool's function. The endpoint 'POST /media/providers' reinforces this and distinguishes it from sibling tools like list_media_providers, delete_media_providers_by_provider, and create_media_providers_refresh.
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 verb 'Add' implies the tool should be used when the agent wants to create a new media provider, but the description provides no explicit when-to-use or when-not-to-use guidance and does not mention alternatives such as refreshing or listing providers. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_media_providers_refreshBIdempotent
Refresh media providers.
POST /media/providers/refresh
| 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?
Annotations already communicate that the operation is idempotent, non-destructive, and not read-only. The description adds no behavioral context beyond the word 'Refresh' and the endpoint; it does not disclose what happens during refresh, whether background work is triggered, or what state changes occur.
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 one-line action followed by the exact HTTP route. Every element earns its place, and the primary purpose 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?
For a zero-parameter POST endpoint with supporting annotations and an output schema, the description is minimally sufficient for invocation. However, it lacks context about what refreshing media providers entails, whether there are external side effects, and how this operation fits among the provider-related 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 input schema has zero parameters, so there are no parameter semantics for the description to add. The 100% schema coverage means no parameter information is missing.
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 'Refresh' and the resource 'media providers', and includes the exact POST endpoint, making the purpose unambiguous. It is distinguishable from sibling provider tools like create_media_providers and list_media_providers, though it does not explicitly contrast them.
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 given about when to use this tool versus alternatives such as create_media_providers, list_media_providers, or delete_media_providers_by_provider. There is also no mention of prerequisites, scoping, or when a refresh is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_media_subscriptionsAIdempotent
Create a subscription.
POST /media/subscriptions
Args:
target_library_section_id: The library section into which we'll grab the media. Not actually required when the subscription is to a playlist.
target_section_location_id: The section location into which to grab.
type: The type of the thing we're subscribing too (e.g. show, season).
hints: Hints describing what we're looking for. Note: The hint ratingKey is required for downloading from a PMS remote.
prefs: Subscription preferences.
params: Subscription parameters.
mediaProviderID: Required for downloads to indicate which MP the subscription will download intosource: Required for downloads to indicate the source of the downloaded content.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| hints | No | ||
| prefs | No | ||
| params | No | ||
| target_library_section_id | No | ||
| target_section_location_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the operation is not read-only, is idempotent, and is non-destructive, so the description need not repeat that. It adds behavioral context by noting the playlist exception and the required ratingKey hint for downloads, but it does not detail side effects or post-creation behavior. This is reasonable given annotation coverage.
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 core purpose is front-loaded in the first line, and the argument descriptions follow a clean list. The sub-bullets under 'params' are slightly awkward, but they convey needed detail in a compact way. It is not over-engineered and every sentence carries 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?
With an output schema available and a domain-normal concept, the description adequately explains how to pass each parameter and the circumstances that modify them. It could state the higher-level purpose of a subscription more explicitly, but it is sufficient for an agent to invoke this tool correctly.
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 document the parameters itself, and it does so for all 6. For instance, target_library_section_id is described as the section into which media will be grabbed and extra notes clarify its necessity, while hints includes the ratingKey requirement. The descriptions of prefs and params are thin, but still offer a meaning plus an example sub-parameter, which is above baseline.
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 creates a subscription and provides the POST /media/subscriptions endpoint, making the verb, resource, and intent specific. It does not explicitly differentiate itself from the sibling create_media_subscriptions_process, but the name and sentence are enough to distinguish it from update/delete/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?
The description gives no explicit comparison to alternative tools, but it does include useful conditional usage hints: 'Not actually required when the subscription is to a playlist' and the requirement that ratingKey is needed for PMS remote downloads. These imply scenarios in which the tool is appropriate, though they are parameter-level guidance rather than tool-level decision rules.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_media_subscriptions_processBIdempotent
Process all subscriptions.
POST /media/subscriptions/process
| 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 annotations already cover the important behavioral traits: not read-only, idempotent, not destructive, and open-world. The description adds the 'all subscriptions' scope and confirms the POST action, but it does not explain what processing entails, such as whether it is asynchronous, what state changes occur, or whether external systems are affected.
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, front-loaded with the purpose, and includes the endpoint without filler or repetition. It is appropriately concise for a zero-parameter endpoint, although the brevity contributes to the ambiguity noted in other dimensions.
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 no parameters and an output schema present, the description has few structural gaps, but it leaves the meaning of 'process all subscriptions' unexplained. An agent cannot tell whether this triggers a background job, processes pending updates, or requires existing subscriptions. It is minimally viable but not fully informative.
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 and schema description coverage is 100%, so there are no parameter semantics for the description to clarify. The description's 'all subscriptions' wording reinforces that no scoping or filtering argument is needed, which fits the no-parameter baseline.
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 identifies the operation as 'Process all subscriptions' and provides the endpoint POST /media/subscriptions/process, distinguishing it from create/update/list sibling tools. The verb 'process' is somewhat generic, but the resource and bulk scope are explicit enough to avoid confusion with the other media-subscription 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?
There is no guidance about when to use this tool versus alternatives such as update_media_subscriptions_by_subscription_id or list_media_subscriptions_scheduled. The phrase 'all subscriptions' implies a bulk operation, but no conditions, prerequisites, or exclusions are stated, so the agent is left to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_myplex_claimBIdempotent
Claim Server.
POST /myplex/claim
| 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?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, but the description adds no context about side effects, authentication requirements, or what claiming a server entails. It does not contradict the annotations, but it also does not enrich them.
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 only two short lines, front-loaded with the operation statement and endpoint. There is no filler, though it is terse enough that additional context would be welcome.
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 and annotations covering the safety profile, a long manual is not necessary. However, the description lacks any context about the claiming workflow, prerequisites, or expected effect, making it only minimally 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 zero parameters, so the description carries no parameter burden. The endpoint plus operation name is sufficient for an agent to know this is a parameterless claim call.
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 names the operation ('Claim') and the resource ('Server') and gives the endpoint, so an agent can identify this as the myplex claim operation. It is distinguishable from sibling create_* tools by resource, though it does not explicitly compare with them.
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 given on when to use this tool versus alternatives such as list_myplex_account or update_myplex_refresh_reachability. There are no exclusions, prerequisites, or context signals to help the agent decide to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pinsBIdempotent
Create OAuth PIN.
POST /pins
| 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?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the OAuth PIN context and the POST method but does not disclose side effects, prerequisites, or response behavior. No contradiction with annotations.
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 front-loaded, with no filler. 'POST /pins' adds the endpoint detail. It is concise, though it offers little contextual elaboration beyond the tool name.
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 and annotations, the description is arguably sufficient to invoke the call. It lacks deeper OAuth-flow context, but the tool is simple enough that this does not create a critical 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 zero parameters and schema coverage is 100%, so there is nothing for the description to explain. The baseline for parameterless tools is 4, and the description does not need to compensate for any missing parameter documentation.
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 a clear verb-resource pair: 'Create OAuth PIN' plus the HTTP endpoint 'POST /pins'. It tells an agent that this tool initiates OAuth PIN creation, but it does not explicitly distinguish it from the sibling create_pins_xml.
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 gives no guidance on when to use this tool versus alternatives such as create_pins_xml, get_pins_by_pin_id, or update_pins_link. The context of 'Create OAuth PIN' implies a general use, but no explicit when-to-use or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pins_xmlAIdempotent
Create Legacy PIN.
POST /pins.xml
| 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?
Annotations already carry the non-read-only, non-destructive, idempotent, and open-world hints, and the description adds no behavioral context beyond restating the create operation and endpoint. It does not mention auth needs, side effects, or retry implications.
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 minimal and front-loaded: one purpose sentence plus the exact endpoint. Both lines earn their place and there is no redundant filler.
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 create operation with an output schema and safety annotations, the endpoint and purpose may be enough to invoke correctly. The main missing context is the relationship to the modern create_pins flow, but that is more of a usage-guidance 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?
The input schema has zero parameters, so the baseline is 4 even though the description supplies no parameter details. Schema coverage is effectively complete because there are no properties to document.
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 a specific action, 'Create Legacy PIN,' and gives the concrete HTTP endpoint 'POST /pins.xml.' The word 'Legacy' also helps distinguish it from the sibling create_pins tool.
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 term 'Legacy' and the .xml endpoint imply this is for the older PIN-creation flow, so an agent gets some usage context. However, the description does not explicitly state when to prefer this over create_pins or how it fits into the PIN/auth lifecycle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_audio_streamDIdempotent
Player Audio Stream.
POST /player/playback/audioStream
Args: stream_id: The unique identifier of the stream
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds nothing beyond that—no information about what happens when a stream is created, whether it requires an active playback session, how it interacts with state, or what the response contains. With annotations present, the bar is lower, but the description still fails to disclose any behavioral nuance.
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, which is conciseness, but it lacks structure. It starts with a vague title, then an endpoint, then an 'Args' block. The information is not front-loaded with a clear purpose, and the endpoint is a redundant detail. The brevity does not translate to effectiveness.
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 that creates an audio playback stream, the description is grossly incomplete. It doesn't explain what 'audio stream' means, what the stream_id refers to, whether it returns a stream URL, or how it fits into the playback workflow. With an output schema present, the description still leaves the agent without enough context to call this tool correctly or understand its effects.
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% (the schema has no descriptions for properties). The description says 'stream_id: The unique identifier of the stream' which barely adds meaning beyond the parameter name. It doesn't clarify the type of stream, how the ID is obtained, or whether null is acceptable (since the schema allows null). The description fails to compensate for the lack of schema documentation.
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 is essentially a title 'Player Audio Stream' and an endpoint, with no verb or clear action. It doesn't state what the tool actually does (e.g., create a playback stream for audio), nor does it distinguish it from sibling tools like create_player_playback_video_stream or create_player_playback_set_streams. The only concrete detail is the parameter definition, which is minimal.
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?
There is no guidance on when to use this tool versus alternatives. No mention of scenarios, prerequisites, or relationships to other playback operations. The description provides zero contextual direction for an agent deciding between this and sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_muteCIdempotent
Player Mute.
POST /player/playback/mute
| 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 only restates the mute action and the endpoint; it adds no behavioral context beyond the annotations. It does not contradict the annotations, but it also does not disclose the effect on current playback or the relationship to unmuting.
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 contains no filler; the endpoint line is a useful concrete reference. It is concise, though the label-like phrasing prevents a perfect score.
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?
This is a simple zero-parameter action with an output schema and annotations, so the description does not need to be lengthy. However, a more explicit statement of what muting does and a pointer to the unmute counterpart would make it complete for an agent deciding whether to call it.
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 and schema coverage is 100%, so there is no parameter detail for the description to add. The baseline of 4 for a parameterless tool 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 is mostly a label—'Player Mute.'—that restates the tool name, with the HTTP endpoint as additional context. It identifies the resource (player playback) and the action (mute), and can be differentiated from create_player_playback_unmute by direction, but it lacks an explicit sentence stating what the operation does.
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?
There is no guidance on when to use this tool versus alternatives such as create_player_playback_unmute or create_player_playback_set_parameters. No conditions, prerequisites, or explicit references to sibling tools are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_pauseBIdempotent
Player Pause.
POST /player/playback/pause
| 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?
Annotations already convey that this is non-read-only, idempotent, and non-destructive. The description adds no further behavioral context, such as requiring an active playback session or how the operation affects the current media queue.
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 highly concise, consisting of only two short lines with no filler. The endpoint line adds a useful concrete detail, though 'Player Pause' essentially duplicates the tool name.
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 operation, the description is mostly sufficient: it names the operation, gives the exact endpoint, and annotations cover safety and idempotence. The simplicity of the action means little additional context is needed for correct invocation.
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 effectively 100%, so there is no parameter meaning for the description to add. This matches the baseline for parameterless operations.
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 identifies the action as pausing and the resource as player playback via the phrase 'Player Pause' and the endpoint POST /player/playback/pause. It is not misleading and stands apart from sibling player playback controls by the name itself, though it largely restates the tool name.
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?
There is no guidance on when to use this tool versus alternatives. The description does not mention prerequisites, conditions, or which sibling playback controls (e.g., play, stop, seek) should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_playCIdempotent
Player Play.
POST /player/playback/play
| 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?
Annotations indicate this is not read-only, is idempotent, and is not destructive, but the description adds no behavioral context beyond the endpoint. It does not state what happens when playback is invoked, whether it starts playback of the current queue, or what side effects occur. The description neither contradicts the annotations nor enriches them.
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 brevity here is under-specification rather than effective conciseness. It provides only a phrase and an endpoint URL, with no front-loaded meaning, usage context, or behavioral information that would help an agent select or invoke the tool.
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?
Although there are no parameters and an output schema exists, the description is incomplete for a playback-control tool among dozens of sibling tools. It fails to clarify the semantic of 'play' or how this differs from related actions, leaving an agent to guess the intended operation.
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 description coverage is 100%, so there are no parameter semantics to explain. The description does not need to compensate for missing schema information, giving it the baseline score for a zero-parameter tool.
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?
"Player Play." restates the tool name and gives no real description of what the tool does. The endpoint line repeats the path already implied by the name, so an agent cannot tell whether this starts, resumes, or triggers playback behavior beyond the label itself.
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?
There is no guidance about when to use this tool versus the many sibling playback controls such as create_player_playback_pause, create_player_playback_stop, create_player_playback_seek, or create_player_playback_play_media. No context is provided for when a play action is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_play_mediaBIdempotent
Player Play Media.
POST /player/playback/playMedia
Args: key: The key of the media item to play offset: The byte offset for stream seeking machine_identifier: The machine identifier of the target device
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| offset | No | ||
| machine_identifier | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey that the operation is not read-only, is idempotent, and is not destructive, but the description adds no behavioral context about side effects, required device state, or what occurs when playback is triggered. It neither reinforces nor contradicts the annotations, yet it fails to disclose any operation-specific behavior beyond the endpoint 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?
The description is compact and scannable, with an endpoint line followed by a concise argument list. The opening title 'Player Play Media' is somewhat redundant with the tool name, but there is no wasted prose and the structure is 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?
While the output schema and annotations cover some context, the description omits when to prefer this tool over the many playback-related siblings, any prerequisites, and the expected outcome of invoking the action. An agent could not reliably decide among create_player_playback_play_media, create_player_playback_play, and related tools based solely on this text.
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's Args section is the only source of parameter meaning. It compensates well by explaining key as the media item key, offset as the byte offset for stream seeking, and machine_identifier as the target device identifier, which is meaningful beyond the bare schema property names.
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 identifies the action as 'Player Play Media' and provides the endpoint POST /player/playback/playMedia, making it clear this tool starts media playback using a key, optional offset, and target machine identifier. However, it does not explicitly differentiate itself from sibling playback-control tools such as create_player_playback_play or create_player_playback_seek.
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 offers no guidance on when to use this tool versus any of the many sibling playback tools, nor does it mention prerequisites or alternative tools. It only lists the endpoint and arguments, leaving the selection decision entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_refresh_play_queueCIdempotent
Player Refresh Play Queue.
POST /player/playback/refreshPlayQueue
| 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?
Annotations already provide idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so the safety profile is known. The description adds no behavioral context about what 'refresh' changes, whether it requires an active session, or what side effects occur.
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 the endpoint is front-loaded, but the only substantive line duplicates the tool name. It is concise at the cost of being nearly content-free.
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 no parameters and an output schema, the description is too sparse for an agent to understand the tool's effect or when to invoke it. The endpoint path and name alone do not provide enough operational 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 input schema has zero parameters, so there is nothing for the description to explain. The schema description coverage is 100%, and the baseline of 4 for zero-parameter tools 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 'Player Refresh Play Queue.' simply restates the tool name in prose, adding no functional meaning beyond the endpoint URL. It does not explain what refreshing the play queue actually does or how it differs from the many sibling player-control 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?
There is no guidance about when to use this tool versus alternatives such as create_player_playback_play, create_player_playback_seek, or update_play_queues_by_play_queue_id. The description gives no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_seekCIdempotent
Player Seek.
POST /player/playback/seek
Args: offset: Target offset in milliseconds
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a mutating, idempotent operation, but the description adds no behavioral context such as whether the seek is absolute or relative, whether it affects an active playback session, or what happens when offset is null. The endpoint and 'Seek' label essentially restate the tool 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?
The description is compact and front-loads the action, endpoint, and argument. 'Player Seek.' is slightly redundant with the tool name, but there is no padding or irrelevant 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?
For a simple one-parameter tool this is nearly sufficient, but the lack of offset semantics and the presence of many similar playback siblings leave important context missing. The output schema covers return values, so no credit is lost there, but an agent could easily confuse this with skip_to or set_view_offset.
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 the useful unit ('milliseconds') for offset. It does not explain whether the offset is from the start of the item, whether null means 'no seek', or any range 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 states the action ('Seek') and resource ('player playback') and gives the endpoint. It is clear enough, but it does not explicitly distinguish this from sibling tools like create_player_playback_set_view_offset, create_player_playback_skip_to, or create_player_playback_skip_by.
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 given on when to call seek versus the many sibling playback-control tools. The description only repeats the endpoint and argument, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_set_parametersCIdempotent
Player Set Parameters.
POST /player/playback/setParameters
Args: shuffle: Whether to enable shuffle mode repeat: The repeat mode to set volume: The volume level to set
| Name | Required | Description | Default |
|---|---|---|---|
| repeat | No | ||
| volume | No | ||
| shuffle | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a write operation (readOnlyHint=false), non-destructive, and idempotent, but the description adds no behavioral context beyond the bare statement of setting parameters. It does not describe what happens when these parameters are set (e.g., immediate effect on playback, persistence, or side effects). Since annotations already carry the safety profile, the description adds little.
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, with no fluff. It includes the endpoint, which is useful, and a clear parameter list. However, it omits essential context (usage, behavioral details, parameter constraints), so while concise, it does not adequately earn its place by adding the necessary guidance.
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 tool has 3 optional parameters, an existing output schema, and many similar sibling tools, yet the description does not explain how to call it correctly. It lacks parameter value ranges, which repeat modes are supported, the meaning of integer shuffle, and how it relates to other player control tools. The description is far from complete for an agent to use it reliably.
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 must compensate for the schema's lack of explanation. It gives one-line meanings for each parameter (e.g., shuffle = 'Whether to enable shuffle mode', repeat = 'The repeat mode to set', volume = 'The volume level to set'), but it does not specify valid values, ranges, units, or what the repeat modes are. The shuffle description implies a boolean but the schema allows integer, creating ambiguity. The added semantics are minimal and insufficient.
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 it sets player playback parameters (shuffle, repeat, volume), which distinguishes it from sibling tools that set other aspects like rating or state. The verb is 'set' and the resource is implied by the endpoint and parameter list. It is clear but could be more explicit about the target (e.g., the currently active player session).
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?
There is absolutely no guidance on when to use this tool versus the many sibling tools such as create_player_playback_volume, create_player_playback_set_state, or create_player_playback_set_rating. The description does not mention alternatives or exclusionary conditions, leaving the agent to infer the scope from the parameter names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_set_ratingCIdempotent
Player Set Rating.
POST /player/playback/setRating
Args: rating: The rating value to set
| Name | Required | Description | Default |
|---|---|---|---|
| rating | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so the mutation nature is partially covered. The description adds no behavioral context beyond 'set rating'—it does not disclose whether this affects persisted user data, whether it requires an active playback context, or what side effects occur. It neither contradicts annotations nor enriches them.
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 compact and front-loads the endpoint, which is structurally good. However, the 'Args' block merely repeats the schema property and gives no new information, so the brevity is under-specification rather than efficient conciseness.
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 one-parameter tool, the description is almost adequate structurally, but it leaves critical gaps: the meaning and valid values of 'rating', the target of the rating, and prerequisites. The presence of an output schema reduces the need to describe return values, but the core context for correct invocation is missing.
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 for the undocumented 'rating' parameter. It only says 'rating: The rating value to set', which is a tautology and adds no meaning about scale, allowed range, meaning of null, or how the value is applied. The description provides essentially no semantic information beyond the parameter name.
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 a specific action ('Set Rating') and the HTTP endpoint, so an agent can tell this is a playback rating write. However, it does not clarify what the rating applies to (current item, playback session, user library) and the phrase 'Player Set Rating' is closer to a title than an explanatory purpose. It is clear but lacks sibling differentiation beyond the endpoint itself.
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?
There is no guidance on when to use this tool versus related tools such as update_rate, create_player_playback_set_state, or create_player_playback_set_view_offset. The endpoint is given, but no context such as 'use this when the user rates the currently playing item' or 'requires an active playback session' is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_set_stateCIdempotent
Player Set State.
POST /player/playback/setState
Args: state: The desired playback state
| Name | Required | Description | Default |
|---|---|---|---|
| state | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already state — it neither discloses side effects, what happens to the current playback state, whether a session is required, nor what state values are acceptable. readOnlyHint=false, idempotentHint=true, and destructiveHint=false are consistent with the description, so there is no contradiction, but the description carries none of the behavioral burden itself.
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 scannable, with the title and endpoint front-loaded. However, its brevity comes from vacuousness rather than efficiency — the 'Args' section restates the parameter with a near-tautological gloss, so the compactness earns no credit beyond basic scannability.
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?
Although the tool is structurally simple (one optional param, output schema present), the description is missing the single most important piece of information: the semantics of 'state' and its possible values. Without it, the agent cannot invoke the tool correctly, especially given the overlap with play/pause/stop siblings. The annotations and output schema do not fill this 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?
Schema description coverage is 0%, so the description must compensate for the undocumented 'state' parameter. It provides only a one-line gloss ('The desired playback state'), which tells the agent almost nothing: no valid values, format, enum options, or examples. For a parameter that is the sole input and defaults to null, this is a meaningful shortfall.
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 a verb+resource ('Player Set State' with the POST /player/playback/setState endpoint), so a basic purpose is identifiable. However, among a large family of playback siblings (play, pause, stop, seek, step_forward, mute, etc.), 'set state' is the most ambiguous one — the description never clarifies what 'state' actually means or how it differs from those siblings. An agent cannot tell when to pick this over pause/play/stop.
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?
Zero usage guidance is provided. There is no mention of when to use this tool vs alternatives, no prerequisites (e.g., active playback session, player resource), and no exclusions. Given roughly 20 similarly-named create_player_playback_* siblings, the absence of routing guidance is a serious gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_set_streamsCIdempotent
Player Set Streams.
POST /player/playback/setStreams
Args: audio_stream_id: The unique identifier of the audiostream subtitle_stream_id: The unique identifier of the subtitlestream video_stream_id: The unique identifier of the videostream
| Name | Required | Description | Default |
|---|---|---|---|
| audio_stream_id | No | ||
| video_stream_id | No | ||
| subtitle_stream_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already define the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), so the bar for the description is lower. The description adds only the HTTP endpoint and a parameter list; it never states what invoking this actually does to playback, such as switching the active tracks of the current session. There is no contradiction between the description and the annotations.
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 the endpoint is front-loaded, which is helpful. However, the Args section largely duplicates the input schema's titles and property names, following a docstring template rather than an agent-facing explanation. Some lines earn their place, but several simply restate structured data.
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 player-control mutation, the core context is missing: what the call does to the current playback session and how it relates to the sibling single-stream setters. The output schema and annotations cover return values and safety semantics, but the description alone does not give an agent enough to invoke the tool with confidence.
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 carries the full burden, but the Args block only paraphrases each parameter as 'the unique identifier of the X stream', adding little beyond the parameter names and schema titles. It does not clarify that all three are optional and nullable, where the stream IDs are obtained from, or whether a partial update with only one stream specified is supported.
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 identifies the operation and resource: setting audio, subtitle, and video streams via POST /player/playback/setStreams, and the Args block lists exactly which stream types are involved. This distinguishes it from unrelated playback actions like set_state or set_rating. However, 'Player Set Streams' is a fragment rather than a complete sentence stating the effect, and it does not differentiate from the sibling single-stream setters (create_player_playback_audio_stream, create_player_playback_video_stream, create_player_playback_subtitle_stream).
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 when-to-use or when-not-to-use guidance is provided. The description never explains when to call this combined setter versus the sibling single-stream tools, nor does it state prerequisites such as an active playback session. An agent is left to infer the appropriate circumstances entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_set_text_streamCIdempotent
Player Set Text Stream.
POST /player/playback/setTextStream
Args: stream_id: The unique identifier of the stream
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only, idempotent, and non-destructive behavior. The description adds only the endpoint, not behavioral context such as whether an active playback session is required, whether this replaces the current subtitle track, whether the change persists, or what happens when stream_id is null. It does not contradict annotations, but it adds little beyond them.
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, but the brevity comes from under-specification rather than efficient writing. The endpoint line is useful, but the Args section duplicates what the schema already shows and the core meaning of the tool is left vague. It is terse without being 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 only one parameter, an output schema, and annotations, the description fails to explain the tool's actual role in playback control, when it should be invoked, or how stream_id is used. An agent cannot confidently select this tool over the many playback-related siblings.
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 carries full responsibility for explaining stream_id. It merely calls it 'the unique identifier of the stream,' which essentially restates the parameter name and does not clarify what kind of stream ID is expected, how to obtain it, or whether null means 'clear the text stream.' This minimally 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 states a concrete verb and resource ('Set Text Stream') and includes the endpoint, so an agent can roughly infer this tool changes the active text/subtitle stream. However, it does not explain what 'text stream' means in the playback domain, and among siblings like create_player_playback_subtitle_stream and create_player_playback_set_streams, it does not differentiate itself.
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 given on when to use this tool versus closely related playback controls such as create_player_playback_subtitle_stream, create_player_playback_video_stream, or create_player_playback_set_streams. The description provides no prerequisites, no alternative recommendations, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_set_view_offsetCIdempotent
Player Set View Offset.
POST /player/playback/setViewOffset
Args: offset: The byte offset for stream seeking
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true, readOnlyHint=false, and destructiveHint=false, and the description does not contradict them. It adds only the small detail that offset is a byte offset for stream seeking, but gives no behavioral context beyond that—no mention of what happens when offset is null, whether an active session is required, or side effects of setting the offset. With the annotations carrying the safety profile, the description adds minimal 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 short, front-loaded with the name and endpoint, and lists the sole argument concisely. There is no filler or redundant prose, though a bit more behavioral context could be added without hurting brevity.
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 single-parameter tool with an output schema, the essentials are present. However, it omits useful context such as the need for an active playback session, what 'view offset' means relative to seeking, and how this relates to create_player_playback_seek. It is minimally adequate but not 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 must compensate. It does add meaning by clarifying that offset is a byte offset used for stream seeking, which supplements the bare integer/null schema type. This is useful, though it does not explain units/format fully beyond 'byte offset' or the effect of the default null.
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 names the verb (set) and resource (view offset) and adds that it is a byte offset for stream seeking. However, the description largely restates the tool name ('Player Set View Offset' vs. create_player_playback_set_view_offset) and does nothing to distinguish this from the very similar sibling create_player_playback_seek, which appears to serve the same seeking purpose.
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?
There is no guidance on when to use this tool versus alternatives. This is especially problematic because sibling create_player_playback_seek appears to overlap with this tool's function, and the description gives no condition, prerequisite (e.g., an active playback session/play queue), or reason that would route an agent to this tool instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_skip_byBIdempotent
Player Skip By.
POST /player/playback/skipBy
Args: offset: Number of items to skip (positive for forward, negative for backward)
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds the offset direction semantics and the POST endpoint, which is useful but minimal; it does not disclose edge-case behavior like what happens when offset is null or when skipping beyond available items.
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 brief and mostly front-loaded with the endpoint and then the parameter explanation. The opening line 'Player Skip By.' is somewhat redundant with the tool name but does not significantly hurt 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?
For a single-parameter tool with an output schema, the basic operation and parameter semantics are sufficient. However, the presence of many closely related playback control siblings means the description lacks the contextual guidance needed to reliably choose this tool over alternatives.
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 fully compensate for the undocumented offset parameter. It does so by explaining that offset is the number of items to skip and that positive values go forward while negative values go backward, which is clear and actionable.
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 indicates a playback skip-by operation with an HTTP endpoint and offset semantics. However, it does not explicitly contrast itself with related sibling tools like create_player_playback_skip_to or create_player_playback_step_forward, so differentiation is left to inference.
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 gives no guidance on when to use this tool instead of the many related playback control siblings. It only describes the offset parameter, leaving the agent to guess when skip-by is preferable to skip-to, seek, step-forward, or step-back.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_skip_toCIdempotent
Player Skip To.
POST /player/playback/skipTo
Args: key: The key of the item to skip to
| Name | Required | Description | Default |
|---|---|---|---|
| key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the operation is a mutating, idempotent, non-destructive action; the description adds nothing beyond that. It does not mention side effects, whether a current playing session is required, the effect of calling with no key (since key is optional), or any response behavior. With the annotation bar lowered, the description still contributes no additional behavioral disclosure.
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 and front-loaded, with no wasted words; the endpoint and one arg are stated directly. It is appropriately compact for a one-parameter tool, though the terseness leaves out context that other dimensions penalize.
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 single-parameter playback control command, the description fails to give enough context: it doesn't define the key's domain, the relationship to the current play queue, or what happens when key is null. The output schema exists, so return type is covered, but the behavior and selection criteria are insufficient. Siblings such as seek, skip_by, and step_forward/back create ambiguity that this description doesn't address.
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 single parameter 'key' is described as 'The key of the item to skip to,' which gives it a basic meaning beyond the schema's bare type. However, it doesn't explain what kind of key (e.g., a media item ID, proxy key), whether null is a valid explicit value, or how the behavior changes if the argument is omitted. Given the schema has 0% description coverage, the description partially compensates but remains thin.
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 action 'Skip To' and identifies the resource (player playback), and the arg line clarifies that 'key' is the item to skip to. However, it is fragmentary and does not differentiate this tool from siblings like create_player_playback_seek, create_player_playback_skip_by, or step_forward/back; an agent would have to infer the distinction. It's not a tautology because it adds a small amount of semantic content, but it's barely above that.
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?
There is no statement about when to use this tool versus alternatives, nor any prerequisites (e.g., an active playback session, a play queue). The description provides no context for selecting this over create_player_playback_seek or skip_by. This is a complete absence of guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_step_backBIdempotent
Player Step Back.
POST /player/playback/stepBack
| 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 annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false) already indicate a mutating, safe, idempotent operation, but the description adds no further context: it does not state how large the step is, whether it requires an active session, or what side effects it has. The description simply restates the action without disclosing 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 appropriately brief for a parameterless action ticket, with the action named first. However, the endpoint line somewhat duplicates the tool name and could be omitted without loss.
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)Skip, the description is underspecified: it never explains what 'step back' actually does in operation, how it relates to sibling playback controls, or whether any runtime state is required. An agent would have to rely on the endpoint path and guess at the 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 input schema has zero parameters, so there is nothing for the description to add. The description's lack of parameter detail is not a gap; the baseline for a parameterless tool 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 a specific action ('Player Step Back') and identifies the endpoint, making it clear this is a playback control operation. It is distinct enough from siblings like create_player_playback_step_forward, though it does not elaborate on what 'step back' entails.
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 given for when to use this tool versus related alternatives such as create_player_playback_step_forward, create_player_playback_seek, or create_player_playback_skip_by. There are no prerequisites, typical scenarios, or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_step_forwardBIdempotent
Player Step Forward.
POST /player/playback/stepForward
| 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 adds no behavioral context beyond the action itself. Annotations already mark it as non-read-only, idempotent, and non-destructive, but the description does not explain side effects on playback position, whether playback must be active, or any error conditions. No contradiction with annotations exists.
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 compact: a short semantic label plus the exact HTTP endpoint. Both lines carry useful information, are front-loaded, and contain no filler or redundant prose.
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 call with an output schema and safety-related annotations, the description is minimally viable. It lacks the semantics of 'step' and does not specify when to use it over the many sibling playback controls, which leaves an agent to infer usage from the tool name alone.
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 there is nothing for the description to document. Schema description coverage is 100% by virtue of an empty properties object, scoring at the baseline for a zero-parameter tool.
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 identifies a clear action and resource: stepping forward in player playback, backed by the explicit POST /player/playback/stepForward endpoint. It does not, however, define what 'step' means (frame, chapter, seconds) or explicitly distinguish itself from sibling playback controls.
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 offers no guidance on when to use this tool versus alternatives like create_player_playback_step_back, create_player_playback_skip_to, or create_player_playback_seek. There is no mention of prerequisites such as an active playback session or how this differs from other playback navigation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_stopCIdempotent
Player Stop.
POST /player/playback/stop
| 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 adds no behavioral context beyond the structured annotations. It does not state what stopping the player means (e.g., ending playback versus pausing), whether a session is terminated, or any side effects; the openWorldHint and idempotentHint are already supplied by annotations and not elaborated.
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 the first line 'Player Stop.' is redundant with the tool name and serves little purpose beyond the useful endpoint line. It is concise almost to the point of under-specification rather than intentionally focused.
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 command with an output schema and safety annotations, the description is minimally usable: an agent knows the endpoint and the action. However, it omits any explanation of the effect of stopping playback, such as whether it releases resources or only changes player state, and gives no hint of when this command is preferred over pause or other playback controls.
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 properties, so there are no parameter semantics to document. The description mentions the endpoint but not parameters; this is consistent with the zero-parameter schema, and the 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 'Player Stop.' plus the endpoint POST /player/playback/stop communicates the basic action of stopping playback, but it is essentially a restatement of the tool name and does not explain the operation in a complete sentence. It is clear enough, but not differentiated from sibling playback-control 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 about when to use this tool versus the many sibling tools such as create_player_playback_pause, create_player_playback_seek, or create_player_playback_set_state. The agent is left to infer the intended use from the name and endpoint alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_subtitle_streamCIdempotent
Player Subtitle Stream.
POST /player/playback/subtitleStream
Args: stream_id: The unique identifier of the stream
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations indicate the tool is not read-only, is idempotent, and is non-destructive, but the description itself adds no behavioral context such as side effects, prerequisites, or what 'creating' a subtitle stream entails. The only additional information is the HTTP endpoint, which is not a behavioral disclosure.
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 free of padding beyond the redundant 'Player Subtitle Stream' headline. The endpoint and argument are presented clearly and concisely.
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 only one optional parameter and an output schema, the description is not complete enough for an agent to confidently select this tool among many playback-stream siblings. Missing purpose, usage context, and side-effect information make this more of an endpoint stub than a usable tool 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?
Schema description coverage is 0%, so the description carries the burden for parameter documentation. It does add a basic definition: 'stream_id: The unique identifier of the stream.' However, it leaves ambiguity about what stream this refers to and how the ID is obtained, so it is only minimally compensatory.
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 is essentially a noun phrase, 'Player Subtitle Stream', which restates the tool's name and endpoint rather than stating an action. It never explicitly says the tool creates or selects a subtitle stream, leaving the verb to be inferred from the tool name and the POST method. This is closer to tautology than a clear purpose statement.
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 given about when to use this tool versus the many closely related playback sibling tools such as create_player_playback_audio_stream, create_player_playback_video_stream, or create_player_playback_set_text_stream. The description provides no context for choosing this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_unmuteCIdempotent
Player Unmute.
POST /player/playback/unmute
| 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?
Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, but the description adds no behavioral context beyond the name. It doesn't mention that this unmutes playback, what state changes occur, or any side effects. No contradiction exists, but nothing is disclosed beyond what the name already implies.
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 does not waste words on fluff. However, 'Player Unmute.' is entirely redundant with the tool name)Skip and the endpoint line, while useful, is the only substantive piece. It is concise to the point of under-specification, but not overly verbose.
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 and safety annotations, the description is technically minimally viable – an agent can infer it unmutes player playback. However, it lacks any context about when to use it, how it relates to other playback commands, or what 'player' refers to. In a large sibling set, this is a 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?
The tool has 0 parameters and the schema coverage is 100% trivially, so there is nothing to add. The description is not required to compensate for missing parameter docs, and the baseline of 4 for zero-parameter tools 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 is 'Player Unmute.' which simply restates the tool's name in human-readable form. It lacks a verb and doesn't explain what action is performed or on what resource beyond the name. The HTTP endpoint is provided but adds no semantic meaning. It does not distinguish this tool from the many other playback control siblings.
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 gives no guidance on when to use this tool versus alternatives such as create_player_playback_mute or create_player_playback_set_state. There are no prerequisites, context, or exclusions provided. An agent gets no help deciding between this and sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_video_streamCIdempotent
Player Video Stream.
POST /player/playback/videoStream
Args: stream_id: The unique identifier of the stream
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already provide readOnlyHint=false, idempotentHint=true, and destructiveHint=false, and the description adds no behavioral detail beyond the endpoint. It does not disclose side effects, such as whether creating the stream starts playback, replaces an existing stream, or requires an active playback session, which matters for a create-style 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 text is short and free of filler, but the opening line 'Player Video Stream' is redundant with the tool name and does not earn its place. The endpoint and args are laid out cleanly, so the structure is acceptable but not exemplary.
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 that creates a player playback video stream, the description is incomplete. An agent cannot tell what the operation accomplishes, how to obtain or use stream_id, or how this relates to the playback session and sibling player controls. The presence of an output schema may cover return shape, but the missing usage and behavioral context is a significant 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?
The description says stream_id is 'the unique identifier of the stream,' which adds minimal meaning to the schema's title and type. With schema description coverage at 0%, this does not compensate enough: it omits how to obtain stream_id, whether a null value is meaningful, and what the practical constraints are.
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 identifies the resource ('Player Video Stream') and endpoint, but it never states the action in verb form; the create behavior must be inferred from the tool name. It is not fully tautological because the endpoint adds some context, but it does not clearly explain what creating a video stream entails or how it differs from the many sibling playback 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?
There is no guidance about when to use this tool versus the many create_player_playback_* siblings such as create_player_playback_set_streams, create_player_playback_audio_stream, or create_player_playback_play. No prerequisites, alternatives, or exclusion conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_player_playback_volumeDIdempotent
Player Volume.
POST /player/playback/volume
Args: level: The level
| Name | Required | Description | Default |
|---|---|---|---|
| level | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the endpoint and the level argument but never states the effect of the call, such as 'sets the current player's volume.' It also omits whether the volume is absolute or relative, what range is valid, and what the response indicates. Annotations provide some safety context (idempotent, non-destructive) but do not describe actual runtime 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 short, but shortness is under-specification, not conciseness. 'Player Volume.' restates the name, 'Args' duplicates schema information, and there is no sentence explaining the operation. The structure provides no useful front-loaded information beyond the endpoint.
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?
Even though this is a single-parameter tool with annotations and an output schema, the critical information needed to call it correctly is missing: what level means, what values are valid, and what happens when it is omitted or null. The description is not sufficient for reliable selection or invocation.
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 carries the full burden of explaining the level parameter. It only says 'level: The level,' which adds no meaning beyond the parameter name. There is no unit, range, acceptable values, or explanation of what a null/default level does.
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 is essentially 'Player Volume.' followed by the endpoint, which is a tautology of the tool name rather than a stated action. It does not say that this tool sets the playback volume to a specified level, so an agent must infer the purpose from the POST verb and parameter.
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 about when to use this tool instead of related sibling tools such as create_player_playback_mute, create_player_playback_unmute, or create_player_playback_set_parameters. There is no mention of prerequisites, active player requirements, or contexts where volume adjustment is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_playlistsBIdempotent
Create a Playlist.
POST /playlists
Args:
uri: The content URI for what we're playing (e.g. library://...).
play_queue_id: To create a playlist from an existing play queue.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | ||
| play_queue_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is non-read-only, non-destructive, and idempotent. The description adds no behavioral context beyond the purpose itself, such as side effects, required permissions, or failure modes. There is no contradiction with the annotations.
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, front-loaded, and free of filler. The endpoint line and parameter bullets are useful. It could be slightly more integrated, but every element 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?
The tool is low-complexity with two optional parameters, an output schema, and annotations covering safety. Still, the relationship between uri and play_queue_id is left ambiguous, and there is no guidance for the no-argument case. This is minimally viable but has clear 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?
Schema coverage is 0%, so the description must carry parameter meaning. It does explain uri as a content URI with an example and play_queue_id as a source for creating from an existing play queue. However, it does not clarify whether the parameters are alternatives, combinable, or what happens if neither is 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?
The description states a clear verb and resource: 'Create a Playlist.' It also includes the endpoint POST /playlists, which reinforces the action. However, it does not distinguish this tool from the sibling create_playlists_upload, so the agent must infer the difference from names alone.
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?
There is no guidance on when to use this tool versus create_playlists_upload, update_playlists, or other playlist-related siblings. The parameter hints imply two creation sources, but no decision rule, exclusions, or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_playlists_uploadAIdempotent
Upload media art.
POST /playlists/upload
Args:
path: Absolute path to a directory on the server where m3u files are stored, or the absolute path to a playlist file on the server. If the path argument is a directory, that path will be scanned for playlist files to be processed. Each file in that directory creates a separate playlist, with a name based on the filename of the file that created it. The GUID of each playlist is based on the filename. If the path argument is a file, that file will be used to create a new playlist, with the name based on the filename of the file that created it. The GUID of each playlist is based on the filename.
force: Force overwriting of duplicate playlists. By default, a playlist file uploaded with the same path will overwrite the existing playlist. The force argument is used to disable overwriting. If the force argument is set to 0, a new playlist will be created suffixed with the date and time that the duplicate was uploaded.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| force | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=false, idempotentHint=true, and destructiveHint=falsements. The description adds significant behavioral context beyond these: it explains that a directory path is scanned for m3u files and each creates a separate playlist named from the filename, the GUID is derived from the filename, default behavior overwrites existing playlists, and setting `force` to 0 disables overwriting and suffixes duplicate playlists with date/time. This provides clear side-effect transparency without contradicting the annotations.
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 moderately concise but contains redundancy: the sentence about naming and GUID is repeated verbatim for both the directory and file cases. The opening phrase 'Upload media art' is a poor summary, and the structure could be improved with a clear summary and condensed parameter descriptions. However, the Args section is logically organized and not excessively long.
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 adequately covers the core behavior: both input modes for `path`, naming conventions, GUID derivation, and overwrite behavior via `force`. An output schema exists, so return values are not required in the description. It does not mention error conditions, prerequisites, or interactions with other tools, but for this complexity level the main scenarios are well-specified.
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 provides only parameter names and types (string/null) with no descriptions – schema description coverage is 0%. The description fully compensates by explaining that `path` can be an absolute directory or file, detailing the behavior for each case, and thoroughly describing `force`'s effect on duplicate handling. This is essential information without which the agent could not correctly use the 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 opens with 'Upload media art,'' which is vague and potentially misleading, but the next line 'POST /playlists/upload' and the detailed Args section make clear this tool uploads playlist (m3u) files from a directory or file to create playlists. It identifies a specific verb (upload) and resource (playlists), and the behavior is fully described. It does not explicitly distinguish itself from the sibling tool 'create_playlists,' but the name and endpoint are reasonably distinct.
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 state when to use this tool versus alternatives. It provides usage details for the `path` parameter (directory vs. file) and the `force` parameter, but these are parameter semantics, not guidance on tool selection. There is no mention of alternative tools like `create_playlists` or any condition like 'Use this when you have m3u files to upload.' The only implied usage is from the description of what the tool does, which is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_play_queuesAIdempotent
Create a play queue.
POST /playQueues
Args:
uri: The content URI for what we're playing.
playlist_id: the ID of the playlist we're playing.
type: The type of play queue to create
key: The key of the first item to play, defaults to the first in the play queue.
shuffle: Whether to shuffle the playlist, defaults to 0.
repeat: If the PQ is bigger than the window, fill any empty space with wraparound items, defaults to 0.
continuous: Whether to create a continuous play queue (e.g. from an episode), defaults to 0.
extras_prefix_count: Number of trailers to prepend a movie with not including the pre-roll. If omitted the pre-roll will not be returned in the play queue. When resuming a movie extrasPrefixCount should be omitted as a parameter instead of passing 0.
recursive: Only applies to queues of type photo, whether to retrieve all descendent photos from an album or section, defaults to 1.
on_deck: Only applies to queues of type show or seasons, whether to return a queue that is started on the On Deck episode if one exists. Otherwise begins the play queue on the beginning of the show or season.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| uri | No | ||
| type | No | ||
| repeat | No | ||
| on_deck | No | ||
| shuffle | No | ||
| recursive | No | ||
| continuous | No | ||
| playlist_id | No | ||
| extras_prefix_count | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals several non-obvious behaviors beyond the basic write operation: defaults for shuffle, repeat, continuous, and recursive; the special meaning of repeat (wraparound items); the extras_prefix_count nuances (pre-roll omission and the warning to omit the parameter when resuming a movie rather than passing 0); and the type-specific on_deck behavior. These details far exceed what the annotations alone convey (idempotent, non-destructive, write operation). No contradiction with annotations.
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 front-loaded with a one-line summary of the action, followed by a compact bulleted list of arguments. Each parameter explanation is concise, informative, and avoids redundant detail. The special-case warnings for extras_prefix_count and type-specific parameters are important and presented without fluff. Every sentence 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?
For a tool with 10 optional parameters and several type-dependent behaviors, the description is remarkably complete. It covers all parameters with defaults and edge cases, includes a warning about a common pitfall (omitting extrasPrefixCount on resume), and notes which parameters apply only to certain queue types. An output schema exists to describe return values, so the description does not need to cover that. No critical information appears missing for an agent to construct a correct request.
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 provides only parameter names and types with no descriptions (0% schema description coverage). The description fully compensates by explaining each parameter's purpose, default value, and type-specific behavior (e.g., recursive only for photo queues, on_deck only for show/season queues). It even clarifies subtle cases like the extras_prefix_count parameter when resuming a movie. This is exactly the kind of added meaning the schema alone lacks.
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 opens with a clear verb and resource: 'Create a play queue.' It also specifies the exact endpoint (POST /playQueues). While it doesn't explicitly contrast this with sibling tools like update_play_queues or get_play_queues, the create verb and endpoint make the purpose unambiguous and distinct from the other play-queue operations.
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 word 'Create' clearly implies this tool is for creating new play queues rather than updating or deleting existing ones. However, the description does not explicitly state when to prefer this over alternatives (e.g., when you have an existing queue ID vs. starting fresh), nor does it mention any preconditions like needing a valid URI or playlist ID. The usage context is implied but not explicitly guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_security_tokenBIdempotent
Get Transient Tokens.
POST /security/token
Args:
type: The value delegation is the only supported type parameter.
scope: The value all is the only supported scope parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| scope | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry idempotent, destructive, and read-only hints, and the description does not contradict them. It adds 'transient' and the endpoint, but it does not disclose side effects, authentication needs, or what happens when a token is issued.
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, front-loads the purpose and endpoint, and lists each argument in one compact line. No wasted words, though the 'Args:' section mostly restates constraints.
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 two-parameter, idempotent operation with an output schema, the description is minimally sufficient. It lacks guidance about when to use it relative to the sibling auth/token tools and does not explain the security or authentication implications of creating the token.
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% parameter descriptions, so the description carries the full burden. It states the exact only-supported value for each parameter ('delegation' and 'all'), giving agents actionable constraints even though the meaning of the parameters is not expanded further.
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 action ('Get') and resource ('Transient Tokens') and includes the endpoint POST /security/token, so an agent can understand the operation despite the create_* tool name. It does not explicitly differentiate from sibling auth/token tools such as create_auth_token or create_auth_jwk.
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 sentence indicates when to choose this tool over alternatives or mentions prerequisites or context. Sibling tools include several token- and auth-related endpoints, but the description gives no selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_status_sessions_terminateAIdempotent
Terminate a session.
POST /status/sessions/terminate
Args:
session_id: The session id (found in the Session element in /status/sessions)
reason: The reason to give to the user (typically displayed in the client)
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| session_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the operation's mutating nature is clear from structure. The description adds useful context by noting that the reason is 'typically displayed in the client,' but it does not elaborate on termination side effects or idempotency 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 compact and front-loaded with the core action, endpoint, and parameter explanations. Every line earns its place without redundant filler. The Markdown reference for session_id sourcing is useful and structurally tidy.
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 mutation with an output schema and no nested objects, the description covers the essential invocation details: what the tool does, the endpoint path, and the meaning of both inputs. The notable gap is the lack of usage guidance relative to sibling termination/delete tools, but this is mostly captured under usage_guidelines.
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%, but the description compensates by explaining both parameters. It tells the agent where session_id can be found in the Session element and clarifies that reason is the user-facing explanation, which meaningfully supplements 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 opens with 'Terminate a session,' which clearly states the action and resource, and the included POST path identifies the exact endpoint. It does not explicitly distinguish itself from the sibling delete_livetv_sessions_by_session_id, so it stops short of full differentiation.
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 gives no guidance on when to use this tool versus alternatives such as delete_livetv_sessions_by_session_id or list_status_sessions. It only explains where to find the session_id, not the conditions under which this termination endpoint should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_timelineAIdempotent
Report media timeline.
POST /:/timeline
Args:
key: The details key for the item.
rating_key: The rating key attribute for the item.
state: The current state of the media.
play_queue_item_id: If playing media from a play queue, the play queue's ID.
time: The current time offset of playback in ms.
duration: The total duration of the item in ms.
continuing: When state is stopped, a flag indicating whether or not the client is going to continue playing anothe item.
updated: Used when a sync client comes online and is syncing media timelines, holds the time at which the playback state was last updated.
offline: Also used by sync clients, used to indicate that a timeline is being synced from being offline, as opposed to being "live".
time_to_first_frame: Time in seconds till first frame is displayed. Sent only on the first playing timeline request.
time_stalled: Time in seconds spent buffering since last request.
bandwidth: Bandwidth in kbps as estimated by the client.
buffered_time: Amount of time in seconds buffered by client. Omit if computed by bufferedSize below.
buffered_size: Size in kilobytes of data buffered by client. Omit if computed by bufferedTime above
container_key: Groups timeline reports (e.g. /playQueues/123).
guid: Global unique identifier for the item.
play_queue_id: Identifies the play queue itself (distinct from playQueueItemID).
url: Alternative to key/ratingKey (legacy).
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| url | No | ||
| guid | No | ||
| time | No | ||
| state | No | ||
| offline | No | ||
| updated | No | ||
| duration | No | ||
| bandwidth | No | ||
| continuing | No | ||
| rating_key | No | ||
| time_stalled | No | ||
| buffered_size | No | ||
| buffered_time | No | ||
| container_key | No | ||
| play_queue_id | No | ||
| play_queue_item_id | No | ||
| time_to_first_frame | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, destructiveHint=false, and idempotentHint=true, and the description does not contradict them. It adds useful field-level behavioral context such as sync-client semantics, 'Omit if computed by bufferedSize', and 'Sent only on the first playing timeline request', but it does not disclose overall side effects, required auth context, or typical frequency of calls.
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 efficiently structured: a one-line purpose, the endpoint, then a parameter list where each entry earns its place by adding semantics not present in the schema. It is necessarily long due to 18 parameters, but a minor typo and the absence of a concise high-level 'what and when' sentence keep it from being excellent.
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?
Parameter semantics are thoroughly covered and an output schema exists, so return-value expectations are presumably handled. However, with 0 required parameters, the description never states which fields are needed for a valid timeline report, when the call should be made, or how it relates to sibling playback control tools. That leaves meaningful ambiguity for correct invocation.
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 is the only meaningful documentation for all 18 parameters. It provides units (ms, seconds, kbps), conditional relationships between fields, sync-client special cases, and legacy alternatives, going far beyond the sparse JSON 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 states a specific verb and resource: 'Report media timeline' with the endpoint 'POST /:/timeline', and the parameter list makes clear this is a playback-timeline submission. It is identifiable as a distinct tool, though it does not explicitly contrast itself with sibling playback-control tools such as create_player_playback_set_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?
There is no guidance on when to use this tool versus alternatives. The description does not explain that this is the periodic client-to-server playback progress report, nor does it mention exclusions or relationships to the many sibling create_player_playback_* tools. The agent must infer usage from the parameter semantics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_passwordBIdempotent
Change Password.
POST /users/password
| 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 annotations already indicate non-read-only, non-destructive, idempotent behavior. The description adds no behavioral context beyond the bare action: no authentication requirements, no side effects, no error conditions, or rate limits. It does not contradict the annotations, but it does not add value either.
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, using only two short phrases. It front-loads the action and includes the HTTP method/path. No wasted words, though it is so brief that it borders on under-specification rather than fine conciseness.
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 password-change operation, the description omits essential context such as which user is affected, whether authentication is required, and what data must be sent in the request. The empty schema and sparse description leave an agent uncertain about invocation details. The output schema existence does not compensate for this missing 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 input schema has zero properties, so the baseline is 4 as specified for 0-parameter tools. The description does not need to explain parameters, and the empty schema is consistent. However, there is no indication that a request body might be required, which could be a hidden gap, but within the given definition the semantics are clear.
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 a specific action and resource: 'Change Password.' with the endpoint POST /users/password. This is clear and unambiguous about the operation. It does not explicitly differentiate from siblings, but no other sibling clearly targets password changes, so it is sufficient.
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 about when to use this tool versus alternatives. There is no mention of typical use cases (e.g., changing the current user's password) or exclusions. An agent receives no help in selecting this tool over other user-related operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_signinCIdempotent
Get User Sign In Data.
POST /users/signin
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly=false, idempotent=true, and destructive=false; the description adds only the POST method and a payload-discovery hint. It does not explain what side effects signing in has (e.g., session creation, token issuance), and the word 'Get' slightly misrepresents the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded: purpose line, endpoint line, then parameter guidance. Every sentence earns a place, though the first line could be more precise.
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 one-parameter tool with annotations and an output schema, the schema-discovery instruction provides a minimally viable path to invocation. It remains incomplete on when to use the tool, what signing in does, and what the response represents beyond structured 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?
Schema coverage is 0% and the body parameter is an open additionalProperties object, so the description must compensate. It says 'body: Request payload' (a restatement) and tells the agent to read GET or /schema, which is useful but does not convey the actual fields or meaning of the payload.
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 names a resource ('User Sign In Data') and includes the endpoint path, so an agent can guess the target. But the verb 'Get' is vague and mismatched with the tool name 'create_users_signin' and the POST method, and no distinction is drawn from the many create_* siblings.
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 only guidance is to read the matching GET or /schema endpoint before supplying a body. There is no statement about when to use this tool versus create_home_users, create_auth_token, or other sign-in/auth alternatives, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_v2_user_webhooksCIdempotent
Add User Webhook.
POST /api/v2/user/webhooks
| 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?
Annotations already indicate mutation (readOnlyHint=false), idempotency (idempotentHint=true), and non-destructiveness (destructiveHint=false). The description adds only the HTTP method POST, which is consistent but does not disclose additional behavioral context like authentication requirements, side effects, or error conditions.
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 fluff: 'Add User Webhook' plus the endpoint. It is properly front-loaded, though the brevity borders on under-specification.
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 no parameters and an output schema present, the tool is structurally simple. However, the description doesn't clarify what a user webhook is or when to prefer this over create_webhooks or list_v2_user_webhooks, leaving a significant context gap for appropriate tool selection.
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 the baseline for this dimension is 4. The description doesn't need to explain parameters, and it doesn't – there is nothing to add.
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 states 'Add User Webhook' with a specific verb and resource, and includes the HTTP endpoint. It doesn't explicitly differentiate from sibling create_webhooks, but the v2_user scoping in the name provides some distinction.
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, use cases, or exclusions, leaving the agent to guess from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_webhooksBIdempotent
Add Webhook.
POST /webhooks
| 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 adds no behavioral context beyond what annotations already provide. It does not mention side effects, permissions, idempotency implications, or any caveats. Annotations (readOnlyHint: false, idempotentHint: true) already inform the agent about the write nature and idempotency, but the description itself contributes nothing additional.
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 both lines earning their place: the first states the purpose, the second gives the HTTP verb and path. It is front-loaded and wastes no 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?
Despite having no parameters and an output schema, the description lacks crucial context about what a webhook is, how it behaves, or when to use this tool over similar ones. An agent would have to infer all of this from the name alone, which is risky in a large API surface.
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 Serum sehingga baseline is 4. With no parameters to document, the description does not need to compensate for missing schema details, and the endpoint 'POST /webhooks' is the only relevant call 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 states a clear verb and resource: 'Add Webhook.' This is specific enough to know the tool creates webhooks and is not a listing or deletion. However, it does not differentiate from sibling tools like create_v2_user_webhooks or list_webhooks, though the name itself mostly does.
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?
There is no guidance on when to use this tool versus alternatives. The description simply states an action and the HTTP endpoint, with no mention of prerequisites, typical use cases, or which sibling tool might be more appropriate (e.g., create_v2_user_webhooks for user-scoped webhooks).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_activities_by_activity_idADestructiveIdempotent
Cancel a running activity.
DELETE /activities/{activityId}
Args: activity_id: The UUID of the activity to cancel.
| Name | Required | Description | Default |
|---|---|---|---|
| activity_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, covering safety and mutation semantics. The description adds slight context with 'Cancel a running activity', implying this affects an in-progress operation. However, it doesn't clarify whether the activity is actually deleted from history, whether it can be resumed, or what side effects cancellation might trigger (e.g., stopping a transcode or download). With annotations carrying the safety burden, a 3 is fair.
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 compact and efficient. The first line delivers the core semantic ('Cancel a running activity'), followed by the endpoint and a brief Args block. No wasted words. The Args section is somewhat redundant with the schema but acceptable given it re-uses the docstring convention. Slight deduction for redundancy of repeating the parameter in docstring format when schema exists.
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 single-parameter, destructive, idempotent operation with an output schema present, the description covers the essentials. An agent knows what to call, what parameter to supply, and what effect to expect. Gaps include: what happens if the activity is already finished or doesn't exist, and whether cancellation returns the activity state or an empty response. The output schema partially covers return values. This is adequate for the tool's low complexity.
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%, meaning the schema provides no description for activity_id beyond 'type: string' and 'title: Activity Id'. The description compensates by explaining exactly what the parameter is: 'The UUID of the activity to cancel.' This adds real semantic value beyond the bare schema. Given the low coverage, the description's parameter explanation is sufficient for an agent to populate it correctly.
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 a clear verb and resource: 'Cancel a running activity.' This is specific and distinct from sibling tools. The description also includes the HTTP endpoint. However, the term 'cancel' differs from the tool name's 'delete' — the description clarifies that deleting an activity means canceling it, which adds value. It doesn't explicitly differentiate from list_activities or other activity-related siblings, but the purpose is 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?
The description implies usage: cancel an activity when it is running. It doesn't explicitly state when NOT to use it or name alternatives. There are no sibling tools with similar naming patterns for activities cancellation, so no explicit routing is needed. The openWorldHint annotation suggests the agent should explore, but the description is minimal on situational guidance. Adequate but minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_butlerADestructiveIdempotent
Stop all Butler tasks.
DELETE /butler
| 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?
Annotations already mark destructiveHint=true and readOnlyHint=false, and the description aligns with them. It adds the useful semantic of 'stop' rather than just 'delete', but does not disclose side effects, whether running tasks are cancelled, or any confirmation behavior. No contradiction with annotations.
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 short and front-loaded: a one-sentence purpose plus the endpoint line. No filler, and the endpoint adds useful operational detail without bloat.
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 destructive operation with output schema and safety annotations, the description is mostly sufficient. It names the full scope ('all tasks') and the operation; the main gap is lack of context about what Butler tasks are and the targeted alternative.
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 baseline 4 applies. The phrase 'all Butler tasks' also reinforces why no target parameter 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?
Clearly states the action 'Stop' and the exact resource ('all Butler tasks'). The word 'all' differentiates it from the sibling delete_butler_by_butler_task, which targets a single task, and the endpoint line confirms the DELETE verb.
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 delete_butler_by_butler_task, list_butler, or create_butler. The only hint is the word 'all', but there is no explicit when/when-not or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_butler_by_butler_taskADestructiveIdempotent
Stop a single Butler task.
DELETE /butler/{butlerTask}
Args: butler_task: The task name
| Name | Required | Description | Default |
|---|---|---|---|
| butler_task | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is clear. The description adds little behavioral context beyond the act of stopping, but it does not contradict the annotations.
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 compact and front-loaded with the core meaning in the first sentence. The endpoint line and Args block are minimal and directly useful, with no filler.
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 one-parameter delete operation with an output schema and annotations covering safety, this is nearly complete. The main missing piece is explicit guidance on where task names come from (e.g., list_butler) or how this differs from delete_butler.
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 says butler_task is 'the task name', which is only slightly more explicit than the schema's 'Butler Task' title. It provides no format, example, or guidance on how to discover valid task names.
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 ('Stop') and the resource ('a single Butler task'), plus the exact HTTP endpoint. The word 'single' distinguishes it from bulk-sibling delete_butler, and the parameter is named in the path.
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 when to use the tool: to stop one Butler task by name. However, it does not explicitly mention alternatives or when NOT to use it, such as pointing to delete_butler for stopping all tasks. This is adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_download_queue_by_queue_id_items_by_item_idCDestructiveIdempotent
Delete download queue items.
DELETE /downloadQueue/{queueId}/items/{itemId}
Args: queue_id: The queue id item_id: The item id
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ||
| queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only repeats the destructive nature already captured by destructiveHint=true and readOnlyHint=false. It adds no detail about side effects, irreversibility, batch behavior, or error handling, though it does not contradict the annotations.
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 front-loaded with the core purpose, but the endpoint line is largely redundant with the tool name and the Args section adds no information beyond the schema. It is not bloated, but it contains filler rather than every line 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?
With annotations and an output schema present, this is minimally viable: an agent can infer the HTTP delete action and required parameters. However, it lacks parameter semantics, any pointer to where item IDs come from, and no mention of batch deletion behavior, leaving clear gaps for correct invocation.
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%, and the 'Args' section merely repeats the parameter names as 'The queue id' and 'The item id'. It does not clarify that item_id is an array, what the element values should be, or how to obtain valid queue/item IDs.
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 a specific action ('Delete') on a specific resource ('download queue items') and includes the exact HTTP DELETE endpoint. It is clear, but it does not explicitly differentiate itself from sibling tools like the get or restart download-queue endpoints, so it falls just short of full differentiation.
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 about when to use this tool instead of alternatives such as get_download_queue_by_queue_id_items, create_download_queue_by_queue_id_items_by_item_id_restart, or other queue-related delete tools. The only implied usage context is the verb 'Delete', with no exclusions, prerequisites, or recommended workflows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_home_users_by_user_idADestructiveIdempotent
Delete Home User.
DELETE /home/users/{userId}
Args: user_id: The unique identifier of the user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry destructiveHint=true and readOnlyHint=false, and the description's 'Delete' is consistent with them. The description adds no extra behavioral context beyond the endpoint, such as side effects, permanence of deletion, or required authorization. No contradiction with annotations.
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 three short lines with a clear structure: operation, HTTP path, and argument. Every line earns its place and there is no redundant 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?
For a single-parameter delete operation with output schema and annotations covering the destructive/read-only profile, the description includes the endpoint and arg meaning. It lacks a broader usage context (e.g., what happens to the user's data), but is otherwise sufficient for an agent to call it correctly.
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 provides a one-line arg explanation ('The unique identifier of the user'), which adds some meaning beyond the bare schema type and title. However, this is generic and does not specify the ID's source, format, or context, so it only partially compensates.
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 'Delete Home User' which is a specific verb and resource, and includes the HTTP endpoint 'DELETE /home/users/{userId}'. This clearly differentiates it from sibling create/update/list home user 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. It does not mention that it is destructive or irreversible, nor does it reference related operations like update_home_users_by_user_id or delete_sharings_by_user_id. The 'when to use' is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_hubs_sections_by_section_id_manageBDestructiveIdempotent
Reset hubs to defaults.
DELETE /hubs/sections/{sectionId}/manage
Args: section_id: The section ID for the hubs to reorder
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=false and destructiveHint=true, so the destructive nature is covered by structured data. The description only restates the reset behavior and adds no extra context such as irreversibility, permission requirements, or side effects beyond what the annotations already declare.
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 the core message is front-loaded in the first sentence. The endpoint line is useful orientation, and there is little unrelated filler. It is concise, though it leaves out important comparative guidance that would justify a higher score.
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 single-required-parameter tool with an output schema and destructive annotations, the description is minimally sufficient: the agent knows the resource, the action, and the parameter. It is not fully complete because it does not state exactly what gets reset or what consequences follow, but the structured annotations cover part of that burden.
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 for the parameter's meaning. It does say section_id is 'The section ID for the hubs to reorder', but that wording conflicts with the described reset action and fails to clarify that this section's managed hubs are being reset to defaults. This ambiguity makes the parameter guidance only minimally useful and arguably misleading.
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 opening phrase 'Reset hubs to defaults' states a concrete verb and resource, and the endpoint 'DELETE /hubs/sections/{sectionId}/manage' reinforces the specific operation. It is distinguishable from the sibling create_, get_, and update_ variants of the same endpoint. The later phrase 'hubs to reorder' slightly muddles the reset semantics, so it does not earn a perfect score.
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 when to use the tool: when the intent is to reset hubs to defaults. However, it never explicitly contrasts with closely related siblings like update_hubs_sections_by_section_id_manage_move or update_hubs_sections_by_section_id_manage_by_identifier, so the agent is left to infer the correct choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_hubs_sections_by_section_id_manage_by_identifierADestructiveIdempotent
Delete a custom hub.
DELETE /hubs/sections/{sectionId}/manage/{identifier}
Args: section_id: The section ID for the hubs to change identifier: The identifier of the hub to change
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | ||
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish destructiveHint=true, readOnlyHint=false, and idempotentHint=true. The description only adds 'custom hub' scope and restates the DELETE verb; it does not describe consequences, permissions, or invalid inputs, so its incremental behavioral information is modest.
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?
Terse and front-loaded: the purpose appears in the first sentence, followed by one endpoint line and two short parameter lines. No filler or marketing language.
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 straightforward two-parameter delete with annotations covering destructiveness/idempotency and an output schema present, this is mostly complete for invoking the call. The main gap is lack of guidance on which sibling to contrast with, which is already penalized under usage guidelines.
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 Args lines are the only parameter documentation. They explain each parameter's role at a high level ('section ID for the hubs to change', 'identifier of the hub to change'), but they don't offer format constraints, where the identifier comes from, or how to discover valid values.
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 opens with a specific verb and object: 'Delete a custom hub.' The endpoint and args reinforce that this removes one hub by section and identifier, which separates it from the broader hub-management siblings enough for basic identification.
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 given about when to choose this tool over delete_hubs_sections_by_section_id_manage, update_hubs_sections_by_section_id_manage_by_identifier, or get_hubs_sections_by_section_id_manage. An agent must infer from the name that this deletes a specific managed hub.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_library_cachesBDestructiveIdempotent
Delete library caches.
DELETE /library/caches
| 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?
Annotations already carry the safety profile (readOnlyHint=false, destructiveHint=true, idempotentHint=true) and the description is consistent with them, so no contradiction. The description adds the specific scope (library caches) and the endpoint, but does not disclose side effects such as whether caches regenerate on demand, whether active streams are disrupted, or whether disk space is reclaimed.
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?
One tight sentence followed by the HTTP endpoint. The action is front-loaded, there is no filler, and every element 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?
For a parameterless call with annotations and an output schema present, the description is nearly sufficient. The gap is that 'library caches' is undefined (thumbnail caches? search indexes? metadata caches?) and no consequence or regeneration behavior is stated, which matters because this is a destructive operation affecting the whole library.
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 takes zero parameters, so there is nothing the description needs to add beyond what the schema implies; the 0-parameter baseline of 4 applies. The endpoint 'DELETE /library/caches' effectively communicates that the call is fully specified with no arguments.
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 a specific verb and resource ('Delete library caches') and reinforces it with the exact endpoint 'DELETE /library/caches'. This distinguishes it from the many section- and metadata-scoped delete_library_* siblings, though it never defines what 'caches' encompasses, so it stops just short of a 5.
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?
There is no guidance on when to invoke this tool versus alternatives: no trigger conditions (e.g., freeing disk space, clearing stale artwork), no prerequisites, and no mention of when a section-scoped cache operation would be more appropriate. Among dozens of delete_library_* siblings, nothing helps an agent choose this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_library_metadata_by_idsBDestructiveIdempotent
Delete a metadata item.
DELETE /library/metadata/{ids}
Args: ids: Comma-separated list of IDs proxy: Whether proxy items, such as media optimized versions, should also be deleted. Defaults to false.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| proxy | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false and destructiveHint=true, so the destructive nature is covered. The description adds useful context around the proxy parameter, explaining that it controls deletion of proxy items like media optimized versions, but it does not disclose broader consequences such as whether deletion is permanent or what happens to associated media files beyond proxy items.
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 compact and well-structured: a one-line summary, the HTTP endpoint, and concise argument definitions. Every sentence adds useful information, and there is no filler or redundancy with the schema.
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 small two-parameter destructive operation with an output schema, the description covers the main invocation details: endpoint, id format, and proxy behavior. It is not fully complete because it lacks alternative tool routing and leaves the exact accepted proxy value format unresolved, but it is adequate for a basic call.
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 carries the parameter documentation burden. It explains that ids is a comma-separated list and that proxy controls whether proxy items are deleted, which is valuable. However, the proxy parameter is typed as string/null in the schema while the description presents it as a boolean-like 'Whether' and says it defaults to false, while the schema default is null, leaving accepted values ambiguous.
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 a clear verb and resource: 'Delete a metadata item' with the DELETE /library/metadata/{ids} endpoint. It distinguishes this from the many sibling library tools by focusing on the metadata item resource rather than sections, streams, or markers, though the singular 'item' slightly underrepresents the comma-separated multi-ID capability.
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 given about when to use this tool versus alternatives such as delete_library_metadata_by_ids_media_by_media_item or delete_library_metadata_by_ids_marker_by_marker. The endpoint and name imply the scope, but the description does not state exclusions or provide conditional routing advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_library_metadata_by_ids_marker_by_markerBDestructiveIdempotent
Delete a marker.
DELETE /library/metadata/{ids}/marker/{marker}
Args: ids: Comma-separated list of IDs marker: The marker identifier
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| marker | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with the annotations: destructiveHint is true and idempotentHint is true, and "Delete a marker" aligns with that. However, it adds no behavioral context beyond the annotations, such as whether the deletion is permanent, affects multiple items, or has 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 short, front-loaded with the core action, and organized with an endpoint line and an Args section. It is economical, although the brevity contributes to missing usage and behavior guidance.
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 delete operation with annotations and an output schema, the description is minimally viable. It lacks context about what a marker is, which the agent may need to distinguish this from sibling tools, and provides no caution or alternative routing. It is adequate but not 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 schema has 0% description coverage, so the description must compensate. It does clarify the ids parameter as a comma-separated list of IDs and identifies marker as the marker identifier. This is useful but minimal; the exact scope of the IDs and the expected format/value of the marker identifier are not explained.
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 a clear verb and resource: "Delete a marker." The HTTP endpoint further specifies that deletion applies to a marker under library metadata IDs. It is distinguishable from the sibling create_library_metadata_by_ids_marker and update_library_metadata_by_ids_marker_by_marker by the verb, though it could more explicitly say the marker is removed from the specified metadata items.
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 given on when to use this tool versus its create/update counterpart, nor does it mention any conditions, prerequisites, or alternatives. The agent must infer usage solely from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_library_metadata_by_ids_media_by_media_itemBDestructiveIdempotent
Delete a media item.
DELETE /library/metadata/{ids}/media/{mediaItem}
Args: ids: Comma-separated list of IDs media_item: The mediaItem proxy: Whether proxy items, such as media optimized versions, should also be deleted. Defaults to false.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| proxy | No | ||
| media_item | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is covered. The description adds genuine value by explaining proxy behavior — proxies are 'media optimized versions' and the default is 'false' — which goes beyond the annotations. It does not disclose wider consequences, such as what happens if the last media item of a record is deleted or whether the operation is reversible.
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?
Compact and front-loaded: a one-line purpose, the endpoint, and a three-line Args block. The endpoint line is slightly redundant with the tool name, and 'media_item: The mediaItem' is wasted space, but overall every other line earns its place and there is no 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?
For a simple 3-string-parameter tool with an output schema and annotations covering the destructive profile, the core call mechanics are mostly present: endpoint, required params, and proxy behavior. The gaps are the unexplained media_item identifier, zero guidance on choosing among the many similar delete_library_* tools, and no statement of cascading effects. Adequate for execution, but incomplete for confident routing.
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 carries the full burden. It explains ids ('Comma-separated list of IDs') and proxy (meaning plus default) well, but media_item is described only as 'The mediaItem' — a tautology adding nothing beyond the parameter name. Notably, the description's 'Defaults to false' for proxy also clarifies the schema's null default, which is helpful.
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?
States a clear verb+resource: 'Delete a media item,' reinforced by the exact endpoint DELETE /library/metadata/{ids}/media/{mediaItem}. The name and path make clear this targets a media entry within a metadata record rather than the metadata record itself. It does not explicitly contrast with the sibling delete_library_metadata_by_ids, so full sibling differentiation is absent.
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 never tells an agent when to delete a media item here versus deleting the entire metadata record via delete_library_metadata_by_ids or removing streams via delete_library_streams_by_stream_id_ext. It is purely descriptive with no decision criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_library_sections_all_refreshBDestructiveIdempotent
Stop refresh.
DELETE /library/sections/all/refresh
| 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 annotations already indicate destructive, idempotent, and not read-only. The description adds no extra behavioral context about what stopping the refresh involves, such as whether it cancels already-running refreshes, the scope of 'all', or potential side effects. It merely repeats the core action.
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 two-line snippet with the action followed by the endpoint. No filler or irrelevant text. It is appropriately minimal for a no-parameter, single-purpose tool.
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 tool is simple, but the description does not state that the refresh applies to all library sections, which is a meaningful distinction from the sibling delete_library_sections_by_section_id_refresh. While the URL contains 'all', the natural-language description omits this scope. Output schema exists, so no need to explain return values, but the missing scope detail leaves an agent less informed.
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?
Since there are zero parameters and schema coverage is 100%, the baseline of 4 is appropriate. The description has nothing to add about parameter meaning; the tool takes no arguments.
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 'Stop refresh' as the verb-action, and the accompanying endpoint clarifies the resource as the refresh endpoint for all library sections. However, it does not explicitly name or distinguish from the similar sibling delete_library_sections_by_section_id_refresh, and the phrase 'all' only appears in the URL, not in the natural-language description.
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 the section-specific deletion or the create/refresh triggers. The description is a bare command with no discussion of use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_library_sections_by_section_idADestructiveIdempotent
Delete a library section.
DELETE /library/sections/{sectionId}
Args: section_id: The section identifier async_: If set, response will return an activity with the actual deletion process. Otherwise request will return when deletion is complete
| Name | Required | Description | Default |
|---|---|---|---|
| async_ | No | ||
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover destructive and non-read-only behavior. The description adds meaningful behavioral context by explaining the async_ parameter: setting it returns an activity representing the deletion process, while omitting it makes the request return only after deletion completes. This goes beyond the structured annotations without contradicting them.
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 compact and front-loaded: the action appears first, followed by the endpoint and parameter explanations. There is no filler or redundant restatement of the schema.
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, rich annotations, and presence of an output schema, the description is largely complete: it explains the endpoint, both parameters, and the async behavior. It does not compare against closely-related sibling delete operations or call out irreversibility explicitly, but the destructiveHint annotation and output schema mitigate those omissions.
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 carries the burden of explaining parameters. It clarifies section_id as the section identifier and gives a genuinely useful behavioral explanation of async_, including what happens when it is set versus unset. It could specify accepted async_ string values more explicitly, but the provided semantics are strong.
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 opens with the direct, specific action 'Delete a library section' and reinforces it with the endpoint DELETE /library/sections/{sectionId}. This clearly identifies the resource and operation, and the endpoint makes it distinguishable from sibling tools that delete sub-resources within a section.
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 given about when to use this tool versus alternatives such as deleting a collection, indexes, or intros within a library section. The description states the operation but provides no context for selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_library_sections_by_section_id_collection_by_collection_idBDestructiveIdempotent
Delete a collection.
DELETE /library/sections/{sectionId}/collection/{collectionId}
Args: section_id: Section identifier collection_id: Collection Id
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes | ||
| collection_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description's 'Delete' aligns with these. However, the description adds no additional behavioral context, such as whether the deletion is permanent, affects disk data, or requires specific permissions. It neither contradicts nor meaningfully extends the annotation-provided information.
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 front-loaded with 'Delete a collection.' followed by the endpoint and argument list. It contains no filler, and the HTTP route is a useful addition. However, the Args section duplicates schema titles, which slightly reduces efficiency.
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 (two integer parameters) and the presence of annotations and an output schema, the description is minimally adequate. However, it lacks parameter semantics and usage guidance, which are not fully covered by structured fields. An agent could infer behavior from the name, but the description alone does not provide complete 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?
Schema description coverage is 0%, so the description must compensate. It merely restates the parameter names as 'Section identifier' and 'Collection Id', which are identical to the schema titles, adding no meaning about the relationships or how these IDs are used. The HTTP path shows placeholders but no semantic depth.
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 'Delete a collection.' which is a specific verb and resource. The included HTTP path further clarifies that the collection belongs to a specific library section, distinguishing it from sibling delete operations like delete_library_sections_by_section_id or other collection-related 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 given on when to use this tool versus alternatives, such as when to create, update, or list collections. It does not mention that this is destructive or provide context about prerequisites or consequences. The only usage signal is the tool name itself, which is not explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_library_sections_by_section_id_indexesDDestructiveIdempotent
Delete section indexes.
DELETE /library/sections/{sectionId}/indexes
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations include destructiveHint=true enumerating this as a destructive operation, which is disclosed. However, the description adds no behavioral context beyond the annotations, such as what indexes are, whether the operation is reversible, or any side effects. Since the description simply repeats the annotation's destructive nature without elaboration, it provides minimal added 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 extremely concise, consisting of a one-line summary and a docstring with the HTTP path. The summary is front-loaded and the path is redundant for an agent already aware of the tool name. The docstring style is efficient but lacks explanatory content; it is appropriately short but does not earn its place by adding detail.
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 destructive and has an output schema, the description provides minimal context. It does not explain what an index is, what the effect of deletion is, or what the response contains. While the output schema may cover return values, the description omits necessary guidance for safe invocation, such as confirming the section is not in use or that indexes are rebuildable.
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 only parameter is section_id, and the input schema already describes it as an integer with title 'Section Id'. The description includes a docstring line 'section_id: Section identifier', which adds no meaningful semantics beyond the schema. Schema description coverage is 0%, but with a single self-explanatory parameter, the description fails to enrich understanding (e.g., does not clarify that this is the ID of the section whose indexes are being deleted).
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 'Delete section indexes' is terse but states a clear verb and resource. However, it does not explain what 'section indexes' are in this context, and it does not differentiate from the close sibling 'delete_library_sections_by_section_id' which deletes the entire section. The description is nearly a tautology of the tool name, providing minimal additional clarity.
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?
There is no guidance on when to use this tool versus alternatives. The description does not mention that this deletes only the indexes, not the section itself, nor does it reference any sibling tool. An agent cannot determine whether to use this tool or 'delete_library_sections_by_section_id' without additional inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_library_sections_by_section_id_introsCDestructiveIdempotent
Delete section intro markers.
DELETE /library/sections/{sectionId}/intros
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true, and the description's 'Delete' is consistent with those. However, the description adds no behavioral detail beyond the annotations—it does not say whether markers are permanently removed, whether the operation is reversible, or what side effects occur.
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 front-loaded: action first, then endpoint, then args. It has no filler, though the endpoint line is somewhat redundant with the tool name.
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 one-parameter delete operation with an output schema and clear annotations, the core call signature is documented. But the agent still lacks context on when intro markers apply and what the destructive operation entails, which matters given the destructiveHint annotation.
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 carries the burden, and it does list section_id as 'Section identifier.' This is minimal but confirms the argument's role, and the endpoint path also shows {sectionId} substitution. It adds only modest meaning over the schema's title and type.
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 opens with 'Delete section intro markers,' naming the verb and the specific resource, and the DELETE endpoint reinforces the action. It is clearly distinct from sibling tools that target the whole section or other sub-resources, though it does not explicitly clarify what an 'intro marker' is or position itself against siblings.
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?
There is no guidance on when to use this tool versus the many sibling delete tools, such as delete_library_sections_by_section_id or delete_library_metadata_by_ids_marker_by_marker. The description states only what the endpoint does, leaving the agent to infer the appropriate use case from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_library_sections_by_section_id_refreshCDestructiveIdempotent
Cancel section refresh.
DELETE /library/sections/{sectionId}/refresh
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry the behavioral profile (destructiveHint=true, readOnlyHint=false, idempotentHint=true) and the description does not contradict them. However, the description adds no behavioral context beyond restating 'Cancel' — it doesn't say what happens to an in-progress refresh, whether the call is safe when no refresh is running, or what state changes occur. With annotations present the bar is lower, but the description contributes essentially nothing beyond what the name and endpoint already convey.
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 minimal and front-loaded: a one-line purpose statement, followed by the endpoint and args. There is no waste or irrelevant detail. It is concise rather than bloated, though the brevity contributes to the thinness of the other dimensions.
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 one-parameter tool with an output schema and annotations present, the description is nearly adequate: it states the operation and identifies the sole parameter. The key gaps are the lack of comparison to delete_library_sections_all_refresh and the absence of any note about idempotency consequences. Nothing essential about making the call is missing, but the 'why/when' context is.
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, but the Args section only says 'section_id: Section identifier,' which merely restates the schema property title 'Section Id.' It doesn't explain how to obtain a section_id, what kind of section it refers to, or any constraints. For the single parameter, this is borderline tautological rather than additive.
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 a specific verb and resource: 'Cancel section refresh.' This disambiguates the otherwise ambiguous name 'delete...refresh' by clarifying that the operation cancels rather than deletes a refresh record. The endpoint path showing the targeted section is also included. It doesn't explicitly distinguish from the sibling delete_library_sections_all_refresh, but the single-parameter schema implies per-section scope.
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 given on when to use this tool versus alternatives. The description doesn't mention that create_library_sections_by_section_id_refresh starts a refresh, that get_library_sections_by_section_id_refresh checks refresh status, or that delete_library_sections_all_refresh cancels all refreshes at once. An agent is left to infer the appropriate context entirely from the tool name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_library_streams_by_stream_id_extCDestructiveIdempotent
Delete a stream.
DELETE /library/streams/{streamId}.{ext}
Args: stream_id: The id of the stream ext: This is not a part of this endpoint but documented here to satisfy OpenAPI
| Name | Required | Description | Default |
|---|---|---|---|
| ext | Yes | ||
| stream_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what annotations already declare (destructiveHint=true, idempotentHint=true, readOnlyHint=false). It does not describe irreversible effects, whether deletion is permanent, or any special handling. The note about ext being a placeholder is about parameter semantics, not tool 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 concise and structured with an endpoint line and Args section. It front-loads the action 'Delete a stream.' and avoids unnecessary verbosity, but the inclusion of the ext note adds minor clutter.
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 this is a destructive operation with annotations indicating destructiveness, the description is incomplete. It does not explain the impact of deleting a stream (e.g., whether it is permanent, what dependencies exist), nor does it provide usage context. The ext parameter is clarified, but the overall context for an agent to confidently invoke this tool is insufficient.
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 (0% coverage), so the description compensates by explaining stream_id as 'the id of the stream' and clarifying that ext is 'not a part of this endpoint but documented here to satisfy OpenAPI.' This is helpful, but the stream_id explanation is trivial and no additional context about how to obtain the ID is given.
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 'Delete a stream' and shows the endpoint path, giving a specific verb and resource. It distinguishes from siblings like get_library_streams_by_stream_id_ext and update_library_streams_by_stream_id_ext by the action, but does not elaborate on what deleting a stream entails.
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 such as update_library_streams_by_stream_id_ext or get_library_streams_by_stream_id_ext. It does not mention prerequisites, conditions, or side effects that would help an agent decide to invoke deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_livetv_dvrs_by_dvr_idBDestructiveIdempotent
Delete a single DVR.
DELETE /livetv/dvrs/{dvrId}
Args: dvr_id: The ID of the DVR.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructiveHint=true and idempotentHint=true, so the description doesn't need to repeat those. However, it adds no extra behavioral context—no mention of irreversible consequences, impact on associated recordings or lineups, or any required permissions. With the bar lowered by annotations, the description contributes nothing beyond the obvious action.
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 and front-loaded: 'Delete a single DVR' leads with the action and resource, followed by the HTTP path and an argument list. Every sentence serves a purpose, and there is no 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?
For a simple delete operation with a single parameter and an output schema, the description is minimally sufficient. However, it omits any caveats about destructive consequences (beyond annotations) or when this operation is appropriate relative to sub-resource deletions. Given the existence of related sibling tools, a brief note on scope would improve completeness, but it is not critically 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 description coverage is 0%, so the description must compensate. It only says 'The ID of the DVR,' which essentially restates the parameter name and type. It doesn't explain how to obtain a valid dvr_id, any format constraints, or relationship to other DVR-related resources. This is a minimal, nearly tautological explanation.
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 ('a single DVR'), and includes the HTTP endpoint for precision. It differentiates from sibling operations like delete_livetv_dvrs_by_dvr_id_devices_by_device_id by specifying the whole DVR, so the purpose is 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?
There is no guidance on when to use this tool versus the many related DVR operations (e.g., deleting devices, lineups, or reloading guide). The description simply states the action without mentioning conditions, prerequisites, or exclusions, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_livetv_dvrs_by_dvr_id_devices_by_device_idBDestructiveIdempotent
Remove a device from an existing DVR.
DELETE /livetv/dvrs/{dvrId}/devices/{deviceId}
Args: dvr_id: The ID of the DVR. device_id: The ID of the device to add.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes | ||
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry destructiveHint=true and readOnly=false; the description adds the HTTP DELETE line confirming this but nothing else of substance. Worse, the device_id arg is described as 'the ID of the device to add', contradicting the removal semantics.
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?
Three concise, front-loaded sections: one-sentence purpose, the HTTP endpoint, and the arg list. No filler; every line 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?
With an output schema present, return values needn't be covered. Params are explained, but consequences or prerequisites of the destructive removal aren't mentioned; the misleading 'add' wording is a completeness 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?
Schema coverage is 0%, so the description must carry the burden. dvr_id is explained adequately, but device_id's explanation ('to add') is wrong for a remove operation, which could mislead an agent.
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?
'Remove a device from an existing DVR' uses a specific verb and resource, clearly distinguishing it from siblings like get_livetv_dvrs_by_dvr_id, update_livetv_dvrs_by_dvr_id, and create_livetv_dvrs_by_dvr_id_channels_by_channel_tune.
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?
Usage is implied by the verb 'Remove' and resource 'device from DVR', but no explicit when-to-use vs alternatives or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_livetv_dvrs_by_dvr_id_lineupsBDestructiveIdempotent
Delete a DVR Lineup.
DELETE /livetv/dvrs/{dvrId}/lineups
Args: dvr_id: The ID of the DVR. lineup: The lineup to delete
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes | ||
| lineup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive and non-read-only, so the description does not need to restate that. It does identify the destroyed object as a DVR Lineup, which aligns with destructiveHint, but it adds no further side effects, reversibility, or authorization 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?
The description is compact and well-structured: a one-sentence purpose, the endpoint, and a short argument list. The main action is front-loaded and there is no filler.
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 simple two-parameter destructive operation plus annotations and an output schema, the core call is adequately specified. The missing usage guidance and the vague lineup parameter leave enough ambiguity that an agent may not know what value to supply.
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 carry parameter meaning. It usefully explains dvr_id as 'The ID of the DVR', but lineup is only glossed as 'The lineup to delete'—a near-tautology that does not explain its format, how to obtain it, or why it is optional with a null 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 states the specific action ('Delete a DVR Lineup') and provides the exact DELETE endpoint, making the verb and resource unambiguous. It does not explicitly name sibling tools, so it falls short of the strongest sibling-differentiating score.
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 given for when to use this tool over siblings such as update_livetv_dvrs_by_dvr_id_lineups or delete_livetv_dvrs_by_dvr_id. The only usage cue is the action verb itself, with no exclusions, prerequisites, or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_livetv_dvrs_by_dvr_id_reload_guideADestructiveIdempotent
Tell a DVR to stop reloading program guide.
DELETE /livetv/dvrs/{dvrId}/reloadGuide
Args: dvr_id: The ID of the DVR.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=true, so the safety profile is structurally covered. The description adds the state-change semantics ('stop reloading program guide'), which is consistent with those hints, but contributes no extra behavioral context such as side effects, permanence of the stop, or DVR state prerequisites. No contradiction with annotations is present.
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 tight: one-sentence purpose first, then the endpoint and argument. Information is front-loaded and there is zero filler. The endpoint line is redundant given the tool name but harmless and aids confirmation.
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?
An output schema exists, so return values are covered structurally, and annotations cover the safety profile. The only meaningful gap is the absence of routing to the inverse sibling create_livetv_dvrs_by_dvr_id_reload_guide. For a one-parameter, well-annotated action, the description is otherwise 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 carries the burden. The Args section says 'dvr_id: The ID of the DVR,' which is minimal and largely restates the parameter name but does confirm that the integer identifies the target DVR. For a single required parameter this is adequate, though no guidance on how to discover valid DVR IDs (e.g., via list_livetv_dvrs) is 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?
The description states a specific verb and resource: 'Tell a DVR to stop reloading program guide.' The phrasing 'stop reloading' clearly contrasts with the sibling tool create_livetv_dvrs_by_dvr_id_reload_guide (start reloading), so an agent can distinguish this from its inverse without opening schemas. The DELETE endpoint is also included for confirmation.
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 given on when to use this tool versus alternatives. The sibling create_livetv_dvrs_by_dvr_id_reload_guide is the likely start-reload counterpart, but the description never mentions it, nor does it state any conditions, prerequisites, or when not to use this tool. Usage context must be inferred entirely from the word 'stop.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_livetv_sessions_by_session_idCDestructiveIdempotent
Delete Live TV Session.
DELETE /livetv/sessions/{sessionId}
Args: session_id: The session id
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, and the description's 'Delete' is consistent with them. However, the description adds no behavioral context such as consequences for the session, whether viewers are disconnected, or any prerequisites, so it contributes nothing beyond the annotations.
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 brief and front-loaded, with the action and endpoint in the first two lines. The Args block is somewhat redundant with the schema, but the overall size is appropriate for a simple one-parameter tool.
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 single-parameter destructive delete with annotations and an output schema, this is minimally viable: it states the action, endpoint, and parameter. However, it lacks guidance on when to use it, what the deletion does to active sessions, and any side effects, leaving notable gaps 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?
Schema description coverage is 0%, so the description needed to compensate, but it only repeats the schema ('session_id: The session id'). The URL path does clarify that session_id is a path parameter, but no format, source, or guidance for finding a valid Live TV session id is given.
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 'Delete Live TV Session' and includes the DELETE /livetv/sessions/{sessionId} endpoint, giving a specific verb and resource. It does not explicitly distinguish itself from sibling tools like get_livetv_sessions_by_session_id, but the delete action is unambiguous from the name and first sentence.
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 about when to use this tool versus alternatives. There is no mention of related session tools, when deletion is appropriate, or any exclusions, so an agent receives no routing help beyond the verb in the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_media_grabbers_devices_by_device_idCDestructiveIdempotent
Remove a device.
DELETE /media/grabbers/devices/{deviceId}
Args: device_id: The ID of the device.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true. The description adds no behavioral context beyond restating the action, such as whether the device's channels or associated data are also removed, or whether the operation succeeds on nonexistent IDs.
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, front-loads the action, and avoids fluff. The endpoint and argument line are useful though slightly redundant with the tool name and schema.
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 one-parameter delete with rich annotations and an output schema, the invocation is minimally covered: the endpoint and device_id are provided. But it lacks any context about side effects, irreversibility beyond the annotation, or which device domain is being affected, so an agent could confuse it with similar device-deletion siblings.
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 needed to explain the parameter meaning. It only says 'device_id: The ID of the device', which restates the schema property title without explaining how to obtain the ID, what kind of device is expected, or any format 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 says 'Remove a device' and provides the exact DELETE endpoint '/media/grabbers/devices/{deviceId}', so the verb and resource are clear. However, it does not explicitly distinguish this from the sibling delete_livetv_dvrs_by_dvr_id_devices_by_device_id, relying on the endpoint and tool name to carry the differentiation.
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?
There is no guidance on when to use this tool versus alternatives. It does not mention related tools such as update_media_grabbers_devices_by_device_id, delete_media_grabbers_devices_by_device_id_scan, or get_media_grabbers_devices_by_device_id, nor any preconditions for removing a device.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_media_grabbers_devices_by_device_id_scanBDestructiveIdempotent
Tell a device to stop scanning for channels.
DELETE /media/grabbers/devices/{deviceId}/scan
Args: device_id: The ID of the device.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is known. The description only restates the basic action without adding context such as whether an active scan is aborted, whether the device remains registered, or whether invoking this when no scan is running is a no-op. It does not contradict the annotations but adds no behavioral nuance.
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 front-loaded with its purpose statement. The HTTP method and path plus Args block are somewhat redundant with the tool name and input schema, but the overall length is minimal and every sentence is 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?
For a one-parameter cancel operation with annotations and an output schema, the core purpose is stated clearly enough for a basic call. However, it omits lifecycle context such as whether the scan must be actively running, whether the stop is asynchronous, and what happens to the device afterwards. It's minimally adequate, not fully 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?
With schema description coverage at 0%, the description needs to compensate for the schema's silence. The Args section says 'device_id: The ID of the device,' which essentially restates the parameter name and schema title without adding useful information like where to obtain the ID or whether the device must exist. The meaning is self-evident, so the low impact is mitigated, but the description still fails to add real value.
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 ('stop scanning') and identifies the target resource ('a device'), which clearly distinguishes it from the sibling that starts a scan (create_media_grabbers_devices_by_device_id_scan) and from deleting a device entirely. However, it doesn't explicitly name those alternatives, so it stops short of full differentiation.
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 use case is implied by the action phrase: if you need a device to stop scanning, this is the tool. But the description gives no explicit context such as 'cancels an in-progress scan' and no mention of alternatives like the scan-start sibling or the device-delete sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_media_grabbers_operations_by_operation_idADestructiveIdempotent
Cancel an existing grab.
DELETE /media/grabbers/operations/{operationId}
Args: operation_id: The ID of the operation.
| Name | Required | Description | Default |
|---|---|---|---|
| operation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose destructiveHint and idempotentHint, so the description carries a lower burden. It adds only the 'existing grab' constraint and no further detail on consequences, failure behavior, or permission requirements; no contradiction with annotations.
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 compact: a one-line purpose statement followed by the endpoint and argument definition. Every element earns its place with no fluff or repetition beyond the minimal schema clarification.
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 one-parameter destructive action with full annotations and an output schema, the description supplies the key facts: what it does, the endpoint, and the single required input. It does not explain what a 'grab' is or where to obtain operation IDs, but the low complexity and structured metadata make this 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?
Schema description coverage is 0%, so the description must compensate, but it only says 'operation_id: The ID of the operation,' which repeats the parameter name and schema title. It adds no format, source, or usage detail for obtaining the operation ID.
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 opens with 'Cancel an existing grab,' a specific verb and resource that clearly states the tool's function. The DELETE path and resource name make it distinguishable from sibling delete_media_grabbers_devices_by_device_id/scan tools, which target devices rather than operations.
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, and no alternatives are named. The purpose sentence implies use for cancelling grabs, but it does not explain how this relates to other media-grabber operations such as device scans or subscriptions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_media_providers_by_providerBDestructiveIdempotent
Delete a media provider.
DELETE /media/providers/{provider}
Args: provider: The ID of the media provider to delete
| Name | Required | Description | Default |
|---|---|---|---|
| provider | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that this is destructive (destructiveHint: true) and not read-only. The description adds no behavioral context beyond the bare word 'Delete' and the endpoint; it does not explain irreversibility, side effects on dependent objects, permissions, or what destruction entails. With annotations present, the bar is lower, but the description still adds nothing beyond them.
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 compact and front-loaded with the core action. The Args section is slightly redundant with the input schema, and the endpoint line largely mirrors the tool name, but there is no filler or wasted prose. It is appropriately sized for a one-parameter delete operation.
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 one-parameter delete operation with strong annotations and no stated output schema content, the description covers the essential call shape. It falls short on context such as what happens after deletion, whether deletion is permanent, or how this relates to provider management workflows. It is adequate but not richly 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 must clarify the parameter, and it does state that provider is 'The ID of the media provider to delete.' This adds meaning beyond the schema's bare type and title. However, it provides no format, examples, or further constraints, so it is only minimally compensatory.
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 and object: 'Delete a media provider.' This clearly distinguishes it from sibling tools like delete_media_subscriptions_by_subscription_id and delete_media_grabbers_devices_by_device_id. The endpoint line reinforces the exact resource and HTTP method.
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 is implied by the verb and resource—use this when you need to delete a media provider—but there is no explicit statement about when to use it versus related tools like create_media_providers or list_media_providers. It gives no exclusions or alternatives, but for a simple delete operation the purpose largely carries the usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_media_subscriptions_by_subscription_idBDestructiveIdempotent
Delete a subscription.
DELETE /media/subscriptions/{subscriptionId}
Args: subscription_id: The unique identifier of the subscription
| Name | Required | Description | Default |
|---|---|---|---|
| subscription_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare destructiveHint=true and idempotentHint=true, so the description's 'Delete a subscription' adds no behavioral context beyond what is already structured. It does not mention side effects, irreversibility, cascading deletions, or access requirements, though the annotations cover the core safety profile.
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 compact and front-loaded: the action is stated first, followed by the endpoint and parameter documentation. Every line serves a purpose with no filler.
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 single-parameter deletion tool, the description and annotations together provide enough to invoke it correctly: the operation, the endpoint, the required parameter, and the destructive/idempotent hints. A short note on what happens after deletion or when the deletion is not appropriate would improve completeness, but it is not a critical 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?
With 0% schema description coverage, the description compensates minimally by explaining subscription_id as 'The unique identifier of the subscription.' This adds some meaning beyond the schema's 'Subscription Id' title and integer type, but it is generic and offers no guidance on where the ID comes from or how to obtain it.
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 a clear, specific verb and resource: 'Delete a subscription.' It unambiguously identifies the operation as a deletion of a single media subscription, distinguishing it from sibling tools like get_media_subscriptions_by_subscription_id and update_media_subscriptions_by_subscription_id.
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 context is provided. The description does not state when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. The intended use is only implied by the word 'Delete.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_playlistsCDestructiveIdempotent
Delete Playlist.
DELETE /playlists
Args: rating_key: The rating key of the playlist to delete.
| Name | Required | Description | Default |
|---|---|---|---|
| rating_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true. The description adds no extra behavioral context such as whether playlist items are deleted, whether the deletion is permanent, or any authorization requirements. It adds no value beyond the annotations.
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 terse with a clear Args section. Every sentence is functional, but the lack of substance is not compensated by structural elegance. It is concise in length at the expense of completeness, so it earns a 4 rather than a 5.
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?
This is a destructive operation but the description lacks any contextual details like cascade behavior, authorization, or the distinction from the path-based sibling. It also does not describe any output or error conditions, leaving an agent with ambiguous guidance for a potentially destructive call.
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 zero description coverage for rating_key, so the description's line 'The rating key of the playlist to delete' is the only clarification. It correctly identifies the parameter's meaning but does not explain why it is optional, how to obtain it, or whether it is required for a successful delete.
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 operation explicitly ('Delete Playlist') with the resource and the rating_key argument. However, it does not differentiate from the sibling delete_playlists_by_playlist_id, which likely performs a nearly identical action, so it misses the distinction that would earn a 5.
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 gives no guidance on when to use this tool versus the sibling delete_playlists_by_playlist_id, nor any prerequisites or side conditions. The only clue is the named parameter, but no alternative or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_playlists_by_playlist_idADestructiveIdempotent
Delete a Playlist.
DELETE /playlists/{playlistId}
Args: playlist_id: The ID of the playlist
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as destructive and not read-only; the description adds only the minimal fact that a playlist is the destroyed resource and exposes the DELETE verb. It does not disclose permanence, cascading deletion of playlist items, authentication needs, or any behavior beyond the idempotentHint and destructiveHint annotations.
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 compact and front-loaded: the one-line purpose appears first, followed by the endpoint and a single argument. There is no filler or repeated marketing language.
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 one-parameter destructive call with annotations and an output schema present, the description supplies the endpoint and the only required argument, so invocation is unambiguous. It lacks notes on irreversibility or auth, but the annotations already flag the destructive nature and no critical invocation detail is missing.
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 already gives the property name 'playlist_id', type integer, and title 'Playlist Id', and the description's Args block simply restates that playlist_id is 'The ID of the playlist'. This provides a natural-language parameter description but adds no extra semantics such as where to find the ID, ID constraints, or examples; with a single parameter, the redundancy is acceptable.
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 opens with the clear imperative 'Delete a Playlist' and ties it to the exact endpoint DELETE /playlists/{playlistId}. This distinguishes it from sibling tools that operate on playlist items or update playlists, because it names the playlist itself as the target.
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?
There is no guidance on when to prefer this tool over alternatives, no prerequisites such as ownership or authorization, and no exclusions. The only implied context is that it deletes a playlist by ID, which is not enough to route among the many playlist-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_playlists_by_playlist_id_itemsBDestructiveIdempotent
Clearing a playlist.
DELETE /playlists/{playlistId}/items
Args: playlist_id: The ID of the playlist
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive=true, readOnly=false, and idempotent=true, and the description's 'Clearing' wording and DELETE method align with those traits. The description adds minimal behavioral context beyond the annotations and does not mention side effects, authorization needs, or whether all items are removed.
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 compact and front-loads the core action and endpoint before the single argument. The Args section is somewhat redundant with the schema but does not add unnecessary bulk.
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 tool is simple with one parameter, an output schema, and strong annotations, so the minimal description is partially sufficient. However, the ambiguity between 'clearing a playlist' and 'deleting a playlist' plus the lack of usage guidance makes the definition incomplete for reliable selection and invocation in an agent 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?
Schema description coverage is 0%, so the description carries the burden of explaining playlist_id. It only restates 'The ID of the playlist,' which adds no meaning beyond the schema's property title and type, and provides no additional constraints or context.
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 a clear action ('Clearing a playlist') and provides the HTTP endpoint DELETE /playlists/{playlistId}/items, which indicates that the tool operates on playlist items rather than the playlist itself. However, it does not explicitly distinguish itself from sibling delete_playlists_by_playlist_id, so the differentiation is left to naming and endpoint inference.
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 such as delete_playlists_by_playlist_id or get_playlists_by_playlist_id_items. There is no mention of context, prerequisites, or exclusions, so an agent must infer usage entirely from the endpoint and tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_playlists_by_playlist_id_items_by_generator_idBDestructiveIdempotent
Delete a Generator.
DELETE /playlists/{playlistId}/items/{generatorId}
Args: playlist_id: The ID of the playlist generator_id: The generator item ID to delete.
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes | ||
| generator_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true, so the safety profile is covered. The description aligns with those annotations by stating 'Delete a Generator', but it adds little beyond what annotations and the endpoint already convey, such as permanence, side effects, or required permissions.
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 compact and front-loaded with the operation, followed by the endpoint and a terse Args list. The endpoint line is somewhat redundant with the tool name, but the overall structure is efficient and 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?
For a two-integer-parameter delete operation with an output schema and clear annotations, the description provides the essential identifiers. It could be more complete by explaining what a Generator is and how this differs from related playlist-item deletion tools, but nothing critical blocks a correct call.
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 carries the burden of explaining both parameters. It defines playlist_id as 'The ID of the playlist' and generator_id as 'The generator item ID to delete', which clarifies the role of each parameter beyond the bare schema 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 opens with 'Delete a Generator' and shows the exact DELETE endpoint, so the verb and resource are clear. It does not explicitly compare itself to sibling tools like delete_playlists_by_playlist_id_items, but the path unambiguously identifies the target generator item within a playlist.
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?
There is no guidance on when to use this tool versus alternatives such as delete_playlists_by_playlist_id_items, get_playlists_by_playlist_id_items_by_generator_id, or update_playlists_by_playlist_id_items_by_generator_id. The intended context must be inferred entirely from the endpoint path and name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_play_queues_by_play_queue_id_itemsCDestructiveIdempotent
Clear a play queue.
DELETE /playQueues/{playQueueId}/items
Args: play_queue_id: The ID of the play queue.
| Name | Required | Description | Default |
|---|---|---|---|
| play_queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint, idempotentHint, and readOnlyHint=false, so the safety profile is known. The description adds that the operation targets /items and 'clears' the queue, but it does not clarify whether the queue object itself is destroyed or just its contents, nor does it mention irreversibility beyond the annotation.
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 front-loaded with the core action, followed by the HTTP endpoint and argument. It contains no fluff, though the Args section is largely redundant with the schema.
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 one-parameter destructive operation with an output schema and safety annotations, the description is minimally adequate. However, it does not explain the scope of 'clear' (all items vs. the queue record) or point to the sibling tool for deleting a single item, leaving an ambiguous 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?
Schema description coverage is 0%, so the description needed to compensate, but it only restates 'play_queue_id: The ID of the play queue,' which adds no meaning beyond the schema's own title and type. No format, source, examples, or constraints are 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?
The description states a clear action ('Clear a play queue') and provides the endpoint path, making the resource and operation identifiable. It does not explicitly distinguish itself from the sibling delete_play_queues_by_play_queue_id_items_by_play_queue_item_id, which removes a single item rather than clearing the queue, so it falls short of a full 5.
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 such as deleting a specific play queue item. There is no mention of prerequisites, when not to use it, or why an agent should prefer this over sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_play_queues_by_play_queue_id_items_by_play_queue_item_idCDestructiveIdempotent
Delete an item from a play queue.
DELETE /playQueues/{playQueueId}/items/{playQueueItemId}
Args: play_queue_id: The ID of the play queue. play_queue_item_id: The play queue item ID to delete.
| Name | Required | Description | Default |
|---|---|---|---|
| play_queue_id | Yes | ||
| play_queue_item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true, so the destructive nature is pre-covered. The description merely repeats the deletion intent and adds no extra behavioral context such as irreversibility, auth requirements, or effects on the rest of the queue.
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 front-loaded with the core action, followed by the endpoint and parameters. Every element earns its place, and there is no redundant prose.
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 delete operation with annotations and an output schema, this is minimally sufficient for invoking the tool. However, it lacks usage context, behavioral details beyond annotations, and any mention of when deleting a single item is appropriate versus related queue operations.
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 for the schema's lack of parameter meaning. It says play_queue_id is 'The ID of the play queue' and play_queue_item_id is 'The play queue item ID to delete,' which adds only marginal value over the property names and does not explain where these IDs come from or their relationship 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 states a specific verb and resource: 'Delete an item from a play queue' and includes the full DELETE endpoint with both path parameters. This is clear and distinguishes it from the related sibling delete_play_queues_by_play_queue_id_items via the item-level path, though it does not explicitly name that alternative.
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 such as deleting an entire play queue, moving an item, or updating a queue. It documents what the endpoint does but not the conditions or context in which it should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_sharings_by_user_idBDestructiveIdempotent
Remove Share.
DELETE /sharings/{userId}
Args: user_id: The unique identifier of the user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already provide: the destructiveHint already warns about deletion, idempotentHint and readOnlyHint are encoded in structured fields. The description does not clarify what is actually removed, reversibility, or authorization needs, so it adds no transparency beyond the annotation values.
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 compact and front-loaded, with no filler. The endpoint line and parameter definition are enough for a one-parameter tool, though the content could still be clarified.
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 definition fails to specify what a 'Share' is, whether delete removes one share or all shares for the user, and what happens after deletion. Although there is an output schema and annotations, the description's terse wording leaves too much meaning implicit.
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 schema description coverage at 0%, the Args block provides the first semantic definition of user_id by calling it 'the unique identifier of the user'. This is meaningful, but it leaves ambiguity about the user's role in the share (sharer vs share) and what exactly the deletion applies to.
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 a clear verb and resource ('Remove Share') and includes the HTTP path DELETE /sharings/{userId}, so the action is recognizable. It does not add enough detail to explicitly differentiate it from siblings like update_sharings_by_user_id beyond the name and path.
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?
There is no guidance on when to use this tool versus alternatives, no exceptions, and no mention of prerequisites or side conditions. The description only restates what endpoint is called rather than the appropriate call context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_status_sessions_history_by_history_idCDestructiveIdempotent
Delete Single History Item.
DELETE /status/sessions/history/{historyId}
Args:
history_id: The id of the history item (the historyKey from above)
| Name | Required | Description | Default |
|---|---|---|---|
| history_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the safety profile is known. The description adds no behavioral context beyond restating the delete operation — it does not say whether the deletion is reversible, what happens to related data, or whether auth is required. No contradiction with annotations, but no added value either.
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 compact and front-loaded with the purpose line followed by the endpoint. But the Args block duplicates what the schema already provides (history_id), and the 'from above' note adds noise, so some words are spent restating structured data rather than adding 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?
For a one-parameter tool with full annotations and an output schema, the description is close to adequate. The main gaps are the missing conceptual context of what deleting a status session history item accomplishes and how to obtain a historyKey, which leaves the agent to infer the workflow from the tool name and siblings.
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% and the schema only supplies type/title for history_id, so the description must carry the meaning. It does explain that history_id is the history item's id and equates it to the 'historyKey', adding real semantic value. However, the dangling 'from above' reference fails to tell the agent where that key comes from, leaving the explanation incomplete.
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?
'Delete Single History Item.' states a specific verb and resource, and the included HTTP route 'DELETE /status/sessions/history/{historyId}' reinforces the action. It does not explicitly contrast with close siblings like get_status_sessions_history_by_history_id or list_status_sessions_history_all, though 'Single' implies scope relative to the 'all' variant, so differentiation is mostly carried by the name.
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 given on when to call this versus alternatives, such as terminating a session via create_status_sessions_terminate or listing history first. The 'from above' cross-reference implies it was written inside a larger document, but the agent gets no decision-rules, prerequisites, or exclusions to route it correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_users_signoutBDestructiveIdempotent
Sign Out.
DELETE /users/signout
| 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?
Annotations already carry the behavioral safety profile (destructiveHint=true, readOnlyHint=false), and the description adds the HTTP DELETE method and endpoint path, which consistently confirm a mutating operation. No commentary is given on what is actually invalidated (current session vs. all devices), token handling, or authentication requirements. The description does not contradict the annotations.
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 definition is very short with no filler, which suits a no-argument action. However, 'Sign Out.' is near-tautological with the tool name delete_users_signout, and only the endpoint line adds real informational value by specifying the HTTP method. It is under-specified rather than efficiently 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 zero-parameter tool with an output schema and annotations covering the destructive profile, the definition is minimally adequate. The main missing context is scope: whether sign-out applies to the current session across all devices, whether prior authentication is required, and what the response signals about success. Adequate but leaves an agent to infer the operational semantics.
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, so the baseline of 4 applies. There is nothing for the description to document, and the schema coverage is trivially complete at 100%. The description correctly omits parameter details that do not 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 states 'Sign Out.' with a clear verb and resource, reinforced by the explicit endpoint 'DELETE /users/signout'. The action is unambiguous and the inverse sibling create_users_signin makes the intent obvious even without explicit differentiation language. Minor deduction because 'Sign Out' largely restates the tool name rather than adding descriptive depth.
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?
There is no guidance on when to use this tool versus alternatives such as create_users_signin (sign in) or create_home_users_by_id_switch (switch user). No conditions, exclusions, or prerequisites are mentioned. An agent gets no help deciding whether sign-out is the right operation for its goal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_by_transcode_type_transcode_universal_decisionBRead-onlyIdempotent
Make a decision on media playback.
GET /{transcodeType}/:/transcode/universal/decision
Args: transcode_type: Path parameter. platform: Client platform (some clients send this in addition to headers). audio_boost: Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) audio_channel_count: Target video number of audio channels. auto_adjust_quality: Indicates the client supports ABR. auto_adjust_subtitle: Indicates if the server should adjust subtitles based on Voice Activity Data. direct_play: Indicates the client supports direct playing the indicated content. direct_stream: Indicates the client supports direct streaming the video of the indicated content. direct_stream_audio: Indicates the client supports direct streaming the audio of the indicated content. disable_resolution_rotation: Indicates if resolution should be adjusted for orientation. has_mde: Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1 location: Network type of the client, can be used to help determine target bitrate. media_buffer_size: Buffer size used in playback (in KB). Clients should specify a lower bound if not known exactly. This value could make the difference between transcoding and direct play on bandwidth constrained networks. media_index: Index of the media to transcode. -1 or not specified indicates let the server choose. music_bitrate: Target bitrate for audio only files (in kbps, used to transcode). offset: Offset from the start of the media (in seconds). part_index: Index of the part to transcode. -1 or not specified indicates the server should join parts together in a transcode path: Internal PMS path of the media to transcode. peak_bitrate: Maximum bitrate (in kbps) to use in ABR. photo_resolution: Target photo resolution. protocol: Indicates the network streaming protocol to be used for the transcode session: * 'http' - include the file in the http response such as MKV streaming * 'hls' - hls stream (RFC 8216) * 'dash' - dash stream (ISO/IEC 23009-1:2022) seconds_per_segment: Number of seconds to include in each transcoded segment subtitle_size: Percentage of original subtitle size to use when burning subtitles (100 is equivalent to original size, 50 is half, ect) subtitles: Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream max_video_bitrate: Client-side maximum video bitrate cap in kbps video_resolution: Cap resolution string (e.g. 1920x1080) copyts: Copy timestamps instead of re-encoding them video_bitrate: Target video bitrate (in kbps). video_quality: Target photo quality.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| copyts | No | ||
| offset | No | ||
| has_mde | No | ||
| location | No | ||
| platform | No | ||
| protocol | No | ||
| subtitles | No | ||
| part_index | No | ||
| audio_boost | No | ||
| direct_play | No | ||
| media_index | No | ||
| peak_bitrate | No | ||
| direct_stream | No | ||
| music_bitrate | No | ||
| subtitle_size | No | ||
| video_bitrate | No | ||
| video_quality | No | ||
| transcode_type | Yes | ||
| photo_resolution | No | ||
| video_resolution | No | ||
| max_video_bitrate | No | ||
| media_buffer_size | No | ||
| audio_channel_count | No | ||
| auto_adjust_quality | No | ||
| direct_stream_audio | No | ||
| seconds_per_segment | No | ||
| auto_adjust_subtitle | No | ||
| disable_resolution_rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds that this produces a playback 'decision,' which is useful context, but it doesn't disclose any behavioral traits beyond that — no information about what the decision affects, side effects, or response semantics. The description does not contradict the annotations.
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 long flat list of parameter docs without a structured summary or prioritized guidance. While each entry is informative, the wall-of-text format makes it hard to scan, and several entries restate what the schema already conveys (e.g., title names). It's functional but not front-loaded or concise by modern standards.
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 complex 29-parameter tool with an output schema available, the description covers parameter semantics thoroughly but omits crucial usage context — when to invoke the decision endpoint, how it relates to the transcode session lifecycle, and what distinguishes it from sibling transcode tools. The presence of an output schema reduces the burden of describing return values, but the gaps in usage direction lower the score.
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 carries the full burden of explaining 29 parameters, and it does so in impressive detail. Each parameter gets units (kbps, KB, seconds), meanings, and enumerated options with explanations (e.g., protocol lists http/hls/dash, subtitles lists auto/burn/none/sidecar/embedded/segmented). This thoroughly compensates for the sparse schema, which only provides names and types.
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 opens with 'Make a decision on media playback,' which clearly states a specific action on a resource. The sibling tools like get_by_transcode_type_transcode_universal_start_extension and get_by_transcode_type_transcode_universal_subtitles are related but the 'decision' verb makes the tool's role reasonably distinguishable. However, it doesn't explicitly contrast itself with these siblings.
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 call this tool versus the many transcode-related siblings (start_extension, subtitles, session segments). It never states prerequisites, ordering requirements, or conditions that would route an agent to a different endpoint. This is purely parameter documentation with zero usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_by_transcode_type_transcode_universal_session_by_session_id_by_segment_id_m4sBRead-onlyIdempotent
Get DASH Segment.
GET /{transcodeType}/:/transcode/universal/session/{sessionId}/{segmentId}.m4s
Args: transcode_type: The type of transcoding (e.g., video, audio) session_id: The unique identifier of the session segment_id: The unique identifier of the media segment
| Name | Required | Description | Default |
|---|---|---|---|
| segment_id | Yes | ||
| session_id | Yes | ||
| transcode_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already state readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to cover safety basics. It does add the exact HTTP verb and resource type, but it does not disclose additional behavioral details like authentication requirements, session expiration, or whether binary content is returned directly; these are not required by the annotations but would be useful.
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 compact, front-loaded with the one-sentence 'Get DASH Segment.' summary, and then uses a straightforward Args section. There is little wasted text, and the information is 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?
For a 3-parameter read-only endpoint this is a mostly workable minimal description, particularly because an output schema exists so return format does not need explanation. But it depends almost entirely on the path/name and leaves usage guidance and parameter semantics under-explained, especially the differences between this and the analogous TS segment endpoint.
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 schema description coverage at 0%, the description must compensate for the schema's bare titles. It does provide minimal semantics: transcode_type is 'type of transcoding (e.g., video, audio)', and the other args are 'unique identifier' style descriptions. This adds a little beyond the schema, but the session and segment descriptions are still too generic to help an agent know what valid values come from.
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 opens with 'Get DASH Segment', naming a specific resource and operation, and the included GET route reinforces the exact endpoint. It is clear enough to identify the tool's purpose, though it does not explicitly contrast it with the sibling TS segment endpoint, so sibling differentiation is only implicit.
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?
There is no explicit guidance on when to use this tool instead of the adjacent get_by_transcode_type_transcode_universal_session_by_session_id_by_segment_id_ts or other transcode-related endpoints. 'Get DASH Segment' implies the tool is for DASH retrieval, but no context is given about session/segment prerequisites or when the DASH path is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_by_transcode_type_transcode_universal_session_by_session_id_by_segment_id_tsBRead-onlyIdempotent
Get HLS Segment.
GET /{transcodeType}/:/transcode/universal/session/{sessionId}/{segmentId}.ts
Args: transcode_type: The type of transcoding (e.g., video, audio) session_id: The unique identifier of the session segment_id: The unique identifier of the media segment
| Name | Required | Description | Default |
|---|---|---|---|
| segment_id | Yes | ||
| session_id | Yes | ||
| transcode_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, and the description adds no behavioral context beyond that. It does not mention auth requirements, rate limits, session state implications, or anything about what happens when a segment is unavailable.
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 compact and front-loaded: 'Get HLS Segment' first, then the exact path, then a short Args list. Every sentence is necessary and there is no redundant filler.
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 read-only endpoint with output schema present and annotations covering safety, the description documents all required parameters and the exact route. It is missing only sibling differentiation and any usage context, which keeps it from being fully 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 carries the burden of explaining parameters. It provides one-line definitions for all three: transcode_type with an example, session_id, and segment_id. These are accurate but generic; they lack format details, constraints, or how the parameters relate to the URL.
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 opens with 'Get HLS Segment' and provides the full GET path, making the verb and resource explicit. It is clear this returns a media segment for a transcoding session, though it does not explicitly differentiate itself from the nearly identical .m4s sibling endpoint.
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 given about when to use this tool versus alternatives such as get_by_transcode_type_transcode_universal_session_by_session_id_by_segment_id_m4s or the decision/subtitles endpoints. Usage is only implied by the endpoint path and the phrase 'Get HLS Segment'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_by_transcode_type_transcode_universal_start_extensionARead-onlyIdempotent
Start A Transcoding Session.
GET /{transcodeType}/:/transcode/universal/start.{extension}
Args: extension: Extension transcode_type: Path parameter. platform: Client platform (some clients send this in addition to headers). audio_boost: Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) audio_channel_count: Target video number of audio channels. auto_adjust_quality: Indicates the client supports ABR. auto_adjust_subtitle: Indicates if the server should adjust subtitles based on Voice Activity Data. direct_play: Indicates the client supports direct playing the indicated content. direct_stream: Indicates the client supports direct streaming the video of the indicated content. direct_stream_audio: Indicates the client supports direct streaming the audio of the indicated content. disable_resolution_rotation: Indicates if resolution should be adjusted for orientation. has_mde: Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1 location: Network type of the client, can be used to help determine target bitrate. media_buffer_size: Buffer size used in playback (in KB). Clients should specify a lower bound if not known exactly. This value could make the difference between transcoding and direct play on bandwidth constrained networks. media_index: Index of the media to transcode. -1 or not specified indicates let the server choose. music_bitrate: Target bitrate for audio only files (in kbps, used to transcode). offset: Offset from the start of the media (in seconds). part_index: Index of the part to transcode. -1 or not specified indicates the server should join parts together in a transcode path: Internal PMS path of the media to transcode. peak_bitrate: Maximum bitrate (in kbps) to use in ABR. photo_resolution: Target photo resolution. protocol: Indicates the network streaming protocol to be used for the transcode session: * 'http' - include the file in the http response such as MKV streaming * 'hls' - hls stream (RFC 8216) * 'dash' - dash stream (ISO/IEC 23009-1:2022) seconds_per_segment: Number of seconds to include in each transcoded segment subtitle_size: Percentage of original subtitle size to use when burning subtitles (100 is equivalent to original size, 50 is half, ect) subtitles: Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream max_video_bitrate: Client-side maximum video bitrate cap in kbps video_resolution: Cap resolution string (e.g. 1920x1080) copyts: Copy timestamps instead of re-encoding them video_bitrate: Target video bitrate (in kbps). video_quality: Target photo quality.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| copyts | No | ||
| offset | No | ||
| has_mde | No | ||
| location | No | ||
| platform | No | ||
| protocol | No | ||
| extension | Yes | ||
| subtitles | No | ||
| part_index | No | ||
| audio_boost | No | ||
| direct_play | No | ||
| media_index | No | ||
| peak_bitrate | No | ||
| direct_stream | No | ||
| music_bitrate | No | ||
| subtitle_size | No | ||
| video_bitrate | No | ||
| video_quality | No | ||
| transcode_type | Yes | ||
| photo_resolution | No | ||
| video_resolution | No | ||
| max_video_bitrate | No | ||
| media_buffer_size | No | ||
| audio_channel_count | No | ||
| auto_adjust_quality | No | ||
| direct_stream_audio | No | ||
| seconds_per_segment | No | ||
| auto_adjust_subtitle | No | ||
| disable_resolution_rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method and endpoint pattern, plus client-behavior flags like ABR and direct play support. It does not describe session lifecycle or side effects, but this is not a contradiction with the annotations.
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 long, but the length is justified by 30 parameters. The purpose and endpoint are front-loaded, followed by a compact 'Args' list where each line earns its place. A few entries like 'Extension' and 'Path parameter' are thin, but overall it remains readable.
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 high parameter count, existing output schema, and annotations, the description is largely complete for invoking the tool: it covers the endpoint and every parameter's semantic role. The main gap is the lack of broader workflow context, such as when to choose this over the sibling decision or fallback endpoints.
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%, and the description compensates thoroughly by explaining nearly all 30 parameters with units, defaults, and valid enum meanings, for example audio_boost percentages, protocol options, and subtitle modes. This is far beyond the bare schema 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 the operation: 'Start A Transcoding Session' and shows the exact GET endpoint. This is a specific verb plus resource. However, it does not explicitly differentiate this from sibling transcode tools like create_by_transcode_type_transcode_universal_fallback or get_by_transcode_type_transcode_universal_decision, so it misses the top score.
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 gives no guidance on when to use this tool versus alternatives, such as the decision endpoint or the fallback endpoint. There are no exclusions, prerequisites, or contextual hints beyond the endpoint name. An agent must infer selection from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_by_transcode_type_transcode_universal_subtitlesARead-onlyIdempotent
Transcode subtitles.
GET /{transcodeType}/:/transcode/universal/subtitles
Args: transcode_type: Path parameter. platform: Client platform (some clients send this in addition to headers). audio_boost: Percentage of original audio loudness to use when transcoding (100 is equivalent to original volume, 50 is half, 200 is double, etc) audio_channel_count: Target video number of audio channels. auto_adjust_quality: Indicates the client supports ABR. auto_adjust_subtitle: Indicates if the server should adjust subtitles based on Voice Activity Data. direct_play: Indicates the client supports direct playing the indicated content. direct_stream: Indicates the client supports direct streaming the video of the indicated content. direct_stream_audio: Indicates the client supports direct streaming the audio of the indicated content. disable_resolution_rotation: Indicates if resolution should be adjusted for orientation. has_mde: Ignore client profiles when determining if direct play is possible. Only has an effect when directPlay=1 and both mediaIndex and partIndex are specified and neither are -1 location: Network type of the client, can be used to help determine target bitrate. media_buffer_size: Buffer size used in playback (in KB). Clients should specify a lower bound if not known exactly. This value could make the difference between transcoding and direct play on bandwidth constrained networks. media_index: Index of the media to transcode. -1 or not specified indicates let the server choose. music_bitrate: Target bitrate for audio only files (in kbps, used to transcode). offset: Offset from the start of the media (in seconds). part_index: Index of the part to transcode. -1 or not specified indicates the server should join parts together in a transcode path: Internal PMS path of the media to transcode. peak_bitrate: Maximum bitrate (in kbps) to use in ABR. photo_resolution: Target photo resolution. protocol: Indicates the network streaming protocol to be used for the transcode session: * 'http' - include the file in the http response such as MKV streaming * 'hls' - hls stream (RFC 8216) * 'dash' - dash stream (ISO/IEC 23009-1:2022) seconds_per_segment: Number of seconds to include in each transcoded segment subtitle_size: Percentage of original subtitle size to use when burning subtitles (100 is equivalent to original size, 50 is half, ect) subtitles: Indicates how subtitles should be included: * 'auto' - Compute the appropriate subtitle setting automatically * 'burn' - Burn the selected subtitle; auto if no selected subtitle * 'none' - Ignore all subtitle streams * 'sidecar' - The selected subtitle should be provided as a sidecar * 'embedded' - The selected subtitle should be provided as an embedded stream * 'segmented' - The selected subtitle should be provided as a segmented stream max_video_bitrate: Client-side maximum video bitrate cap in kbps video_resolution: Cap resolution string (e.g. 1920x1080) copyts: Copy timestamps instead of re-encoding them video_bitrate: Target video bitrate (in kbps). video_quality: Target photo quality.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| copyts | No | ||
| offset | No | ||
| has_mde | No | ||
| location | No | ||
| platform | No | ||
| protocol | No | ||
| subtitles | No | ||
| part_index | No | ||
| audio_boost | No | ||
| direct_play | No | ||
| media_index | No | ||
| peak_bitrate | No | ||
| direct_stream | No | ||
| music_bitrate | No | ||
| subtitle_size | No | ||
| video_bitrate | No | ||
| video_quality | No | ||
| transcode_type | Yes | ||
| photo_resolution | No | ||
| video_resolution | No | ||
| max_video_bitrate | No | ||
| media_buffer_size | No | ||
| audio_channel_count | No | ||
| auto_adjust_quality | No | ||
| direct_stream_audio | No | ||
| seconds_per_segment | No | ||
| auto_adjust_subtitle | No | ||
| disable_resolution_rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered and the description is consistent with it. The description adds the GET endpoint and detailed parameter context, but no additional behavioral traits such as auth requirements, session lifecycle, or response semantics. This is adequate but not rich.
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 front-loads the purpose and endpoint, then uses a compact 'Args:' block. The block is long, but with 29 parameters that have zero schema descriptions, nearly every entry earns its place; minor issues like 'video_quality: Target photo quality' slightly reduce 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?
For a 29-parameter tool with no schema-level descriptions, the description is nearly complete for constructing a valid call: every parameter is explained, output schema exists, and annotations cover the safety profile. It lacks routing guidance relative to sibling transcode endpoints, but that gap is already reflected in the usage_guidelines score.
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% for 29 parameters, so the description carries the full burden and fully compensates. It explains units (kbps, KB, seconds), meaningful enum values for 'subtitles' and 'protocol', defaults like '100 is equivalent to original volume', and special values like '-1 or not specified indicates let the server choose'.
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 opening line 'Transcode subtitles.' plus the endpoint 'GET /{transcodeType}/:/transcode/universal/subtitles' clearly identifies a specific action and resource. However, it does not differentiate itself from closely related sibling endpoints like get_by_transcode_type_transcode_universal_decision or start_extension, so it stops short of a 5.
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?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative tools are mentioned despite the large set of closely related transcode endpoints in the sibling list. An agent gets no help choosing between this and the other universal transcode tools beyond reading the name and one-line description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_download_queue_by_queue_idBRead-onlyIdempotent
Get a download queue.
GET /downloadQueue/{queueId}
Args: queue_id: The queue id
| Name | Required | Description | Default |
|---|---|---|---|
| queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey readOnlyHint, idempotentHint, and destructiveHint=false. The description adds only the HTTP method and path; it doesn't disclose additional run-time behavior such as authentication requirements, empty-queue behavior, or what happens if the queue does not exist, but it does not contradict the annotations.
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, starts with the purpose, and includes the endpoint and argument declaration with no filler. The 'Args' line is largely redundant with the schema, but it is not bloated.
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 one-parameter, read-only, idempotent GET with an output schema, the description is almost sufficient. It provides the path binding and the queue_id argument. The main omission is not routing users to item-level or add/remove sibling tools when those are what the agent actually needs.
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%, and the description merely restates 'queue_id' as 'The queue id'. It adds almost no meaning beyond the parameter name and integer schema; the path placeholder is mildly useful but the description does not explain constraints, formats, or how the id is resolved.
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 an explicit verb and resource: 'Get a download queue', reinforced by the `GET /downloadQueue/{queueId}` endpoint pattern. It does not differentiate itself from sibling download-queue tools explicitly, but the queue-level resource is clear enough.
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 when-to-use or when-not-to-use guidance is provided. Given sibling tools like `get_download_queue_by_queue_id_items`, `get_download_queue_by_queue_id_item_by_item_id_media`, and item-level decision endpoints, the description does not help an agent choose between fetching the queue object itself and related subresources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_download_queue_by_queue_id_item_by_item_id_decisionCRead-onlyIdempotent
Grab download queue item decision.
GET /downloadQueue/{queueId}/item/{itemId}/decision
Args: queue_id: The queue id item_id: The item ids
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ||
| queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond the GET endpoint, such as what the decision represents, whether server-side generation occurs, or how to interpret the response.
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 front-loaded with the action, followed by the explicit endpoint and argument list. The Args section is somewhat redundant with the schema, but overall the description is compact and does not contain significant filler.
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 read-only two-parameter endpoint with an output schema available, the description is minimally sufficient for invocation. However, it does not explain what a 'decision' is in this domain or how it relates to sibling download queue endpoints, leaving some contextual ambiguity 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?
The Args section only restates the schema titles ('The queue id', 'The item ids') without adding format, constraints, examples, or relationship to the endpoint. With schema description coverage at 0%, this is a missed opportunity; 'item ids' is also pluralized and imprecise for a single integer item_id.
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 'Grab download queue item decision' identifies a specific resource and action, and the included GET endpoint makes the target unambiguous. It does not explicitly distinguish itself from sibling download-queue tools like get_download_queue_by_queue_id_item_by_item_id_media, but the 'decision' resource is clear enough from path and name.
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 gives no guidance on when to use this tool versus alternatives, such as the related download queue item endpoints. There is no mention of prerequisites, fallback tools, or scenarios where another sibling should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_download_queue_by_queue_id_item_by_item_id_mediaCRead-onlyIdempotent
Grab download queue media.
GET /downloadQueue/{queueId}/item/{itemId}/media
Args: queue_id: The queue id item_id: The item ids
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ||
| queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description adds little beyond the GET method already implied by the tool name. It does not disclose request requirements, response behavior beyond the output schema, or any operational caveats.
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 front-loaded with its purpose. However, the Args list repeats information already available in the input schema, adding some redundancy without much 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 read-only two-parameter endpoint with annotations and an output schema, the definition is nearly adequate. It is missing semantic detail about what the returned 'media' represents and selection guidance relative to sibling endpoints, but these are partially recoverable from the path and schema.
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 Args section needed to add real meaning, but 'queue_id: The queue id' and 'item_id: The item ids' merely restate the schema titles. The endpoint path does clarify that item_id belongs to the queue item, but the parameter explanations themselves are tautological.
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 names a specific action and resource: 'Grab download queue media', and the included GET path pins down the exact endpoint. It is clear that this fetches media for a particular download queue item, though it does not explicitly contrast itself with nearby item/decision endpoints.
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?
There is no guidance about when to choose this tool over siblings such as get_download_queue_by_queue_id_items_by_item_id or get_download_queue_by_queue_id_item_by_item_id_decision. The only context is the endpoint itself, which conveys what it does but not when it should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_download_queue_by_queue_id_itemsCRead-onlyIdempotent
Get download queue items.
GET /downloadQueue/{queueId}/items
Args: queue_id: The queue id
| Name | Required | Description | Default |
|---|---|---|---|
| queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose the key behavioral traits (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=true), so the bar for the description is lower. The description adds only the HTTP endpoint, which reinforces the read-only nature but provides no additional behavioral context such as pagination, response shape, or the open-world implications. No contradiction with annotations.
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 purpose is front-loaded and the text is brief, but the Args block largely duplicates what the input schema already provides, and the description is under-specified rather than efficiently complete. It earns points for brevity and ordering but loses them for 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?
For a 1-param, read-only tool with rich annotations and an output schema present, the description is close to sufficient. However, it omits any distinction from the item-level sibling tools, which is the main contextual gap an agent would face when selecting or invoking this 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 compensate, but it merely restates the parameter as 'queue_id: The queue id' — adding essentially nothing beyond the schema's own title 'Queue Id.' The single integer parameter is simple and self-evident from the name and URL, but the description contributes no real semantic value.
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?
States a clear verb+resource: 'Get download queue items,' reinforced by the HTTP endpoint GET /downloadQueue/{queueId}/items. It conveys that this retrieves the items collection of a specific queue, but does not explicitly differentiate itself from closely named siblings like get_download_queue_by_queue_id_items_by_item_id (single item) or get_download_queue_by_queue_id (queue metadata).
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 no guidance on when to use this tool versus alternatives. Given several confusingly similar siblings operating on download queues (get_download_queue_by_queue_id, get_download_queue_by_queue_id_items_by_item_id, get_download_queue_by_queue_id_item_by_item_id_media), the lack of any when-to-use or when-not-to-use guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_download_queue_by_queue_id_items_by_item_idCRead-onlyIdempotent
Get download queue items.
GET /downloadQueue/{queueId}/items/{itemId}
Args: queue_id: The queue id item_id: The item ids
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ||
| queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which the description does not contradict. The description adds the HTTP GET method and the path, which is behaviorally relevant correspond to the API call. It also notes that item_id is plural ('item ids'), but you have to infer from the schema. Given annotations, the description adds modest context, so a 4 is fair.
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 front-loaded with the purpose, which is positive. However, it includes an empty line and the Args section that merely repeats schema titles without adding depth. It saves structure but lacks substance. It's concise but not efficiently 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?
Given that an output schema exists (not shown) and annotations cover safety, the description is partially complete. However, it fails to explain what an item is, the singular/plural relationship of item_id vs multiple items returned, and the difference from sibling listing tools. The complexity is low, but for a network API tool, it lacks enough detail for an agent to know the exact parameter format and expected response shape. Hence, not fully 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 coverage is 0%, so the description carries all burden for parameter semantics. The description lists the args but merely repeats the schema title 'queue_id' and 'item_id' with generic 'queue id' and 'item ids' commentstons. It does not clarify the format of item_id (e.g., comma-separated string vs array), the expected cardinality, or any constraints (e.g., numeric IDs). Thus, it only provides superficial meaning, not sufficient to correctly construct the request.
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 that the tool fetches 'download queue items' with a specific resource path, which is moderately clear. However, it does not clarify what an 'item' is in the context of a download queue (e.g., media file? metadata?), and it does not distinguish itself from its siblings like get_download_queue_by_queue_id_items or get_download_queue_by_queue_id_item_by_item_id_media, which are likely similar operations.
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 the many sibling tools for download queues. It does not state the use case, prerequisites (e.g., existing queue and item IDs), or that item_id is a list, which might be confused with a singular value. The inclusion of the HTTP path is implicit, but there's no explicit 'use this when you need X' or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_downloads_by_channel_jsonBRead-onlyIdempotent
Get Plex Downloads.
GET /downloads/{channel}.json
Args: channel: The channel identifier
| Name | Required | Description | Default |
|---|---|---|---|
| channel | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method and exact path pattern, which is mildly useful, but does not disclose any additional behavioral details such as authentication needs, rate limits, or response characteristics.
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 appropriately short and front-loaded with the primary action, followed by the endpoint and argument definition. The 'Args' section is clear. It loses a point because the phrase 'Get Plex Downloads' is largely redundant with the tool name and endpoint.
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 one-parameter GET with output schema and strong annotations, the description is nearly sufficient. However, it lacks guidance on what valid channel identifiers look like and does not clarify when to select this tool over download-queue-related tools. These are real but limited 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?
Schema description coverage is 0%, so the description must compensate. It only restates that 'channel' is 'The channel identifier', which adds no meaningful detail beyond the schema's bare 'Channel' title. It gives no valid formats, examples, or constraints for channel values.
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 a specific verb and resource: 'Get Plex Downloads' and 'GET /downloads/{channel}.json'. It clearly indicates this tool returns downloads for a given channel and is distinguishable from sibling download-queue tools by its channel-scoped, JSON-suffixed endpoint.
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 guidance is provided. The description does not say when to use this tool versus alternatives, such as download-queue tools, nor does it mention any prerequisites or exclusions. The intended context must be inferred entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hubs_metadata_by_metadata_idARead-onlyIdempotent
Get hubs for section by metadata item.
GET /hubs/metadata/{metadataId}
Args: metadata_id: The metadata ID for the hubs to fetch only_transient: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added)
| Name | Required | Description | Default |
|---|---|---|---|
| metadata_id | Yes | ||
| only_transient | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false. The description adds meaningful behavioral context beyond those, particularly the explanation of transient hubs with concrete examples like On Deck and Recently Added. It does not contradict the annotations.
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 compact and front-loaded: a one-line summary, the HTTP endpoint, and two parameter explanations with no filler. Every line 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?
For a simple two-parameter read-only tool with an output schema and safety annotations, the description is largely complete. The main gap is lack of explicit guidance for choosing among closely related hub sibling tools, but invocation itself is well-supported.
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%, but the description compensates by explaining both parameters. metadata_id is defined clearly, and only_transient receives a substantive explanation with examples, even though exact accepted string values are not specified.
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 a specific verb and resource ('Get hubs') with a clear scoping mechanism ('by metadata item'). It distinguishes from section-based hub tools like get_hubs_sections_by_section_id, though it does not explicitly name sibling variants such as postplay or related.
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?
Usage is implied by the endpoint path and the metadata_id argument: use this tool when you have a metadata ID and want its hubs. However, it never explicitly tells the agent when to prefer this over sibling tools like get_hubs_sections_by_section_id or get_hubs_metadata_by_metadata_id_postplay.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hubs_metadata_by_metadata_id_postplayARead-onlyIdempotent
Get postplay hubs.
GET /hubs/metadata/{metadataId}/postplay
Args: metadata_id: The metadata ID for the hubs to fetch only_transient: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added)
| Name | Required | Description | Default |
|---|---|---|---|
| metadata_id | Yes | ||
| only_transient | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds valuable context by defining 'transient' and giving examples (On Deck, Recently Added), which clarifies behavior beyond the schema. No contradictions with annotations.
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 compact and well-structured: a one-line purpose, the endpoint, and a simple Args list. Every sentence earns its place, with no fluff or repetition. The most important 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's simplicity (2 params, 1 required), rich annotations, and existence of an output schema, the description is largely complete. It explains the key parameter semantics and the endpoint. It does not describe return details, but the output schema covers that. No obvious gaps for correct invocation.
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 explain parameters. It does: metadata_id is described as 'The metadata ID for the hubs to fetch,' and only_transient is explained with the meaning of 'transient' and examples. This adds meaning beyond the schema's type definitions, though metadata_id's explanation is brief.
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 a clear verb and resource: 'Get postplay hubs.' It includes the endpoint and distinguishes it from the sibling get_hubs_metadata_by_metadata_id by the 'postplay' qualifier, though it does not explicitly contrast them. The purpose is specific and understandable.
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 like get_hubs_metadata_by_metadata_id or list_hubs. It implies usage through the endpoint and the 'postplay' focus, but there is no guidance on conditions or exclusions, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hubs_sections_by_section_idARead-onlyIdempotent
Get section hubs.
GET /hubs/sections/{sectionId}
Args: section_id: The section ID for the hubs to fetch only_transient: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added)
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes | ||
| only_transient | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds semantic context about transient hubs (prone to changing after playback/addition), which is useful beyond the annotations, but does not disclose return format or other runtime behavior, and with an output schema present the omission is moderate.
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 compact and front-loaded with the core purpose, then the HTTP path, then parameter explanations. Every sentence adds value and there is no redundancy or filler.
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 moderate complexity, the rich read-only/idempotent annotations, and the presence of an output schema, the description is nearly complete. It covers purpose, path, and both parameters; it could potentially mention response shape, but that is already addressed by the output schema.
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 bears the full burden for parameter meaning. It explains section_id as 'The section ID for the hubs to fetch' and clarifies only_transient with a concrete definition and examples (On Deck, Recently Added), which goes well beyond the bare schema types.
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 a specific verb and resource ('Get section hubs') and includes the HTTP path with the sectionId placeholder, which clearly identifies the operation. It distinguishes itself from sibling hub tools by the section-scoped resource, though it doesn't name an alternative explicitly.
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?
Usage context is implied by the name and path: this fetches hubs for a given library section. However, it does not explicitly explain when to choose this over sibling tools like get_hubs_metadata_by_metadata_id or list_hubs, nor does it state any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hubs_sections_by_section_id_manageCRead-onlyIdempotent
Get hubs.
GET /hubs/sections/{sectionId}/manage
Args: section_id: The section ID for the hubs to reorder metadata_item_id: Restrict hubs to ones relevant to the provided metadata item
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes | ||
| metadata_item_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description carries a low burden. The Args line adds a small behavioral clue that section_id is 'the section ID for the hubs to reorder,' but the description otherwise adds no context about output, pagination, or the manage workflow.
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 tight with no filler, but it is more under-specified than neatly concise. The endpoint line and Args block are useful, yet the entire description could fit in a few sentences without much substance.
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?
An output schema exists and the parameter count is small, so the description need not explain return values. However, it never clarifies what 'manage' means or why an agent should choose this over get_hubs_sections_by_section_id, leaving a real gap for correct tool selection.
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's Args block is the only parameter documentation. It gives a one-line purpose for both section_id and metadata_item_id, which adds meaning beyond the bare schema, but the explanations are terse and don't elaborate on format, filtering behavior, or how the params interact.
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?
"Get hubs." is nearly a tautology of the tool name, and the endpoint path is the main source of specificity. The description never explains what the "/manage" variant means, nor how it differs from the sibling get_hubs_sections_by_section_id.
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 given on when to call this tool versus its siblings (get_hubs_sections_by_section_id, list_hubs, or the update/create/delete manage variants). No alternatives, exclusions, or prerequisites are mentioned, leaving the agent to guess from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_collections_by_collection_id_composite_by_updated_atBRead-onlyIdempotent
Get a collection's image.
GET /library/collections/{collectionId}/composite/{updatedAt}
Args: collection_id: The collection id updated_at: The update time of the image. Used for busting cache.
| Name | Required | Description | Default |
|---|---|---|---|
| updated_at | Yes | ||
| collection_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the description's 'Get' and GET method are consistent but redundant. It adds a small behavioral detail about updated_at being used for cache busting, which is useful context, and there is no contradiction with annotations.
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?
Three short sections: one-sentence purpose, exact endpoint, and parameter list. No filler; the purpose is front-loaded before implementation details.
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 read-only GET with two integer parameters and an output schema, the description covers the essential semantics. It could mention expected timestamp format or that updated_at must match the collection's current updatedAt, but this is not a critical 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?
The description explains updated_at as the image's update time for cache busting, adding real meaning. But collection_id is only described as 'The collection id', which adds no information beyond the schema's property title. With 0% schema description coverage, this is only partial compensation.
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?
States the verb 'Get' and the resource 'collection's image', which is clear and distinguishes it from the sibling section composite endpoint. However, it doesn't elaborate on what 'composite' means or explicitly rule out related image endpoints, so it's clear but not maximally differentiated.
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 no when-to-use guidance, no alternative tools, and no exclusions. The cache-busting note on updated_at explains the parameter rather than tool selection, leaving the agent to infer when this tool should be chosen over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_collections_by_collection_id_itemsBRead-onlyIdempotent
Get items in a collection.
GET /library/collections/{collectionId}/items
Args: collection_id: The collection id
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP GET method and path template, but it does not disclose pagination, ordering, filtering, or what types of items are returned. Given the strong annotations, this is acceptable but not rich.
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 front-loaded with the core action. The endpoint line is useful, but the 'Args' block mostly repeats the parameter title, so it is not maximally 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 one-parameter read operation with a rich output schema and strong annotations, the description is minimally viable. However, it lacks any mention of pagination, item scope, or behavior for empty or missing collections, leaving some ambiguity about the returned 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?
Schema description coverage is 0%, so the description must compensate for the parameter. It only says 'collection_id: The collection id,' which is tautological. The endpoint template does imply the parameter is a path variable, which adds some meaning, but the description otherwise adds no format, source, or usage detail 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 states a specific verb and resource: 'Get items in a collection.' The endpoint path further clarifies the operation. It does not explicitly distinguish itself from sibling collection-related tools, but the resource is unambiguous enough for an agent to identify what it does.
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?
There is no guidance on when to use this tool versus alternatives such as get_library_sections_by_section_id_collections or update_library_collections_by_collection_id_items. The description only restates the operation and gives no context, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_media_by_media_id_chapter_images_by_chapterBRead-onlyIdempotent
Get a chapter image.
GET /library/media/{mediaId}/chapterImages/{chapter}
Args: media_id: The id of the media item chapter: The index of the chapter
| Name | Required | Description | Default |
|---|---|---|---|
| chapter | Yes | ||
| media_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the description doesn't need to restate safety. It does add the concrete endpoint path but no additional behavioral details such as error conditions or return format. With an output schema present and annotations covering safety, this is acceptable but not enriched.
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 three compact parts: a one-line summary, the endpoint, and the argument list. There is no redundancy or filler, and the most important fact ('Get a chapter image') is front-loaded. This is appropriately sized for a two-parameter read operation.
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 GET, the description plus annotations and the presence of an output schema cover most needs. It tells the agent what the tool does, the endpoint, and what each parameter means. The main gap is the absence of a definition of 'chapter image' or note about the image response type, but the tool is simple enough that this is not a critical omission.
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 descriptions (0% coverage), so the 'Args' section is the only place parameter meanings are given. It explains media_id as 'The id of the media item' and chapter as 'The index of the chapter,' which is slightly more than the bare property titles. However, it doesn't clarify indexing convention (0- vs 1-based) or any constraints beyond integer type.
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 opens with 'Get a chapter image,' a clear verb+resource pairing, and provides the exact GET endpoint. It identifies the target resource (chapter image for a library media item) and the two path parameters. It doesn't explicitly contrast with sibling tools, but the resource is specific enough to differentiate from other library getters.
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 over alternatives is provided. The description only restates the endpoint and arguments, leaving the agent to infer that it should be used when a chapter image is needed. Sibling tools such as get_library_metadata_by_id_children are not mentioned, so there is no exclusion or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_augmentations_by_augmentation_idARead-onlyIdempotent
Get augmentation status.
GET /library/metadata/augmentations/{augmentationId}
Args: augmentation_id: The id of the augmentation wait: Wait for augmentation completion before returning
| Name | Required | Description | Default |
|---|---|---|---|
| wait | No | ||
| augmentation_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, which the description does not contradict. The description adds the fact it uses a GET endpoint and describes the wait parameter as 'Wait for augmentation completion before returning,' which discloses the blocking behavior requested by the caller.
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 front-loaded with the core purpose. The endpoint, args, and parameter explanations are clearly laid out in a terse, scannable format 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 tool has an output schema, the return structure is covered. The description explains both arguments and the general GET behavior. It does not define what 'augmentation' refers to or list error cases, but these are not needed for a straightforward read operation with given output schema and safe annotations.
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 provides the only meaning for both parameters. 'augmentation_id' is explained as 'The id of the augmentation,' and 'wait' is explained as 'Wait for augmentation completion before returning,' giving useful functional context that the raw schema properties (types and titles) do not add.
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 'augmentation status', and the endpoint reinforces the specific target. It is distinguishable from siblings because no other tool refers to augmentations, but it does not explicitly differentiate itself from the nearby get_library_metadata_by_id_* tools beyond the name.
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 given on when to use this tool versus alternatives. There is no mention of prerequisites, use cases, or exclusions. The description only states what the tool does, not the situations in which it should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_id_childrenCRead-onlyIdempotent
Get Metadata Children.
GET /library/metadata/{id}/children
Args: id: The unique identifier of the item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is clear. The description adds only the endpoint path and parameter label; it does not disclose any behavioral traits beyond what the annotations and name already imply, such as what kinds of items are returned or how open-world results should be interpreted.
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 compact and front-loads the operation, then provides the endpoint and the one argument. It avoids bloat, though the opening line 'Get Metadata Children' largely repeats the tool name and the argument documentation is terse.
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 required parameter, strong annotations, and an output schema, the description is minimally workable. The gaps are that it does not define 'children,' differentiate from closely related metadata traversal endpoints, or explain the open-world hint, leaving some interpretation to the 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?
Schema coverage is 0%, so the description must compensate. It does minimally by documenting id as 'The unique identifier of the item,' which adds a small amount of meaning beyond the schema's integer title. This is sufficient for a single obvious parameter, though it does not specify what kind of item or where the id originates.
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 names a specific resource and operation: getting metadata children for a library item, reinforced by the explicit endpoint GET /library/metadata/{id}/children. The word 'children' distinguishes it from sibling tools like parent, grandparent, and grandchildren, though it does not explain what children means in the metadata hierarchy.
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 given about when to use this tool versus siblings such as get_library_metadata_by_id_grandchildren, get_library_metadata_by_id_parent, or get_library_metadata_by_id_grandparent. An agent must infer usage entirely from the endpoint and name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_id_compute_pathCRead-onlyIdempotent
Compute Sonic Path.
GET /library/metadata/{id}/computePath
Args: id: The unique identifier of the item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that this is a safe, read-only, idempotent, non-destructive operation, so the description adds no behavioral context beyond them. It does not explain what the computed path represents, what side effects occur if any, or what the caller should expect.
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 has a clear Args section, but the opening phrase 'Compute Sonic Path' is redundant with the endpoint and semantically confusing. It does not fully earn its place, making the structure slightly less effective than it could be.
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 and rich annotations, the description is almost sufficient, but the core meaning of 'Sonic Path' remains unexplained. An agent would still be uncertain about what result to expect or why to call this rather than similar compute-path endpoints.
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 does explain that 'id' is 'The unique identifier of the item', which adds minimal context beyond the schema's type. For a single integer parameter this is adequate, though it does not elaborate on where the id comes from or any format 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 says 'Compute Sonic Path' without defining what a Sonic Path is or what operation is performed, so it is vague and effectively restates the tool name. The endpoint string provides the resource, but the actual purpose of computing the path is unclear.
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?
There is no guidance about when to use this tool versus alternatives such as get_library_sections_by_section_id_compute_path or other metadata lookup endpoints. The description only shows the endpoint and argument, providing no usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_id_grandchildrenCRead-onlyIdempotent
Get Metadata Grandchildren.
GET /library/metadata/{id}/grandchildren
Args: id: The unique identifier of the item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds only the GET method and endpoint, which are consistent but add no new behavioral detail such as response format, pagination, or authorization requirements. It contributes nothing beyond the annotations.
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 and front-loads the purpose and endpoint. The Args block is redundant with the schema but not bloated. It is appropriately small for a one-parameter tool.
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?
This is a simple read-only tool with one parameter, an output schema, and strong annotations, so the description does not need to be verbose. However, it never explains the library metadata hierarchy, which is essential for understanding what 'grandchildren' means and for choosing between this and related tools. This is a genuine 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?
Schema description coverage is 0%, so the description must compensate. It states 'id: The unique identifier of the item,' which clarifies that id is an identifier but remains vague about what 'item' refers to in this context. It does not explain the hierarchy or the relationship between the id and its grandchildren, so the compensation is minimal.
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 a clear verb and resource: 'Get Metadata Grandchildren' with the endpoint GET /library/metadata/{id}/grandchildren. The word 'Grandchildren' differentiates it from sibling tools like get_library_metadata_by_id_children. However, it never defines what a grandchild is in the library metadata hierarchy, leaving some ambiguity for an agent.
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?
There is no guidance on when to use this tool versus alternatives. With many similar siblings (get_library_metadata_by_id_children, get_library_metadata_by_id_grandparent, get_library_metadata_by_id_parent), the description provides no selection criteria or contextual cues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_id_grandparentBRead-onlyIdempotent
Get Metadata Grandparent.
GET /library/metadata/{id}/grandparent
Args: id: The unique identifier of the item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond the endpoint path—it does not explain hierarchy traversal, return behavior, or any edge cases.
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 three short lines with no filler: a title, the endpoint, and the parameter definition. Every line earns its place, and the key 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?
For a simple one-parameter read operation with rich annotations and an output schema present, the description is nearly complete. It names the endpoint and documents the only parameter; however, it omits any note about the relationship to parent/child/grandchild metadata tools, which would round out the 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?
Schema description coverage is 0%, so the description must carry the parameter meaning. It does so by defining 'id' as 'The unique identifier of the item', which is more informative than the schema's bare title 'Id'. It is still terse and vague about what kind of item, but sufficient for a single-parameter tool.
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 verb ('Get') and the resource ('Metadata Grandparent') and includes the concrete endpoint path 'GET /library/metadata/{id}/grandparent'. This is specific enough to identify the operation, though it does not explicitly distinguish itself from similar sibling tools like get_library_metadata_by_id_parent or get_library_metadata_by_id_grandchildren.
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 about when to use this tool instead of related metadata hierarchy tools. It only restates the endpoint and parameter, leaving the selection decision entirely to the reader.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_id_nearestCRead-onlyIdempotent
Get Nearest Metadata.
GET /library/metadata/{id}/nearest
Args: id: The unique identifier of the item exclude_parent_id: The unique identifier of the excludeparent exclude_grandparent_id: The unique identifier of the excludegrandparent limit: Maximum number of items to return max_distance: The maxDistance
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| limit | No | ||
| max_distance | No | ||
| exclude_parent_id | No | ||
| exclude_grandparent_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, but the description adds no behavioral context beyond a bare endpoint. It does not explain what 'nearest' means, how distances are computed, or the nature of the returned metadata.
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 it wastes space on redundant content: the title and HTTP path are immediately derivable from the tool name. The parameter list is minimal and not structured to convey any richer semantics, making it under-specified rather than appropriately 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?
Given five parameters and a large sibling group, the description provides almost no context. It fails to explain the core 'nearest' concept, leaves several parameters semantically ambiguous, and offers no reason to choose this tool over similar metadata operations. The output schema helps with return values, but the input and purpose remain unclear.
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 schema description coverage at 0%, the description is the only source of parameter meaning. It clearly explains 'id' and 'limit', but 'max_distance' is defined as 'The maxDistance'—a circular tautology—and 'exclude_parent_id'/'exclude_grandparent_id' are only vaguely described as identifiers of an 'excludeparent'/'excludegrandparent'. An agent cannot confidently set these 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 says 'Get Nearest Metadata,' which is essentially a restatement of the tool name and does not clarify what 'nearest' semantically means. It neither specifies the resource scope nor differentiates it from sibling tools like get_library_metadata_by_id_children or get_library_metadata_by_id_reviews.
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?
There is no guidance on when to use this tool versus alternatives. It does not mention use cases, prerequisites, or relationships to the many sibling get_library_metadata_by_id_* operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_id_on_deckCRead-onlyIdempotent
Get Metadata On Deck.
GET /library/metadata/{id}/onDeck
Args: id: The unique identifier of the item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. However, the description adds no behavioral context beyond repeating the HTTP path; it never explains what 'On Deck' returns or how it behaves. No contradiction with annotations, but also no added 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?
The description is short and contains no filler, but the first sentence is essentially a tautology and the HTTP path repeats the tool name. It could be restructured to offer meaningful information in the same 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?
With an output schema present, return values do not need to be described, but the core concept 'On Deck' is undefined. The agent has no way to know what this endpoint does, how it differs from the section-level on-deck endpoint, or what kind of item id is expected. This is incomplete for a tool with numerous similarly-named siblings.
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%, and the description provides the only semantic for the 'id' parameter: 'The unique identifier of the item.' This is minimally adequate, though 'item' is vague and does not clarify whether it refers to a library item, metadata entry, or media object.
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 'Get Metadata On Deck' essentially restates the tool name without explaining what 'On Deck' means or what the operation actually does. It does not distinguish itself from the many sibling tools that query metadata by id (e.g., children, reviews, similar), leaving the agent to infer its purpose from the HTTP path alone.
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 about when to use this tool versus alternatives like get_library_sections_by_section_id_on_deck or other get_library_metadata_by_id_* variants. There is no mention of context, prerequisites, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_id_parentCRead-onlyIdempotent
Get Metadata Parent.
GET /library/metadata/{id}/parent
Args: id: The unique identifier of the item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description adds no behavioral information beyond the HTTP GET and the parent relationship. It does not contradict the annotations, but it also does not disclose anything like response semantics, errors, or special cases.
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 front-loads the endpoint and core purpose. The Args section mostly duplicates the schema, creating slight redundancy, but overall the size is appropriate and there is no unnecessary prose.
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 read-only endpoint with an output schema, the description is nearly adequate. However, it does not explain what 'parent' means in the library hierarchy or when an agent should prefer this over sibling navigation tools, so a caller must infer important context from the tool name and sibling list.
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 clarify the parameter. It adds 'The unique identifier of the item,' which is slightly more meaningful than the schema's bare 'Id' title, but it remains generic and does not explain the nature or scope of the id within the library metadata context.
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 phrase 'Get Metadata Parent' and the endpoint 'GET /library/metadata/{id}/parent' clearly identify the operation and resource. It does not explicitly distinguish itself from sibling tools like get_library_metadata_by_id_children, but the purpose is 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?
There is no guidance about when to use this tool versus the many sibling metadata navigation tools such as get_library_metadata_by_id_children, grandparent, or nearest. The description only states the mechanics, leaving selection to the tool name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_id_reviewsBRead-onlyIdempotent
Get Metadata Reviews.
GET /library/metadata/{id}/reviews
Args: id: The unique identifier of the item
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds no behavioral context beyond the GET route—no mention of response shape, pagination, authentication, or special conditions. Since it contributes nothing beyond what annotations already state, the transparency is weak.
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 exceptionally compact: purpose, route, and one argument description, with no filler or redundant sentences. The most essential information is front-loaded, and each line serves a distinct function. This is appropriately sized for a simple one-parameter read-only tool.
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 one-parameter read-only tool with an output schema and safety annotations, the description is just enough to invoke the tool correctly. However, the term 'reviews' is undefined and there is no guidance on when this endpoint is appropriate compared to the many sibling tools. An agent selecting among ~200 similar endpoints would be under-informed about the semantic meaning and applicability of 'metadata reviews'.
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 only labels the property as 'Id' with no description, so the description's 'id: The unique identifier of the item' adds essential meaning that the schema lacks. However, it is generic and does not specify what kind of item (e.g., a library metadata item ID) or where the ID comes from. It partially compensates for the 0% schema coverage but remains minimal.
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 opens with 'Get Metadata Reviews', a clear verb-plus-resource phrase indicating retrieval of review data for a metadata item. The route reinforces the target resource and the operation. It is less detailed than an ideal definition but not tautological and is distinguishable from most siblings by the 'reviews' resource.
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 given on when to use this tool versus the many similar get_library_metadata_by_id_* siblings (children, parent, similar, etc.). The description only restates the operation and does not mention alternatives, prerequisites, or exclusions. An agent must infer usage entirely from the name and route.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_idsARead-onlyIdempotent
Get a metadata item.
GET /library/metadata/{ids}
Args:
ids: Comma-separated list of IDs
async_check_files: Determines if file check should be performed asynchronously. An activity is created to indicate progress. Default is false.
async_refresh_local_media_agent: Determines if local media agent refresh should be performed asynchronously. An activity is created to indicate progress. Default is false.
async_refresh_analysis: Determines if analysis refresh should be performed asynchronously. An activity is created to indicate progress. Default is false.
check_files: Determines if file check should be performed synchronously. Specifying asyncCheckFiles will cause this option to be ignored. Default is false.
skip_refresh: Determines if synchronous local media agent and analysis refresh should be skipped. Specifying async versions will cause synchronous versions to be skipped. Default is false.
check_file_availability: Determines if file existence check should be performed synchronously. Specifying checkFiles will imply this option. Default is false.
async_augment_metadata: Add metadata augmentations. An activity is created to indicate progress. Option will be ignored if specified by non-admin or if multiple metadata items are requested. Default is false.
augment_count: Number of augmentations to add. Requires asyncAugmentMetadata to be specified.
include_markers: Include intro/credits markers in the response
include_guids: Include external GUIDs (e.g. TMDB, TVDB) in the response
include_chapters: Include chapter data in the response
include_external_media: Include external/online media in the response
include_extras: Include trailers, behind-the-scenes, and other extras
include_related: Include related items in the response
include_on_deck: Include On Deck status in the response
include_popular_leaves: Include popular episodes in the response
include_reviews: Include user reviews in the response
include_stations: Include radio station data in the response
exclude_elements: Comma-separated list of elements to exclude from the response
exclude_fields: Comma-separated list of fields to exclude from the response
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| check_files | No | ||
| skip_refresh | No | ||
| augment_count | No | ||
| include_guids | No | ||
| exclude_fields | No | ||
| include_extras | No | ||
| include_markers | No | ||
| include_on_deck | No | ||
| include_related | No | ||
| include_reviews | No | ||
| exclude_elements | No | ||
| include_chapters | No | ||
| include_stations | No | ||
| async_check_files | No | ||
| async_augment_metadata | No | ||
| async_refresh_analysis | No | ||
| include_external_media | No | ||
| include_popular_leaves | No | ||
| check_file_availability | No | ||
| async_refresh_local_media_agent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although annotations already declare readOnlyHint and idempotentHint, the description adds significant behavioral detail: async options create activity records, async flags override synchronous ones, checkFiles implies checkFileAvailability, and asyncAugmentMetadata is ignored for non-admins or multiple items. This goes well beyond what the annotations convey.
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 structure is logical: a one-line summary, the endpoint, then a compact parameter block. The repeated phrase 'An activity is created to indicate progress' appears three times, which is mildly redundant, but overall the length is justified by the 21 parameters and the lack of schema descriptions.
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 21-parameter surface area and zero schema descriptions, the tool is largely self-sufficient for invocation: the required ids are identified and all optional flags are documented with behavior and defaults. It is slightly weaker on high-level guidance, such as what base metadata is always returned versus what must be requested via flags.
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 thoroughly by explaining every parameter, including defaults and interdependencies. The only notable gap is that 'ids' is described as a comma-separated list while the schema declares it as an array, and augment_count lacks an explicit value range.
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 opens with a specific verb and resource: 'Get a metadata item' followed by 'GET /library/metadata/{ids}'. This clearly identifies the operation as fetching metadata by ID, though it does not explicitly distinguish itself from nearby siblings like get_library_metadata_by_id_children or get_library_metadata_by_ids_related.
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?
Usage is implied through the name and endpoint: use this tool when you need a metadata item by IDs. However, there is no explicit guidance about when to prefer this over the many related siblings, nor any 'when-not-to-use' or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_ids_all_leavesBRead-onlyIdempotent
Get the leaves of an item.
GET /library/metadata/{ids}/allLeaves
Args: ids: Comma-separated list of IDs
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP endpoint but no additional behavioral traits like pagination, limits, or what 'leaves' encompasses. It does not contradict annotations.
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-line purpose, the exact API path, and the parameter format. There is no filler, and the purpose is front-loaded. The endpoint line is arguably redundant but does not detract 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?
For a simple one-parameter tool with an output schema, the description is minimal but lacks contextual disambiguation. It does not clarify what 'leaves' means relative to sibling tools (e.g., children vs. leaves), nor does it mention any limits or special cases. An agent might struggle to decide whether this returns the same as get_library_metadata_by_ids_children or how it differs from get_library_metadata_by_ids_tree.
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 only parameter 'ids' has no schema description (0% coverage). The description provides essential format guidance ('Comma-separated list of IDs'), which goes beyond the bare type 'string'. However, it does not explain what these IDs refer to (presumably metadata IDs) or how they map to the endpoint, leaving some ambiguity.
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 the leaves of an item,' which is a specific verb and resource. It distinguishes from sibling tools like get_library_metadata_by_id_children and get_library_metadata_by_id_grandchildren by using the term 'leaves,' though it doesn't elaborate on the meaning of 'leaves' in this context.
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 about when to use this tool versus the many related siblings such as get_library_metadata_by_ids_children, get_library_metadata_by_ids_grandchildren, or get_library_metadata_by_ids_tree. The description simply states what it does without explaining the selection criteria or edge cases where one would prefer this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_ids_by_element_by_timestampBRead-onlyIdempotent
Get an item's artwork, theme, etc.
GET /library/metadata/{ids}/{element}/{timestamp}
Args: ids: Comma-separated list of IDs element: The type of artwork element (e.g., art, poster, thumb) timestamp: A timestamp on the element used for cache management in the client
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| element | Yes | ||
| timestamp | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds one meaningful behavioral detail beyond annotations: the timestamp is 'used for cache management in the client,' which helps the agent understand why the parameter exists. However, it does not disclose response behavior, 404 conditions, or how stale timestamps are handled. No contradiction with annotations exists.
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 compact and well-organized: a one-line purpose, the endpoint path, and a tight Args block. Every sentence earns its place, especially given the 0% schema coverage. The HTTP path is partially redundant with the tool name (which already encodes the endpoint structure), but it is still useful for confirming the call verb and route.
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?
All three required parameters are explained, the output schema exists, and annotations cover read/idempotency safety, so the essential calling information is present. However, for a tool sitting in a large cluster of near-identical metadata endpoints, the lack of any guidance on selecting this endpoint over siblings creates a real completeness gap. The description is adequate but leaves the agent to infer when this specific path is appropriate.
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 carries the full burden and compensates well: ids gets a format detail ('comma-separated list'), element gets concrete examples ('art, poster, thumb'), and timestamp gets its semantic purpose ('cache management in the client'). This is genuinely useful beyond the bare schema. It stops short of a 5 only because the valid values of 'element' are left open-ended with no hint of the full value set.
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 a specific verb and resource: 'Get an item's artwork, theme, etc.' This clearly identifies the operation as fetching artwork elements for library metadata items, which is distinct from siblings like get_library_metadata_by_ids that return metadata objects. However, it does not explicitly name or differentiate itself from the many similar siblings in the library metadata family, so it misses the top score.
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 given on when to use this tool versus alternatives. With dozens of sibling tools operating on library metadata (get_library_metadata_by_ids, get_library_metadata_by_ids_extras, get_library_collections_by_collection_id_composite_by_updated_at, etc.), there is no stated condition, exclusion, or pointer to when this specific endpoint is the right choice. The description merely states the HTTP path and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_ids_extrasBRead-onlyIdempotent
Get an item's extras.
GET /library/metadata/{ids}/extras
Args: ids: Comma-separated list of IDs
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the HTTP GET method and the comma-separated ID format, which are useful but minimal; it does not describe return behavior or any special constraints.
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 appropriately short and front-loaded: a one-line purpose, the endpoint, and the parameter format. Every element earns its place with no filler.
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 tool is simple with one parameter, strong annotations, and an output schema, so the description need not explain return values. Still, it leaves 'extras' undefined and provides no usage context, which an agent may need to decide when to call it.
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 does explain that 'ids' is a comma-separated list of IDs, which adds meaning beyond the bare string schema. However, it does not clarify what kind of IDs these are or any limits, leaving some ambiguity.
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 a clear action and resource: 'Get an item's extras' with a specific GET endpoint. However, it does not define what 'extras' means or explicitly differentiate itself from sibling tools like get_library_metadata_by_ids, so it is clear but not fully distinguishing.
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?
There is no guidance on when to use this tool versus alternatives. The description simply restates the endpoint and parameter, with no context about use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_ids_fileARead-onlyIdempotent
Get a file from a metadata or media bundle.
GET /library/metadata/{ids}/file
Args:
ids: Comma-separated list of IDs
url: The bundle url, typically starting with metadata:// or media://
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, and non-destructive behavior. The description adds the useful detail that the URL typically begins with metadata:// or media://, but it does not disclose other behavioral traits such as what happens when url is omitted or how the file is returned.
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 compact and information-dense: a one-line summary, the endpoint, and parameter explanations. There is no redundant fluff, and the most important action 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?
For a simple two-parameter read operation, the description covers the endpoint, parameter meanings, and URL conventions. It leaves some ambiguity about the relationship between ids and url, but the presence of an output schema and read-only annotations reduces the need for more detail.
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 fully compensates by explaining both parameters. It clarifies ids as a comma-separated list and url as the bundle URL with typical schemes, which is essential information beyond the bare schema property names.
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 identifies the operation as retrieving a file from a metadata or media bundle, with a specific endpoint pattern. It is distinct from the many sibling metadata retrieval tools because it focuses on bundle file access, though it does not explicitly contrast itself with those siblings.
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 the use case—retrieve a file when given metadata/media bundle IDs and optionally a bundle URL—but it does not state when to prefer this tool over alternatives like get_library_metadata_by_ids or get_library_metadata_by_ids_subtitles. No exclusions or alternative routing guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_ids_similarBRead-onlyIdempotent
Get similar items.
GET /library/metadata/{ids}/similar
Args: ids: Comma-separated list of IDs
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds no behavioral context beyond the bare 'Get similar items' — nothing about result semantics, pagination, how multiple IDs affect output, or any caveats.
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 compact and front-loaded with the purpose, followed by the endpoint and parameter format. Every line earns its place; there is no fluff or redundant prose.
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 one-parameter, read-only tool with an output schema, the description provides the essential endpoint and parameter format. It is slightly incomplete because 'similar items' is ambiguous and no sibling or usage context is given, but nothing critical is missing for basic invocation.
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 only defines ids as a string with no format guidance, while the description explicitly states 'Comma-separated list of IDs' and the endpoint path confirms these are metadata IDs. This adds meaningful parameter semantics beyond the schema, though it does not explain constraints or expected ID count.
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 a specific verb and resource: get similar items for library metadata IDs, and the endpoint path clarifies the resource. However, it does not differentiate this from sibling tools like get_library_metadata_by_ids_related or get_library_metadata_by_ids_all_leaves, and 'similar' remains somewhat vague.
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?
There is no guidance on when to use this tool versus alternatives such as related, nearest, or reviews endpoints. The description simply states what it does without indicating when it is appropriate or when a different sibling should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_ids_subtitlesCRead-onlyIdempotent
Get subtitles.
GET /library/metadata/{ids}/subtitles
Args: ids: Comma-separated list of IDs title: The title to filter by language: The language code to use media_item_id: The unique identifier of the mediaitem url: The URL of the subtitle. If not provided, the contents of the subtitle must be in the post body format: The format forced: The forced hearing_impaired: The hearingImpaired
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| url | No | ||
| title | No | ||
| forced | No | ||
| format | No | ||
| language | No | ||
| media_item_id | No | ||
| hearing_impaired | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds one useful behavioral detail: if no URL is provided, subtitle contents must be in the post body. It does not contradict the annotations, but it omits other behavioral context such as whether this fetches metadata or actual subtitle file content.
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 front-loaded with the core purpose, followed by the endpoint and a compact argument list. No filler or redundant prose appears, though some argument descriptions could be more meaningful without hurting conciseness.
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 an 8-parameter tool with no schema descriptions, the description is too sparse to fully orient an agent. It does not clarify acceptable values for format, forced, or hearing_impaired, how media_item_id relates to ids, or when the URL/post-body path should be chosen. The output schema reduces the need to describe return values, but the input semantics remain 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 description coverage is 0%, so the description must compensate. It does name every parameter and gives a few useful hints (e.g., language code, title filter, URL fallback to post body), but several entries are tautological or unhelpful: 'format: The format', 'forced: The forced', and 'hearing_impaired: The hearingImpaired' add no real meaning.
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 begins with a direct verb and resource: 'Get subtitles.' and includes the endpoint path, making the basic operation clear. However, it gives no detail about what kind of subtitles, for which media, or how it differs from similarly named sibling tools like get_library_metadata_by_ids_file or get_by_transcode_type_transcode_universal_subtitles.
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?
There is no guidance about when to use this tool versus alternatives. The description simply restates the operation and lists arguments, with no mention of prerequisites, use cases, or exclusions. An agent must guess which of the many metadata/subtitle-related siblings is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_ids_treeBRead-onlyIdempotent
Get metadata items as a tree.
GET /library/metadata/{ids}/tree
Args: ids: Comma-separated list of IDs
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior, so the description does not need to repeat those. It adds the tree-shaped return context and the exact endpoint path, but it does not disclose additional behavioral traits such as ordering, limits, or which metadata types support tree 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?
The description is compact and front-loaded. The purpose sentence comes first, followed by the endpoint and the parameter format. No sentence is wasted and there is no redundant prose.
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 one parameter, an output schema, and safety-related annotations, the tool is simple enough that the description covers basic invocation. However, it lacks sibling differentiation and does not explain what 'as a tree' concretely means, leaving some ambiguity for an agent navigating many similar metadata endpoints.
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 only defines ids as a string with no description. The description compensates by specifying that ids is a comma-separated list, which is essential for correct invocation. It could additionally clarify what kind of IDs these are, but the tool name and endpoint make that reasonably inferable.
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 a specific verb and resource: 'Get metadata items as a tree.' The phrase 'as a tree' adds meaningful distinction from flat metadata listing tools. It does not explicitly compare with siblings, so it stops short of a 5.
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?
There is no guidance about when to use this tool versus alternatives like get_library_metadata_by_ids, get_library_metadata_by_id_children, or related tree-like endpoints. The only hint is the word 'tree,' which implies but does not state the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_metadata_by_ids_users_topCRead-onlyIdempotent
Get metadata top users.
GET /library/metadata/{ids}/users/top
Args: ids: Comma-separated list of IDs
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this as read-only, idempotent, and non-destructive. The description adds only the HTTP route and a terse summary, with no additional behavioral context such as authentication requirements, response semantics, or pagination 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 short, front-loaded with the purpose, and contains no filler. It repeats the endpoint path that is already implied by the tool name, but overall it is efficiently structured.
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 single parameter, the rich annotations, and the presence of an output schema, the description is minimally viable. The main gap is the ambiguous meaning of 'top users', which is not clarified anywhere.
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 provides only a bare 'Ids' string, so the description's 'Comma-separated list of IDs' adds useful format information. However, it does not clarify what kinds of IDs these are or how they relate to the endpoint's metadata path.
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 a clear action and resource: 'Get metadata top users', and the HTTP path clarifies the endpoint. However, it does not explain what 'top users' means or how this tool differs from the many other get_library_metadata_by_ids_* siblings.
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?
There is no guidance on when to use this tool versus alternatives, no mention of typical use cases, and no exclusions. An agent is left to infer usage purely from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_parts_by_part_id_by_changestamp_by_filenameARead-onlyIdempotent
Get a media part.
GET /library/parts/{partId}/{changestamp}/{filename}
Args:
part_id: The part id who's index is to be fetched
changestamp: The changestamp of the part; used for busting potential caches. Provided in the key for the part
filename: A generic filename used for a client media stack which relies on the extension in the request. Provided in the key for the part
download: Whether this is a file download
| Name | Required | Description | Default |
|---|---|---|---|
| part_id | Yes | ||
| download | No | ||
| filename | Yes | ||
| changestamp | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds meaningful behavioral context: the changestamp is used for cache busting, the filename extension drives the client media stack, and the download parameter toggles file-download behavior. This exceeds what the annotations alone provide.
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 compact and well-structured: a one-line purpose, the HTTP path, and an args list. It contains no filler or redundancy, though the grammar issue in the part_id description and the slightly mechanical 'Args:' block prevent a perfect score.
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 read-only GET endpoint with an output schema and safety-related annotations, the description gives enough information to construct a valid call. It explains all parameters and the endpoint shape. It could be more complete by explicitly directing agents to sibling tools or describing how to locate the part key, but nothing essential is missing.
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 each parameter, notably that changestamp and filename are provided in the part's key and that download controls file-download behavior. The part_id explanation is awkward and slightly unclear ('who's index is to be fetched'), but overall the parameter descriptions add real value.
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 'Get a media part' and provides the exact GET path, which clearly identifies the resource and action. It does not explicitly contrast itself with sibling tools like get_library_parts_by_part_id_indexes_by_index, but the verb and resource are specific enough to avoid major ambiguity.
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 when to use the tool: to fetch a media part using the part_id, changestamp, and filename from the part's key. However, it provides no explicit guidance about when to choose this tool over related library-part or media-retrieval tools, and no 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_library_parts_by_part_id_indexes_by_indexBRead-onlyIdempotent
Get BIF index for a part.
GET /library/parts/{partId}/indexes/{index}
Args: part_id: The part id who's index is to be fetched index: The type of index to grab. interval: The interval between images to return in ms.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| part_id | Yes | ||
| interval | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds the interval semantics in milliseconds but does not go further to describe response characteristics, rate limits, or any other behavioral nuances. It does not contradict the annotations.
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 compact and well structured: a one-sentence purpose, the HTTP route, and a short argument list. Every line adds useful information and there is no padding 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?
The description provides enough for a basic invocation of the endpoint, and the output schema covers return-value expectations. It is incomplete, though, because it never clarifies what values 'index' can take or how this endpoint differs from the by_offset sibling, which is important for correct tool selection.
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, and it does provide a one-line explanation for each parameter. However, 'index: The type of index to grab' is vague and does not enumerate acceptable values, and interval's optionality/default is not mentioned, leaving meaningful gaps.
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 a clear action and resource: 'Get BIF index for a part' with the explicit endpoint. However, it does not distinguish itself from the closely named sibling get_library_parts_by_part_id_indexes_by_index_by_offset, so an agent could struggle to choose between them based on description alone.
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?
There is no guidance about when to use this tool versus related alternatives, especially the near-identical offset variant. No exclusions, prerequisites, or context are provided, so the agent must infer usage entirely from the endpoint and parameter names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_parts_by_part_id_indexes_by_index_by_offsetBRead-onlyIdempotent
Get an image from part BIF.
GET /library/parts/{partId}/indexes/{index}/{offset}
Args: part_id: The part id who's index is to be fetched index: The type of index to grab. offset: The offset to seek in ms.
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| offset | Yes | ||
| part_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), lowering the description's burden. The description adds the GET endpoint context but discloses no further behavior — no return-format notes, auth expectations, or edge cases. It neither enriches nor contradicts the annotations, so a 3 is appropriate.
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 definition is compact and front-loaded: a one-line summary, the endpoint template, and a short Args block with no filler. The Args section partially duplicates parameter names already in the schema, and the minor grammar issue ('who's' for 'whose') is a small blemish, but overall it is efficiently structured.
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 read operation with full annotation coverage and an output schema present, the definition is nearly sufficient — return values need no explanation. The real gaps are the under-specified 'index' parameter and the unexplained BIF domain term, which an agent needs to know what values to pass. Adequate but incomplete in parameter vocabulary.
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 carries the full burden. The Args block adds genuine value for offset ('The offset to seek in ms' supplies the unit) and links part_id to its index. However, 'index' is glossed as 'The type of index to grab' with no enumeration of valid values, and the schema provides no enums to fill the gap — only partial compensation.
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 a clear verb and resource — 'Get an image from part BIF' — reinforced by the GET endpoint template. The name and endpoint make the by_offset distinction inferable even without explicitly contrasting the sibling tool get_library_parts_by_part_id_indexes_by_index. However, the 'BIF' acronym is unexplained jargon, which slightly dulls clarity.
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 when-to-use guidance, exclusions, or alternatives are provided. The description never mentions the closely related sibling without the offset parameter, so an agent must infer the right choice from the tool name alone. No context is given about when this is preferable to other library index tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_people_by_person_idARead-onlyIdempotent
Get person details.
GET /library/people/{personId}
Args:
person_id: Either the PMS tag id of the person or tagKey of the actor. Note the tagKey is the hex portion of the plex guid for the actor
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is established. The description adds the accepted identifier forms (PMS tag id or tagKey) and the GET endpoint, but does not disclose error behavior or what 'details' includes.
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 compact and front-loaded: a one-line purpose, the endpoint, and a focused Args block. No sentence is wasted.
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 one-parameter GET operation with rich annotations and an output schema, it covers the main invocation ambiguity (what person_id can be). It is not more complete only because it omits explicit routing to the sibling media endpoint, but that gap is already reflected in usage guidance.
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%, making the description the only source of parameter meaning. It fully compensates by explaining that person_id accepts either the PMS tag id or the actor tagKey, and it defines tagKey as the hex portion of the Plex guid.
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 opens with 'Get person details', a clear verb+resource statement, and reinforces it with the endpoint path. It is distinguishable from the sibling get_library_people_by_person_id_media by the word 'details', though it never names or contrasts that sibling.
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 gives no when-to-use guidance, no exclusions, and no pointer to alternatives such as get_library_people_by_person_id_media. An agent must infer the scope from the tool name and 'person details'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_people_by_person_id_mediaARead-onlyIdempotent
Get media for a person.
GET /library/people/{personId}/media
Args:
person_id: Either the PMS tag id of the person or tagKey of the actor. Note the tagKey is the hex portion of the plex guid for the actor
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear without the description. The description adds no behavioral detail beyond the endpoint and parameter note, such as pagination, result shape, or authentication requirements. It does not contradict the annotations.
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 compact and front-loaded: a one-sentence purpose, the exact endpoint, and the key parameter clarification. Every line earns its place, with no redundant fluff or repetition of schema details.
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 one-parameter read tool with rich annotations and a provided output schema, the description is largely complete: it gives the endpoint, the parameter format, and the two accepted identifier forms. The only notable gap is the lack of usage guidance relative to sibling tools, which is already captured in the usage_guidelines dimension.
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 carries the full burden for explaining 'person_id'. It does so thoroughly: the parameter can be either the PMS tag 'id' or the actor's 'tagKey', and it clarifies that 'tagKey' is the hex portion of the plex guid. This is genuinely useful semantic information beyond the raw string type 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 states a specific operation—'Get media for a person'—and reinforces it with the exact endpoint path 'GET /library/people/{personId}/media'. It does not explicitly contrast with the close sibling 'get_library_people_by_person_id', but the resource difference ('media' vs 'person') is clear enough from name and path.
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 given about when to use this tool versus the many sibling library tools, especially 'get_library_people_by_person_id'. The description focuses on the parameter format but does not state intended scenarios, prerequisites, or when an alternative would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_idARead-onlyIdempotent
Get a library section by id.
GET /library/sections/{sectionId}
Args: section_id: The section identifier include_details: Whether or not to include details for a section (types, filters, and sorts). Only exists for backwards compatibility, media providers other than the server libraries have it on always.
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes | ||
| include_details | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint true, idempotentHint true, and destructiveHint false, so the safety profile is covered. The description adds useful behavioral context beyond the annotations: include_details is backward-compatibility-only and 'media providers other than the server libraries have it on always,' plus it defines what details means (types, filters, sorts). No contradiction with annotations.
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 compact and front-loaded with the core purpose, followed by the HTTP path and scannable argument documentation. The HTTP path is slightly redundant with the function name and section_id argument, but the overall structure is 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?
For a two-parameter read operation with rich annotations and an output schema, the description is nearly sufficient. It covers the request path, the meaning of both parameters, and the important include_details quirk. The main missing context is explicit guidance about which of the many section-related sibling tools this one replaces, but that is more of a usage-guideline issue.
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 for the schema's lack of parameter docs. include_details is well explained, including its purpose and default-like behavior. However, section_id is only described as 'The section identifier,' which essentially restates the schema title 'Section Id' and adds no real semantic value.
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 a specific verb and resource: 'Get a library section by id.' It clearly identifies the operation and the id-based scoping, which differentiates it from list-style endpoints. However, it does not explicitly distinguish itself from the many sibling get_library_sections_by_section_id_* variants, so it stops short of a 5.
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?
There is no guidance on when to use this tool versus alternatives such as list_library_sections, get_library_sections_by_section_id_all, or edit/settings variants. The include_details note is parameter-level documentation, not tool-selection guidance. With a large sibling list containing many similarly named section getters, this absence is a meaningful gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_agentsBRead-onlyIdempotent
Get Section Agents.
GET /library/sections/{sectionId}/agents
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already provide readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is clear. However, the description itself adds no behavioral context beyond those annotations, such as what the returned agents represent, whether any filtering applies, or what error or authorization behavior to expect.
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 compact and front-loaded with the action, followed directly by the endpoint and the single argument. It contains little unnecessary text, though it does repeat the argument definition in code-style Args format without adding much detail.
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, read-only, one-parameter tool with an output schema and safety annotations, the description is generally complete enough to invoke: it gives the endpoint pattern and the required section_id. It does not explain what 'agents' are or why this endpoint is preferable to similar section/agent tools, but those gaps weigh more on usage guidance than on call-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?
The description identifies section_id as 'the unique identifier of the library section,' which adds a small amount of meaning beyond the schema's integer type and 'Section Id' title. Schema description coverage is 0%, but with only one parameter, the provided phrase is minimally sufficient, though it lacks guidance on how to obtain or format the ID.
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 Section Agents' and provides the exact endpoint, GET /library/sections/{sectionId}/agents, so an agent can tell this is a read operation against a specific library section's agents. It is not a tautology, though it does not explicitly differentiate itself from sibling tools such as list_system_agents or get_system_agents_by_agent_id.
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?
There is no guidance about when to use this tool versus alternatives, no exclusions, and no context about prerequisites or expected use cases. The description only shows the endpoint and argument list, leaving usage entirely to inference from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_albumsDRead-onlyIdempotent
Set section albums.
GET /library/sections/{sectionId}/albums
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation contradiction: annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, but the description says 'Set section albums,' implying a mutating operation. The description also adds no behavioral context beyond what annotations already provide, and the 'Set' wording directly conflicts with the annotated safety profile.
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, but its first sentence is misleading and its 'Args' block merely repeats information already in the input schema. The useful endpoint line is buried after the incorrect verb, so the structure does not earn 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?
While the schema and annotations are simple and an output schema exists, the description does not clearly state what albums are returned or how this endpoint relates to other library section album-like endpoints. The misleading opening and lack of alternative-routing leave the definition under-informed for an agent deciding whether to call it.
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 needed to compensate, but it only restates 'section_id: Section identifier,' which adds no meaning beyond the schema's title 'Section Id' and integer type. There is no guidance on where section IDs come from or how they are used.
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 opens with 'Set section albums,' which reads as a write operation, while the tool name and endpoint ('GET /library/sections/{sectionId}/albums') clearly indicate a read operation. This makes the purpose misleading rather than merely vague, though the resource ('albums') and endpoint are identifiable.
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 given about when to use this tool versus the many sibling tools such as get_library_sections_by_section_id_all, get_library_sections_by_section_id_collections, or get_library_sections_by_section_id_search. The description only restates the endpoint and parameter without explaining selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_allBRead-onlyIdempotent
Get items in the section.
GET /library/sections/{sectionId}/all
Args: section_id: The id of the section include_meta: Adds the Meta object to the response include_guids: Adds the Guid object to the response include_collections: Include collection items in results include_external_media: Include external or online media include_advanced: Include advanced settings check_files: Verify file existence include_related: Include related items include_extras: Include trailers, behind-the-scenes, etc. include_popular_leaves: Include popular episodes include_concerts: Include concert items include_on_deck: Include On Deck status include_chapters: Include chapter markers include_preferences: Include user preferences include_bandwidths: Include bandwidth info include_loudness_ramps: Include loudness ramp data include_stations: Include radio station data include_external_ids: Include external GUIDs include_reviews: Include user reviews include_credits: Include full credits include_art: Force inclusion of artwork fields include_thumb: Force inclusion of thumbnail fields include_banner: Force inclusion of banner fields include_theme: Force inclusion of theme fields include_fields: Whitelist of fields to return exclude_fields: Blacklist of fields to omit async_augment_metadata: Async metadata augmentation async_refresh_local_media_agent: Async local media agent refresh nocache: Bypass cache skip_refresh: Skip synchronous refresh exclude_elements: Comma-separated list of elements to exclude from the response filters: General filtering expression. unwatched: Filter to unwatched only (1 = true). genre: Filter by genre. studio: Filter by studio. content_rating: Filter by content rating. resolution: Filter by resolution. year: Filter by year. first_character: Filter by first character of title.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| genre | No | ||
| studio | No | ||
| filters | No | ||
| nocache | No | ||
| unwatched | No | ||
| resolution | No | ||
| section_id | Yes | ||
| check_files | No | ||
| include_art | No | ||
| include_meta | No | ||
| skip_refresh | No | ||
| include_guids | No | ||
| include_theme | No | ||
| include_thumb | No | ||
| content_rating | No | ||
| exclude_fields | No | ||
| include_banner | No | ||
| include_extras | No | ||
| include_fields | No | ||
| first_character | No | ||
| include_credits | No | ||
| include_on_deck | No | ||
| include_related | No | ||
| include_reviews | No | ||
| exclude_elements | No | ||
| include_advanced | No | ||
| include_chapters | No | ||
| include_concerts | No | ||
| include_stations | No | ||
| include_bandwidths | No | ||
| include_collections | No | ||
| include_preferences | No | ||
| include_external_ids | No | ||
| async_augment_metadata | No | ||
| include_external_media | No | ||
| include_loudness_ramps | No | ||
| include_popular_leaves | No | ||
| async_refresh_local_media_agent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only profile is covered. The description adds the endpoint path and a long list of optional include/filter parameters, but does not disclose behavioral traits such as response size, pagination, caching effects, or that an 'all' query may return a very large payload. It is consistent with annotations and adds some but not rich 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?
The description is front-loaded with the one-sentence purpose and the endpoint, followed by a structured Args block. The 39-line parameter list is necessary given the parameter count and lack of schema descriptions, but it is long and repetitive, and the formatting is minimal rather than genuinely concise. It is functional but not a model of compactness.
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 39-parameter endpoint, the description is reasonably complete: it states the operation and explains every parameter. However, it provides no guidance on typical use, default behavior, or how this endpoint relates to the many sibling section endpoints. The presence of an output schema removes the need to describe return values, but the missing selection guidance leaves the context incomplete for an autonomous 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?
Schema description coverage is 0%, so the description carries the full burden for 39 parameters. It lists every parameter with a brief semantic hint, such as 'include_meta: Adds the Meta object to the response' and 'unwatched: Filter to unwatched only (1 = true)'. This adds real meaning beyond the bare schema titles, though many entries simply restate 'include X' and several are vague (e.g., 'filters: General filtering expression.').
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 a concrete action and resource: 'Get items in the section' followed by the REST path 'GET /library/sections/{sectionId}/all'. This clearly identifies the primary operation. It does not explicitly differentiate from closely related siblings like get_library_sections_by_section_id_movies, _shows, or _all_leaves, so it misses the full sibling-distinguishing clarity.
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?
There is no guidance about when to use this tool instead of the many sibling get_library_sections_by_section_id_* endpoints. The name and endpoint imply it returns 'all' items, but the description never states that it is the general/all-items endpoint or mentions alternatives for filtered or type-specific queries. Agents are left to infer usage from the URL.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_all_leavesCRead-onlyIdempotent
Set section leaves.
GET /library/sections/{sectionId}/allLeaves
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already provide the read-only, idempotent, non-destructive safety profile, but the description adds no behavioral context beyond the raw path. The phrase 'Set section leaves' is at best unhelpful and at worst implies a write operation for what is annotated as 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 text is extremely short and the endpoint line is useful, but the opening phrase is confusing and arguably wasted. Brevity is achieved through omission rather than efficient information delivery.
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 output schema, the bar is low, but the description still lacks the core concept of 'all leaves' and any selection context. It is not complete enough to choose this endpoint reliably among dozens of similar library section endpoints.
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 should fully explain section_id. It only says 'Section identifier', which duplicates the schema title and does not clarify that it is the library section whose leaf items should be fetched or how to obtain it.
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 contains only 'Set section leaves.' plus the raw endpoint path. 'Set' is ambiguous (noun or write action) and the description never states that this GET returns all leaf items in a library section, nor does it differentiate from siblings such as get_library_sections_by_section_id_all or get_library_metadata_by_ids_all_leaves.
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 given about when to call this tool versus the many other section/library leaf tools. There is no mention of prerequisites, filters, or alternatives, so an agent cannot decide between this and get_library_sections_by_section_id_all from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_artistsCRead-onlyIdempotent
Get Section Artists.
GET /library/sections/{sectionId}/artists
Args: section_id: The id of the section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the tool read-only, idempotent, and non-destructive. The description adds no behavioral context beyond repeating the endpoint path, such as response characteristics, ordering, or any side effects, so it provides little value beyond the structured annotations.
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 compact and front-loaded: a one-line summary, the endpoint path, and the single argument. There is no filler or unnecessary explanation, though it could have used the space to add real usage context.
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?
This is a low-complexity, read-only endpoint with one required parameter and an output schema, so the description is nearly sufficient. It lacks a richer explanation of what 'artists' means in this context, but annotations and schema cover the essential safety and return-value aspects.
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, so the description needed to explain section_id meaningfully. 'The id of the section' is essentially a restatement of the parameter name and schema title 'Section Id', adding no practical guidance about what a section is or where the ID comes from.
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 and resource: 'Get Section Artists', and the endpoint path clarifies exactly which resource is being accessed. It does not explicitly distinguish itself from sibling section endpoints like albums, movies, or shows, but the resource noun 'artists' is 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?
There is no guidance on when to use this tool versus the many similar sibling tools. It does not mention alternatives, exclusions, or typical use cases, leaving the agent to infer appropriateness solely from the resource name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_artsDRead-onlyIdempotent
Set section artwork.
GET /library/sections/{sectionId}/arts
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, but the description explicitly says 'Set section artwork,' contradicting the read-only behavior. No additional behavioral context is provided beyond the annotations, and the contradiction makes the description harmful.
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, but its main sentence is misleading and the 'Args' section adds no value beyond the schema. This is under-specification with harmful content, not effective conciseness.
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?
Even though the tool is simple with one parameter, the misleading purpose and lack of any usage or behavioral context make it incomplete. The annotations cover safety, but the description fails to explain what this endpoint actually retrieves or when it should be used.
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, but it merely restates the parameter as 'section_id: Section identifier,' which duplicates the schema's title 'Section Id.' No additional meaning, format, or constraints are 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?
The description begins with 'Set section artwork,' which implies a write operation, but the endpoint line says 'GET /library/sections/{sectionId}/arts,' indicating a read operation. This is actively misleading rather than clarifying. The description does not distinguish this from sibling tools like create_library_metadata_by_id_arts or get_library_sections_by_section_id_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 guidance is given about when to use this tool versus alternatives. There is no mention of context, exclusions, or related sibling tools. The misleading 'Set' verb also creates a wrong assumption about its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_autocompleteBRead-onlyIdempotent
Get autocompletions for search.
GET /library/sections/{sectionId}/autocomplete
Args: section_id: Section identifier field_query: The "field" stands in for any field, the value is a partial string for matching
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes | ||
| field_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds a useful behavioral nuance—field_query is a partial string for matching—but does not disclose return behavior or other side effects beyond what annotations and the output schema supply.
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 compact and front-loaded with the primary purpose, followed by the endpoint and a minimal Args block. It contains no filler, though the Args section could have been integrated with the schema rather than partially duplicating titles.
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 read-only tool with an output schema and strong annotations, this is adequate but not complete. The missing clarity around field_query construction and the absence of any relationship to the search sibling mean an agent may call it correctly only by guessing at query semantics.
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 does explain both parameters: section_id is an identifier and field_query is a partial string for matching, which is meaningful. However, the wording 'The "field" stands in for any field' is ambiguous about how to construct the query and which field names are valid, leaving a 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 opening line 'Get autocompletions for search' is a specific verb+resource description and the endpoint line identifies the target resource. However, it does not differentiate this tool from the sibling get_library_sections_by_section_id_search, so an agent cannot tell them apart from the description alone.
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 given about when to choose this autocomplete endpoint over related search endpoints. There is no mention of alternatives, exclusions, or the typical interaction pattern of supplying a partial value, so usage is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_by_content_ratingCRead-onlyIdempotent
Get By Content Rating.
GET /library/sections/{sectionId}/byContentRating
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the GET route and does not disclose response behavior, grouping/filtering semantics, pagination, or any other runtime characteristics beyond what annotations already imply.
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 front-loaded with the HTTP verb and endpoint path, with no verbose prose. However, it is under-specified rather than economically informative: the first line "Get By Content Rating" adds almost no value beyond the tool name.
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 route and the single required parameter provide the minimum invocation details, and the output schema is present, so return-value documentation is not required. However, the description never explains what "by content rating" means, what kind of items are returned, or how this endpoint relates to the many sibling section endpoints, leaving an agent to guess at its semantics.
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%, and the description partially compensates by stating that section_id is "the unique identifier of the library section." This adds a semantic referent beyond the schema's bare "Section Id" title, but it does not explain where the ID comes from or what values are valid.
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's opening line, "Get By Content Rating," is essentially a restatement of the tool name and does not explain what the operation returns or what "content rating" means in a library section. The HTTP route adds the endpoint path but not semantic clarity. It also fails to distinguish this tool from sibling endpoints like get_library_sections_by_section_id_by_resolution or by_year.
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?
There is no guidance on when to use this tool versus any of the many sibling library-section endpoints. The description only repeats the URL pattern and the section_id argument, with no indication of use case, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_by_decadeCRead-onlyIdempotent
Get By Decade.
GET /library/sections/{sectionId}/byDecade
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds little behavioral context beyond repeating the GET path; it does not disclose grouping behavior, result size, pagination, or any other trait that would help the agent reason about side effects or response handling.
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, structured, and front-loaded with the endpoint. The Args block is clean, though the opening phrase 'Get By Decade' is somewhat redundant with the tool name and endpoint.
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 read-only lookup with one well-defined integer parameter and an output schema, the essential call information (endpoint and parameter) is present. However, the description is not self-sufficient as a purpose statement and gives no context about what grouping by decade means, making it weaker in tool-selection contexts.
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 only parameter, section_id, is described as 'The unique identifier of the library section.' Even though schema description coverage is 0%, the description meaningfully explains the sole required argument. It lacks examples or constraints, but for a simple integer identifier this is adequate.
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 is essentially a fragment: 'Get By Decade.' It includes the HTTP path (GET /library/sections/{sectionId}/byDecade), which supplies the resource and action, so it is more than a pure tautology. However, it does not explain what 'byDecade' returns or how it differs from sibling endpoints like by_year or by_resolution.
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 about when to use this tool versus alternatives. The path implies it is a filtered library-section query, but there is no explicit when/when-not or mention of sibling tools that may be more appropriate for year or resolution-based queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_by_folderCRead-onlyIdempotent
Get By Folder.
GET /library/sections/{sectionId}/byFolder
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context about what 'by folder' retrieves, whether results are nested, or any special response semantics; it merely repeats the HTTP path.
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 parseable, but its headline 'Get By Folder.' is redundant with the tool name and does not earn its place. The endpoint and Args lines are useful, yet the overall terseness crosses from concise into under-specified.
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?
Although the tool has only one required parameter and an output schema, the description leaves the core 'by folder' semantics unexplained. An agent cannot confidently choose this tool over its many section-based siblings without knowing what folder-scoped retrieval means or when it applies.
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 needed to compensate, but it only says section_id is 'the unique identifier of the library section,' which adds little beyond the schema title 'Section Id.' It does not explain how the parameter interacts with the byFolder behavior.
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 is essentially a tautology: 'Get By Folder.' restates the tool name without explaining what 'by folder' means or what data is returned. The endpoint path adds structure but does not clarify the operation's purpose or distinguish it from the many similar get_library_sections_by_section_id_* siblings.
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 given about when to use this tool versus alternatives such as get_library_sections_by_section_id_all, by_resolution, or by_year. The description only states the endpoint and argument, leaving the selection criteria entirely implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_by_resolutionCRead-onlyIdempotent
Get By Resolution.
GET /library/sections/{sectionId}/byResolution
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. However, the description adds no behavioral context beyond the endpoint and parameter, leaving the meaning and effect of the 'byResolution' operation undisclosed.
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 front-loaded, but the opening line 'Get By Resolution' is essentially a tautology and does not earn its place. The endpoint and argument list are useful, but the overall structure lacks substantive 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?
Although the output schema exists and annotations cover safety, the description is incomplete for a tool with so many closely named siblings. It never explains what 'by resolution' means, what kind of items are returned, or why an agent would choose this endpoint over other library section queries.
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 schema description coverage at 0%, the description partially compensates by explaining section_id as 'the unique identifier of the library section.' This adds a little meaning beyond the schema's bare title 'Section Id,' though it does not clarify the resolution concept in the endpoint.
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 says only 'Get By Resolution' and gives the endpoint, which restates the tool name without explaining what 'by resolution' means or what is returned. It does not distinguish this from the many other get_library_sections_by_section_id_* 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?
There is no guidance about when to use this tool, what problem it solves, or when to prefer one of the many similar sibling tools. The endpoint and argument list imply usage but provide no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_by_yearCRead-onlyIdempotent
Get By Year.
GET /library/sections/{sectionId}/byYear
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a read-only, idempotent, non-destructive operation, so the safety profile is covered. However, the description adds essentially no behavioral context beyond the endpoint path; it does not explain what the response represents or how the year dimension behaves.
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, front-loads the endpoint path, and includes the argument definition without fluff. It earns its place, though brevity is partly a result of under-specification.
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 a simple schema and safety annotations, the description is not complete enough for reliable tool selection: an agent cannot determine what 'byYear' returns, how it differs from sibling endpoints, or what scenario calls for this tool. The existence of an output schema does not compensate for missing semantic 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?
Schema description coverage is 0%, so the description carries the burden for the single parameter. It does add a minimal gloss: 'section_id: The unique identifier of the library section.' This is enough for a simple integer parameter, though it adds little beyond what the parameter name implies.
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 is essentially 'Get By Year.', which mostly restates the tool name and endpoint path without saying what is actually returned or what 'by year' means in this context. Among many similar get_library_sections_by_section_id_* siblings, it does not distinguish itself semantically.
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?
There is no guidance on when to use this tool versus alternatives such as get_library_sections_by_section_id_by_resolution or get_library_sections_by_section_id_movies. The description provides no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_categoriesDRead-onlyIdempotent
Set section categories.
GET /library/sections/{sectionId}/categories
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts the annotations: it says 'Set' while readOnlyHint=true and destructiveHint=false indicate a safe read operation. This is an annotation contradiction, and the description provides no additional 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?
The description is short, but brevity here is under-specification rather than conciseness. The three lines provide no useful information beyond repeating the endpoint and arg name, and the opening sentence is inaccurate.
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?
Although the tool has only one parameter and an output schema, the description still fails the minimum requirement of correctly stating the operation. It does not explain what categories are or how this endpoint differs from the many similar library-section sibling tools, and the misleading 'Set' makes the context 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?
With 0% schema description coverage, the description needed to compensate, but it only restates 'section_id' as 'Section identifier.' This adds no real semantics beyond the schema property title and leaves the meaning of a section and any constraints unexplained.
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 says 'Set section categories' but the tool name begins with 'get' and the endpoint is GET /library/sections/{sectionId}/categories. This misstates the operation, making it actively misleading. It also provides no differentiation from over 40 sibling get_library_sections_by_section_id_* 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 siblings such as get_library_sections_by_section_id_tags or get_library_sections_by_section_id_settings. The description contains only an endpoint and parameter list, with no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_clipsCRead-onlyIdempotent
Get Section Clips.
GET /library/sections/{sectionId}/clips
Args: section_id: The id of the section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. However, the description adds no behavioral context beyond the HTTP method, such as response scope, pagination, filtering, or relationship to related endpoints.
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, front-loaded with the main purpose, and contains no filler. It is only slightly more informative than the name and schema, but it is efficiently structured.
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 read-only endpoint with one parameter and an output schema, the description is nearly sufficient. However, it does not explain what counts as a clip or when to choose this endpoint over the many sibling section tools, and it relies heavily on annotations and the tool name.
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 explicitly defines section_id as 'The id of the section', which gives basic semantic meaning for the only parameter. Schema description coverage is 0%, but for a simple integer parameter tied to a URL path, this minimal clarification is adequate, though no example or source is 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?
The description clearly names the resource ('Section Clips') and the HTTP verb, and the endpoint path gives an unambiguous target. It does not explicitly contrast with sibling section tools such as categories or unwatched, but the resource name is specific enough to distinguish in most cases.
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?
There is no guidance about when to use this tool versus the many get_library_sections_by_section_id_* siblings. The description only states the operation and parameter, leaving the agent to infer appropriateness from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_clusterDRead-onlyIdempotent
Set section clusters.
GET /library/sections/{sectionId}/cluster
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts the annotations: 'Set' implies a write, while readOnlyHint=true and destructiveHint=false indicate a safe read. The GET endpoint supports read-only, but the description's phrasing is inconsistent. No additional behavioral context (e.g., return format, limitations) is provided.
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)Skip and not well-structured. The first sentence 'Set section clusters.' is not only misleading but also cluttered with an unnecessary blank line and a redundant restatement of the endpoint that already appears in the tool name. The args section is minimal at best.
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?
Even though an output schema exists, the description is too sparse to be useful. It does not explain what a 'cluster' represents, what operation the GET performs, or how this relates to sibling tools. The contradiction between 'Set' and the GET endpoint further undermines 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?
The description's parameter line 'section_id: Section identifier' merely restates the schema's title 'Section Id' without adding any new meaning. With 0% schema description coverage, the description was expected to explain the parameter more deeply but failed to do so.
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 opens with 'Set section clusters,' which incorrectly implies a mutating operation, while the tool name, endpoint (GET), and annotations all indicate a read-only retrieval. The verb is misleading rather than informative. It does not distinguish this tool from any of the many sibling library section endpoints.
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?
There is no guidance on when to call this tool versus any of the dozens of sibling endpoints. The description provides no context, such as what a 'cluster' is or how it differs from 'all', 'albums', or 'collections'. An agent would have no basis to select this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_collectionsCRead-onlyIdempotent
Get collections in a section.
GET /library/sections/{sectionId}/collections
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context—no mention of result sets, filtering, pagination, or any side effects. It merely restates the operation without enriching the annotation-covered facts.
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 compact: one sentence plus endpoint and Args listing. It front-loads the action and avoids fluff. The Args line is somewhat redundant with the schema, but the overall size is appropriate for a simple get operation.
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 annotations and an output schema present, the description's main burden is usage contextcongruence. It provides none: no explanation of what a 'collection' is, no guidance on selecting this endpoint among dozens of section sub-resources, and no preconditions. Although the tool is read-only and simple, the complete lack of context makes it insufficient for an agent choosing between siblings.
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 only echoes the parameter name and a vague label ('Section identifier'), adding substantially no meaning beyond the schema's 'Section Id' title. No information about where to find section IDs, valid values, or how the parameter shapes the response.
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 a specific verb and resource: 'Get collections in a section' and includes the endpoint path. The tool name also mirrors this, making the core function clear. However, it does not explicitly differentiate from sibling tools like get_library_sections_by_section_id_playlists, though 'collections' is distinct enough.
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?
There is no guidance on when to use this tool versus alternatives. The sibling list contains many similar get_library_sections_by_section_id_* tools, and the description provides no decision context, exclusions, or references to more appropriate tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_commonCRead-onlyIdempotent
Get common fields for items.
GET /library/sections/{sectionId}/common
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral detail beyond what the annotations already provide: readOnlyHint, idempotentHint, and destructiveHint=false. The endpoint line restates the method as GET, which the annotations already imply, and there is no mention of auth requirements, response behavior, or other operational 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 compact and front-loaded with the core action, followed by the endpoint and argument list. There is no wasted text, though the brevity contributes to the lack of context.
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 read-only annotations and presence of an output schema reduce the burden on the description. However, the phrase 'common fields for items' is vague and the description does not clarify what 'common' means or how this endpoint relates to the many similar sibling endpoints, leaving some ambiguity for an agent trying to decide whether it is the right 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%, and the description gives one line: 'section_id: Section identifier'. This is minimally helpful but mostly restates the schema's property title 'Section Id' and does not explain how the section_id maps to the path or where to obtain it. With only one required parameter, it is just barely adequate.
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 a specific action and resource: 'Get common fields for items' plus the concrete endpoint 'GET /library/sections/{sectionId}/common'. This is clear enough, though it does not differentiate itself from the many sibling get_library_sections_by_section_id_* 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?
There is no guidance on when to use this tool versus the many similar section-related endpoints such as get_library_sections_by_section_id_categories or get_library_sections_by_section_id_albums. No exclusions, alternatives, or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_composite_by_updated_atARead-onlyIdempotent
Get a section composite image.
GET /library/sections/{sectionId}/composite/{updatedAt}
Args: section_id: Section identifier updated_at: The update time of the image. Used for busting cache.
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes | ||
| updated_at | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, open-world, and non-destructive, so the safety profile is covered structurally. The description adds only that updated_at is 'used for busting cache', which is useful but minor; it does not disclose authentication, error behavior, or response properties beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, scannable, and includes the HTTP method, path, and parameter explanations near the start. It has no filler, although the Args block adds little beyond what the schema already provides.
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 two-parameter GET-style read with an output schema and strong annotations (readOnly, idempotent, non-destructive), the description covers the core invocation details. The missing elements are minor—such as expected MIME type or alternative use cases—and do not prevent an agent from calling the tool correctly.
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 must compensate, and it partially does: 'updated_at' is explained as the image update time and cache-busting value. However, 'section_id' is only called a 'Section identifier', which mostly restates the field name, so both parameters are not fully enriched.
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 and resource: 'Get a section composite image', and includes the exact endpoint pattern, so an agent immediately understands what the tool returns. It does not explicitly contrast this with sibling composite tools (e.g., the collection composite), but the resource is named unambiguously.
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 when to use the tool: when the caller wants the composite image for a library section at a specific updated-at timestamp. It provides no explicit guidance about alternatives or conditions like 'use this endpoint for cache-busting image fetches', so the guidance is adequate but implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_compute_pathCRead-onlyIdempotent
Similar tracks to transition from one to another.
GET /library/sections/{sectionId}/computePath
Args: section_id: Section identifier start_id: The starting metadata item id end_id: The ending metadata item id max_distance: The maximum distance allowed along the path; defaults to 0.25
| Name | Required | Description | Default |
|---|---|---|---|
| end_id | No | ||
| start_id | No | ||
| section_id | Yes | ||
| max_distance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the description does not need to repeat those. However, it adds no meaningful behavioral context: it does not explain what the returned path represents, whether it returns a list or a single result, or any side effects. The phrase 'Similar tracks to transition from one to another' is too ambiguous to inform an agent about actual 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 short and includes the endpoint and an Args list, which is reasonably structured. However, the opening sentence is vague and wastes space without adding value, and the overall structure could be improved by placing a clear purpose statement before the endpoint.
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 4 parameters and an output schema, the description is incomplete. It lacks a clear explanation of what the tool computes, when to use it, and what the response contains. Given the existence of many sibling tools, the absence of usage context and differentiation is a significant 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?
The description provides an Args section that explains each parameter beyond the schema, which only has titles and defaults. It clarifies section_id as 'Section identifier', start_id and end_id as 'starting/ending metadata item id', and max_distance with its default value (0.25). This compensates for the 0% schema description coverage and is genuinely helpful for parameter usage.
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 opens with 'Similar tracks to transition from one to another,' which is vague and does not state a clear verb or resource. The HTTP endpoint 'GET /library/sections/{sectionId}/computePath' hints at computing a path, but the description never explicitly says it computes a path between two metadata items. It is not distinguishable from many similar sibling tools without external knowledge.
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 the many sibling tools, such as get_library_metadata_by_id_compute_path or other get_library_sections_by_section_id_* operations. There is no mention of conditions that would make this the appropriate choice or exclusions of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_editDRead-onlyIdempotent
Edit Section.
GET /library/sections/{sectionId}/edit
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool is known to be a safe read. The description adds only the HTTP path and does not disclose what 'edit' means, what response is returned, or any side effects or limitations. With annotations covering safety, the bar is lower, but the description still contributes no 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?
The description is appropriately short and structured, but 'Edit Section.' is a fragment that adds little and may mislead. The HTTP path and Args block mostly restate information already in the tool name and schema. No sentence earns a clear informational payoff.
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 one parameter serious an output schema and safe annotations, the description still fails to explain the purpose of the 'edit' variant, how it differs from the base get_library_sections_by_section_id, or what an agent should do with the result. An agent cannot reliably decide when this tool is relevant.
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. The only parameter, section_id, is described as 'The unique identifier of the library section,' which adds minimal meaning beyond the schema's field name and integer type. It does not explain how to obtain the ID, any constraints, or the parameter's role in the edit context.
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 'Edit Section.' is a fragment that restates the tool name without specifying what the operation actually does. While the HTTP path and GET method hint it is a read operation, it is ambiguous whether this tool edits a section or retrieves data for an editing UI, especially compared to the straightforward get_library_sections_by_section_id sibling.
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 given on when to use this tool versus the many other library section tools, such as get_library_sections_by_section_id, get_library_sections_by_section_id_settings, or get_library_sections_by_section_id_prefs. There is no mention of alternatives, prerequisites, or context for the 'edit' variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_empty_trashCRead-onlyIdempotent
Get Empty Trash.
GET /library/sections/{sectionId}/emptyTrash
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the bar is lower. However, the description adds no behavioral context about what the response contains or whether any state changes; 'Get Empty Trash' remains ambiguous and could be misread as a destructive action.
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 front-loaded, but the opening 'Get Empty Trash.' is vague and largely duplicates the endpoint line. The Args section mostly restates the schema with only a minor gloss, so not every element 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?
For a one-parameter tool with an output schema and read-only annotations, the key missing piece is the core meaning: what 'empty trash' means in a GET request. An agent still cannot tell whether this returns trashed items or performs an emptying operation, which is a significant completeness 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?
The single parameter is glossed as 'the unique identifier of the library section,' which is a basic but useful addition over the schema's bare 'Section Id' title. It is sufficient for a simple integer identifier, though it adds no format, source, 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 only says 'Get Empty Trash' and gives the raw HTTP path. It never states what the tool actually returns or does, leaving ambiguity about whether it retrieves trash contents or triggers an empty-trash operation. It also does not differentiate it from the create_/update_ empty_trash 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?
There is no guidance on when to use this tool versus the many sibling library-section tools or the create_/update_ empty_trash variants. The endpoint line provides routing context but no decision support for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_episodesCRead-onlyIdempotent
Get Section Episodes.
GET /library/sections/{sectionId}/episodes
Args: section_id: The id of the section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description adds no behavioral context beyond restating the HTTP verb and path; it does not explain pagination, response shape, or any side effects or limitations. It neither conflicts with annotations nor enriches them meaningfully.
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, front-loaded with the core purpose, and contains no fluff. The endpoint and argument are stated directly. While it could be more informative, every present line 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?
With a single required parameter, an output schema, and read-only annotations, the description is minimally sufficient for a simple fetch. However, it lacks any context about what episodes are, what kind of section is valid, or how this differs from the many closely related section endpoints in the sibling list.
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 only parameter, section_id, has a schema title 'Section Id', and the description says 'The id of the section', which is essentially a restatement of the schema with no additional meaning. It does not explain what a section is, how to find a valid section ID, or any constraints beyond being an integer.
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 a clear verb and resource: 'Get Section Episodes' and gives the exact endpoint path 'GET /library/sections/{sectionId}/episodes'. It is unambiguous about what the tool does, but it does not differentiate it from the many sibling section endpoints like shows, movies, or albums.
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 about when to use this tool versus alternatives. It does not mention that this is for TV episode content in a library section, nor does it exclude sibling tools such as get_library_sections_by_section_id_shows or get_library_sections_by_section_id_movies. An agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_filtersCRead-onlyIdempotent
Get section filters.
GET /library/sections/{sectionId}/filters
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond the GET verb and endpoint, with nothing about auth, response shape, or open-world 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 compact and front-loaded with the core operation and endpoint. However, the Args block mostly duplicates the input schema and adds no useful detail, so the structure is tidy but not fully information-dense.
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 single-parameter read-only endpoint with an output schema and strong annotations, the bare description is minimally usable. But it never clarifies what 'section filters' denotes or why an agent would choose this tool among the many sibling get_library_sections_* endpoints, leaving a notable completeness 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?
Schema description coverage is 0%, so the description carries the responsibility to explain section_id. 'Section identifier' merely restates the property title and does not clarify what kind of section is expected, what valid values are, or any 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 states a clear verb and resource: 'Get section filters' and includes the exact endpoint template. It does not explicitly distinguish this from sibling section subresource endpoints such as categories, tags, sorts, or common, so it misses the top-level differentiation criterion.
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 given about when to call this endpoint versus get_library_sections_by_section_id_categories, tags, sorts, or similar filter-related endpoints. The description only restates the operation and parameter, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_first_charactersCRead-onlyIdempotent
Get list of first characters.
GET /library/sections/{sectionId}/firstCharacters
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, fully covering the safety profile. The description adds only the HTTP endpoint, which largely restates the tool name, and discloses no additional behavioral traits such as pagination, ordering, or response shape.
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 front-loaded, but brevity borders on under-specification. The endpoint line and Args line add minimal value beyond the name and schema, so not every sentence earns its place; still, there is no wasted verbiage.
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 one-parameter read-only tool with annotations and an output schema present, the structural burden is light. The main gap is semantic: it never explains what 'first characters' refers to or how the list is ordered, leaving the agent to infer the tool's browse-by-letter 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?
Schema description coverage is 0%, so the description must carry parameter meaning, but 'section_id: Section identifier' merely restates the schema's 'Section Id' title. It adds no detail about format, constraints, how to discover valid IDs, or the effect of the value on the result set.
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 a specific verb and resource ('Get list of first characters' for a library section) and the endpoint makes the resource explicit. However, 'first characters' is ambiguous without context — it never says first characters of titles/items — so an agent cannot fully grasp what data comes back. It is distinguishable from siblings by name, but the description itself does not do the distinguishing work.
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?
There is no guidance on when to use this tool versus the many sibling get_library_sections_by_section_id_* tools (albums, movies, shows, newest, recently_added, etc.). No exclusions, prerequisites, or alternative routes are mentioned, leaving the agent to guess the appropriate selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_hubsBRead-onlyIdempotent
Get Section Hubs.
GET /library/sections/{sectionId}/hubs
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds no behavioral context beyond restating the GET operation, such as response shape, pagination, or any 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 compact and front-loaded with the core purpose, followed by the endpoint and parameter documentation. No unnecessary text is present.
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 read-only endpoint with one documented parameter, an output schema, and safety annotations, the description is nearly complete. The main gap is not explaining what 'hubs' are or when to use this over related hub endpoints.
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 description compensates by documenting section_id as 'The unique identifier of the library section.' For a single simple integer parameter, this 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 states a specific verb and resource ('Get Section Hubs') and includes the exact endpoint path. It is clear what the tool does, though it does not explicitly differentiate itself from sibling tools such as list_hubs or get_hubs_sections_by_section_id.
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 about when to use this tool versus alternatives. The description only restates the endpoint and parameter without explaining context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_labelCRead-onlyIdempotent
Get Section Labels.
GET /library/sections/{sectionId}/label
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds zero behavioral context beyond that: no mention of response volume, sort order, whether labels are localized, or how they relate to tags. It does not contradict annotations, but contributes nothing beyond them.
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 the endpoint is front-loaded, which is good. But the opening line 'Get Section Labels.' is redundant with the tool name, and the total content is so minimal that brevity is a consequence of under-specification rather than careful editing.
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 tool is structurally simple (one parameter, output schema present, annotations cover safety), so the description does not need to explain return values. Yet the description fails to disambiguate what 'labels' means versus the large cluster of similar section metadata tools (tags, categories, filters), leaving an agent unable to confidently select this tool among siblings.
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 carries the burden for the single parameter. It does state that section_id is 'the unique identifier of the library section,' which adds basic meaning over the bare schema title 'Section Id.' However, it adds no format constraints or guidance on how to discover the section ID, so compensation is only partial.
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 a verb and resource ('Get Section Labels') and includes the endpoint, so an agent knows it fetches labels for a library section. However, 'labels' is left undefined and is not differentiated from the many similar sibling tools (tags, categories, filters, common), so the description essentially restates the tool's own name without clarifying what labels are.
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 given on when to use this tool versus sibling tools like get_library_sections_by_section_id_tags, get_library_sections_by_section_id_categories, or get_library_sections_by_section_id_filters. There are no exclusions, prerequisites, or context signals to help an agent route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_locationCRead-onlyIdempotent
Get all folder locations.
GET /library/sections/{sectionId}/location
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the 'all folder locations' scope and the HTTP GET method but does not describe response behavior, auth needs, or other operational 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 opening sentence is clear and front-loaded, and the description is short. However, the endpoint line and Args block are largely redundant with the tool name and input schema, so not every line 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 the low complexity, one parameter, strong annotations, and an existing output schema, the description is minimally adequate. Still, it lacks any explanation of what folder locations are, which limits an agent's ability to confidently select this tool among many similar section endpoints.
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%, and the description only restates the parameter as 'Section identifier,' which adds no meaning beyond the schema's 'Section Id.' It does not explain where to obtain a section_id, valid formats, or any examples, so it fails to compensate 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 states a specific verb and resource: 'Get all folder locations' and gives the endpoint path. However, it does not explain what 'folder locations' means or differentiate it from the many sibling get_library_sections_by_section_id_* endpoints.
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?
There is no guidance on when to use this tool versus alternatives, no exclusions, and no mention of related sibling tools. The agent must infer usage from the endpoint name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_matchCRead-onlyIdempotent
Match Section Items.
GET /library/sections/{sectionId}/match
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond the GET URL; it does not clarify whether the operation returns matched items, initiates a match process, or has any 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 compact and well-structured: a short label, the HTTP path, and the parameter definition. There is no wasted text, though the label is too terse to be truly 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?
For a tool with one parameter, an output schema, and safety annotations, the description is minimally callable, but it fails to explain the meaning of 'match' or when this endpoint is appropriate. The agent can invoke it, but may not correctly choose it among the many similar library-section and metadata-match 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 only parameter, section_id, is described as 'The unique identifier of the library section,' which is minimal but does convey its role. Since schema coverage is 0%, the description partially compensates, though it adds little beyond what the schema title 'Section Id' already implies.
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 'Match Section Items' essentially restates the endpoint name without explaining what 'match' means or what the tool actually returns. The GET line identifies the transport mechanism but not the semantic purpose, leaving the tool indistinguishable from other match/unmatch operations in the sibling list.
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 given about when to use this tool versus related alternatives such as update_library_metadata_by_ids_match, get_library_sections_by_section_id_unmatch, or list_library_matches. The agent is left to infer use from the endpoint name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_momentDRead-onlyIdempotent
Set section moments.
GET /library/sections/{sectionId}/moment
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, but the first sentence 'Set section moments' suggests a write/mutation operation, contradicting those annotations. The GET line mitigates the conflict but does not resolve it, and no additional behavioral context is provided.
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 front-loads the HTTP route, which is good. However, the ambiguous 'Set' line is prominently placed, and the 'Args' line duplicates what the schema already provides. It is compact but not optimally 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?
The output schema and annotations cover return values and safety, but the description does not explain what 'moments' are or when this endpoint is the right choice. An agent choosing among many get_library_sections_by_section_id_* siblings would lack the context needed to invoke this tool reliably.
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, but 'section_id: Section identifier' merely restates the schema's title and type. It adds no information about how the identifier is used, its domain, or any constraints beyond what the schema already specifies.
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 leads with 'Set section moments,' which reads as a mutation, while the tool name and endpoint ('GET /library/sections/{sectionId}/moment') indicate a read operation. It never defines what 'moments' are or how this endpoint differs from siblings like get_library_sections_by_section_id_timeline.
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?
There is no guidance on when to use this tool versus alternatives. The description only provides the route and argument, with no use cases, prerequisites, or exclusions, despite dozens of similar library-section siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_moviesCRead-onlyIdempotent
Get Section Movies.
GET /library/sections/{sectionId}/movies
Args: section_id: The id of the section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The readOnlyHint, idempotentHint, and non-destructive annotations already establish the safety profile, and the description adds no behavioral context beyond the GET method. It does not mention filtering, pagination, response contents, permissions, or anything that would go beyond the annotations.
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, front-loaded with the core purpose, and follows with the endpoint and single argument. The Args block slightly duplicates the input schema, but the definition is still appropriately sized and free of unnecessary prose.
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 read-only endpoint with one required integer parameter, a provided output schema, and read-only annotations, this terse description is nearly sufficient. However, it lacks any orienting statement about what the returned movie list contains or how it differs from sibling section endpoints, leaving some contextual gap 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?
Schema coverage is 0%, but the description only restates the parameter as 'The id of the section', which adds almost nothing beyond the schema property title 'Section Id'. It does not explain how to discover section IDs or how the ID relates to the path variable beyond the obvious mapping.
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 opens with 'Get Section Movies' and gives the exact endpoint GET /library/sections/{sectionId}/movies, making it clear that the tool retrieves movie items from a library section. It is specific enough to be usable, though it does not explicitly contrast with the many sibling section endpoints such as shows or albums.
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?
There is no when-to-use guidance, no exclusions, and no mention of alternative tools. The only usage signal is the implied fact that this endpoint is for movies in a section, which provides little help for choosing among the many section-related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_nearestARead-onlyIdempotent
The nearest audio tracks.
GET /library/sections/{sectionId}/nearest
Args:
section_id: Section identifier
type: The metadata type to fetch (should be 10 for audio track)
values: The music analysis to center the search. Typically obtained from the musicAnalysis of a track
limit: The limit of the number of items to fetch; defaults to 50
max_distance: The maximum distance to search, defaults to 0.25
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| limit | No | ||
| values | No | ||
| section_id | Yes | ||
| max_distance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds useful behavioral details beyond annotations: the search is centered on music analysis, type 10 is the audio-track convention, and limit/max_distance have defaults.
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 compact and front-loaded with a purpose statement, then the endpoint and a tidy Args block. There is no filler or duplication of schema structure.
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?
All five parameters are explained, including non-obvious ones like 'values' and 'type'. Since an output schema exists, return-format details are unnecessary; the only slight gap is not addressing when to use this over the metadata-level nearest sibling.
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 carries the full burden. It compensates well by explaining every parameter: section_id, type's expected value, values' provenance, and the defaults for limit and max_distance.
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 resource and operation: it returns the nearest audio tracks for a library section. The endpoint and 'audio tracks' qualifier make the purpose clear, though it does not explicitly distinguish this from the sibling get_library_metadata_by_id_nearest.
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 clear usage context, especially that 'values' should come from a track's musicAnalysis and 'type' should be 10 for audio tracks. It does not name alternatives or when-not-to-use conditions, but the intended scenario is reasonably evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_newestBRead-onlyIdempotent
Get Newest for Section.
GET /library/sections/{sectionId}/newest
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method and path but no additional behavioral details such as sorting, pagination, or response scope; this is acceptable but not particularly additive.
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, front-loaded with the purpose, and includes the endpoint and the one parameter. There is no filler, and every line earns its place, though it is minimal enough that it could have added a bit more context without becoming bloated.
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 read-only, idempotent GET with one parameter and an output schema, the endpoint and parameter explanation are sufficient for an agent to invoke it. The main missing piece is sibling differentiation, but that is addressed under usage guidelines rather than blocking invocation.
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 defines section_id as 'the unique identifier of the library section,' adding some semantic meaning beyond the schema's 'Section Id' integer, but it does not explain how to discover or validate the ID.
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 a clear action (GET) and resource ('Newest' for a library section), and it includes the exact endpoint path. It does not explicitly contrast with sibling tools like get_library_sections_by_section_id_recently_added, but the name plus endpoint make 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 when-to-use guidance or explicit alternatives are provided. Many sibling section endpoints exist (recently_added, on_deck, all, etc.), and the description does not clarify what distinguishes 'newest' or when an agent should choose this tool over those alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_on_deckBRead-onlyIdempotent
Get On Deck for Section.
GET /library/sections/{sectionId}/onDeck
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method (GET) which is consistent, but it does not elaborate on return structure or any special behaviors. This is acceptable given the output schema exists, but the description adds little beyond the annotations.
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 compact: a one-line purpose, the endpoint, and a single argument description. There is no fluff, but the redundant HTTP endpoint in the description adds minimal value. Still, it is appropriately sized and structured.
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 single-parameter read-only tool with an output schema and strong annotations, the description is mostly adequate. However, it lacks any explanation of what 'On Deck' means (e.g., items in the section that are partially watched) and does not address when to choose this over similar tools. This leaves some context 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?
The schema provides only the parameter name and type (integer) with no description. The description adds a semantic explanation: 'The unique identifier of the library section', which helps the agent understand what value to pass. Given 0% schema coverage, this compensation is valuable.
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 operation ('Get On Deck for Section') and includes the HTTP endpoint, making the resource explicit. However, it does not explicitly differentiate from sibling tools like get_library_metadata_by_id_on_deck or get_library_sections_by_section_id_unwatched, so the agent must infer the distinction from the name.
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 about when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or comparison with sibling section-level getters. The agent is left to infer from the name alone, which is insufficient given the large sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_optimizeBRead-onlyIdempotent
Get Optimize Section.
GET /library/sections/{sectionId}/optimize
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as readOnly, idempotent, openWorld, and non-destructive. The description adds no behavioral context beyond the HTTP method and path, such as what data is returned, whether it reflects currently running optimize jobs, or any caveats about freshness or availability.
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 contains no filler; it gives the operation, endpoint, and the single argument in a compact structured format. The phrase 'Get Optimize Section' is slightly awkward, but no sentence is wasted.
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 one-parameter read operation with a provided output schema and safe annotations, the description is minimally sufficient for invocation. However, it omits why or when an agent should call this endpoint versus the many sibling optimize-related tools, and it does not clarify what 'optimize section' means in product terms.
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, so the description carries the burden. It explains section_id as 'the unique identifier of the library section', which adequately conveys the semantic meaning of the only parameter and aligns with the URL path placeholder.
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 'Get Optimize Section' and provides the exact endpoint 'GET /library/sections/{sectionId}/optimize', clearly identifying a retrieval operation on a library section's optimize resource. It is distinguishable from create/update/list optimize siblings by the explicit GET verb and resource path, though it does not explain what the optimize section represents.
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 given about when to use this tool versus alternatives. Sibling tools such as create_library_sections_by_section_id_optimize and list_library_optimize clearly exist, but the description does not mention when to choose this GET endpoint over them or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_photosCRead-onlyIdempotent
Get Section Photos.
GET /library/sections/{sectionId}/photos
Args: section_id: The id of the section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds only the endpoint path, which is not a behavioral trait; it says nothing about pagination, response shape, or access constraints.
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 front-loaded, with no wasted words. It could be improved by adding usage context, but the structure itself is clean.
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 tool is simple (one required parameter), has read-only annotations, and an output schema, so the description is minimally viable for invocation. However, it lacks any guidance on when this endpoint is appropriate among the many sibling getters and gives no practical context for section_id.
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 for the single parameter. It only restates 'The id of the section', adding little beyond the parameter name and type; no guidance is given on obtaining or formatting section_id.
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 operation ('Get Section Photos') and identifies the resource via the endpoint path. It doesn't explicitly differentiate among the many sibling library-section tools, but the photos resource is distinct enough to avoid immediate 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 is provided about when to use this tool instead of the many related library-section getters. There are no exclusions, prerequisites, or mentions of alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_playlistsBRead-onlyIdempotent
Get Section Playlists.
GET /library/sections/{sectionId}/playlists
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds no behavioral information beyond what is in the structured data. It does not mention pagination, response scope, authentication, or any side effects; the 'GET' line merely restates the read-only nature already captured by the annotations.
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 compact and front-loaded with the purpose, then the endpoint, then the parameter explanation. Every line is useful and there is no filler or repetition that detracts from its readability.
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 single parameter, output schema, and read-only/idempotent annotations, the core mechanics are covered. However, it omits any guidance about how this endpoint differs from related playlist tools (list_playlists, get_playlists_by_playlist_id) and does not mention whether returned playlists are limited to the section or require special permissions; for such a simple tool this is a modest but real 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?
The only parameter, section_id, is explained as 'the unique identifier of the library section' in the Args block. This adds meaning beyond the schema's bare 'integer' type and title, and covers the sole required parameter despite the 0% schema 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 opening phrase 'Get Section Playlists' states a specific verb and resource: retrieving playlists belonging to a library section. It is clear at a glance, though it does not distinguish itself from the many sibling tools such as list_playlists or get_playlists_by_playlist_id, so it stops short of a 5.
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 for when this tool should be chosen over alternatives. There is no mention of when to use section playlists versus global playlists, nor any exclusions or prerequisites; the only context is implicit in the tool's name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_prefsBRead-onlyIdempotent
Get section prefs.
GET /library/sections/{sectionId}/prefs
Args: section_id: Section identifier agent: The identifier of the metadata agent to use
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | ||
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond the annotations: 'Get section prefs' and the GET endpoint simply restate what annotations imply. There is no mention of output characteristics, authentication needs, 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 exceptionally concise: one clear summary line, the endpoint, and two parameter lines. No filler or repetition. The most important information is front-loaded, and the structure is scannable.
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 read-only, idempotent GET operation with two parameters and an existing output schema, the description supplies the essential endpoint and parameter semantics. The agent can construct a correct request. It lacks richer context about what 'prefs' contains or how 'agent' affects results, but the safety annotations and simple interface keep the deficiency minor.
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% description coverage, so the description must compensate. It provides brief Args lines: 'section_id: Section identifier' and 'agent: The identifier of the metadata agent to use.' These add minimal semantic value over the parameter titles by clarifying the agent's role, but 'Section identifier' is largely tautological and the broader meaning of 'metadata agent' is left unexplained.
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 opens with 'Get section prefs,' which clearly states a specific verb and resource. The appended HTTP endpoint 'GET /library/sections/{sectionId}/prefs' confirms the operation. It does not explicitly distinguish itself from sibling tools like update_library_sections_by_section_id_prefs or list_library_sections_prefs, but the tool name and 'Get' verb make the intended use 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?
The description offers no guidance on when to use this tool versus alternatives. It neither mentions related read tools (e.g., list_library_sections_prefs) nor the mutating counterpart (update_library_sections_by_section_id_prefs). An agent must infer from the tool name alone that this is the read-only preference getter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_recently_addedARead-onlyIdempotent
Get Recently Added for Section.
GET /library/sections/{sectionId}/recentlyAdded
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint and parameter identity, but provides no extra behavioral context such as pagination, ordering, or response-level caveats.
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 compact and front-loaded with the core purpose, then provides the endpoint and the single parameter explanation. There is no filler or redundant restatement.
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, rich annotations, and an existing output schema, the description provides the essential information an agent needs to invoke the tool. The main missing piece is guidance on when to use it versus its numerous siblings.
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 does explain that section_id is 'the unique identifier of the library section,' which adds meaning beyond the schema's bare 'Section Id' title and suffices for a single simple parameter.
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?
'Get Recently Added for Section' is a specific verb+resource statement, further reinforced by the explicit endpoint. It clearly identifies what the tool does, though it does not differentiate it from sibling tools like list_library_recently_added or get_library_sections_by_section_id_newest.
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 states only that the tool gets recently added items for a section. It gives no guidance on when to choose this tool over the many related sibling tools, nor does it mention exclusions or alternative approaches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_refreshCRead-onlyIdempotent
Get Refresh Section.
GET /library/sections/{sectionId}/refresh
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is already clear. The description adds no behavioral context beyond the HTTP method and path, which are already implied by the name. It does not contradict the annotations, but it also does not disclose any additional behavior such as what 'refresh' does or what the response contains.
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, which is concise, but it is under-specified rather than efficiently informative. The HTTP path and Args block are useful, but the main sentence 'Get Refresh Section' is vague and does not earn its place as a meaningful explanation.
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 one parameter and an output schema, the description is minimal. However, the operation is a refresh action, which typically has side effects on server state; the description does not explain what refresh does, when it is needed, or what the output represents. The annotations cover safety, but the description leaves the agent without enough context to use the tool correctly.
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 for the undocumented parameter. The description only lists 'section_id: Section identifier' in the Args block, which adds minimal meaning beyond the schema's 'Section Id' title. It does not explain what a section identifier is, how to obtain it, or any 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 is essentially a tautology: 'Get Refresh Section' restates the tool name without explaining what a refresh section is or what the operation does. The HTTP path is included, which adds some specificity, but the description does not clarify the resource or behavior beyond the name.
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. The sibling list includes many similar library section tools (e.g., get_library_sections_by_section_id, create_library_sections_by_section_id_refresh, delete_library_sections_by_section_id_refresh), but the description does not distinguish this refresh operation from them or explain the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_searchCRead-onlyIdempotent
Search Section.
GET /library/sections/{sectionId}/search
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, and the description does not contradict them. However, it adds no behavioral context beyond the HTTP path and method: it does not describe what the search returns, whether it accepts a search term, how results are ordered, or any caveats. The description therefore contributes little beyond the structured annotations.
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 front-loaded: 'Search Section.' is immediately followed by the endpoint path and the parameter definition. There is no filler or repetition beyond what is necessary, though the overall terseness borders on under-specification.
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 only one parameter, strong safety annotations, and an output schema present, the description is minimally sufficient for invoking the tool with the required section_id. However, it leaves a clear gap: it never explains the meaning of the 'search' operation or how this endpoint relates to other search/autocomplete/filter siblings, so an agent cannot reliably decide when to use it.
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%, but the description compensates for the only parameter: it defines section_id as 'the unique identifier of the library section,' which adds meaning beyond the schema's bare title 'Section Id.' For a single-parameter tool, this is sufficient semantic 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 says 'Search Section' and provides the endpoint path, so it does identify the resource and the high-level operation. However, it does not explain what is being searched (metadata? files? titles?) or what the result represents, and it does not distinguish this tool from closely related siblings like get_library_sections_by_section_id_autocomplete, get_library_sections_by_section_id_common, or list_library_search.
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 gives no guidance on when to use this tool versus alternatives. There are multiple search-like sibling tools, but the description does not mention any selection criteria, exclusions, or context such as 'use this for searching within a section rather than globally.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_settingsBRead-onlyIdempotent
Get Section Settings.
GET /library/sections/{sectionId}/settings
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to re-establish safety. It adds the explicit HTTP GET route, which is useful behavioral context beyond the annotations. However, it does not describe response structure, authentication needs, or any side-effect-free guarantees beyond what annotations already provide.
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 compact and front-loaded: purpose, endpoint, and argument all appear in three short lines with no filler. Every sentence contributes useful information, and the Args block is directly tied to the only required parameter.
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 one required integer parameter, rich annotations, and an output schema, the description is nearly sufficient. The endpoint and parameter meaning are enough for a correct call. The only weakness is the absence of any usage context distinguishing it from related section tools, but the low complexity keeps this from being a major 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?
Schema description coverage is 0%, so the description must carry the parameter meaning. It does state that section_id is 'the unique identifier of the library section,' which adds semantic meaning beyond the bare integer type. Still, it is minimal: it does not explain where to obtain section IDs, any constraints on valid values, or how the value relates to the response.
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 and resource: 'Get Section Settings' plus the exact route GET /library/sections/{sectionId}/settings. This makes the tool's purpose clear. However, it does not explicitly differentiate it from the many other section-based sibling tools, though 'settings' in the name and route is reasonably distinctive.
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 given about when to use this tool versus alternatives or when not to use it. The description only restates the basic retrieval action and parameter. Among the large sibling set, there is no explanation of how section settings relate to related tools such as get_library_sections_by_section_id_prefs or update_library_sections_by_section_id_prefs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_showsBRead-onlyIdempotent
Get Section Shows.
GET /library/sections/{sectionId}/shows
Args: section_id: The id of the section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the GET method and path, which is consistent but not a substantive behavioral disclosure beyond the annotations. For a simple read-only operation, 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?
The description is compact and front-loaded: purpose, endpoint, then the single argument. It contains no filler, though the Args block is somewhat redundant with the input schema.
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 one-parameter, read-only operation with an output schema and strong annotations, the description is nearly sufficient for direct invocation. It falls short on selection clarity because it does not explain what 'shows' means or when to prefer this over the many similarly structured section 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?
Schema description coverage is 0%, so the description must compensate, but it only says 'section_id: The id of the section,' which is nearly a restatement of the property name. It adds no detail about where the ID comes from, what values are valid, or how it relates to the URL placeholder.
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 operation as 'Get Section Shows' and provides the HTTP endpoint, so the resource is clear and it is distinguishable from sibling tools for movies, albums, and episodes. It does not clarify that 'shows' means TV series, but the path segment makes the intent reasonably 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 gives no when-to-use or when-not-to-use guidance and never mentions alternatives, even though many sibling tools exist for other section media types. Usage is only implied by the tool name and endpoint, with no exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_sortsBRead-onlyIdempotent
Get a section sorts.
GET /library/sections/{sectionId}/sorts
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the agent knows this is a safe, non-mutating read operation that likely returns a stable set of results and may include fields beyond those explicitly documented. The description adds no behavioral context beyond what annotations provide — it does not describe response shape, pagination, or error behavior. Given a simple GET tool with no side effects, the annotations cover the safety profile and the description does not contradict them; a 3 is appropriate since the annotation burden is already met.
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 — one line of purpose, the endpoint, and an args list — which is appropriate for a one-parameter GET tool. However, it is not optimally structured: the 'Args:' section repeats the parameter name and adds no new information, and the grammar ('Get a section sorts') is awkward. The endpoint line is useful but could have been integrated more cleanly. Every line is informative, but the presentation could be tighter.
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 GET endpoint with one integer parameter and read-only, idempotent, non-destructive annotations, the description covers the essentials. The tool has an output schema that presumably documents the response structure, so the description does not necessarily need to explain return values. What is missing is any hint about what 'sorts' are in this domain (e.g., sort orders/filters applied to a library section's browsing) and whether the output is a list of sort options or the currently configured sort. These gaps are minor for the tool's simplicity but keep it from scoring higher.
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 names the single parameter with the phrase 'Section identifier', which maps directly to the schema's 'Section Id' integer type. However, it adds essentially no meaning beyond the schema: it does not clarify what the identifier refers to beyond the name, or how to find it. For a single integer parameter named section_id, the schema plus the endpoint path already convey most of the meaning, so a score of 3 is fair — the description adds minimal value but is not deficient.
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 a specific verb and resource ('Get a section sorts') and the endpoint (GET /library/sections/{sectionId}/sorts) makes the scope concrete. While the phrasing 'a section sorts' is grammatically awkward, the meaning is unambiguous: retrieve the sorting configurations for a library section. The tool name and description together distinguish it from sibling tools like get_library_sections_by_section_id_filters or get_library_sections_by_section_id_settings because the resource 'sorts' is explicit.
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 given on when to use this tool versus alternatives, no prerequisites, and no mention of what 'sorts' applies to (e.g., media libraries, playlists). The description includes only the endpoint and the argument definition. For a straightforward GET endpoint the lack of exclusions is not disqualifying, but there is no explicit context about use cases, expected preconditions (e.g., section must exist), or relationship to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_tagsBRead-onlyIdempotent
Get Section Tags.
GET /library/sections/{sectionId}/tags
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no extra behavioral context beyond the endpoint path, such as pagination, error conditions, auth requirements, or rate limits. Since annotations carry most of the burden, this description contributes little additional 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?
The description is succinct and front-loaded, stating the purpose and parameter in a minimal number of sentences. The inclusion of the HTTP endpoint is redundant but harmless. There is no fluff or unnecessary detail, making it 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?
With an output schema present (as indicated by context signals), the description doesn't need to explain return values. The single parameter is adequately described, and annotations cover safety. However, it could benefit from a brief note on what tags are or how this endpoint differs from similar ones, but overall it's sufficient for the simplest possible 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?
Schema description coverage is 0%, so the description must compensate. It provides a basic meaning for section_id ('The unique identifier of the library section'), which adds some clarity beyond the schema's type and title. However, it lacks examples, format constraints, or further explanation that would be useful given the low 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 states the action 'Get Section Tags' clearly, identifying the resource (library section tags) and the operation (get). It is specific enough to convey the tool's purpose, though it doesn't explicitly differentiate it from closely named siblings like get_library_sections_by_section_id_categories or get_library_sections_by_section_id_settings. However, the core function is 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any distinguishing conditions, exclusions, or alternative tools. Given the large number of sibling tools for library sections (e.g., categories, unwatched, albums), an agent lacks direction on selecting this specific one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_timelineBRead-onlyIdempotent
Get Section Timeline.
GET /library/sections/{sectionId}/timeline
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is established. The description adds only the HTTP method and URL path, not behavioral context such as what data the timeline contains, how it is scoped, or any response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately short and front-loaded: a one-line summary, the endpoint, and a parameter definition. The Args section partly duplicates schema information, but it is minimal and not padded.
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 single-parameter, read-only tool with an output schema and strong annotations, the endpoint and argument are mostly sufficient for invocation. The main gap is that the semantics of 'timeline' are vague, and the description does not help an agent understand what kind of response or behavior to expect beyond what the output schema might convey.
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 defines section_id as 'the unique identifier of the library section,' adding meaningful semantic context beyond the bare property name 'Section Id' 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 names a specific resource ('Section Timeline') and provides the exact HTTP endpoint, making the operation identifiable. However, it doesn't explain what a 'timeline' actually represents or contrast it with sibling get_library_sections_by_section_id_* tools, so it stops short of full differentiation.
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?
There is no guidance on when to use this tool versus the many sibling section and timeline tools. The description only states the endpoint and parameter; it gives no exclusions, prerequisites, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_unmatchCRead-onlyIdempotent
Unmatch Section Items.
GET /library/sections/{sectionId}/unmatch
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false, so the agent knows this is a safe, non-destructive read operation. The description adds the HTTP method and path, which is already in the name, and the phrase 'Unmatch Section Items' which is vague. It doesn't add meaningful behavioral context beyond the annotations, but it doesn't contradict them either.
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 front-loaded with the title 'Unmatch Section Items', but it includes redundant information: the HTTP path duplicates the tool name, and the Args section repeats the schema. It's not bloated, but it doesn't use its space to add 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 tool with one parameter and an output schema, the description is minimal. It doesn't explain what 'unmatch' does, what the output represents, or when this endpoint is appropriate. The annotations cover safety, but the semantic gap around 'unmatch' is significant, especially given the large sibling list with similar names.
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 does mention 'section_id: The unique identifier of the library section' in the Args section, which adds a tiny bit of meaning beyond the schema's 'Section Id' title. However, it doesn't explain the format, constraints, or how the section_id relates to the unmatch operation. Baseline 3 is appropriate because the single parameter is at least named and minimally described.
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 says 'Unmatch Section Items' and includes the HTTP path, which conveys the resource and action. However, it doesn't explain what 'unmatch' means in this context (e.g., removing metadata matches for items in a section), and the name is awkwardly phrased. It is distinguishable from siblings like get_library_sections_by_section_id_match, but only by inference from the path.
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 sibling list includes get_library_sections_by_section_id_match and update_library_metadata_by_ids_unmatch, but the description doesn't mention them or clarify the difference. The context of 'unmatch' is left entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_sections_by_section_id_unwatchedBRead-onlyIdempotent
Get Unwatched for Section.
GET /library/sections/{sectionId}/unwatched
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds no additional behavioral context such as what 'unwatched' means, whether results are paginated, or any authentication or rate-limit considerations. It simply repeats the GET endpoint, which does not go beyond what annotations and the tool name already convey.
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 front-loaded with the purpose. The endpoint path is slightly redundant with the tool name, but it serves as a concrete reference. The Args section is minimal and directly useful. No unnecessary 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?
For a simple single-parameter GET endpoint with robust annotations and an output schema, the description is mostly complete. The missing usage guidance is the main gap, but the purpose and parameter semantics are clear enough for the agent to select and call the tool correctly.
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's property description coverage is 0%, so the tool description carries the burden of explaining the parameter. It does define section_id as 'the unique identifier of the library section', which is meaningful and sufficient for a single required integer parameter. It could mention where to find this ID, but the definition is clear enough for correct invocation.
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 a specific action and resource: 'Get Unwatched for Section' with the exact endpoint path. The verb and resource are clear, and the endpoint path removes ambiguity about which resource is affected. However, it does not explicitly differentiate itself from similar section-based siblings like all, on_deck, or recently_added.
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?
There is no guidance on when to use this tool versus alternatives. With a large set of sibling tools such as get_library_sections_by_section_id_all and get_library_sections_by_section_id_on_deck, the agent is left to infer when 'unwatched' is the appropriate choice. No when-not or alternative conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_streams_by_stream_id_extARead-onlyIdempotent
Get a stream.
GET /library/streams/{streamId}.{ext}
Args:
stream_id: The id of the stream
ext: The extension of the stream. Required to fetch the sub portion of idx/sub subtitles
encoding: The requested encoding for the subtitle (only used for text subtitles)
format: The requested format for the subtitle to convert the subtitles to (only used for text subtitles)
auto_adjust_subtitle: Whether the server should attempt to automatically adjust the subtitle timestamps to match the media
| Name | Required | Description | Default |
|---|---|---|---|
| ext | Yes | ||
| format | No | ||
| encoding | No | ||
| stream_id | Yes | ||
| auto_adjust_subtitle | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, openWorldHint, idempotentHint, and non-destructiveness. The description adds meaningful behavioral detail beyond annotations: `ext` is required for subtitle fetching, `encoding` and `format` only apply to text subtitles, and `auto_adjust_subtitle` optionally adjusts subtitle timestamps. This clarifies behavior without contradicting annotations.
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 tight and well-structured: a one-line summary, the endpoint path, and an Args list covering every parameter with no redundant prose. Every sentence 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 the output schema exists, return format does not need explanation. The description covers all parameters and their semantics. However, it omits expected extension values, potential error conditions, and any indication of alternative stream-related tools, leaving an agent to infer when this endpoint is the right choice.
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 carries full responsibility for parameter meaning. It provides clear semantic explanations for all five parameters, including conditions like 'only used for text subtitles' and the required nature of `ext` for the `sub` portion. This fully 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 states 'Get a stream.' with the endpoint path, making clear this is a read operation on a specific stream resource. However, it does not differentiate from sibling get_library_streams_by_stream_id_levels or get_library_streams_by_stream_id_loudness, which also operate on streams.
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 given on when to use this tool versus alternatives. The parameter description for `ext` explains that it is required for the `sub` portion of `idx`/`sub` subtitles, which is partial param-level guidance, but there is no tool-level usage context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_library_streams_by_stream_id_levelsBRead-onlyIdempotent
Get loudness about a stream in json.
GET /library/streams/{streamId}/levels
Args: stream_id: The id of the stream subsample: Subsample result down to return only the provided number of samples
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | Yes | ||
| subsample | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description is consistent with those. It adds only minor behavior context such as JSON output and subsample behavior, but does not disclose auth requirements, response size implications, or other operational 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?
The description is short, front-loaded with the main purpose, and avoids unnecessary filler. The endpoint line is slightly redundant with the tool name but still useful for resolving exact call semantics, and the Args section is compact.
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 and helpful annotations, the description covers the essential call details and both parameters. However, it leaves some ambiguity about what exactly 'levels' means and never clarifies the relationship or difference between this endpoint and the similarly named 'loudness' sibling.
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 both parameters: `stream_id` identifies the stream, and `subsample` limits the number of samples returned. The subsample explanation is notably more informative than the schema's bare 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 tool retrieves loudness data about a stream and returns it as JSON. It identifies the resource and endpoint, but it does not differentiate itself from the similarly named sibling that already exists, so it falls short of a 5.
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 about when to use this tool instead of alternatives. Given the sibling list includes `get_library_streams_by_stream_id_loudness` and other similar stream endpoints, the agent is left to infer the correct choice with no explicit 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_library_streams_by_stream_id_loudnessCRead-onlyIdempotent
Get loudness about a stream.
GET /library/streams/{streamId}/loudness
Args: stream_id: The id of the stream subsample: Subsample result down to return only the provided number of samples
| Name | Required | Description | Default |
|---|---|---|---|
| stream_id | Yes | ||
| subsample | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no meaningful behavioral context beyond restating 'GET' and 'loudness' — it does not mention response behavior, sampling semantics at the tool level, or any side effects. The 'subsample' behavior is stated but belongs to parameter semantics.
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 front-loaded with the core action, followed by the endpoint and an Args list. There is no filler or repetition, and every line serves a purpose, though the content is thin.
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 return shape does not need to be described. The tool has only two parameters, one required and one optional with a default, and the description covers both. However, it omits any broader context such as what 'loudness' represents, when to use it, or what the subsample values mean semantically, leaving the agent to infer too much.
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 provides minimal but real explanations: 'stream_id: The id of the stream' and 'subsample: Subsample result down to return only the provided number of samples.' This is adequate for basic invocation but lacks detail such as where to obtain stream_id or what 'samples' means in context.
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 a clear verb and resource: 'Get loudness about a stream,' and the endpoint path reinforces the target as /library/streams/{streamId}/loudness. It is not a tautology and is likely distinguishable from siblings like get_library_streams_by_stream_id_ext or _levels by the 'loudness' concept, though it does not explicitly contrast them.
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 guidance is provided. The description does not say when to use this tool versus the many sibling stream endpoints, nor does it mention any exclusions, prerequisites, or alternative tools. The intended context must be inferred entirely from the tool name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_livetv_dvrs_by_dvr_idBRead-onlyIdempotent
Get a single DVR.
GET /livetv/dvrs/{dvrId}
Args: dvr_id: The ID of the DVR.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. However, the description adds no behavioral context beyond the endpoint itself—no details about response structure, error conditions, or required auth. It provides zero incremental disclosure, so it fails to add value beyond annotations.
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 front-loaded with 'Get a single DVR,' but it includes a redundant HTTP path (GET /livetv/dvrs/{dvrId}) that duplicates information already inferable from the tool name and endpoint. This is minor waste, so it's not an exemplar of conciseness but not bloated either.
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 single-ID retrieval with one parameter and an output schema present, the description is nearly complete. It doesn't need to explain return values because the output schema exists. It omits any mention of errors or prerequisites, but given annotations cover safety and the schema covers return structure, this is acceptable 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?
Schema description coverage is 0%, so the description must compensate for the undocumented parameter. It only repeats 'dvr_id: The ID of the DVR,' which adds no more meaning than the parameter name and title already provide. No constraints, examples, or context are given, leaving the compensation inadequate.
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 a single DVR,' which specifies the verb and resource. The name and this phrasing distinguish it from list_livetv_dvrs (plural) and related DVR endpoints like get_livetv_dvrs_by_dvr_id_guide or channels, so an agent can identify its exact purpose.
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 focusing on a single DVR, but it does not explicitly say when to use this tool versus alternatives (e.g., list_livetv_dvrs or get_livetv_dvrs_by_dvr_id_guide). No explicit exclusions or comparisons are provided, leaving the decision to inference from naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_livetv_dvrs_by_dvr_id_channelsCRead-onlyIdempotent
Get DVR Channels.
GET /livetv/dvrs/{dvrId}/channels
Args: dvr_id: The ID of the DVR.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already provide readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no behavioral detail beyond a plain 'get' — nothing about pagination, response shape, auth requirements, or what the channel list actually contains.
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 tight and waste-free: a one-line purpose, the endpoint for verification, and a parameter line. It earns its place and is appropriately short for a single-parameter read operation.
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 read-only call with output schema and safety annotations, it's nominally sufficient. But it does not explain what a DVR is, how this listing differs from sibling channel tools, or what the response contains, so an agent must infer important selection 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?
Schema description coverage is 0%, so the description carries the burden of documenting dvr_id. It says only 'The ID of the DVR', which merely restates the schema title 'Dvr Id' with no added semantics about how the ID is obtained or validated.
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?
'Get DVR Channels' states a specific verb and resource, and the embedded URL clarifies it returns channels for a given DVR. It is clear on its face, though the phrase largely restates the tool name and it doesn't explicitly differentiate this from sibling channel/routing 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?
There is no guidance on when to use this vs alternatives. It never mentions related tools like list_livetv_epg_channels or get_livetv_dvrs_by_dvr_id_guide, nor any context for when a DVR ID would be available. The description reads as a command line with no usage heuristics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_livetv_dvrs_by_dvr_id_guideCRead-onlyIdempotent
Get DVR Guide.
GET /livetv/dvrs/{dvrId}/guide
Args: dvr_id: The ID of the DVR.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already communicate readOnlyHint, idempotentHint, and destructiveHint, and the description adds no behavioral context such as response format, pagination, errors, or authentication requirements. The GET method repeats rather than extends what the annotations already imply.
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, front-loaded, and easy to scan, with the summary line before the endpoint and argument details. It contains some redundancy between 'Get DVR Guide' and the tool name, but no unnecessary prose.
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 single-parameter read-only tool with an output schema and strong annotations, this is minimally workable. The missing usage context and lack of behavioral detail make it only adequate rather than genuinely helpful.
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% description coverage, so the description must compensate. 'dvr_id: The ID of the DVR' provides a basic semantic gloss, but it is minimal and does not explain where the ID comes from or any additional 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 opens with 'Get DVR Guide' and includes the endpoint 'GET /livetv/dvrs/{dvrId}/guide', which clearly identifies the resource and operation. However, it does not distinguish itself from related guide/EPG sibling tools such as list_livetv_epg_guide.
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?
There is no guidance on when to use this tool versus alternative DVR or EPG guide tools. The description only restates the endpoint and parameter, leaving the agent to infer the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_livetv_dvrs_by_dvr_id_recordingsCRead-onlyIdempotent
Get DVR Recordings by DVR.
GET /livetv/dvrs/{dvrId}/recordings
Args: dvr_id: The ID of the DVR.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the name and endpoint. Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description does not mention response characteristics, pagination, or any other runtime behavior, leaving the agent to infer from the output schema.
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 the endpoint front-loaded. It avoids redundancy and is easy to parse. While sparse, it is appropriately sized for such a minimal tool.
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 one-parameter read-only tool with an output schema present, the description covers the essential purpose and parameter. However, it fails to provide any usage guidance or differentiation from similar tools (e.g., list_livetv_recordings), leaving an agent uncertain about when to select this tool. The presence of an output schema compensates for missing return-value 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?
Schema description coverage is 0%, so the description carries the full burden of explaining parameters. It does explain dvr_id as 'The ID of the DVR,' which is a basic but accurate explanation. This meets the minimum requirement but does not add depth like examples, formats, or context on how to obtain the DVR ID.
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 a clear verb and resource: 'Get DVR Recordings by DVR.' It distinguishes itself from siblings like list_livetv_recordings by explicitly referencing the DVR ID, though it does not explicitly contrast with alternatives. The endpoint is provided, 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 given on when to use this tool versus alternatives such as list_livetv_recordings or get_livetv_dvrs_by_dvr_id. The description only states what it does, not the conditions that should lead an agent to prefer it over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_livetv_epg_countries_by_country_by_epg_id_lineupsARead-onlyIdempotent
Get lineups for a country via postal code.
GET /livetv/epg/countries/{country}/{epgId}/lineups
Args:
country: 3 letter country code
epg_id: The providerIdentifier of the provider
postal_code: The postal code for the lineups to fetch
| Name | Required | Description | Default |
|---|---|---|---|
| epg_id | Yes | ||
| country | Yes | ||
| postal_code | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds only the endpoint path and param meanings, not additional behavioral context such as pagination, ordering, or how missing postal_code behaves. It does not contradict the annotations and does not need to repeat them.
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 compact: a one-line summary, the endpoint path, and a short three-argument list. Every part adds value and the purpose is front-loaded. There is no unnecessary prose or formatting bloat.
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 read-only GET with an output schema and annotations carrying the safety profile, the description gives enough detail to construct a valid call: endpoint, argument meanings, and required format. The main omission is situational guidance around region-based alternatives, but that belongs to usage rather than basic 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?
Schema description coverage is 0%, so the parameter descriptions carry all the weight. The description adds useful meaning: country is a 3-letter code, epg_id is the providerIdentifier, and postal_code is described as the postal code for the lineups. This goes beyond the bare schema names and covers all three 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 says 'Get lineups for a country via postal code' and the title itself is specific. It clearly identifies a GET operation, the resource (lineups), and the scoping axis (country, epgId, postal code). The phrase 'for a country' helps distinguish it from the regional lineup sibling which is about regions.
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 when to use it: when you need lineups for a country, optionally filtered by postal code. However, it does not explicitly mention alternatives such as the region-based lineup endpoint or explain when to prefer one over the other, so the guidance is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_livetv_epg_countries_by_country_by_epg_id_regionsARead-onlyIdempotent
Get regions for a country.
GET /livetv/epg/countries/{country}/{epgId}/regions
Args:
country: 3 letter country code
epg_id: The providerIdentifier of the provider
| Name | Required | Description | Default |
|---|---|---|---|
| epg_id | Yes | ||
| country | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already provide the safety profile (readOnlyHint, idempotentHint, destructiveHint false), so the description does not need to repeat that. It adds the endpoint and parameter meanings but discloses no additional behavioral context such as pagination, error cases, or relationship to region lineups. There is no contradiction with annotations.
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 compact and well-structured: a one-sentence summary, the endpoint path, and two parameter definitions. Every line earns its place and there is no redundant or filler 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 read-only GET with two required parameters, safety annotations, and an output schema, the description is nearly complete. It provides the route and parameter meanings needed to call the tool, but does not explain what 'regions' represents in the EPG hierarchy or how this step connects to related endpoints.
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 carry parameter semantics. It does: 'country' is described as a 3-letter country code and 'epg_id' as the providerIdentifier. This is genuinely useful, though it could have specified the country-code standard or clarified that epg_id comes from a provider lookup.
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 a specific verb and resource: 'Get regions for a country,' and reinforces it with the full endpoint path. It is clear and accurate, but it does not explicitly distinguish this endpoint from closely named siblings such as get_livetv_epg_countries_by_country_by_epg_id_lineups, so it does not fully earn a 5.
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 when to use the tool: when you need regions for a country and EPG provider. However, it gives no explicit guidance about alternatives or when not to use this endpoint, leaving the agent to infer context from the endpoint path and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_livetv_epg_countries_by_country_by_epg_id_regions_by_region_lineupsARead-onlyIdempotent
Get lineups for a region.
GET /livetv/epg/countries/{country}/{epgId}/regions/{region}/lineups
Args:
country: 3 letter country code
epg_id: The providerIdentifier of the provider
region: The region for the lineup
| Name | Required | Description | Default |
|---|---|---|---|
| epg_id | Yes | ||
| region | Yes | ||
| country | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the HTTP method and path context, but discloses no additional behavioral traits such as pagination, response shape, or potential provider-specific quirks. The provided context is useful but not rich.
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 tight: a one-line purpose, the endpoint, and a three-line argument list. No filler or irrelevant detail, and the core action 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?
For a simple read-only GET with three documented parametershare, an output schema, and safety annotations, the description is nearly sufficient. The only notable gap is the absence of usage guidance, but the endpoint path and argument explanations give the agent enough to call it correctly.
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 carries the burden. It explains country as a 3-letter code and explicitly maps epg_id to providerIdentifier, which is valuable clarification. 'region: The region for the lineup' is tautological)Skip 1? It's redundant but at least included. Overall, the descriptions add meaningful semantics for 2 of 3 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 states a clear verb+resource ('Get lineups for a region') and the full endpoint path specifies the exact scope (country, epgId, region). This differentiates it from the sibling get_livetv_epg_countries_by_country_by_epg_id_regions, which returns regions rather than lineups. However, it does not explicitly name the sibling or contrast the two.
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 list_livetv_epg_lineup or the region-list sibling. The description only lists arguments and the endpoint, leaving the agent to infer the appropriate use case from the path structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_livetv_sessions_by_session_idBRead-onlyIdempotent
Get a single session.
GET /livetv/sessions/{sessionId}
Args: session_id: The session id
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no extra behavioral context beyond the endpoint, such as return format, error behavior, or authentication needs. It is consistent with the annotations, so no contradiction exists.
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 front-loaded with the core action, 'Get a single session.' The endpoint and args lines are somewhat redundant with the tool name and schema, but they are brief and do not add significant noise. It is appropriately sized for a simple read operation.
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 annotations, output schema, and single self-explanatory parameter, an agent can likely call this tool correctly. However, the description lacks guidance on when this tool is the right choice versus the many related livetv sibling tools, and it does not clarify what a 'session' refers to in this 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 input schema has 0% description coverage, and the description only restates the schema: 'session_id: The session id'. This is tautological and adds no meaning beyond the schema's title. It does not include format, length, source, or how to find the session ID, failing to compensate for the low schema 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 states a specific verb and resource: 'Get a single session.' This clearly indicates a fetch operation for one session and distinguishes it from list-oriented siblings by the word 'single'. It does not explicitly mention a sibling alternative, but the endpoint path reinforces the specific resource being accessed.
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 such as list_livetv_sessions or delete_livetv_sessions_by_session_id. It does not state prerequisites, context, or exclusions. The only implied usage is via the endpoint, which is not enough to route an agent to this tool confidently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_livetv_sessions_by_session_id_by_consumer_id_by_segment_idCRead-onlyIdempotent
Get a single session segment.
GET /livetv/sessions/{sessionId}/{consumerId}/{segmentId}
Args: session_id: The session id consumer_id: The consumer id segment_id: The segment id
| Name | Required | Description | Default |
|---|---|---|---|
| segment_id | Yes | ||
| session_id | Yes | ||
| consumer_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe-read nature is covered. The description adds minimal behavioral context beyond saying it fetches a single segment; it does not discuss response behavior or other operational traits, but there is no contradiction with annotations.
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 opening sentence is concise and front-loaded, but the 'Args' section largely repeats what the input schema already provides. The endpoint template is useful, though the overall structure includes 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?
For a three-parameter read operation with an output schema, the description is minimal but does not explain what a 'session segment' is, how it relates to sibling Live TV session endpoints, or when an agent should choose this tool over alternatives. This leaves an important selection 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?
Schema description coverage is 0%, so the description needed to compensate, but it only restates each parameter as 'The session id' / 'The consumer id' / 'The segment id,' which adds little beyond the schema titles. The endpoint template does convey that these are path parameters, which is mildly useful.
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 a clear verb and resource: 'Get a single session segment.' It is distinct enough from the broader sibling get_livetv_sessions_by_session_id, but it does not explicitly differentiate itself from related session endpoints like get_livetv_sessions_by_session_id_by_consumer_id_index_m3u8.
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 related sibling tools, conditions for selection, or any exclusions, leaving the agent to infer usage solely from the endpoint path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_livetv_sessions_by_session_id_by_consumer_id_index_m3u8BRead-onlyIdempotent
Get a session playlist index.
GET /livetv/sessions/{sessionId}/{consumerId}/index.m3u8
Args: session_id: The session id consumer_id: The consumer id
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | ||
| consumer_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method and exact path, confirming this is a read operation returning a playlist file. It doesn't disclose auth requirements, session-not-found behavior, or that the response is an HLS master/playlist document, but with the annotation coverage the burden is lower. No contradiction with annotations.
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?
Seven lines with zero filler: a one-line purpose, the endpoint, and a minimal Args block. The purpose is front-loaded and the size is appropriate. The Args section is mildly redundant with the schema, but this is a minor deduction rather than a structural flaw.
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 read-only endpoint with only two required string parameters and an output schema present, the description is largely sufficient for invocation: it supplies the path template and identifies both arguments. The main gap is usage context — distinguishing this index-fetch from segment-fetch and explaining its role in Live TV playback — which is the same omission penalized in usage_guidelines.
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 needed to compensate, but its Args block merely restates the schema titles: 'The session id' adds nothing beyond 'Session Id'. No format hints, no example values, no guidance on where to obtain a session_id or consumer_id, and no explanation of the relationship between the two identifiers.
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 opens with 'Get a session playlist index' — a specific verb and resource — and the endpoint path `GET /livetv/sessions/{sessionId}/{consumerId}/index.m3u8` pins down exactly which resource is targeted. The '.m3u8' and 'playlist index' wording distinguish it from `get_livetv_sessions_by_session_id` and the segment endpoint sibling, though it doesn't name them explicitly.
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 given on when to use this tool versus the closely related siblings such as `get_livetv_sessions_by_session_id_by_consumer_id_by_segment_id` or `get_livetv_sessions_by_session_id`. There is no mention of HLS streaming context, when an index playlist should be fetched instead of individual segments, or any prerequisites. An agent must infer usage entirely from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_media_grabbers_devices_by_device_idBRead-onlyIdempotent
Get device details.
GET /media/grabbers/devices/{deviceId}
Args: device_id: The ID of the device.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds no additional behavioral context such as return format, error cases, authentication needs, or relationship to device discovery/listing. It contributes nothing beyond the annotations.
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 front-loaded with the core statement 'Get device details.' The endpoint and Args sections are clearly structured. Minor redundancy exists between the prose and the HTTP GET line, but overall it is 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 one-parameter getter with an output schema and safety annotations, the description is nearly sufficient. However, it lacks any guidance on how the device_id relates to list_media_grabbers_devices or what kind of device is being queried, leaving minor gaps 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?
Schema description coverage is 0%, so the description must compensate. It only restates 'device_id: The ID of the device,' which adds little beyond the schema's title 'Device Id'. It does not explain where to obtain the ID, its format beyond integer, or any 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 'Get device details' with a specific verb and resource, and the endpoint path identifies the exact resource. It doesn't explicitly differentiate from sibling tools like get_media_grabbers_devices_by_device_id_channels, but 'details' conveys the base-level scope.
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 endpoint and argument imply usage when a device_id is known and device details are needed. However, there is no explicit guidance on when to use this versus related list or sub-resource endpoints, nor any exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_media_grabbers_devices_by_device_id_channelsBRead-onlyIdempotent
Get a device's channels.
GET /media/grabbers/devices/{deviceId}/channels
Args: device_id: The ID of the device.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds minimal behavioral context beyond confirming it's a GET request. It doesn't discuss pagination, error behavior, or what happens if the device ID is invalid, but the annotations lower the burden.
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 succinct, with the main statement front-loaded, followed by the endpoint and argument definition. No redundant information. It could benefit from structured formatting, but it's 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?
There is an output schema, so return values don't need explanation. The description is adequate for a simple read operation with one parameter. However, it doesn't provide context about what 'channels' represents in this domain, nor does it mention any variations or edge cases. For a low-complexity tool with annotations, this 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 does: 'Args: device_id: The ID of the device' clarifies the parameter's purpose beyond the schema's type/title. However, it's terse and doesn't elaborate on format, constraints, or examples.
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 a device's channels' with the explicit endpoint. It identifies the verb, resource, and scope. It differentiates from sibling tools like get_media_grabbers_devices_by_device_id (which fetches the device itself) and get_livetv_dvrs_by_dvr_id_channels (DVR channels), though it doesn't explicitly name these alternatives.
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 doesn't mention that this is for media grabber devices specifically, nor does it contrast with DVR channel retrieval or other channel-related tools. No exclusions or contextual cues are offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_media_grabbers_devices_by_device_id_thumb_by_versionBRead-onlyIdempotent
Get device thumb.
GET /media/grabbers/devices/{deviceId}/thumb/{version}
Args: device_id: The ID of the device. version: A version number of the thumb used for busting cache
| Name | Required | Description | Default |
|---|---|---|---|
| version | Yes | ||
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, and non-destructive behavior, so the burden on the description is lower. The description does add one useful behavioral detail, that the version parameter is for cache busting, but it does not describe the returned image type, error behavior, or authentication needs.
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 and front-loaded: one clear summary line, the endpoint path, then parameter docs. Every sentence earns its place, though the parameter explanations could have been slightly richer without hurting conciseness.
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 GET with an output schema and strong safety annotations, the description is mostly sufficient. However, it does not explain where the device_id and version values should come from, or how the returned thumb relates to device metadata returned by 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?
Schema coverage is 0%, so the description must carry the parameter documentation. It provides a clear meaning for version, 'used for busting cache,' but device_id is only described as 'The ID of the device,' which is essentially tautological. This is adequate but shallow for a schema with no 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 opens with a specific verb and resource, 'Get device thumb,' and the HTTP path makes the exact scope unambiguous. It is clearly distinct from sibling endpoints like get_media_grabbers_devices_by_device_id or get_media_grabbers_devices_by_device_id_channels because the resource is specifically the thumb image.
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?
There is no guidance about when to use this tool versus other device-related endpoints, nor any exclusions or prerequisites. The description simply states what the tool does and lists parameters; it never helps an agent choose it over siblings such as get_media_grabbers_devices_by_device_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_media_subscriptions_by_subscription_idARead-onlyIdempotent
Get a single subscription.
GET /media/subscriptions/{subscriptionId}
Args: subscription_id: The unique identifier of the subscription include_grabs: Indicates whether the active grabs should be included as well include_storage: Compute the storage of recorded items desired by this subscription
| Name | Required | Description | Default |
|---|---|---|---|
| include_grabs | No | ||
| include_storage | No | ||
| subscription_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds useful behavioral detail by stating that include_grabs includes active grabs and include_storage triggers storage computation, which implies a potential cost. The explicit GET method also clarifies the operation type beyond the annotations.
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 compact and front-loaded with the purpose, followed by the endpoint and argument list. No sentences are wasted; the only minor issue is the docstring-style formatting, which is clear but not especially polished.
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 read-only annotations and the presence of an output schema, the description covers the essential invocation details. It explains every parameter and hints at computational behavior for include_storage. It does not mention common failure cases like unknown subscription IDs, but this is a minor gap for a simple single-resource read 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?
With schema description coverage at 0%, the description carries the full parameter burden. It explains all three parameters in plain language: subscription_id as the identifier, include_grabs as an inclusion toggle, and include_storage as a computation flag. It does not specify accepted string values for the boolean-like optional parameters, but it 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 opens with 'Get a single subscription', which clearly identifies a specific verb, resource, and singular scope. It also includes the HTTP path, making the operation unambiguous and easy to distinguish from list-style sibling tools like list_media_subscriptions.
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 a specific subscription ID is available, and 'single' hints that this is for one item rather than a list. However, it does not explicitly state when to prefer this over list_media_subscriptions or mention related update/delete alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pins_by_pin_idARead-onlyIdempotent
Get OAuth PIN Status.
GET /pins/{pinId}
Args: pin_id: The unique identifier of the pin
| Name | Required | Description | Default |
|---|---|---|---|
| pin_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is clear. The description adds only that this is an OAuth PIN status GET request, without extra behavioral context such as what statuses may be returned or any PIN lifecycle considerations. It aligns with annotations and adds minor value beyond them.
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 the key information, the GET endpoint and resource, is front-loaded. The Args block is redundant with the input schema, but it does not bloat the description significantly.
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 single-parameter read-only status lookup with annotations and an output schema present, the description is largely sufficient. It could mention what the response contains or how this fits into the OAuth PIN flow, but the absence is not critical given the output schema and simple parameter.
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 needed to compensate, but it only restates the schema's 'Pin Id' as 'The unique identifier of the pin'. This is tautological and does not clarify where the pin_id comes from, how it is formatted, or any relationship to OAuth flows.
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?
States a specific action and resource: 'Get OAuth PIN Status' plus the endpoint 'GET /pins/{pinId}'. The purpose is unmistakable and naturally distinct from sibling tools like create_pins and update_pins_link.
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 the tool is used to retrieve the status of an OAuth PIN, but it does not explicitly state when to prefer it over alternatives, nor does it mention create_pins or update_pins_link by name. The simple read-oriented purpose makes the usage context reasonably inferable, but explicit guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_playlists_by_playlist_idBRead-onlyIdempotent
Retrieve Playlist.
GET /playlists/{playlistId}
Args: playlist_id: The ID of the playlist
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description's 'Retrieve' is consistent with them. The description adds no behavioral context beyond the annotations—for example, it does not clarify whether only metadata is returned or whether items are included, nor any auth or rate-limit implications.
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 compact and well-structured: a one-line purpose, the endpoint, then the arguments. No filler, repetition, or unnecessary detail.
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 single-parameter read endpoint with an output schema and safety annotations, the description is nearly sufficient to call correctly. The main gap is the absence of any explicit distinction from the sibling items endpoint, but the output schema covers the return shape.
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 sole parameter is described as 'The ID of the playlist', which adds almost no meaning beyond the schema's title 'Playlist Id' and integer type. With schema description coverage at 0%, the description was expected to compensate but does not.
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 a clear verb ('Retrieve') and resource ('Playlist'), and the endpoint path GET /playlists/{playlistId} makes the target unambiguous, distinguishing it from sibling item endpoints. However it does not explicitly contrast with similar tools like get_playlists_by_playlist_id_items or list_playlists, so it stops short of a top score.
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?
There is no guidance on when to use this tool versus alternatives such as get_playlists_by_playlist_id_items or list_playlists. No use cases, prerequisites, or exclusions are mentioned; the only implied context comes from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_playlists_by_playlist_id_generatorsBRead-onlyIdempotent
Get a playlist's generators.
GET /playlists/{playlistId}/generators
Args: playlist_id: The ID of the playlist
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the exact HTTP endpoint but no further behavioral context such as pagination, response scope, or potential side effects. It does not contradict the annotations.
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 appropriately short and front-loads the main purpose before the endpoint and parameter details. The Args block is somewhat redundant with the schema but not bloated. No unnecessary sentences are present.
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 tool is simple: one required integer parameter, rich safety annotations, and an output schema. An agent can likely invoke it correctly. However, the meaning of 'generators' is left unexplained, and there is no guidance on how it relates to sibling playlist generator tools, leaving a notable completeness 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?
Schema description coverage is 0%, so the description must compensate for the parameter's meaning. It only repeats 'playlist_id: The ID of the playlist,' which adds little beyond the schema's title and integer type. It does not explain how to obtain the ID, any constraints, or the parameter's role in the request.
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 and resource: 'Get a playlist's generators.' The endpoint path reinforces this. However, it does not explicitly distinguish this from sibling tools like get_playlists_by_playlist_id_items or get_playlists_by_playlist_id_items_by_generator_id_items, and 'generators' is not explained.
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 about when to use this tool versus alternatives, such as when to fetch generator items instead of generators. The only usage signal is implicit in the tool name and endpoint. There are no prerequisites, exclusions, or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_playlists_by_playlist_id_itemsARead-onlyIdempotent
Retrieve Playlist Contents.
GET /playlists/{playlistId}/items
Args: playlist_id: The ID of the playlist type: The metadata types of the item to return. Values past the first are only used in fetching items from the background processing playlist.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| playlist_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior, so the safety profile is covered. The description adds one genuinely useful behavioral detail: extra values in 'type' are only used for the background processing playlist. It does not add much beyond that.
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 compact and front-loaded: one clear purpose sentence, the HTTP endpoint, then both args. Every line earns its place with no filler 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 low parameter count, strong annotations, and presence of an output schema, the description provides the essential calling information. The main gap is the absence of sibling routing guidance, but the tool is otherwise adequately specified for correct invocation.
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 carries the full burden of explaining parameters. It documents playlist_id as 'The ID of the playlist' and clarifies that type specifies metadata types, with a non-obvious special rule about array values after the first. This meaningfully compensates for the empty 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?
Description clearly states the verb and resource: 'Retrieve Playlist Contents' with the endpoint GET /playlists/{playlistId}/items. It is distinct from broader playlist operations, though it does not explicitly differentiate itself from close siblings like get_playlists_by_playlist_id_items_by_generator_id.
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 the many related playlist endpoints. The only contextual hint, about the 'type' parameter and the background processing playlist, is behavioral rather than usage routing, so an agent must infer when this endpoint is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_playlists_by_playlist_id_items_by_generator_idCRead-onlyIdempotent
Get a playlist generator.
GET /playlists/{playlistId}/items/{generatorId}
Args: playlist_id: The ID of the playlist generator_id: The generator item ID to delete.
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes | ||
| generator_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description directly contradicts the annotations: annotations declare readOnlyHint=true and destructiveHint=false, yet the argument description states 'generator item ID to delete', implying a destructive action. This is a serious inconsistency that undermines the tool's behavioral 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?
The description is short and includes the endpoint and argument list, which is efficient. However, the erroneous 'to delete' in the parameter description is a significant flaw that mars the otherwise clean structure. It earns a middle score for being concise but not correct.
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 GET with two parameters, the description should clarify what a 'playlist generator' is and what the generator_id represents. It fails to explain the concept, and the misleading 'delete' leaves the agent without a clear understanding. The output schema may cover return values, but the description itself is incomplete and contradictory.
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 provides basic meanings for both parameters, but generator_id is incorrectly labeled 'to delete' rather than 'to retrieve'. This actively misleads the agent about the parameter's purpose, making the semantics worse than if no description were 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?
The description's first line 'Get a playlist generator' clearly identifies the verb and resource, distinguishing it from sibling tools like get_playlists_by_playlist_id_items. However, the parameter description for generator_id says 'to delete', which contradicts the GET intent and could confuse the agent about whether this tool performs a deletion. This mixed messaging weakens purpose clarity.
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. Siblings like get_playlists_by_playlist_id_generators or get_playlists_by_playlist_id_items_by_generator_id_items exist, but the description doesn't mention them or any conditions for selection. An agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_playlists_by_playlist_id_items_by_generator_id_itemsCRead-onlyIdempotent
Get a playlist generator's items.
GET /playlists/{playlistId}/items/{generatorId}/items
Args: playlist_id: The ID of the playlist generator_id: The generator item ID to delete.
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes | ||
| generator_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, but the description's parameter text says 'The generator item ID to delete,' implying a destructive operation. This contradicts the annotation profile, and no additional behavioral context (e.g., pagination, response details) is provided.
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 front-loads the primary purpose, but it includes a redundant endpoint line and an arg list with an inaccurate descriptor. The structure is acceptable, but the content error undermines the effectiveness of the concise 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?
Although an output schema exists and annotations cover safety, the description does not explain how this tool relates to its siblings, what a generator item is, or any invocation specifics. The misleading generator_id description is a notable gap that prevents correct 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?
With 0% schema description coverage, the description must explain the parameters, but it only restates 'The ID of the playlist' (redundant) and calls generator_id 'The generator item ID to delete,' which is semantically incorrect for a GET operation. It fails to compensate 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 opening line, 'Get a playlist generator's items,' states a specific verb and resource, and the HTTP endpoint is included. However, the description does not explicitly differentiate this from closely named siblings like get_playlists_by_playlist_id_items, and the generator_id parameter description misleadingly says 'to delete.'
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?
There is no guidance on when to use this tool versus alternatives such as get_playlists_by_playlist_id_items or get_playlists_by_playlist_id_generators. The description provides neither context nor exclusions for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_play_queues_by_play_queue_idARead-onlyIdempotent
Retrieve a play queue.
GET /playQueues/{playQueueId}
Args: play_queue_id: The ID of the play queue. own: If the server should transfer ownership to the requesting client (used in remote control scenarios). center: The play queue item ID for the center of the window - this doesn't change the current selected item. window: How many items on each side of the center of the window include_before: Whether to include the items before the center (if 0, center is not included either), defaults to 1. include_after: Whether to include the items after the center (if 0, center is not included either), defaults to 1.
| Name | Required | Description | Default |
|---|---|---|---|
| own | No | ||
| center | No | ||
| window | No | ||
| include_after | No | ||
| play_queue_id | Yes | ||
| include_before | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to restate safety. It adds useful behavioral context for parameters, such as ownership transfer, the center/window mechanism, and that center does not change the current selection. No contradiction with annotations.
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 purpose is front-loaded in one sentence, the endpoint is given, and the argument list is compact and information-dense. It is slightly longer than strictly necessary but contains no filler.
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?
All parameters are documented, return values are covered by the output schema, and annotations convey the safety profile. It is not a 5 because usage guidance and some value formats are left vague, but an agent could call this tool correctly with the information provided.
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 well by explaining all six parameters, including defaults and the include_before/include_after edge case. Minor gaps remain: accepted values for own/include_before/include_after are not specified, and window has no stated 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 opening line 'Retrieve a play queue' uses a specific verb and resource, reinforced by the explicit GET /playQueues/{playQueueId} endpoint. This clearly distinguishes it from sibling list, create, update, and delete play-queue 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 gives no explicit guidance on when to use this tool versus list_play_queues_1, update_play_queues_by_play_queue_id, or other play-queue endpoints. The only usage signal is inferred from the name and GET verb, so the agent must guess the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_servers_by_machine_idBRead-onlyIdempotent
Get Server Details.
GET /servers/{machineId}
Args: machine_id: The unique machine identifier of the server
| Name | Required | Description | Default |
|---|---|---|---|
| machine_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds no behavioral context beyond restating the HTTP method and resource, so it contributes little beyond what annotations provide.
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, front-loaded with the purpose, and avoids unnecessary padding. The Args section is somewhat redundant with the schema, but the overall structure is 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 one-parameter read-only lookup with an output schema and safety annotations, the description is mostly sufficient. It lacks detail about what 'server details' includes or how to source machine_id, but those gaps are minor given the simple 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?
Schema description coverage is 0%, and the description provides the single parameter's meaning: 'the unique machine identifier of the server.' This is helpful but largely restates the parameter name and title without giving format, examples, or how to obtain the identifier.
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 a specific verb and resource: 'Get Server Details' for GET /servers/{machineId}. This is clear and not a tautology, though it does not explicitly distinguish itself from sibling tools like list_servers or list_server.
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 endpoint and machine_id parameter imply this tool is for retrieving details for a single known server. However, the description gives no explicit when-to-use guidance, exclusions, or alternatives, leaving usage mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_services_browse_by_base64pathCRead-onlyIdempotent
Browse Filesystem Path.
GET /services/browse/{base64path}
Args: base64path: The base64path
| Name | Required | Description | Default |
|---|---|---|---|
| base64path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what annotations already declare. The readOnlyHint, idempotentHint, and destructiveHint already communicate the safety profile, but the description does not explain what 'browse' returns, whether authentication is required, or how path traversal/encoding behaves.
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 front-loaded with the purpose, which is good. However, the 'Args' line merely restates the parameter name and adds no value, so not every sentence 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?
For a tool with one required parameter and no schema descriptions, the definition is incomplete. It omits essential parameter semantics and usage context, even though the output schema and annotations cover some aspects. An agent would likely need to guess how to construct base64path correctly.
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, but it only says 'base64path: The base64path' — a pure tautology. It does not explain that the value is a base64-encoded filesystem path, how to encode it, or what formats are accepted.
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 a specific action ('Browse') on a specific resource ('Filesystem Path'), and the GET route clarifies the operation. It is clear enough to identify the tool's function, though it does not differentiate from the similar sibling list_services_browse.
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?
There is no guidance on when to use this tool versus alternatives such as list_services_browse or other browsing endpoints. The description does not mention any exclusions, prerequisites, or context that would help an agent choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_status_sessions_history_by_history_idBRead-onlyIdempotent
Get Single History Item.
GET /status/sessions/history/{historyId}
Args:
history_id: The id of the history item (the historyKey from above)
| Name | Required | Description | Default |
|---|---|---|---|
| history_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which the description does not contradict. The description adds the endpoint and the parameter note ('the historyKey from above'), but does not disclose additional behavioral traits such as response format, error cases, or whether the history item is returned with full details. With annotations covering safety and idempotency, a 3 is appropriate as the description adds minimal context beyond them.
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, comprising a title line, the HTTP path, and a parameter explanation. It is front-loaded with the purpose ('Get Single History Item') and the endpoint. The only minor waste is the 'Args:' section which essentially repeats the parameter description, but overall it is efficient and to the point.
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 exists, the description is fairly complete for a simple retrieval operation. However, it relies on the agent understanding 'the historyKey from above' which is not self-contained. It could benefit from stating that this tool is for fetching a specific history entry after listing them, and perhaps mentioning what the response contains (though the output schema may cover that). The description is adequate but has a notable gap in providing self-contained 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?
Schema description coverage is 0%, meaning the schema provides no descriptions for the history_id parameter. The description does add meaning by stating 'the id of the history item (the `historyKey` from above)', which clarifies the parameter's origin. However, it does not elaborate on the type or format beyond what the schema (integer) already shows. Since the description partially compensates for the coverage gap but leaves ambiguity about the 'from above' reference, a 3 is fair.
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 'Get Single History Item' and provides the HTTP endpoint, which clarifies the verb (GET) and resource (a specific history item). It is distinguishable from siblings like list_status_sessions_history_all and delete_status_sessions_history_by_history_id based on the explicit 'single' and GET verb, though it doesn't explicitly name the sibling it differs from.
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 like list_status_sessions_history_all or delete_status_sessions_history_by_history_id. It does not mention that this is for retrieving a specific history item by ID as opposed to listing all or deleting one. The context of 'the historyKey from above' implies a preceding list call but this is not explicitly stated as a usage instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sync_items_by_sync_idBRead-onlyIdempotent
Get Sync Item.
GET /sync/items/{syncId}
Args: sync_id: The unique identifier of the sync item
| Name | Required | Description | Default |
|---|---|---|---|
| sync_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond the endpoint, but it does not contradict the annotations either.
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 compact and front-loaded: a short title, the endpoint, and an argument explanation. Nearly every line earns its place, though 'Get Sync Item.' is largely redundant with the tool name.
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 idempotent getter with an output schema and full annotations, the main gap is missing domain context: what a sync item is, how to obtain a sync_id, and how this relates to list_sync_items. Otherwise the description 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?
The schema gives title 'Sync Id' with no description, so the Args section compensates, but 'unique identifier of the sync item' adds little beyond what the title and tool name already imply. It is minimal enrichment rather than a substantive explanation.
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 opens with 'Get Sync Item,' a clear verb and resource, and adds the specific endpoint path `GET /sync/items/{syncId}`. However, it never defines what a sync item is or differentiates from sibling tools like list_sync_items, leaving scope slightly vague.
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 endpoint and parameter name imply this is for fetching a single sync item by its ID, but the description provides no explicit when-to-use guidance or mention of alternatives. It only restates what is already inferable from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_system_agents_by_agent_idBRead-onlyIdempotent
Get Metadata Agent Details.
GET /system/agents/{agentId}
Args: agent_id: The unique identifier of the metadata agent
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds that it is a GET request. It does not contradict annotations. Since annotations cover safety and idempotency, the description is sufficient.
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: 5 lines with the purpose and endpoint. No wasted words, but ends with an 'Args' section that is redundant with the schema.
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 explain return values, but it's sparse for a single-parameter tool. It doesn't mention that the agent_id might be available from list_system_agents, which could help an agent know how to obtain it.
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 includes the parameter name 'agent_id' and notes it's the unique identifier, but with 0% schema coverage, it should add more detail, such as format or source. The schema only says 'string', so the description's 'unique identifier' is minimal but not entirely 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?
States it 'Get Metadata Agent Details' and includes the endpoint, but the description is vague about what a 'metadata agent' is or what details it returns. The name and endpoint are clear, but it doesn't differentiate from the sibling 'list_system_agents'.
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 vs alternatives like list_system_agents. The description does not mention any context for use, such as needing an agent ID from a prior call, or when to prefer listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_by_uuid_settings_opt_outsCRead-onlyIdempotent
Get User Opt-Outs.
GET /user/{uuid}/settings/opt_outs
Args: uuid: The universally unique identifier
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds only the HTTP endpoint and does not disclose behavioral details such as response semantics, auth requirements, or open-world 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?
The description is compact and front-loaded: a clear one-line purpose, the HTTP path, and an args section. It has minimal fluff, though the uuid line adds little beyond what the name implies.
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 one-parameter read-only GET with an output schema and safety annotations, this is close to adequate. However, the weak parameter semantics and lack of usage context leave an agent needing to infer how to identify the target user and what the opt-out payload will contain.
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 explain the uuid parameter. It only restates that uuid is 'the universally unique identifier,' which is a generic definition of the acronym and does not clarify whose UUID to use, expected format, or relationship to the opt-outs resource.
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 opens with 'Get User Opt-Outs' and provides the HTTP path GET /user/{uuid}/settings/opt_outs, making the action and resource clear. It does not explicitly differentiate from sibling tools, but no sibling appears to target user opt-outs, so the purpose is 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?
There is no guidance on when to use this tool versus alternatives or any prerequisites/context. The only clue is the tool name and endpoint, so an agent must infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_accountsBRead-onlyIdempotent
Get System Accounts.
GET /accounts
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds none of the behavioral context such as pagination, authentication, or what is actually returned. It merely restates the action, so it does not exceed the annotations in any meaningful way.
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 tight: a single verb phrase and the HTTP endpoint. Both earn their place. There is no filler, fluff, or redundant explanation. It front-loads the purpose immediately.
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?
This is a simple, zero-parameter, read-only with an output schema and annotations, so it does not need to explain parameters or return value details. However, it lacks any description of what 'system accounts' actually are or when to use this over the many list tools, so an agent could still be misled.
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 there is no parameter meaning to add. The baseline for a zero-parameter tool is 4, and the description is not required to elaborate further. Nothing from the description conflicts with 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 states a specific action ('Get') on a specific resource ('System Accounts') and even gives the endpoint. It is not a tautology, and it is distinct enough to know it retrieves accounts, but it does not differentiate from sibling tools like list_users or list_servers, so it misses the full context.
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 gives no guidance about when to use this tool versus alternatives. There is no mention of whether system accounts are the same as user accounts, no prerequisites, and no pointer to other tools. An agent is left to infer the use case from the name and the one-liner.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_activitiesBRead-onlyIdempotent
Get all activities.
GET /activities
| 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 adds only the endpoint 'GET /activities' and the phrase 'all activities.' Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so no unsafe behavior is hidden, but the description doesn't disclose filtering, ordering, pagination, or payload size implications. It adds little beyond the annotations.
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 two lines: a clear imperative sentence and the exact endpoint. Every word earns its place and the core information is front-loaded with 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 zero-parameter, read-only listing tool with a full output schema and four annotations covering safety, this is effectively complete. An agent can call it without missing critical information, though a sentence clarifying what 'activities' includes would push it to a 5.
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 takes zero parameters, so there is nothing for the description to clarify. The input schema already reflects this fully, and the rubric's baseline for a zero-parameter tool 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 verb 'Get' and the resource 'all activities', making the tool's purpose immediately clear. It doesn't explicitly differentiate from sibling list tools, but the resource 'activities' is distinct enough that the name carries much of the differentiation.
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 given on when to use this tool versus alternatives. The sibling list includes delete_activities_by_activity_id for targeted operations, but the description provides no context about when listing all activities is appropriate or how it relates to other list endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_auth_keysBRead-onlyIdempotent
Get Auth Keys.
GET /auth/keys
| 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?
Annotations already declare this as read-only, idempotent, and non-destructive. The description adds the HTTP GET endpoint, which reinforces the read-only nature. There is no contradiction, but the description itself provides little additional behavioral context beyond what the annotations already cover.
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 key operation 'Get Auth Keys' front-loaded and the endpoint provided on the second line. No words are wasted, though it leans toward minimal rather than richly 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?
For a simple zero-parameter read-only list operation with an output schema and safety annotations already provided, the description is largely complete. It identifies the operation and endpoint, and no extra input guidance is needed. It could add a note about what auth keys represent or when listing is useful, but nothing essential is missing.
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?
This tool has zero parameters, and schema description coverage is 100%, so the schema carries no parameter burden. The description correctly implies a simple list operation with no required inputs, which is sufficient for a no-parameter tool.
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 a specific verb and resource: 'Get Auth Keys' and the endpoint 'GET /auth/keys'. This clearly identifies the operation and differentiates it from sibling creation tools like create_auth_token or create_auth_jwk, though it does not explicitly name any sibling.
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 gives no guidance on when to use this tool versus alternatives. It does not state the purpose of auth keys, when listing them is appropriate, or that other tools should be used for creation or deletion. The usage context must be inferred entirely from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_auth_nonceBRead-onlyIdempotent
Get Auth Nonce.
GET /auth/nonce
| 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 provides no behavioral context beyond what the annotations already convey (read-only, idempotent, non-destructive). It does not explain what an auth nonce is for, what it returns, or any prerequisites. With annotations present, the bar is lower, but the description adds no extra transparency 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 extremely concise: one sentence plus the endpoint. Every element is relevant and front-loaded, with no filler 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?
For a zero-parameter read-only operation with rich annotations and an output schema, the description is mostly sufficient. It lacks a bit of context about the purpose or typical use of an auth nonce, but nothing needed for making the call is missing.
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 description coverage is 100%. There is nothing for the description to explain about parameters, so the 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 verb (Get) and resource (Auth Nonce), with the HTTP endpoint included. It does not explicitly differentiate itself from sibling tools like list_auth_keys, but the resource name is specific enough to be understood.
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?
There is no guidance about when to use this tool instead of alternatives such as list_auth_keys or create_auth_token. The description simply states the endpoint without any context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_butlerARead-onlyIdempotent
Get all Butler tasks.
GET /butler
| 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?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the explicit GET verb and the 'all tasks' scope, which are useful, but it does not disclose potential pagination, ordering, permissions, or whether returned tasks include scheduled/running/completed ones. No contradiction exists.
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 compact: one clear action sentence and one endpoint line. There is no filler, and the key 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?
For a parameterless read-only listing operation with rich annotations and an output schema, this description is complete enough to invoke correctly. The only minor omission is defining what 'Butler tasks' are, but that is not required for correct invocation.
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 accepts zero parameters and schema description coverage is 100%, so the schema leaves nothing undocumented. The description only needs to clarify the target endpoint and scope, which it does.
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 and resource: 'Get all Butler tasks.' The GET /butler endpoint reinforces the operation and clearly distinguishes this read/list tool from sibling create_butler and delete_butler operations without ambiguity.
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?
There is no guidance about when to use this tool instead of alternatives such as create_butler, create_butler_by_butler_task, or delete_butler. The description states the operation but gives no context, prerequisites, or exclusions, leaving the agent to infer when it is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_claim_token_jsonCRead-onlyIdempotent
Get Claim Token.
GET /claim/token.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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds no behavioral context beyond the endpoint itself, and even that is largely restated by the tool name. There is no contradiction, but no value beyond annotations either.
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 minimal and front-loaded: 'Get Claim Token.' followed by the endpoint. No wasted words, though it is somewhat skeletal rather than genuinely 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?
For a zero-parameter GET with an output schema and comprehensive annotations, the description is minimally adequate. However, it fails to explain what a claim token is or in which claim/token workflow this tool fits, which is a gap given the large sibling set.
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%, so there is nothing for the description to add. Baseline for a no-parameter tool 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 states a clear verb ('Get') and resource ('Claim Token') and includes the endpoint GET /claim/token.json. This is specific enough to identify the operation, though it does not explicitly differentiate it from related token/claim tools like create_myplex_claim or create_auth_token.
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?
There is no guidance on when to use this tool versus alternatives. No context, exclusions, or sibling references are provided, leaving the agent to infer the appropriate scenario entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_clientsBRead-onlyIdempotent
Get Clients.
GET /clients
| 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?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the endpoint but no additional behavioral context such as pagination, response shape, or authentication needs. This is adequate but not rich, consistent with a 3.
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—just 'Get Clients.' and the endpoint. This is appropriately sized for a simple no-parameter GET, with no wasted words. It lacks front-loading of anything beyond the verb and resource, but there's little else needed.
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 read-only tool with an output schema (even if not shown) and full annotations, the description is minimal but arguably sufficient to make the call. However, it doesn't clarify what 'clients' refers to or any optional behavior (e.g., filtering unavailable), and with so many sibling list_* tools, a bit more context would help an agent. Missing that pushes it to a 3.
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 covers everything (100% coverage by virtue of empty properties). The description adds nothing about parameters, which is fine since there are none. Baseline for 0 params is 4, and there's no gap to compensate for.
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 'Clients', which is specific enough for a list operation. However, it doesn't differentiate from numerous sibling list_* tools (e.g., list_accounts, list_devices, list_servers), and 'Clients' could be ambiguous without context. Still, it avoids tautology and names a concrete resource.
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 list_accounts or list_devices. Given the large set of list_* siblings, an agent needs some distinction (e.g., scope, filtering, or use case), but the description only gives the HTTP endpoint, which doesn't help choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_cloud_serverBRead-onlyIdempotent
Get Cloud Server.
GET /cloud_server
| 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 adds only the HTTP method (GET), which aligns with the readOnlyHint and idempotentHint annotations but introduces no new behavioral detail such as return format, auth requirements, or response structure. With annotations already covering safety, the description contributes minimal additional 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?
The description is extremely terse and front-loads the action and endpoint, with no wasted words. It remains minimally informative, which is acceptable for such a simple tool, though it borders on too sparse.
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?
Even for a zero-parameter read, the description leaves 'Cloud Server' undefined and fails to clarify what the response contains or when the tool should be used. It also remains ambiguous among sibling list/get server tools, and the output schema, while present, does not compensate for the lack of high-level 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 tool has zero parameters)Skip; the schema coverage is effectively 100% and the description has no parameter burden. A baseline of 4 for no parameters 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 states a specific verb ('Get') and resource ('Cloud Server') and includes the HTTP endpoint, so an agent can tell it is a read operation. However, it does not differentiate this from many sibling tools like list_server or list_servers, and the meaning of 'Cloud Server' is left undefined.
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?
There is no guidance on when to invoke this tool versus alternatives. The description omits context, exclusions, or any hint of which sibling tools are preferable for related but different purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_devicesBRead-onlyIdempotent
Get System Devices.
GET /devices
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds only the GET /devices endpoint, which restates the operation without disclosing additional behavioral context such as return format, pagination, or authorization requirements.
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 brief and front-loaded with the action. However, the 'GET /devices' line is redundant with the tool name and the 'Get System Devices' sentence, so it does not add meaningful 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 zero-parameter, read-only list operation with a rich annotation set and an existing output schema, the description is nearly complete. It could have briefly stated that it returns system devices or mentioned when system devices are relevant, but nothing critical is missing.
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, so there is no parameter burden for the description. An empty schema with 100% coverage means the description cannot add parameter-level meaning; baseline for no-parameter tools 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 names a specific resource ('System Devices') and a verb ('Get'), and includes the endpoint GET /devices. It is clear, but it does not explicitly distinguish itself from sibling device-related tools such as list_media_grabbers_devices or delete_media_grabbers_devices_by_device_id.
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?
There is no guidance about when to use this tool versus alternatives. The description simply states the operation and endpoint, leaving the agent to infer context from sibling names without any explicit exclusions or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_diagnosticsBRead-onlyIdempotent
Get Diagnostics.
GET /diagnostics
| 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?
Annotations already cover readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so there is no contradiction. Beyond adding the HTTP endpoint, the description discloses no behavioral context such as what diagnostics contain, scope limits, or response behavior. It adds little beyond the annotations.
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 wastes no words: a one-line summary plus the endpoint. It is appropriately sized for a zero-parameter tool, though 'Get Diagnostics' is more terse than idealized.
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 read-only endpoint with an output schema and strong annotations, the description is largely sufficient for invocation. The main missing piece is differentiation from sibling diagnostics endpoints, but that gap is more about usage guidance than basic 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?
There are zero parameters and the schema is empty, so the baseline 4 applies. No parameter documentation 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 states a clear verb and resource: 'Get Diagnostics', backed by the explicit endpoint GET /diagnostics. It is somewhat generic compared with more specific siblings like list_diagnostics_databases and list_diagnostics_logs, but an agent can still infer this is the top-level diagnostics endpoint.
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?
There is no guidance about when to use this tool versus alternatives, and no mention of exclusions or preferred contexts. The sibling list includes more specific diagnostics endpoints, but the description does nothing to help an agent choose among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_diagnostics_databasesCRead-onlyIdempotent
Download Database Diagnostics.
GET /diagnostics/databases
| 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?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is known. The description adds no extra behavioral context, such as permissions, response format, or filtering behavior. It is consistent with annotations but offers no new disclosure.
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 with no filler words, and it includes the endpoint for clarity. The brevity is acceptable, but the wording could be more precise; otherwise it is appropriately 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?
Given the tool has no parameters and an output schema, the description carries a relatively low burden. Yet it does not explain what 'Database Diagnostics' means, how it differs from list_diagnostics or list_diagnostics_logs, or any usage context. The phrase 'Download' could mislead an agent into expecting a file download rather than a list.
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 in the input schema, so the baseline is 4. The description need not explain parameters; it is a parameterless call and adds nothing here.
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 'Download Database Diagnostics' identifies a verb (Download) and a resource (Database Diagnostics), but it is vague about the exact action—it doesn't explicitly say 'list' or indicate the returned object is a list of databases. It also does not differentiate itself from sibling tools like list_diagnostics or list_diagnostics_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?
No guidance is given on when to use this tool versus other diagnostics-related tools. The description does not mention alternatives, conditions, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_diagnostics_logsARead-onlyIdempotent
Download Log Bundle.
GET /diagnostics/logs
| 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 discloses that this is a download and shows the HTTP method GET, which reinforces the read-only, idempotent, non-destructive nature already declared in annotations. However, it adds minimal extra behavioral context (e.g., output format, authentication needs, size) beyond what annotations convey. With annotations present, a 3 is appropriate.
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 line for the action and one line for the endpoint. It is front-loaded with the verb and resource, and contains no wasteful 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?
With zero parameters, an output schema present, and annotations covering the safety profile, the description is nearly sufficient for invoking the tool. The only gap is not explaining what the log bundle contains or expected response, 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?
There are zero parameters, so the schema coverage is effectively 100%. Per the baseline for 0 params, the description does not need to add parameter detail, and it correctly does not.
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 a specific verb ('Download') and resource ('Log Bundle'), and includes the exact endpoint 'GET /diagnostics/logs'. This makes the action clear, though it does not explicitly differentiate from sibling tools like list_diagnostics or list_diagnostics_databases.
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. It does not mention that it is the way to obtain a log bundle, nor does it exclude other diagnostic-related tools. The context for selection among siblings is entirely absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_eventsource_notificationsBRead-onlyIdempotent
Connect to Eventsource.
GET /:/eventsource/notifications
Args:
filter: By default, all events except logs are sent. A rich filtering mechanism is provided to allow clients to opt into or out of each event type using the `filters` parameter. For example:filters=-log: All event types except logs (the default).filters=foo,bar: Only the foo and bar event types.filters=: All events types.filters=-foo,bar: All event types except foo and bar.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive safety profile. The description adds useful context about default filtering behavior and syntax, but it does not disclose that an Eventsource connection is typically long-lived or describe what happens as events stream in. No contradiction with annotations.
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 front-loaded with the core action and endpoint, and the filter examples are well-structured and directly useful. It is slightly verbose with repeated filter examples, but each conveys a distinct case, so the length is justified.
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 single-parameter, read-only tool with output schema and strong annotations, the filtering semantics are well covered. What is missing is broader context around the streaming nature of Eventsource, authentication expectations, and how this tool relates to the websocket notification alternatives. An agent could call it correctly but may not fully understand its runtime 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?
Schema coverage is 0%, so the description must carry the parameter semantics. It does so effectively by explaining the default, negation syntax, whitelist behavior, and empty-filter behavior. The only flaw is a minor inconsistency: the schema names the parameter 'filter' while the description repeatedly refers to 'filters'.
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 operation as 'Connect to Eventsource' and gives the explicit endpoint GET /:/eventsource/notifications, which identifies the resource and action. However, it does not clarify that this is a streaming/list-style operation or contrast it with the similar websocket notification siblings.
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 detailed filtering syntax but gives no guidance on when to use this tool versus alternatives like list_websocket_notifications or list_websockets_notifications. Usage context is only implied by the endpoint name, not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_featuresBRead-onlyIdempotent
Get Features.
GET /features
| 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?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true and destructiveHint=false, fully covering safety behavior. The description adds the HTTP endpoint as a minor extra but does not enrich behavioral understanding beyond the structured hints.
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?
At two lines, the description is extremely concise and front-loaded with the key verb and endpoint. No wasted words, though it is so terse that it borders on under-specification.
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 tool is simple: no parameters, a read-only operation, and annotations already cover behavior. The only real gap is explaining what 'features' refers to in this context, which could help an agent choose it confidently over similarly named siblings.
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, so the baseline is 4. The description correctly implies the operation requires no inputs and retrieves everything, matching 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 states a clear verb and resource ('Get Features') and the exact endpoint. It clearly expresses a read-only list operation, but it does not distinguish what 'features' means relative to similar siblings like list_server_users_features, leaving some ambiguity for agent selection.
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 given on when to use this tool versus other list_* tools, nor any context about what kinds of features are returned. The description does not address exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_friendsBRead-onlyIdempotent
Get Friends.
GET /friends
| 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 annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safe read-only nature is covered outside the description. The description only adds the explicit HTTP method and path; it does not disclose response behavior, auth requirements, or other operational 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?
The description is very short and puts the core operation first, with the endpoint clearly separated. It loses a point because the opening 'Get Friends' largely restates the tool name and adds little beyond the endpoint.
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, read-only endpoint with an output schema and safety annotations, the description is minimally sufficient. However, it gives no context about what 'friends' means, what the response contains, or when this is the appropriate endpoint among many sibling list 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 tool has zero parameters and the input schema is empty, so there is no parameter information the description needs to compensate for. It provides no parameter semantics, but none are 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 states a concrete verb and resource ('Get Friends') and provides the HTTP endpoint 'GET /friends', making the basic purpose clear. It does not differentiate list_friends from sibling list tools such as list_users or list_accounts, which keeps it from a 5.
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?
There is no guidance on when to use this tool rather than the many sibling list/get tools, no mention of prerequisites, and no exclusions or alternative tool names. The description simply restates what the endpoint does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_geoipBRead-onlyIdempotent
Get GeoIP.
GET /geoip
| 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?
Annotations cover readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, providing a clear safety profile. The description adds minimal context, but with no parameters and high annotation coverage, the burden is reduced. It doesn't contradict annotations and is consistent with a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, which is concise, but the inclusion of 'GET /geoip' adds little value since the tool name already suggests the endpoint. It is efficiently structured but may be under-specified in terms of helpful context.
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 read-only tool with an output schema and strong annotations, the description might be considered minimally adequate. However, it lacks any explanation of what the GeoIP data represents or how it might be used, which could be valuable to an agent selecting this 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 there is nothing to document. The schema coverage is 100% (trivially). The description need not add parameter meaning since the tool takes no inputs, so a baseline 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?
The description 'Get GeoIP' states a clear verb and resource, which is adequate, but it does not differentiate from sibling tools such as list_ip or list_identity, which could serve related purposes. It is specific enough for an agent to understand the basic function but is minimal.
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?
There is no guidance on when to use this tool versus alternatives. The description simply repeats the endpoint without mentioning contexts or exclusions. An agent would have no help deciding between list_geoip and list_ip.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_homeBRead-onlyIdempotent
Get home hubs.
GET /home
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no behavioral context beyond the HTTP method and path, such as pagination, filters, or response handling. It does not disclose anything beyond what the annotations and the endpoint URL already imply.
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: 'Get home hubs.' followed by the endpoint. Every word is purposeful Alert The message is front-loaded with the action and resource. No filler or redundant 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?
Given the simplicity of the tool (no params, read-only, with an output schema would normally reduce the need for description text), the description is minimal but adequate to understand the basic purpose. However, it lacks any explanation of what 'home hubs' means or when to call it, which leaves some ambiguity. It is minimally viable but has clear 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?
The tool has zero parameters Answered thus the input schema is fully covered. According to the calibration guidelines, a baseline of 4 is appropriate when there are 0 params; the description does not need to add parameter semantics.
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 a specific verb and resource: 'Get home hubs.' This clearly identifies what the tool does. It includes the endpoint 'GET /home' as additional context. However, it does not explicitly differentiate from sibling tools like list_hubs or list_hubs_continue_watching, which may overlap in meaning.
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?
There is no guidance on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or provide any context indicating when 'home hubs' is the appropriate choice over other hub-related list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_home_usersCRead-onlyIdempotent
Get home hubs Users.
GET /home/users
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is clear. The description adds no behavioral context beyond what the annotations provide, such as auth requirements, response pagination, or whether the result includes restricted users. It does not contradict the annotations.
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, but it is under-specified rather than genuinely concise. The first sentence 'Get home hubs Users' is malformed, and the second line 'GET /home/users' duplicates the endpoint without adding useful information. Neither line is structured in a way that helps an agent understand the tool.
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?
Even though the tool is simple with zero params, an output schema exists, and annotations cover safety, the description lacks enough context to correctly select this tool among the many sibling list_ and home tools. It does not explain what 'home users' are or how this endpoint differs from list_users or list_home.
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 an empty schema with 100% coverage. With no parameters to document, the description has no additional semantic burden. Per the guidelines, 0 params gives 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 states a verb ('Get') and a resource ('home hubs Users'), so it is not a tautology, but the phrase 'home hubs Users' is awkward and ambiguous (likely a typo for 'home users'). It does not clearly distinguish this tool from siblings like list_home, list_users, or list_hubs, and the agent must infer what exactly is listed.
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?
There is no guidance on when to use this tool versus alternatives. It simply states 'Get home hubs Users' and the endpoint, with no mention of prerequisites, context, or exclusions. An agent cannot tell when to prefer this over list_users or list_home.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_hubsARead-onlyIdempotent
Get global hubs.
GET /hubs
Args: only_transient: Only return hubs which are "transient", meaning those which are prone to changing after media playback or addition (e.g. On Deck, or Recently Added) identifier: If provided, limit to only specified hubs
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | No | ||
| only_transient | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint, idempotentHint, and destructiveHint=false. The description adds useful context for the transient filtering behavior, but it doesn't disclose response characteristics or other behavioral caveats, so the annotation-heavy context makes 3 appropriate.
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 compact and well-structured: a one-line summary, the endpoint, then concise argument definitions. Every element is useful and the key 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?
For a simple read-only list operation with rich annotations and an output schema, the description adequately covers the purpose and both parameters. The main missing piece is explicit guidance for choosing this tool among the many sibling hub-related endpoints.
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% description coverage, but the description explains both parameters with meaningful semantics and examples for only_transient. It does not clarify the expected value format for only_transient (typed as string rather than boolean) or the exact format of identifier array items, which prevents a perfect score.
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 a specific operation ('Get global hubs') and the HTTP endpoint, making clear it lists the global hub set. It doesn't explicitly differentiate from sibling list_hubs_* tools, so it falls short of full sibling distinction.
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 offers no explicit guidance on when to use this tool versus alternatives like list_hubs_items or get_hubs_sections_by_section_id. The word 'global' implies an unfiltered hub list, but no conditions, exclusions, or alternative-tool routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_hubs_continue_watchingBRead-onlyIdempotent
Get the continue watching hub.
GET /hubs/continueWatching
| 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 is compatible with the annotations (read-only, non-destructive), but it adds no behavioral nuance beyond the GET endpoint. It doesn't mention authentication expectations, empty results, or why this hub differs from related functions, so it only minimally complements the annotation coverage.
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, uses the action-first structure with the GET endpoint provided. There is essentially no waste, though the endpoint line is arguably redundant given the description statement. It is front-loaded and readable.
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, the zero parameters, and the output schema, the description provides the basic expected information. However, the ambiguous relationship to sibling list_hubs_continue_watching_items is not addressed, so the agent may be unsure what differentiates this tool from that one.
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, so the description does not need to explain parameter behavior. The schema already reflects this fully, and there is nothing to compensate for. This follows the baseline for a tool 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 states a clear verb and object: 'Get the continue watching hub.' This is specific enough to identify the resource, though it doesn't explicitly differentiate from the sibling list_hubs_continue_watching_items. The endpoint line provides extra specificity.
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?
There is no guidance about when to use this tool over list_hubs_continue_watching_items, list_hubs, or other hub tools. The agent is left to infer the distinction from the name and endpoint, and the description gives no 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_hubs_continue_watching_itemsBRead-onlyIdempotent
Get Continue Watching Items.
GET /hubs/continueWatching/items
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. However, the description only repeats the HTTP verb and path, which adds no meaningful behavioral context such as whether results are paginated, sorted, scoped to a user, or what 'items' actually represents.
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 brief and front-loaded, with only two lines: a human-readable summary and the raw endpoint. The first line is somewhat redundant with the tool name, but there is no wasted or misleading content, and the size is appropriate for a zero-parameter tool.
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 zero-parameter input, rich annotations, and existing output schema, the description is minimally sufficient to call the endpoint correctly. However, it lacks context about how this tool differs from list_hubs_continue_watching and what class of items the response contains, which an agent would need to make an informed selection among many hub-related 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 tool has zero parameters, so the baseline for this dimension is 4. The description correctly adds no parameter information that could conflict with the empty schema, and nothing further is needed to understand invocation 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 states a clear verb and resource: 'Get Continue Watching Items' and includes the endpoint path. It is unambiguous about the basic operation, but it does not explicitly differentiate from sibling tools like list_hubs_continue_watching or list_hubs_items, so an agent might not know this returns the flattened item list rather than the hub summary.
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?
There is no guidance on when to use this tool versus the alternative list_hubs_continue_watching or other hub-listing tools. The description provides no exclusions, preconditions, or alternative routes, leaving selection entirely to inference from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_hubs_home_recently_addedARead-onlyIdempotent
Get home hubs Recently Added.
GET /hubs/home/recentlyAdded
| 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?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, so the safety profile is covered. The description adds only the GET endpoint, which is more of an implementation detail than a behavioral disclosure; it does not describe response characteristics, pagination, or any scoping constraints.
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 and front-loaded with the purpose. The endpoint line adds a useful exact path without wasting words, making it appropriately sized for a simple zero-parameter operation.
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, read-only endpoint with an output schema and strong annotations, the description is mostly complete. It identifies the resource and endpoint clearly, though a little more context about what 'home hubs' are and how this differs from similar hub tools would make it fully self-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?
The tool has zero parameters and 100% schema description coverage, so the description has no parameter burden. The baseline of 4 for a no-parameter tool 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 states a clear action and resource: 'Get home hubs Recently Added' and provides the exact endpoint GET /hubs/home/recentlyAdded. It is not tautological, but it does not explicitly distinguish this from closely related sibling tools like list_hubs, list_hubs_continue_watching, or list_library_recently_added.
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 intended use is implied by the resource name: use this when you need the 'Recently Added' hub from home. However, there is no explicit guidance about when to prefer this over the many sibling hub/list tools, and no exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_hubs_itemsBRead-onlyIdempotent
Get a hub's items.
GET /hubs/items
Args: identifier: If provided, limit to only specified hubs
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false, so safety is established. The description adds the filtering behavior of the identifier parameter and the GET endpoint, but does not disclose pagination, auth, or result-shape 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 short, front-loaded with the core action, and contains no filler. The endpoint line adds minor redundancy with the tool name.
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 tool is simple (one optional parameter, output schema present, rich annotations), but the description omits when-to-use context and any clarification of what qualifies as a hub item. Adequate but 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?
Input schema has 0% description coverage, so the description must compensate. It explains that identifier limits to specified hubs if provided, but does not specify the expected format or that it accepts an array, leaving some ambiguity.
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 a clear verb+resource ('Get a hub's items') and includes a concrete endpoint. It doesn't explicitly differentiate from sibling hub-item tools like list_hubs_continue_watching_items, so it stops short of a 5.
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?
There is no guidance on when to use this tool versus alternatives. No exclusions or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_hubs_promotedARead-onlyIdempotent
Get the hubs which are promoted.
GET /hubs/promoted
| 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?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds little beyond the 'promoted' scoping and the GET endpoint; it does not mention authorization, filtering semantics, or response characteristics. No contradiction with annotations.
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 short lines with no filler: the purpose sentence is front-loaded and the endpoint line is a compact, useful reference. Every element 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?
For a zero-parameter, read-only, non-destructive operation with an output schema, the description is nearly sufficient. The main gap is the lack of any explanation of what 'promoted' means or when this variant should be preferred over sibling hub-list 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?
This tool has zero parameters, so there are no parameter semantics to document; the empty schema is fully self-descriptive. The baseline for 0-param tools is 4, and the description adds nothing unnecessary.
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?
States a clear verb+resource: 'Get the hubs which are promoted.' The 'promoted' qualifier separates it from generic list_hubs and similar hub-list siblings, but it does not explicitly contrast with any sibling nor define what 'promoted' means.
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 siblings such as list_hubs, list_hubs_home_recently_added, or list_hubs_continue_watching. The only usage signal is the resource name itself; no exclusions or alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_hubs_searchBRead-onlyIdempotent
Search Hub.
GET /hubs/search
Args: query: The query term section_id: This gives context to the search, and can result in re-ordering of search result hubs. limit: The number of items to return per hub. 3 if not specified include_collections: Include collection results in search hubs
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| section_id | No | ||
| include_collections | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only profile is covered. The description adds a concrete HTTP GET method and a default of 3 for limit, which are helpful, but it does not discuss response behavior, pagination, or authentication.
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 argument list is compact and front-loaded with the endpoint; each parameter gets one line. However, the opening 'Search Hub.' is a sparse fragment that could have been replaced with a full purpose sentence.
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 read-only annotations and output schema, the parameter coverage is adequate, but the description lacks usage context and does not distinguish this search from sibling search/list tools. The overall picture is functional but 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 descriptions cover 0% of parameters, and the description compensates by documenting all four arguments. It clarifies section_id reorders results, limit defaults to 3 per hub, and include_collections toggles collection results.
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 opens with 'Search Hub.' and the endpoint 'GET /hubs/search', which conveys a search action over hubs, but it never explains what a hub is or what the returned search results contain. It also does not differentiate from sibling tools like list_hubs_search_voice or list_library_search, and the first line largely restates the tool name.
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?
There is no guidance on when to call this tool instead of list_hubs, list_hubs_search_voice, or list_library_search. The description only lists parameters; it does not mention exclusions, prerequisites, or alternative conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_hubs_search_voiceBRead-onlyIdempotent
Voice Search Hub.
GET /hubs/search/voice
Args: query: The query term limit: The number of items to return per hub. 3 if not specified include_collections: Include collection results in search hubs
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| include_collections | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior, so the description does not need to restate that. It adds a small amount of behavioral context by indicating results are per-hub and that include_collections toggles collection results, plus the limit default of 3. It does not discuss pagination or auth, but the annotations and output schema cover the risk profile.
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 compact and well-structured with a clear Args list and no verbose filler. The opening 'Voice Search Hub' is more of a label than an informative sentence, and the description could have used that space for an explicit action statement, but overall it is concise without excessive 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?
The tool is low-complexity: all parameters are optional, annotations cover the safety profile, and an output schema exists, so return values do not need to be described. The description adequately documents the endpoint and parameters, but it is incomplete for selection because it never clarifies the 'voice' semantics or when to choose this over list_hubs_search.
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 carries the full burden for parameter meaning. It explains all three parameters: query is the search term, limit is items per hub with a default of 3, and include_collections controls whether collection results appear. The query explanation is thin, but the other two add real value beyond the schema 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 identifies the endpoint 'GET /hubs/search/voice' and lists query/limit/include_collections, so an agent can infer this is a hub search operation. However, 'Voice Search Hub' is a noun phrase rather than a clear verb+resource statement, and it does not explain what distinguishes this voice variant from the sibling list_hubs_search.
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?
There is no guidance on when to use this tool versus list_hubs_search or the other list_hubs_* siblings. The query parameter implies a search use case, but no explicit exclusions, prerequisites, or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_identityBRead-onlyIdempotent
Get PMS identity.
GET /identity
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the exact HTTP endpoint and method, which is mildly useful, but it does not disclose additional behavioral traits such as authentication needs, rate limits, or response characteristics beyond what annotations and output schema already provide.
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 front-loaded, with 'Get PMS identity' as the first line. The second line 'GET /identity' is somewhat redundant with the first line, but it is brief and provides the concrete endpoint, so the extra cost is minimal. No filler or unnecessary detail is present.
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, read-only identity lookup with rich annotations and an output schema, the description is essentially sufficient. It could clarify what 'PMS identity' includes, but the output schema covers the return structure, and annotations cover the operational profile. No critical information for invoking the tool correctly is missing.
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, so parameter documentation is unnecessary. The description does not need to compensate for any schema gaps, and the schema coverage is trivially 100%. The baseline of 4 for a parameterless tool 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 states a specific action and resource: 'Get PMS identity.' It clearly indicates this tool retrieves identity information, and the endpoint 'GET /identity' reinforces the target. It does not explicitly contrast with sibling tools like list_server or list_accounts, but the resource is distinct enough to avoid serious ambiguity.
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 about when to use this tool versus alternatives such as list_server, list_servers, list_user, or list_accounts. The description implies use for identity retrieval but gives no context, exclusions, or selection criteria. With a large sibling set, this is a noticeable gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_ipBRead-onlyIdempotent
Get IP.
GET /ip
| 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 annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method and path (GET /ip), which is consistent with the annotations and provides small extra context, but it does not explain the response semantics or whether this exposes the server's or client's IP.
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 appropriately tiny for a zero-parameter, read-only endpoint and is front-loaded with the core action. Both lines ('Get IP.' and 'GET /ip') earn their place, though it is close to being under-specified rather than efficiently 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 trivial zero-parameter read with an output schema and strong safety annotations, the description covers the essentials. However, it fails to disambiguate what 'IP' refers to and gives no hint about how this differs from similar IP-related sibling tools, which is a real gap for agent selection.
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 0 parameters and schema coverage is trivially complete, so the baseline of 4 applies. There is nothing for the description to clarify regarding parameters, and it correctly avoids inventing unnecessary 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?
"Get IP" states a verb and resource and the endpoint "GET /ip" confirms it, so it is not a tautology. However, it is so terse that it leaves ambiguity about whose IP is returned and does not distinguish itself from the adjacent list_geoip or list_identity utilities among the siblings.
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?
There is no guidance about when to use this tool versus alternatives such as list_geoip, list_ping, or list_identity. The description provides neither a condition for selecting this tool nor any exclusions, leaving the agent to guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_libraryARead-onlyIdempotent
Get Root Library.
GET /library
| 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?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint path 'GET /library' but does not explain what the root library response contains, which is partially mitigated by the existing output schema.
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 exceptionally concise: one purpose sentence and one endpoint line. Every token earns its place, with no filler or redundant elaboration.
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, an output schema, and comprehensive safety annotations, the description is nearly sufficient. The only gap is lack of context about what makes this 'root library' distinct from closely related sibling tools like list_root and list_library_all.
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%, so there is nothing for the description to add. The baseline of 4 for a no-parameter tool 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 states a clear verb and resource: 'Get Root Library' and reinforces it with the endpoint 'GET /library'. It does not explicitly distinguish itself from sibling tools like list_root or list_library_all, but the target is identifiable.
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 about when to use this tool versus the many sibling list_* library tools. There are no alternatives mentioned and no conditions for selection, leaving the agent to infer usage from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_allARead-onlyIdempotent
Get all items in library.
GET /library/all
| 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?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds that the operation returns all items and exposes the GET endpoint, but it does not disclose potential pagination, response size, or other behavioral details beyond what annotations already provide.
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 minimal and front-loaded: one clear sentence stating the function, followed by the endpoint. There is no filler or redundant explanation, making it appropriately sized for a zero-parameter read-only tool.
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, zero-parameter, read-only endpoint with output schema and strong annotations, the description is largely sufficient. The main gap is ambiguity relative to sibling library-listing tools, but 'all items in library' plus the /library/all endpoint conveys the core 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?
The tool has zero parameters, so there is no parameter semantics to document. The schema coverage is effectively 100%, and the description does not need to compensate for any missing parameter documentation.
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 a specific verb and resource: 'Get all items in library.' It also gives the endpoint GET /library/all, confirming the operation. However, it does not explicitly distinguish itself from similar siblings like list_library, list_library_sections, or get_library_sections_by_section_id_all.
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?
There is no guidance on when to use this tool versus alternatives. With dozens of library-related sibling tools, the description gives no context about when this global 'all items' endpoint is preferred over section-scoped or filtered variants, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_matchesARead-onlyIdempotent
Get library matches.
GET /library/matches
Args:
include_full_metadata: Include full metadata in the response
include_ancestor_metadata: Include ancestor metadata in the response
include_alternate_metadata_sources: Include alternate metadata sources in the response
guid: Used for movies, shows, artists, albums, and tracks. Allowed for various URI schemes, to be defined.
year: Used for movies shows, and albums. Optional.
path: Used for movies, episodes, and tracks. The full path to the media file, used for "cloud-scanning" an item.
grandparent_title: Used for episodes and tracks. The title of the show/artist. Required if path isn't passed.
grandparent_year: Used for episodes. The year of the show.
parent_index: Used for episodes and tracks. The season/album number.
index: Used for episodes and tracks. The episode/tracks number in the season/album.
originally_available_at: Used for episodes. In the format YYYY-MM-DD.
parent_title: Used for albums and tracks. The artist name for albums or the album name for tracks.
| Name | Required | Description | Default |
|---|---|---|---|
| guid | No | ||
| path | No | ||
| year | No | ||
| index | No | ||
| parent_index | No | ||
| parent_title | No | ||
| grandparent_year | No | ||
| grandparent_title | No | ||
| include_full_metadata | No | ||
| originally_available_at | No | ||
| include_ancestor_metadata | No | ||
| include_alternate_metadata_sources | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the HTTP endpoint and a conditional requirement (grandparent_title required if path isn't passed), but offers no further behavioral context such as response semantics or rate limits. With strong annotation coverage, this is adequate but not rich.
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?
Well-structured: a one-line summary, the explicit endpoint, then a tidy, scannable parameter list where each line earns its place given the 0% schema coverage. The only weak spot is the vague 'Allowed for various URI schemes, to be defined' on guid, which reads as a placeholder rather than usable guidance.
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?
Parameter documentation is thorough, and the output schema covers return shape, so that gap is acceptable. But the description omits the tool's role in the matching workflow – it never frames what the returned matches mean or how they relate to match/update flows like update_library_metadata_by_ids_match. For a 12-param tool with zero schema descriptions, this conceptual framing is a noticeable omission.
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 fully compensate, and it does. All 12 parameters get usage semantics: media-type applicability (movies/shows/albums/episodes/tracks), value format (YYYY-MM-DD), and a conditional dependency (grandparent_title required if path isn't passed). This is exactly the kind of compensation expected when the schema carries no 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 states a specific operation – 'Get library matches' – and names the exact HTTP endpoint GET /library/matches, which at a surface level distinguishes it from the many list_* siblings. However, it never explains what a 'match' represents (metadata match candidates for a library item), leaving the core semantic to be inferred from the parameter list.
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?
There is no guidance on when to call this tool versus alternatives. It never mentions related siblings like get_library_sections_by_section_id_match, update_library_metadata_by_ids_match, or list_library_search, and gives no conditions for when match lookups are appropriate. The agent must guess the usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_optimizeBRead-onlyIdempotent
Get Optimize Library.
GET /library/optimize
| 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?
Annotations already provide read-only, idempotent, non-destructive behavior. The description adds only `GET /library/optimize`, which is redundant and conveys no additional behavioral context such as auth, pagination, 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 very concise and front-loaded with no padding. The extra `GET /library/optimize` line is redundant but harmless, keeping the structure clean.
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 term 'Optimize Library' is never explained, so an agent cannot tell whether this returns a collection, statistics, or a specific resource. In a large sibling family with section-level optimize endpoints, this description is not complete enough for reliable tool selection.
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 properties, so there are no parameter semantics to explain. With no parameters, the description need not compensate for schema gaps, and the baseline for a parameterless tool 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 states a specific read verb ('Get') and a resource ('Optimize Library'), and the sibling tools `create_library_optimize` and `update_library_optimize` make the read/write contrast clear. However, 'Optimize Library' is undefined and 'Get' instead of 'list' adds slight ambiguity.
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 gives no guidance on when to use this tool versus siblings such as `get_library_sections_by_section_id_optimize` or `list_library`. It only states the endpoint and does not mention conditions, prerequisites, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_random_artworkBRead-onlyIdempotent
Get random artwork.
GET /library/randomArtwork
Args: sections: The sections for which to fetch artwork.
| Name | Required | Description | Default |
|---|---|---|---|
| sections | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry readOnlyHint, idempotentHint, and destructiveHint: false, so the safety profile is already established. The description adds the GET endpoint and the notion of randomness, but does not clarify how randomness affects returned values or how the optional sections scope the selection. No contradiction with the annotations.
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, front-loaded, and has a clear structure: action statement, endpoint, then parameter. The endpoint line is somewhat redundant with the action statement but still adds the canonical path; no filler is present. It is concise without being degenerate.
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 a read-only tool with a single optional parameter and an output schema, the description does not need to explain return values. But the only non-trivial input is under-described, and the scoping and randomness semantics are left to inference, leaving an agent to guess on the one decision it must make.
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% schema description coverage, and the description's one line, 'The sections for which to fetch artwork,' does give the parameter a purpose. However, it does not specify what the array items should be, whether omitting sections means all sections, or how section identifiers are represented.
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 opens with a specific verb and resource, 'Get random artwork,' and the endpoint 'GET /library/randomArtwork' confirms the operation. The word 'random' makes it easy to distinguish from sibling library listing and art-related tools, so an agent can identify what this tool does.
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?
There is no guidance about when to choose this tool over list_library, get_library_sections_by_section_id_arts, or other library endpoints. The only usage signal is the bare action statement; no prerequisites, exclusion cases, or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_recently_addedARead-onlyIdempotent
Get Global Recently Added.
GET /library/recentlyAdded
| 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?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds the global scope and exact endpoint but does not disclose behavior like pagination, ordering, or default limits. With annotations present, this level of added context is acceptable though not extensive.
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 exceptionally concise: one sentence plus the endpoint. Every element is useful, with the primary action front-loaded and no filler. It is appropriately sized for a zero-parameter GET endpoint.
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 parameterless GET with an output schema present, the description provides the essential information: the global scope and the endpoint. It doesn't clarify result ordering or how this endpoint relates to other recently-added variants, but the tool's simplicity and existing structured data make this 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 tool has zero parameters and the input schema is empty, so 100% schema coverage. With no parameters to document, the description has nothing to add; 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 states a specific verb and resource: 'Get Global Recently Added' with the endpoint 'GET /library/recentlyAdded'. The word 'Global' clearly distinguishes this from sibling tools like get_library_sections_by_section_id_recently_added, so an agent can tell them apart without further investigation.
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 about when to use this tool versus alternatives such as list_hubs_home_recently_added or get_library_sections_by_section_id_recently_added. The description only states what it does, leaving the agent to infer usage context from the name and endpoint rather than explicit when-to-use or 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.
list_library_searchCRead-onlyIdempotent
Search Discover.
GET /library/search
Args: query: The search query string limit: Maximum number of items to return search_types: Types of content to search for search_providers: Providers to include in the search include_metadata: Include metadata in the search results
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| search_types | No | ||
| include_metadata | No | ||
| search_providers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds no behavioral context beyond these annotations, such as response behavior, pagination, authentication, or rate limits. It is not contradictory, but it offers no additional transparency 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 and well-structured: a single purpose sentence, the endpoint path, and a clean parameter list. Every line carries content, and the most critical information (name and endpoint) is front-loaded. It is efficient, though it omits some necessary details.
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 5-parameter search tool with zero schema-level descriptions creations, the description is insufficient for confident invocation. There are no examples, no value constraints for string parameters, no clarification of optionality, and no mention of what 'Discover' means. The presence of an output schema helps but does not resolve input ambiguity.
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's one-line parameter explanations provide the only semantics for the 5 parameters. However, these explanations are minimal and do not specify accepted values or formats, especially for search_types and search_providers, leaving significant ambiguity. It compensates slightly but not fully.
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?
States a specific verb ('Search') and resource ('Discover'), but 'Discover' is undefined jargon and does not distinguish the tool from sibling search tools like get_library_sections_by_section_id_search or list_hubs_search. The endpoint path adds specificity, but the purpose remains ambiguous about what 'Discover' actually covers.
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 no guidance on when to use this tool over alternatives. There are several search-related siblings, but the description does not mention them, nor does it state any exclusions or prerequisites. An agent would have to guess which search tool fits its goal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_sectionsBRead-onlyIdempotent
Get Library Sections (Fallback).
GET /library/sections/
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds the endpoint GET /library/sections/ and the 'Fallback' label, but does not explain what 'fallback' implies, such as response format or limits.
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 short fragments – the description and the endpoint – convey the basic action without wasted words. It is lean, though the 'Fallback' note could be omitted or clarified.
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 read operation with an output schema, the description provides the essential endpoint. Still, the ambiguous 'Fallback' and lack of context about when this variant is preferred leaves the agent with incomplete understanding relative to the many siblings.
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, so the schema is empty and the baseline of 4 applies. The description does not need to add parameter semantics.
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 clear imperative ('Get') with a specific resource ('Library Sections'), so an agent knows what it returns. However, the word 'Fallback' is ambiguous and does not differentiate it from siblings like list_library_sections_all or list_library.
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 over the many sibling library-section listing tools. The description does not mention the role of the fallback variant or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_sections_allARead-onlyIdempotent
Get library sections (main Media Provider Only).
GET /library/sections/all
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds the provider-scope restriction, which is useful, but does not disclose any additional behavior such as pagination or provider semantics that would go beyond the annotations.
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 meaningful sentence followed by the endpoint; every token adds information and there is no filler. It is front-loaded with the action and constraint.
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 list operation with an output schema and read-only annotations, the description is nearly sufficient. The main gap is leaving the phrase 'main Media Provider' undefined and not contrasting with sibling list tools, but the endpoint and name cover most of the needed 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 input schema has zero parameters, so there is no parameter burden for the description to carry. The 'main Media Provider Only' note partially explains the endpoint's scoping, while schema coverage makes missing parameter docs a non-issue.
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 a clear action ('Get') and resource ('library sections'), and adds a scope constraint ('main Media Provider Only') plus the exact endpoint. It does not explicitly name a sibling to distinguish itself from, but the endpoint and 'all' in the name make its role understandable.
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?
'main Media Provider Only' gives implied usage context and an exclusion, but there is no explicit guidance about when to use this over list_library_sections or get_library_sections_by_section_id_all. The routing decision is left to inference from naming conventions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_sections_prefsCRead-onlyIdempotent
Get section prefs.
GET /library/sections/prefs
Args: type: The metadata type agent: The metadata agent in use
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| agent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, and the description only adds the HTTP method and endpoint. It provides no additional behavioral context such as whether the response covers defaults, all sections, or only those matching the given type/agent.
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 front-loaded: a purpose sentence, the endpoint, and a parameter list. There is no filler or redundant exposition.
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 optional-param GET with an output schema and safe annotations, the basics are present. However, the lack of scoping, no mention of alternatives, and vague parameter semantics leave an agent uncertain how this differs from the many sibling prefs 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?
Schema description coverage is 0%, so the Args section is the only parameter help. It gives a one-line gloss for each parameter ('The metadata type', 'The metadata agent in use'), which is more than the schema provides, but the glosses are vague and lack examples or value 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 states a clear verb and resource ('Get section prefs') and includes the exact endpoint. However, it does not distinguish this from sibling prefs-related tools like get_library_sections_by_section_id_prefs or list_prefs_get, so it misses the top differentiation point.
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?
There is no guidance on when to use this tool versus the many sibling prefs tools. It does not clarify when type/agent should be provided or when this endpoint is preferred over section-specific prefs endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_sections_watchlist_allBRead-onlyIdempotent
Get Watchlist.
GET /library/sections/watchlist/all
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds only the HTTP GET path, which is not a behavioral disclosure. It omits any additional context such as pagination, response size, or authorization requirements.
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—two lines—and wastes no words. It front-loads the purpose ('Get Watchlist') and includes the endpoint path. It is concise, though slightly under-specified in terms of enriching context.
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, strong safety annotations, and the presence of an output schema, the description is largely sufficient. The purpose is clear, and there is no missing parameter or behavioral information that would prevent correct invocation. It only lacks explicit notes about what the returned watchlist contains.
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, so there is nothing for the description to explain. The input schema is empty and fully covers the absence of parameters, making the description's lack of parameter detail non-penalizing.
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 Watchlist' and provides the exact endpoint 'GET /library/sections/watchlist/all', which identifies the operation and resource. It is not merely a tautology, though it lacks explicit differentiation from sibling watchlist-related tools like create_actions_add_to_watchlist.
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 given on when to use this tool versus alternatives. It does not mention that mutations should be done via create_actions_add_to_watchlist or create_actions_remove_from_watchlist, nor does it specify any preconditions or intended scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_library_tagsBRead-onlyIdempotent
Get all library tags of a type.
GET /library/tags
| 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?
Annotations already establish the read-only, idempotent, non-destructive safety profile, so the description only needs to add context. It adds the endpoint and the 'all' scope, but leaves the meaning of 'type' unstated and does not mention authentication or response characteristics. No contradiction with annotations.
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 and front-loaded, with the HTTP path adding useful precision. The vague 'of a type' is the only wording that could be clarified, but there is no redundant or wasteful 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, read-only call with an output schema, the description is nearly sufficient. The unexplained 'type' and the absence of any note on typical use or edge cases leave a small but real 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?
The input schema has zero parameters and full coverage, so there is little to document. However, the phrase 'of a type' implies a dimension that the schema does not expose, which is mildly confusing for an agent deciding whether arguments are 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?
Describes a specific GET operation ('Get all library tags') with a clear resource and the HTTP endpoint. The qualifier 'of a type' is vague and is not tied to any parameter, which keeps it from being fully precise.
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 given about when to use this tool or when to prefer related tools such as get_library_sections_by_section_id_tags or list_library_sections. Selection is left entirely to inference from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_livetv_dvrsBRead-onlyIdempotent
Get DVRs.
GET /livetv/dvrs
Args: uuid: Filter by DVR UUID. lineup: Filter by lineup.
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | ||
| lineup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description is not required to restate those. It adds the GET endpoint as a small behavioral signal, but there is no extra context about pagination, required auth, or what the returned list represents.
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 compact and front-loaded: it states the operation and endpoint before the parameter list. There is no filler, and each section 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 read-only list with two optional filters and an output schema, the description is nearly sufficient. It doesn't explain the resource concept or when to choose this over the many sibling list/get endpoints, which leaves a meaningful gap for an agent choosing among alternatives.
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 descriptions are absent, so the description compensates with one-line meanings for uuid and lineup. The meanings are minimal, with lineup merely restating the parameter name and not clarifying acceptable values or formats.
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 says 'Get DVRs' and includes GET /livetv/dvrs, which names the exact resource and HTTP verb. It doesn't explicitly contrast with related siblings like get_livetv_dvrs_by_dvr_id or list_livetv_sessions, so it isn't maximally 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 when-to-use or when-not-to-use guidance is given. An agent has to infer from the name and endpoint that this lists DVR resources, and there is no mention that get_livetv_dvrs_by_dvr_id retrieves a single DVR or that list_livetv_recordings/sessions are different resources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_livetv_epg_channelmapCRead-onlyIdempotent
Compute the best channel map.
GET /livetv/epg/channelmap
Args: device: The URI describing the device lineup: The URI describing the lineup
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | ||
| lineup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds only that this is a GET endpoint and that a computation ('best') occurs — no context about how inputs are consumed, what happens when they are omitted, or whether results depend on server state. No contradiction with annotations.
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 three compact parts: a one-sentence summary, the endpoint, and a short args list. Zero filler, the key statement is front-loaded, and the structure mirrors common doc conventions. It is efficient, though the brevity comes at the cost of substantive 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 read-only, two-parameter tool with an output schema and safety-carrying annotations, most bases are covered: purpose, endpoint, and both parameters are documented. The clear gaps are the meaning of 'best channel map' and how this tool relates to the adjacent EPG lineup tools (list_livetv_epg_lineup, list_livetv_epg_lineupchannels), which an agent needs to reliably choose the correct 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% (parameters are generically typed string/null with defaults), so the description bears the full burden and it compensates minimally: it defines device and lineup as URIs with distinct roles. However, it does not say how these URIs are obtained, what URI formats are valid, whether both must be supplied together, or what 'best' means relative to them, leaving the agent to guess at the semantics.
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 ('Compute') and names a resource ('channel map'), so it is not a tautology. However, 'best channel map' is ambiguous — it never defines what makes a map 'best' — and the description does not distinguish this tool from closely related siblings such as list_livetv_epg_lineup, list_livetv_epg_lineupchannels, or update_media_grabbers_devices_by_device_id_channelmap.
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?
There is no statement of when to use this tool versus its sibling EPG tools, no exclusions, and no named alternatives. The only usage signal is the parameter names (device, lineup), which imply the tool consumes those two inputs, but the agent is given no decision rule for choosing this over list_livetv_epg_lineup or list_livetv_epg_lineupchannels.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_livetv_epg_channelsCRead-onlyIdempotent
Get channels for a lineup.
GET /livetv/epg/channels
Args: lineup: The URI describing the lineup
| Name | Required | Description | Default |
|---|---|---|---|
| lineup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and idempotent, so the baseline safety is established. However, the description adds no behavioral context (e.g., what happens if lineup is null, whether results are paginated), only restates the 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 compact and front-loaded, with the core statement on the first line. The endpoint line and parameter clarification are useful, but more content could be packed in without verbosity.
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 and safety annotations, the description does not need to cover return shape or read behavior. Still it is incomplete in that it offers no how-to for obtaining the lineup URI and doesn't distinguish itself from its sibling tools, which is essential for correct selection.
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 that lineup is a 'URI describing the lineup,' giving some meaning beyond a bare string. It is still vague and doesn't explain the URI's structure or where to get it, but it does provide a basic semantic hint.
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?
States a specific verb and resource ('Get channels for a lineup'), so an agent knows what it does. However, it doesn't distinguish itself from the sibling list_livetv_epg_lineupchannels or list_livetv_epg_channelmap, so differentiation is missing.
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 context or guidance is given. It doesn't explain when to use this tool over list_livetv_epg_lineupchannels or mention prerequisite steps like obtaining a lineup URI, so an agent is left guessing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_livetv_epg_countriesBRead-onlyIdempotent
Get all countries.
GET /livetv/epg/countries
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the HTTP endpoint, which is mildly useful but does not disclose behavior like return volume, ordering, or whether the list is localized. No contradiction with annotations.
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 lines with zero waste: the purpose sentence is front-loaded before the endpoint reference. It is appropriately terse for a zero-parameter read-only tool, though it verges on under-specification rather than model conciseness.
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 trivial zero-parameter list call with an output schema and safety annotations, the description is largely adequate. However, it lacks any context about what the countries represent (EPG guide countries), when an agent should call it, and how it relates to the many sibling EPG tools, which limits selection confidence.
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, so the baseline is 4 per the rubric. The schema is an empty object and nothing needs to be explained; the description correctly implies no inputs are 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 states a specific verb and resource — "Get all countries" — and reinforces it with the exact endpoint. It is clear and unambiguous about what the tool does, though it does not differentiate from sibling EPG tools like list_livetv_epg_languages beyond the resource name.
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_livetv_epg_languages, get_livetv_epg_countries_by_country_by_epg_id_regions, or list_livetv_epg_guide. The description gives no context about the EPG workflow or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_livetv_epg_guideBRead-onlyIdempotent
Get EPG Guide.
GET /livetv/epg/guide
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the GET semantics are safe and non-mutating. The description adds no additional behavioral context beyond the endpoint, but this is partially acceptable for a zero-parameter read-only 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 very short and front-loaded with the core action. The endpoint line is somewhat redundant given the name and description, but there is no unnecessary prose.
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 no parameters and an output schema present, the description burden is reduced. However, it does not clarify what 'EPG Guide' means in practice, what scope it covers, or how it differs from related EPG endpoints, leaving some ambiguity for an agent choosing among siblings.
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%, so there are no parameter details needing compensation. The description does not need to explain parameters because 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 states a specific verb and resource ('Get EPG Guide') with the endpoint path, making it clear the tool fetches the EPG guide. However, it does not explain what the guide contains or differentiate it from sibling tools like get_livetv_dvrs_by_dvr_id_guide or list_livetv_epg_search.
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?
There is no guidance on when to use this tool over alternatives. The sibling list includes several EPG-related tools (lineup, channels, countries, languages, search), but the description doesn't mention any of them or provide selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_livetv_epg_languagesBRead-onlyIdempotent
Get all languages.
GET /livetv/epg/languages
| 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?
Annotations already cover the safety profile: readOnlyHint, idempotentHint, openWorldHint, and destructiveHint are all present and mutually consistent. The description adds only the scope word 'all' and the HTTP endpoint, neither of which discloses meaningful behavior beyond what the name and annotations already convey. No information is provided about response contents, ordering, 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?
The description is extremely short and front-loaded: a single clear sentence plus the endpoint reference. It contains no wasted words, though it could include a bit more context without becoming verbose.
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 this is a no-parameter, read-only, idempotent listing operation with a rich output schema and strong annotations, the description is essentially sufficient for an agent to invoke the tool safely. The only missing context—such as explicitly saying 'EPG languages'—is minor and recoverable from the tool name and endpoint.
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 100% schema description coverage, so there is nothing for the description to clarify. The baseline of 4 for no-parameter tools applies here; the description does not need to compensate for any parameter gaps.
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 a specific verb ('Get') and resource ('all languages'), so an agent knows exactly what the tool returns. It differentiates from sibling tools like list_livetv_epg_channels or list_livetv_epg_countries by naming the resource directly. However, it does not explicitly say these are EPG/Live TV languages, leaving that context to the tool name.
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 such as list_livetv_epg_countries or list_livetv_epg_lineup. There is no mention of use cases, prerequisites, or conditions that would route an agent to this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_livetv_epg_lineupCRead-onlyIdempotent
Compute the best lineup.
GET /livetv/epg/lineup
Args: device: The URI describing the device lineup_group: The URI describing the lineupGroup
| Name | Required | Description | Default |
|---|---|---|---|
| device | No | ||
| lineup_group | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint and the notion of 'computing' a lineup, which hints at a non-trivial operation, but it doesn't disclose what 'best' means, whether the result is cached, or what happens when device/lineup_group are null. It adds minimal behavioral context beyond the annotations, so a 3 is appropriate.
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 front-loaded with the core action ('Compute the best lineup') followed by the endpoint and parameter list. Every sentence earns its place, though the parameter descriptions are terse. It is appropriately sized for a simple two-parameter tool, but the 'Args' section could be more informative without bloating the description.
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 tool has an output schema, so return values are covered elsewhere, and annotations cover safety. However, the description does not explain what a lineup is, what 'best' means, or how the two optional parameters interact. Given the large number of livetv siblings, an agent needs more context to select and invoke this tool correctly. The description is too thin for the conceptual complexity of 'computing the best lineup'.
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 for the two parameters. It lists 'device: The URI describing the device' and 'lineup_group: The URI describing the lineupGroup', which adds the fact that they are URIs, but it doesn't explain how they are used, what formats are valid, whether they are optional (schema shows defaults of null), or how they affect the computed lineup. This is minimal compensation for a 0% coverage 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 says 'Compute the best lineup' and includes the endpoint GET /livetv/epg/lineup, which gives a specific verb and resource. However, it doesn't explain what a 'lineup' is in this context or how it differs from closely related siblings like list_livetv_epg_lineupchannels, list_livetv_epg_channelmap, or get_livetv_epg_countries_by_country_by_epg_id_lineups. The name and endpoint make the resource clear, but the purpose is vague about what 'best' means and what the output represents.
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 given about when to use this tool versus alternatives. The description does not mention any related tools, conditions, or exclusions. An agent would have to infer from the name and endpoint that this is for retrieving an EPG lineup, but there is no explicit direction about when this is the right choice among the many livetv-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_livetv_epg_lineupchannelsBRead-onlyIdempotent
Get the channels for multiple lineups.
GET /livetv/epg/lineupchannels
Args: lineup: The URIs describing the lineups
| Name | Required | Description | Default |
|---|---|---|---|
| lineup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations (readOnlyHint=true, idempotentHint=true, openWorldHint=true, destructiveHint=false) already carry the safety profile, and the description is consistent with them, revealing a GET endpoint that matches the read-only, idempotent hints. It adds the concrete API path, which is useful context beyond the annotations. However, it discloses nothing additional about pagination, result format, or the open-world behavior that the openWorldHint flags.
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 compact and every element earns its place: the purpose sentence is front-loaded, the endpoint line provides the concrete HTTP path, and the Args section documents the sole parameter. There is zero filler or 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?
For a simple read-only tool with one optional parameter, an output schema, and strong annotations, the description is nearly sufficient. The main gaps are the absence of sibling differentiation (which decides when the agent should select this tool over the many related EPG listers) and the unresolved lineup URI format. These are material enough to prevent a higher score.
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 does add real semantics: 'lineup: The URIs describing the lineups' tells the agent the parameter values are URIs, which the bare schema (untyped array or null with no descriptions) utterly fails to convey. But it stops short of explaining the array semantics — whether multiple URIs in the array are aggregated, what URI format is expected, or the relationship to the 'multiple lineups' claim in the purpose sentence.
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 a specific verb and resource: 'Get the channels for multiple lineups.' The qualifier 'multiple' meaningfully signals the batch nature of the call, distinguishing it from sibling tools like list_livetv_epg_lineup (which returns lineups) and hinting at scope versus list_livetv_epg_channels. It includes the concrete endpoint path. However, it does not explicitly state how it differs from the closely named list_livetv_epg_channels sibling.
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?
There is no guidance on when to use this tool versus alternatives. The sibling space is dense with overlapping EPG tools (list_livetv_epg_lineup, list_livetv_epg_channels, list_livetv_epg_channelmap, list_livetv_epg_guide, and the country/region lineage tools), and the description offers no conditions, exclusions, or references to any of them. An agent must infer usage purely from the terse purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_livetv_epg_searchCRead-onlyIdempotent
Search EPG.
GET /livetv/epg/search
| 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 adds no behavioral context beyond what annotations already provide (readOnlyHint, idempotentHint). It does not explain how a 'search' works with no query parameters, or what results look like. The gap is notable for a tool whose name implies parameters but whose schema is empty.
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, with two lines: 'Search EPG.' and the endpoint. It is concise but the endpoint is redundant with the tool nameamentthe form is minimal rather than informative. It earns its place by adding the HTTP method and path, though these are largely inferable.
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 existing output schema, the description is barely sufficient. It does not explain what the search returns, how it differs from sibling EPG endpoints, or why no parameters are required. An agent would struggle to know when to invoke this 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?
With zero parameters busy, schema coverage is 100% and the baseline is 4. The description does not need to explain individual parameters, and the empty schema accurately reflects that no parameters are needed. However, the name suggests a query parameter, so a note about the param-less nature would help.
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 a specific verb and resource: 'Search EPG.' It clearly indicates the tool searches the Electronic Program Guide. However, it does not differentiate from sibling tools like list_livetv_epg_guide or list_livetv_epg_channels, relying on the tool name to do that.
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?
There is no guidance on when to use this tool versus alternatives. The description only provides the endpoint, with no mention of search criteria, limitations, or contrasts with other EPG-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_livetv_recordingsBRead-onlyIdempotent
Get DVR Recordings.
GET /livetv/recordings
| 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 adds no behavioral context beyond the annotations: it repeats a read-only GET operation without mentioning scope, pagination, ordering, or any server-side behavior. Annotations already cover readOnly/idempotent/non-destructive, but the description contributes nothing extra.
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 compact and front-loaded, with the purpose followed by the explicit endpoint. It is not bloated, though the first sentence is largely a restatement of the tool name.
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 read-only tool with an output schema, the description is nearly sufficient. However, it leaves ambiguous whether it returns all recordings globally vs. a specific DVR's recordings, which matters given the sibling get_livetv_dvrs_by_dvr_id_recordings.
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 and 100% schema coverage, so there is nothing for the description to explain. The baseline for a zero-parameter tool 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?
Description uses a specific verb ('Get') and resource ('DVR Recordings') and gives the endpoint path. It is clear enough, but it does not differentiate this endpoint from the sibling get_livetv_dvrs_by_dvr_id_recordings, which also returns recordings.
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 about when to choose this tool over alternatives such as get_livetv_dvrs_by_dvr_id_recordings or list_livetv_sessions. The agent must infer usage from the name and endpoint path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_livetv_sessionsCRead-onlyIdempotent
Get all sessions.
GET /livetv/sessions
Args: dvr_id: Filter by DVR ID. channel: Filter by channel ID.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | No | ||
| channel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the endpoint path and filter parameters, but does not disclose any additional behavioral traits such as pagination, limits, ordering, or response size. It adds minimal context beyond annotations.
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 front-loaded with the main action 'Get all sessions'. The extra lines describing the endpoint and parameters are efficient and scannable. 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 it's a simple read-only list operation with two optional filters and an output schema exists, the description is nearly complete for basic calling. It lacks guidance on response structure (though output schema exists), and does not cover edge cases like how filters interact (AND vs OR) or whether results are sorted. Overall, adequate but with minor 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?
Schema description coverage is 0%, but the description lists both parameters with their purpose: 'Filter by DVR ID' and 'Filter by channel ID'. This matches the schema properties. The description adds meaning beyond the raw schema by stating they are filters, so it compensates somewhat, but does not elaborate on value 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 says 'Get all sessions' and provides the endpoint path, which clearly indicates it retrieves LiveTV sessions. It distinguishes from sibling tools like 'get_livetv_sessions_by_session_id' (specific session retrieval) and 'list_livetv_recordings' by focusing on sessions. However, it doesn't explicitly define what constitutes a 'session' or the scope, but it's clear enough.
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 optional filters (dvr_id, channel) but does not state when to use this tool versus alternatives like 'list_livetv_recordings' or 'get_status_sessions'. No guidance on when not to use it or when to prefer a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_media_grabbersARead-onlyIdempotent
Get available grabbers.
GET /media/grabbers
Args: protocol: Only return grabbers providing this protocol.
| Name | Required | Description | Default |
|---|---|---|---|
| protocol | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint and filter behavior but doesn't mention response framing, pagination, or whether all grabbers are returned when protocol is omitted; this is acceptable given annotations and output schema.
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?
Three short blocks with no filler: purpose sentence, endpoint, and parameter doc. Front-loaded and every line 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?
For a simple read-only list with one optional parameter and an output schema, the definition covers the endpoint and the only behavior-affecting input. It is slightly thin on scope (e.g., all grabbers returned by default) and sibling distinction, but nothing critical is missing for invocation.
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, and it does for the only parameter: protocol is explained as a filter ('Only return grabbers providing this protocol'). It doesn't enumerate valid protocol values, but with no enums available this is still meaningful.
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?
States a specific verb ('Get') and resource ('available grabbers') with the REST path. It is clear what the tool returns, though it does not explicitly differentiate from siblings like list_media_grabbers_devices or list_media_providers.
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 gives the optional protocol filter meaning, implying the obvious use case of listing grabbers, but it does not state when to choose this tool over sibling list tools or when not to use it. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_media_grabbers_devicesBRead-onlyIdempotent
Get all devices.
GET /media/grabbers/devices
| 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?
Annotations already cover the safety profile (readOnlyHint, openWorldHint, idempotentHint, destructiveHint), so the description carries little burden. It adds only the HTTP method/path ('GET /media/grabbers/devices'), which is marginal context beyond the annotations. No contradiction exists between description and annotations.
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 compact—one sentence plus an endpoint line—with no filler. The information is front-loaded and every line earns its place, though it borders on under-specification rather than deliberate conciseness.
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 (zero params, output schema present, full annotations), the description is minimally adequate. However, it lacks any definition of the media grabbers device domain, does not differentiate from sibling list tools, and offers no guidance on expected result scope—gaps an agent would need to resolve elsewhere.
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%, so the schema fully documents the input surface. With no parameters to explain, the description adds nothing but nothing is required; the baseline of 4 for zero-parameter tools 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 states a clear verb and resource ('Get all devices') and the endpoint path provides confirmatory scope. However, it does not explain what a 'media grabbers device' is, and the phrasing is generic enough that it does not distinguish this tool from siblings like list_devices or list_media_grabbers without relying on the tool name.
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_devices, list_media_grabbers, or the closely related list_media_grabbers_devices_discover. There is no stated context, no exclusions, and no indication of what makes this particular list the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_media_grabbers_devices_discoverBRead-onlyIdempotent
Tell grabbers to discover devices.
GET /media/grabbers/devices/discover
Args: protocol: Protocol to filter discovery. grabber_identifier: Targeted grabber identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| protocol | No | ||
| grabber_identifier | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description adds only the short behavioral statement "Tell grabbers to discover devices" and the GET endpoint, which aligns with the safe, idempotent annotation profile. It does not add extra context such as whether discovery is asynchronous or what side effects it may trigger, but annotations cover the safety baseline.
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 compact and clearly structured: a one-sentence action statement, the endpoint, then an Args block. It avoids fluff and front-loads the core purpose before parameter details.
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 two optional parameters, an output schema present, and rich annotations, the invocation basics are covered. However, the description omits usage context, alternative tool routing, and any note about what discovery returns or how long it takes, leaving the agent to infer when this tool is appropriate.
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 carry the parameter documentation burden. It does provide one-line meanings for both parameters: "Protocol to filter discovery" and "Targeted grabber identifier." These are helpful but minimal, and the second is close to a restatement of the parameter name.
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 a specific action and resource: "Tell grabbers to discover devices." The endpoint URL reinforces the operation. It distinguishes the discovery action from the sibling list_media_grabbers_devices by using the verb "discover," though it does not explicitly contrast itself with that sibling.
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?
There is no guidance about when to use this tool versus alternatives such as list_media_grabbers_devices, create_media_grabbers_devices, or get_media_grabbers_devices_by_device_id. The description implies usage through the endpoint and arg names, but it never states the intended condition or context for triggering discovery.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_media_providersBRead-onlyIdempotent
Get the list of available media providers.
GET /media/providers
| 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?
Annotations already establish that this is read-only, idempotent, and non-destructive, which lowers the bar. The description adds a mild qualifier by saying 'available' providers, but does not disclose return format, potentially missing providers, or other behavioral constraints. It does not contradict the annotations.
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 front-loaded with the primary purpose, followed by the raw GET endpoint. No fluff, although the endpoint line adds only minor 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 zero-parameter list operation with output schema and safety annotations, the description is minimally adequate. It does not define what a 'media provider' is or differentiate this from siblings, so an agent could still pick a related tool without clear semantic 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 tool has zero parameters, so there is nothing for the description to explain semantically. This matches the baseline of 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 states a specific action and resource: 'Get the list of available media providers.' It is clear and actionable, though it does not explicitly distinguish itself from sibling tools like list_media_subscriptions or list_media_grabbers.
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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The description merely restates the operation without helping an agent decide between this and similarly named media list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_media_subscriptionsBRead-onlyIdempotent
Get all subscriptions.
GET /media/subscriptions
Args: include_grabs: Indicates whether the active grabs should be included as well include_storage: Compute the storage of recorded items desired by this subscription
| Name | Required | Description | Default |
|---|---|---|---|
| include_grabs | No | ||
| include_storage | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover the safety profile with readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description is not required to restate those. It adds the HTTP method and terse parameter semantics, but little else; no behavioral conflicts with the annotations exist.
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 front-loaded with the operation, then the endpoint, then the arguments. There is a minor redundancy between 'Get all subscriptions' and the endpoint line, but the text is otherwise efficient and free of 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?
For a two-optional-parameter list operation with an output schema and comprehensive read-only annotations, the description is mostly complete: it names the operation, the endpoint, and each parameter's intent. It lacks sibling routing guidance, but that is a usage-guidelines concern, and the output schema handles return expectations.
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 carries the burden for parameter meaning. It explains include_grabs as 'whether active grabs should be included' and include_storage as 'compute storage of recorded items', which adds real semantics. The schema types string/null slightly clash with the boolean nature implied by 'whether', but the intent is still clear.
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 'Get all subscriptions' with the endpoint GET /media/subscriptions, providing a clear verb and resource. It does not explicitly contrast with the many sibling subscription tools, but 'all subscriptions' is reasonably distinct from list_media_subscriptions_scheduled and list_media_subscriptions_template.
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_media_subscriptions_scheduled, list_media_subscriptions_template, or get_media_subscriptions_by_subscription_id. An agent must infer the appropriate tool solely from the name and the word 'all'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_media_subscriptions_scheduledBRead-onlyIdempotent
Get all scheduled recordings.
GET /media/subscriptions/scheduled
| 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?
Annotations already cover read-only, idempotent, open-world, non-destructive behavior. The description adds only the GET endpoint and the 'all' scope; it does not disclose pagination, authentication, or what counts as 'scheduled,' so it offers little behavioral context beyond the annotations.
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 two compact lines: a front-loaded action sentence and the REST path. Every part earns its place, with no redundant explanation.
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 read-only listing with a rich annotation set and an output schema, the description is largely sufficient to select and invoke the tool. It is slightly thin on explaining how 'scheduled recordings' relates to the subscription model, but that 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 zero parameters, so the empty schema is already complete and the description has no parameter meanings to clarify. The baseline of 4 applies because there is nothing to compensate for.
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 a clear action and resource: 'Get all scheduled recordings.' The word 'scheduled' distinguishes this from the many media-subscription list tools, though it does not explicitly name siblings such as list_media_subscriptions.
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 list_media_subscriptions, list_media_subscriptions_template, or get_media_subscriptions_by_subscription_id. It only defines what the endpoint does, leaving the agent to infer selection criteria from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_media_subscriptions_templateBRead-onlyIdempotent
Get the subscription template.
GET /media/subscriptions/template
Args: guid: The guid of the item for which to get the template type: Subscription type. target_library_section_id: Target library section ID.
| Name | Required | Description | Default |
|---|---|---|---|
| guid | No | ||
| type | No | ||
| target_library_section_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method (GET) and parameter scoping, but does not disclose any additional behavioral traits such as response shape, error conditions, or rate limits. No contradictions with annotations.
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 highly concise, containing the endpoint and an 'Args' list with one-line definitions. No filler or repetition — every sentence 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?
The output schema exists (so return values are documented) and annotations cover read-only/idempotent behavior. The description is adequate for a trivial GET endpoint, but it omits any context about what a 'template' is or when to use this endpoint versus sibling subscription endpoints, which is a meaningful gap in a large API surface.
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 for missing parameter documentation. It provides a one-line explanation for each of the three parameters (guid, type, target_library_section_id), which gives an agent enough meaning to construct arguments, even though some explanations are terse ('Subscription type.').
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 'Get the subscription template' — a specific verb and resource. It is clear enough but does not explicitly differentiate from sibling subscription tools like list_media_subscriptions or get_media_subscriptions_by_subscription_id, so it misses the distinction criterion for a 5.
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?
There is no guidance on when to use this tool versus alternatives. The description simply presents the endpoint and arguments without mentioning scenarios, prerequisites, or exclusions. An agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_music_transcodeCRead-onlyIdempotent
Transcode Music.
GET /music/:/transcode
| 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?
Annotations already supply readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. However, the description's imperative phrasing "Transcode Music" suggests a mutating action and adds only the endpoint method, which does not clarify that this is a read-only listing of music transcode resources.
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 with no padding, but the first line duplicates the tool name and the endpoint line mostly restates the resource path. It is not verbose, yet it under-delivers on substance.
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?
Even with zero parameters and an output schema, the description does not clarify what the 'transcode' resource represents semantically, whether this is a listing or an action, or how it relates to list_photo_transcode and other transcode endpoints. The agent is left guessing.
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 100% schema coverage, so the baseline of 4 applies. The description adds no parameter info, but none 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?
"Transcode Music" is essentially a restatement of the tool name and does not explain what the operation returns or accomplishes. The GET endpoint line confirms the resource but does not distinguish this from siblings such as list_photo_transcode.
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 given for when to use this tool versus the many transcode-related siblings like list_photo_transcode or get_by_transcode_type_transcode_universal_decision. Usage is only implied by the tool name, with no exclusions or alternatives mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_myplex_accountARead-onlyIdempotent
Get MyPlex Account.
GET /myplex/account
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, fully covering the safety profile. The description adds only the GET endpoint, which is consistent but not deeply behavioral. No contradiction with annotations.
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 short lines total, with the purpose sentence front-loaded and the endpoint line adding minor context. Zero fluff; every word earns its place for a tool this simple.
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 read-only fetch with comprehensive annotations and an output schema present, the description is sufficient. The return structure is presumably documented by the output schema, and the safety profile is carried by annotations, so nothing critical is missing.
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 with 0 parameters, so there is nothing for the description to document; the baseline of 4 applies. The description does not add who the returned account belongs to, but with no parameters this is a minor 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 states a specific verb and resource, 'Get MyPlex Account', and the endpoint line 'GET /myplex/account' reinforces it. The resource name helps separate it from generic siblings, but it does not explicitly distinguish it from list_accounts, list_users_account, or list_users_account_json, so it stops short of full differentiation.
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 exists about when to use this tool versus its account-related siblings. Given roughly 300 sibling tools and multiple overlapping account/getter endpoints (list_accounts, list_users_account, list_users_account_json), an agent receives no help selecting among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_photo_transcodeARead-onlyIdempotent
Transcode an image.
GET /photo/:/transcode
Args:
url: The source URL for the image to transcode. Note, if this URL requires a token such as `X-Plex-Token`, it should be given as a query parameter to this url.
format: The output format for the image; defaults to jpg
width: The desired width of the output image
height: The desired height of the output image
quality: The desired quality of the output. -1 means the highest quality. Defaults to -1
background: The background color to apply before painting the image. Only really applicable if image has transparency. Defaults to none
upscale: Indicates if image should be upscaled to the desired width/height. Defaults to false
min_size: Indicates if image should be scaled to fit the smaller dimension. By default (false) the image is scaled to fit within the width/height specified but if this parameter is true, it will allow overflowing one dimension to fit the other. Essentially it is making the width/height minimum sizes of the image or sizing the image to fill the entire width/height even if it overflows one dimension.
rotate: Obey the rotation values specified in EXIF data. Defaults to true.
blur: Apply a blur to the image, Defaults to 0 (none)
saturation: Scale the image saturation by the specified percentage. Defaults to 100
opacity: Render the image at the specified opacity percentage. Defaults to 100
chroma_subsampling: Use the specified chroma subsambling.
0: 411
1: 420
2: 422
3: 444 Defaults to 3 (444) blend_color: The color to blend with the image. Defaults to none
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | ||
| blur | No | ||
| width | No | ||
| format | No | ||
| height | No | ||
| rotate | No | ||
| opacity | No | ||
| quality | No | ||
| upscale | No | ||
| min_size | No | ||
| background | No | ||
| saturation | No | ||
| blend_color | No | ||
| chroma_subsampling | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior; the description adds meaningful details beyond that: the GET method, the X-Plex-Token query parameter requirement for source URLs, all defaults, and nuanced behaviors such as min_size overflow, upscaling, EXIF rotation, and chroma subsampling values. This is rich, accurate behavioral context with no contradiction.
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 first sentence front-loads the core purpose, and the Args list is organized. The length is justified by 14 undocumented parameters, though a few entries are wordy (especially min_size) and there is a typo in 'subsambling'; it earns a high but not perfect conciseness score.
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 endpoint, source URL authentication, all parameters, and defaults, while an output schema exists so return-value documentation is not required. For a 14-parameter tool with no schema descriptions, nothing needed for correct invocation is missing.
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 descriptions are at 0% coverage, and the description fully compensates by explaining every one of the 14 parameters, including defaults, valid values, and special notes (e.g., quality -1 meaning highest quality, min_size semantics, chroma_subsampling mapping). It adds far more than the bare input schema provides.
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 begins with 'Transcode an image' – a specific verb and resource – and reinforces it with the endpoint 'GET /photo/:/transcode' and a full set of image transform parameters. It is clearly distinguishable from siblings such as list_music_transcode by naming the photo resource explicitly.
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 the use case (an image that needs transcoding) but never states when to prefer this tool over alternatives, nor does it mention siblings such as list_music_transcode or other transcode endpoints. There is no explicit when/when-not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_pingARead-onlyIdempotent
Ping the server.
GET /ping
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds the exact HTTP method and path ('GET /ping') but does not describe response semantics or failure behavior; acceptable given annotations, but not rich.
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 two short lines with no filler: the semantic purpose is front-loaded and the exact endpoint is provided. Every word earns its place, and nothing could be trimmed without losing useful route 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?
With zero parameters, a full output schema, and safety annotations provided, a longer narrative is unnecessary. The only critical invocation detail, the exact endpoint 'GET /ping', is present, making the description complete for this trivial health-check 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 is empty and schema description coverage is 100%, so there are no parameters requiring documentation. A baseline of 4 is appropriate for a zero-parameter tool.
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 a specific action ('Ping') and target ('the server'), and gives the exact endpoint 'GET /ping'. This clearly identifies the tool as a server liveness health check and distinguishes it from the many list_* 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?
There is no explicit when-to-use guidance, exclusions, or mention of alternatives. The intended use case of checking server connectivity is only implied by 'Ping the server', so the agent must infer when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_player_resourcesBRead-onlyIdempotent
Get Client Resources.
GET /player/resources
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds no behavioral context beyond repeating the GET/read nature, such as authentication needs, response format implications, or rate limits.
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 two short lines: a human-readable summary and the exact endpoint. Both earn their place, and there is no filler or redundancy beyond acceptable restatement.
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, read-only operation with an output schema and strong annotations, this is nearly complete. The main gap is the lack of differentiation from similarly named resource-listing siblings, but the endpoint path helps disambiguate.
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 100% schema description coverage, so the schema leaves nothing undocumented. With no parameters to explain, a baseline of 4 is appropriate; the description does not need to add parameter meaning.
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 a specific verb and resource: 'Get Client Resources' with the explicit endpoint 'GET /player/resources'. It is clear what operation is performed, though it does not differentiate itself from sibling tools like list_resources or list_resources_2.
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 given about when to choose this tool over alternatives such as list_resources, list_security_resources, or list_statistics_resources. The description provides the endpoint but no usage context, exclusions, or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_player_timeline_pollCRead-onlyIdempotent
Player Poll Timeline.
GET /player/timeline/poll
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the HTTP method and path, which are structural details, not behavioral disclosure. It doesn't mention polling semantics, response shape, or any side effects, so beyond annotations it adds 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?
The definition is very short and contains no wordiness, but the shortness itself is a double-edged sword. While concise, it lacks the structured presentation that would help an agent quickly understand the tool's purpose. The two lines are front-loaded with the name-like phrase and endpoint, but the content is insufficient to be considered well-structured.
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?
Even though output schema exists and annotations are rich, the description fails to explain what the tool actually does or why an agent would call it. With 0 parameters, the main contextual burden is to describe the purpose and expected behavior, which is missing. The description is not complete enough for an agent to confidently select this tool over similar timeline/player-related endpoints.
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 den 100% schema coverage is trivially satisfied. With no parameters to document, the description has no obligation to explain parameter semanticshe. Baseline of 4 applies for a 0-parameter tool, and the description is not deficient here.
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 'Player Poll Timeline' is essentially a rephrasing of the tool name 'list_player_timeline_poll' and does not state what the tool does with a specific verb and resource. The HTTP path '/player/timeline/poll' adds some context but still doesn't explain what the poll represents or what the response contains. It's barely more than a title, so it falls into the tautology/restate-name category.
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?
There is no guidance on when to use this tool versus alternatives. The description does not mention any exclusion conditions, prerequisites, or scenarios where another sibling tool would be more appropriate. Among the large sibling set with many similar list_* and get_* tools, an agent has nothing to differentiate this tool by.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_playlistsCRead-onlyIdempotent
List playlists.
GET /playlists
Args: playlist_type: Limit to a type of playlist type: Filter by playlist type. Use 42 for optimized/conversion items.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| playlist_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds only the endpoint and parameter hints, with no behavioral context such as pagination, result size, or authentication requirements. It does not contradict annotations, but it also adds no meaningful behavioral transparency beyond them.
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 front-loaded with the main purpose and endpoint, followed by compact parameter notes. There is no filler or redundant restating of the schema, though the parameter descriptions could be more precise.
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?
Although the tool has output schema and annotations that cover its read-only/idempotent safety profile, the description fails to clarify the ambiguous relationship between 'playlist_type' and 'type', and gives no usage context or exclusion guidance. For a list tool with two optional filters, this is an incomplete picture for correct invocation.
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 carry the full burden for parameters. 'playlist_type: Limit to a type of playlist' is vague, and 'type: Filter by playlist type' is nearly identical, creating confusion about which to use. The only concrete detail is 'Use 42 for optimized/conversion items', which is insufficient to make the parameters actionable.
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 states a clear verb and resource ('List playlists') with the endpoint 'GET /playlists'. It is easily distinguishable from sibling tools like get_playlists_by_playlist_id (single playlist) and create_playlists/update_playlists/delete_playlists (mutations).
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 given about when to use this tool versus alternatives. The description does not mention that this lists all playlists while get_playlists_by_playlist_id retrieves a specific one, nor does it explain when the two filter parameters should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_play_queues_1BRead-onlyIdempotent
Get Conversion Queue.
GET /playQueues/1
| 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?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description's 'GET' is consistent with those. The description adds the exact endpoint but no extra behavioral context such as auth scope, response shape, or any special restrictions; with annotations present, this is acceptable but not enriching.
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 minimal and front-loaded: one action phrase followed by the exact endpoint. There is no filler, and every line contributes to knowing how to call the tool.
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 GET with output schema and safety annotations, the description is nearly operationally complete. The main remaining gap is semantic ambiguity around 'Conversion Queue' and its relationship to sibling play-queue tools, which prevents a 5.
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 there is no parameter documentation burden. The fixed path '/playQueues/1' disambiguates the implicit identifier, making this a clean baseline-4 case.
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 an action ('Get') and a resource ('Conversion Queue'), and the endpoint line 'GET /playQueues/1' makes the target concrete. However, the resource label does not match the tool's play_queues name and no distinction is made from sibling `get_play_queues_by_play_queue_id`, leaving real ambiguity about what exactly this returns.
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 given about when to choose this tool over alternatives. The sibling list contains several play-queue operations, but the description never explains that this is the hard-coded single-id variant or when it should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_prefsARead-onlyIdempotent
Get all preferences.
GET /:/prefs
| 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 annotations already declare readOnlyHint: true, idempotentHint: true, and destructiveHint: false, so the description carries little behavioral burden here. It adds only the 'Get all' scope and the HTTP method, which is consistent with annotations but does not say the kind of preferences or any response behavior like pagination or formatting. No contradiction with any annotation is present.
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 two short lines with no filler. The intent is front-loaded, and the endpoint line adds minimal but useful context; there is no wasted text, which is appropriate for a parameterless read-only endpoint.
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 read-only endpoint with a rich output schema present, the description covers the important basics. The main weakness is ambiguity about whether 'preferences' refers to server-wide preferences or another scope, but the top-level end of 'GET /:/prefs' plus 'all' conveys the broad scope reasonably well.
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, so the description has no parameters to clarify; the no-parameter baseline of 4 applies. 'Get all preferences' and the endpoint pattern match this expected zero-parameter call.
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 'Get all preferences' supplies a clear verb and resource, and the GET /:/prefs endpoint confirms the read scope. It lacks an explicit differentiator within the large sibling set, since many other tools also deal with preferences (e.g., list_library_sections_prefs, get_library_sections_by_section_id_prefs, and a similarly-named list_prefs_get). Still, it communicates what the tool does accurately and distinctly enough for simple cases.
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?
There is no guidance on when to call this tool compared with the numerous other prefs-related siblings, nor any exclusion or fallback recommendation. The only implicit context is the root-level endpoint, which the agent must infer from the path alone. As a result, an agent could easily pick a different prefs tool for the same request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_prefs_getCRead-onlyIdempotent
Get a preferences.
GET /:/prefs/get
Args: id: The preference to fetch
| Name | Required | Description | Default |
|---|---|---|---|
| id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read. The description adds only the endpoint and confirms the get semantics, but it doesn't disclose default-null behavior, error cases, or response format. It neither contradicts nor substantially extends the annotation coverage.
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 compact and front-loaded with the action, with the endpoint and args cleanly separated. The grammar error is a minor blemish, but every line serves a purpose 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?
This is a simple tool with safety annotations and an output schema, but the missing explanation of the optional/nullable id is material: an agent could call it without an id and get unexpected behavior. It also doesn't hint that list_prefs is the list-all counterpart, leaving real ambiguity in how to invoke it correctly.
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 carries the full burden, but it only restates the parameter as 'id: The preference to fetch,' which is nearly tautological. It doesn't explain value format, domain, or the meaning of the null default, so it adds minimal 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 identifies a GET operation for a specific preference using the id argument, and the endpoint line adds precision. However, it doesn't explicitly differentiate this from the sibling list_prefs tool, and the phrasing 'a preferences' is grammatically awkward.
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?
There is no guidance on when to use this tool versus alternatives. It doesn't mention list_prefs (the list-all sibling) or update_prefs, nor does it explain whether omitting the optional id is valid or what it returns. The null default is left entirely unexplained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_progressCRead-onlyIdempotent
Get Progress.
GET /:/progress
Args: key: The metadata key of the item time: The current playback position in milliseconds
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| time | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint flags, so the description is not responsible for restating those. However, it adds no behavioral context beyond the HTTP method/path, and it does not clarify whether the time argument is a filter, an update value, or an output field.
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 compact and front-loaded with the action, then the endpoint, then parameter definitions. It contains no filler, though the first sentence is nearly tautological and the overall terseness leaves out contextual detail that would make it clearer.
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 annotations covering the read-only/idempotent profile and an output schema indicated, the description does not need to explain return values. However, it is still ambiguous about the relationship between key, time, and the meaning of 'progress', which makes the tool minimally usable but not clearly complete for correct invocation.
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, so the description must compensate, and it does define both parameters: 'key' as the metadata key of the item and 'time' as the current playback position in milliseconds. This adds useful units and meaning beyond the bare schema titles, though it could be slightly more explicit about optionality and null behavior.
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 a clear action, 'Get', and names the resource, 'Progress', plus the endpoint `GET /:/progress`. However, it never specifies what kind of progress is being retrieved (playback progress, task progress, etc.) or which item/context it applies to, so the purpose remains vague.
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?
There is no guidance on when to use this tool versus alternatives, and no mention of exclusions or prerequisites. The Args section implies it involves a metadata key and playback time, but it does not explain when this should be called instead of related status, history, or transcode tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_resourcesCRead-onlyIdempotent
Get Legacy Resources.
GET /api/resources
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds only the HTTP endpoint; it does not describe pagination, response format, or other behavioral traits. This is baseline acceptable but adds minimal beyond annotations.
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 with no filler, and every word earns its place. It is appropriately sized for a no-parameter tool, though the term 'Legacy' remains unexplained.
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 no parameters and output schema present, the description does not clarify what 'Legacy Resources' refers to or why an agent would use this over closely related siblings like list_resources_2. The context gap is significant given the large sibling list.
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, so the schema coverage is trivially 100%. The description adds no parameter information, but none is needed, satisfying 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 states a verb and a resource ('Get Legacy Resources') and gives the endpoint, which is more than a tautology. However, 'Legacy Resources' is undefined and ambiguous, and with a sibling named list_resources_2, the term 'Legacy' does not clearly differentiate the two.
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 list_resources_2, list_player_resources, or any criteria for choosing this endpoint over others, leaving the agent to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_resources_2BRead-onlyIdempotent
Get Server Resources.
GET /resources
Args:
include_https: Include Https entries in the results
include_relay: Include Relay addresses in the results
E.g: https://10-0-0-25.bbf8e10c7fa20447cacee74cd9914cde.plex.direct:32400 include_ipv6: Include IPv6 entries in the results
| Name | Required | Description | Default |
|---|---|---|---|
| include_ipv6 | No | ||
| include_https | No | ||
| include_relay | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which covers the safety profile. The description adds the endpoint and an example relay URL, but does not disclose behavior such as pagination, default returns when no flags are set, or whether filtering is inclusive/exclusive.
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 and front-loaded, using a clear 'Args:' list and one example. The example line is slightly misplaced after include_relay but does not significantly clutter the structure.
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 read-only GET endpoint with three optional flags and an existing output schema, the description provides enough information to call it successfully. It does not explain default behavior without flags, but this is a minor gap given the simplicity and available structured 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?
Schema description coverage is 0%, so the description carries the full burden of documenting parameters. It does give a purpose for each flag (include_https, include_relay, include_ipv6), but the schema types are string|null and the description does not specify allowed values or boolean semantics (e.g., 'true'/'false'), leaving ambiguity.
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 a specific action 'Get Server Resources' and maps it to the GET /resources endpoint. While it is unambiguous about what it does, it does not explicitly differentiate itself from the similarly named sibling 'list_resources' or other list-* tools beyond the endpoint.
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 like 'list_resources' or 'list_servers'. It lists optional filter flags but does not explain the intended use case, prerequisites, or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_rootARead-onlyIdempotent
Get PMS info.
GET /
| 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?
Annotations already disclose that this is a safe, read-only, idempotent, non-destructive operation, so the main safety burden is covered. The description adds only the GET method and root path, with no additional behavioral context such as authentication expectations or response shape. There is no contradiction with the annotations.
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 compact and free of filler. 'Get PMS info' states the purpose and 'GET /' specifies the invocation path, with nothing unnecessary present.
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, read-only root endpoint with an output schema present, the description is mostly complete. The main gap is that 'PMS info' does not describe what an agent should expect to find in the response, but the output schema can cover return-value 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?
The tool has zero parameters and the schema fully reflects that, so there are no parameter semantics for the description to clarify. The 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 states an action ('Get') and a resource ('PMS info'), and the 'GET /' line makes the root endpoint explicit. However, 'PMS info' is somewhat vague and does not distinguish it from sibling tools like list_server or list_servers.
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?
There is no guidance about when to use this tool compared to the many list_* siblings, nor any mention of alternatives or exclusions. The agent must infer its role from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_security_resourcesARead-onlyIdempotent
Get Source Connection Information.
GET /security/resources
Args: source: The source identifier with an included prefix. refresh: Force refresh
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | ||
| refresh | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, and the description does not contradict them. It adds only 'Force refresh' and the endpoint, but does not explain cache behavior, output characteristics, or preconditions beyond what annotations already convey.
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 compact and front-loaded with the purpose statement. The endpoint and args list are directly relevant, with no filler, though the terseness contributes to semantic gaps.
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 read-only endpoint with two optional parameters, annotations covering safety, and an output schema present, the description is nearly adequate. The main missing context is sibling differentiation and clearer parameter value semantics, but the endpoint path and basic parameter descriptions provide enough grounding for most calls.
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 carry the parameter explanations. It does describe both parameters ('source identifier with an included prefix', 'refresh: Force refresh'), but both are terse and leave value formats or accepted inputs ambiguous.
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 a specific verb and resource ('Get Source Connection Information') and gives the HTTP endpoint. However, it does not distinguish itself from similarly-named siblings like list_resources or list_resources_2, and the tool name 'list_security_resources' suggests a different domain than source connections.
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 an agent should call this when it needs source connection information, but it provides no explicit when-to-use, when-not-to-use, or alternative tool guidance. Given the large sibling set of list_* tools, the agent is left to infer selection from purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_serverCRead-onlyIdempotent
Get User Server Association.
GET /server
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds no behavioral detail beyond the annotations – it simply states 'Get User Server Association' and the endpoint. It does not disclose anything about response size, pagination, or side effects, and with annotations carrying the entire safety profile, its contribution 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 short: two lines. The first line is a purpose statement, but the second line just echoes the HTTP endpoint without adding much value beyond what the resource already implies. It is concise and front-loaded, but there is minor 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?
For a zero-parameter read-only tool with an output schema, the description is not severely under-specified. Yet it omits any clarification of what 'User Server Association' means, and it fails to differentiate this from closely related sibling endpoints. An agent can probably call it, but will not know what kind of result to expect mentally.
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, so there are no parameter semantics to explain. The description is not required to add parameter details. It receives a baseline 4 because the schema already covers everything (100% 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 does state a specific verb ('Get') and resource ('User Server Association'), so it is not a tautology. However, the resource is vague – it does not clarify what exactly an 'Association' contains, and it does not distinguish this from sibling tools like list_servers or list_server_access_tokens.
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 guidance is provided anywhere. There is no mention of when to use this tool, when not to use it, or how it relates to the many sibling server/list tools, leaving the agent to guess based only on the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_server_access_tokensBRead-onlyIdempotent
Get Server Access Tokens.
GET /server/access_tokens
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, fully covering the safety profile. The description adds no behavioral context beyond the endpoint URL, which is essentially redundant with the name. It doesn't contradict the annotations, so a middle score reflecting the description's minimal added value is appropriate.
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: two sentences, one of which is just the endpoint path. There is no filler or wasted text, though the endpoint line duplicates information already implied by the name.
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 read operation with an output schema and annotations covering the safety profile, the description is largely sufficient. An agent can call it without missing invocation-critical details, though it doesn't explain what the tokens represent or their 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?
The tool has zero parameters, so there is no parameter semantics burden. The baseline of 4 applies since the description has nothing to document regarding arguments.
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 a clear verb-resource pair ('Get Server Access Tokens') that matches the tool name. It distinguishes from the many list_* siblings by naming the specific resource (server access tokens), though it doesn't explicitly contrast with closely related tools like list_auth_keys or list_security_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?
The description provides no guidance on when to use this tool versus alternatives. Among dozens of list_* siblings including list_auth_keys, list_claim_token_json, and list_security_resources, there is no mention of which tool handles which credential type or when each should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_serversCRead-onlyIdempotent
Get Local Servers.
GET /servers
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds no behavioral context (e.g., what 'local' means, response format, or any limits), so it provides no extra 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?
The description is extremely short—just 'Get Local Servers.' plus a URL. It is concise, but it borders on under-specification, lacking any elaboration that would help an agent. It is structured, but too minimal.
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 could still be more complete. It does not clarify what 'local' means, whether any filters exist, or what the return value represents, leaving gaps 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?
The tool has zero parameters, so the schema is complete by default. The description doesn't need to explain parameters, and the baseline of 4 applies as there is nothing missing.
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 a clear verb ('Get') and resource ('Local Servers'), making the purpose obvious. However, it does not differentiate from siblings like 'list_server' or 'get_servers_by_machine_id', so it's not fully distinguishing.
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 context, prerequisites, or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_server_users_featuresBRead-onlyIdempotent
Get Server User Features.
GET /server/users/features
| 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?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds a small amount of useful context by explicitly showing the GET method and route, and it is consistent with the annotations, though it does not disclose additional behavioral nuances.
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 appropriately short and front-loaded, but the first line largely restates the tool name and the second line only repeats the endpoint. It is concise, yet it adds little explanatory substance.
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 zero parameters, rich safety annotations, and an output schema, the tool needs relatively little extra documentation. Still, the meaning of 'Server User Features' is vague and the description does not distinguish it from sibling feature/list tools, making this only minimally 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 input schema has no parameters, so there is nothing for the description to explain or clarify. This matches the baseline 4 for a parameterless tool.
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 identifies a read operation ('Get') on a specific resource ('Server User Features') and provides the exact endpoint. It is not a tautology, but it does not differentiate this tool from closely named siblings such as list_features.
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?
There is no guidance on when to use this tool versus list_features or list_user, and no exclusions or alternatives are mentioned. The endpoint line gives destination information but not selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_services_browseBRead-onlyIdempotent
Browse Filesystem.
GET /services/browse
Args: include_files: Include files in browse results
| Name | Required | Description | Default |
|---|---|---|---|
| include_files | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive safety profile, so the description does not need to restate that. It adds a small behavioral detail by showing that include_files affects whether files appear in browse results, but it does not explain defaults or other behavioral caveats.
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 compact and well-structured: operation first, then the HTTP route, then the argument. There is no filler, and the layout makes the single parameter 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?
For a simple, one-optional-parameter read tool with an output schema and safety annotations, the description is nearly sufficient for an agent to attempt a call. However, it omits the relationship to get_services_browse_by_base64path and does not clarify whether 'browse filesystem' means listing the root or some other default 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?
With 0% schema description coverage, the description must compensate for the parameter, but 'include_files: Include files in browse results' largely restates the schema's property title. It does not explain accepted values, whether a truthy flag is expected, or what happens when the parameter is omitted.
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 a concrete operation ('Browse') on a clear resource ('Filesystem') and provides the HTTP route, so an agent can understand the basic action. However, it does not explicitly distinguish this from the sibling get_services_browse_by_base64path, leaving some scope ambiguity.
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?
There is no guidance about when to use this tool versus alternatives such as get_services_browse_by_base64path. The description does not mention whether this is the root-level browse operation or how the path-specific sibling differs, so the agent must infer the right choice from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_services_ultrablur_colorsARead-onlyIdempotent
Get UltraBlur Colors.
GET /services/ultrablur/colors
Args: url: Url for image which requires color extraction. Can be relative PMS library path or absolute url.
| Name | Required | Description | Default |
|---|---|---|---|
| url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds the HTTP endpoint and the input-format context (relative PMS path or absolute URL), which is useful. It does not disclose behavior when the optional url is omitted (default null) or any error/empty-response traits, but nothing contradicts the annotations.
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?
Three compact lines with no wasted words: purpose is front-loaded, the endpoint is concrete and useful, and the parameter is documented in a single clear sentence. Every element 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?
For a low-complexity tool (one optional parameter, output schema present, safety fully covered by annotations), the description covers purpose, endpoint, and parameter meaning. Minor gaps remain: behavior with the default null url is unspecified, and 'PMS library path' is left as undefined jargon, but these are not blocking for a simple read-only operation.
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 — and it does. It explains that 'url' is the image requiring color extraction and specifies the two accepted formats (relative PMS library path or absolute URL), which goes well beyond the schema's bare string-or-null type. The only remaining gap is the undefined 'PMS' jargon.
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 a specific verb and resource ('Get UltraBlur Colors') and grounds it with the concrete endpoint 'GET /services/ultrablur/colors' plus the arg line explaining the tool extracts colors from an image. It is not a tautology because the parameter explanation adds real semantic content, but it does not explicitly differentiate itself from the sibling list_services_ultrablur_image.
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?
Usage context is implied through the parameter description ('Url for image which requires color extraction'), which suggests this tool is for extracting colors from images. However, there is no explicit when-to-use statement, no mention of alternatives, and no exclusions — the agent must infer when this tool beats list_services_ultrablur_image on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_services_ultrablur_imageARead-onlyIdempotent
Get UltraBlur Image.
GET /services/ultrablur/image
Args: top_left: The base color (hex) for the top left quadrant. top_right: The base color (hex) for the top right quadrant. bottom_right: The base color (hex) for the bottom right quadrant. bottom_left: The base color (hex) for the bottom left quadrant. width: Width in pixels for the image. height: Height in pixels for the image. noise: Whether to add noise to the ouput image. Noise can reduce color banding with the gradients. Image sizes with noise will be larger.
| Name | Required | Description | Default |
|---|---|---|---|
| noise | No | ||
| width | No | ||
| height | No | ||
| top_left | No | ||
| top_right | No | ||
| bottom_left | No | ||
| bottom_right | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool safe and read-only, so the description doesn't need to repeat that. It adds a useful behavioral note that noise affects output size and reduces banding. However, it doesn't disclose what the response format is, any rate limits, or authentication requirements—though an output schema exists.
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 well-structured with a clear endpoint line and a compact argument list. Every sentence is informative, but the 'Args' section is a bit redundant with the schema property names; still, it earns its place by adding explanations.
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 read-only image generator, the description covers the endpoint, all parameters, and one behavioral side-effect. The output schema handles return details, so nothing essential is missing for invoking the tool, though a brief line on intended use would make it fully self-contained.
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%, and the description fully compensates by clearly explaining every parameter: hex colors for quadrants, pixel dimensions, and the noise effect. It gives type hints and practical implications (e.g., larger image with noise), far exceeding what the bare schema provides.
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 a specific verb and resource ('Get UltraBlur Image') and provides the HTTP endpoint, so the agent knows it's a read-only image fetch. However, it does not explain what UltraBlur Image actually is or why one would use it, and it doesn't differentiate from sibling tools like list_services_ultrablur_colors.
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 choose this tool over alternatives. There are no exclusions, prerequisites, or context such as 'use this when you need an image rather than a color list'. The agent is left to infer usage from the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_statistics_bandwidthARead-onlyIdempotent
Get Bandwidth Statistics.
GET /statistics/bandwidth
Args: timespan: Dashboard timespan (1-6) account_id: Filter by account ID device_id: Filter by device ID lan: Filter to LAN-only traffic
| Name | Required | Description | Default |
|---|---|---|---|
| lan | No | ||
| timespan | No | ||
| device_id | No | ||
| account_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds a small behavioral detail: the timespan is a 'dashboard timespan (1-6)', implying a range of periods. It does not disclose return format, aggregation level, or pagination, but given the annotations, the additional context is minor.
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 compact and efficiently structured: a clear title line, the HTTP endpoint, followed by a bulleted argument list. Every sentence contributes, and the most important information (tool purpose and endpoint) is front-loaded. No filler or redundant phrasing.
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 tool has an output schema, so return-value documentation is not the description's job. Still, the description lacks context about what 'bandwidth statistics' means (e.g., aggregated vs. per-device, time series vs. totals) and the mapping of timespan values 1-6 to actual periods. It is minimally sufficient for a straightforward read-only endpoint, but an agent might need more context to interpret results correctly.
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 carries the full burden of explaining parameters. It provides one-line explanations for all four: timespan (dashboard timespan 1-6), account_id (filter), device_id (filter), and lan (LAN-only traffic). This meaningfully exceeds the bare typed schema, though it leaves ambiguity about what the numeric timespan values represent.
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 a specific resource ('Bandwidth Statistics') and the action ('Get'), and the tool name reinforces the list action. It is clearly distinct from the sibling list_statistics_resources because it names 'bandwidth' explicitly. However, it doesn't elaborate on the scope or content of the statistics, so it's clear but not richly differentiated.
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 when to use the tool: to retrieve bandwidth statistics, with optional filters for account, device, or LAN-only traffic. It provides no explicit guidance about when to choose this tool over alternatives like list_statistics_resources, nor does it mention any exclusions. This is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_statistics_resourcesBRead-onlyIdempotent
Get Resource Statistics.
GET /statistics/resources
| 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?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds no behavioral context beyond what the endpoint path implies, such as the nature of the statistics returned or any operation-specific caveats.
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 and front-loaded, with no wasted words. The endpoint line is arguably redundant with the name, but it is still a compact, direct statement.
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 tool has no parameters, a simple read-only contract, and an output schema that defines return values. Yet the description fails to explain what 'Resource Statistics' means or how this differs from closely named siblings, so an agent may struggle to select it appropriately.
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 parameter semantics are trivially complete. With no parameters, the baseline of 4 applies because there is nothing for the description to clarify.
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 'Get Resource Statistics.' clearly identifies the verb and the resource, and the endpoint path confirms the operation. However, it does not distinguish this from siblings like list_resources or list_statistics_bandwidth, and 'Resource Statistics' is not further defined beyond the tool's own name.
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 given about when to use this tool versus any of the many sibling tools. There is no mention of alternatives, exclusions, or context in which this endpoint should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_status_sessionsBRead-onlyIdempotent
List Sessions.
GET /status/sessions
| 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?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds only the HTTP path 'GET /status/sessions', which mostly restates the read-only nature already captured by annotations. It does not disclose what subset of sessions is returned, any limits, or other behavioral 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 terse and front-loaded. 'List Sessions.' immediately communicates the operation, and the endpoint line provides a useful, non-redundant REST reference. No fluff or filler is present.
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, read-only tool with an output schema, the description is mostly adequate. However, the word 'Sessions' is ambiguous among many session-related siblings, and the description does not clarify what type of sessions are included or excluded. This is a meaningful gap for tool selection.
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 an empty schema, so the baseline for this dimension is 4. There is nothing for the description to clarify about parameter meanings.
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 a clear verb and resource: 'List Sessions' backed by the endpoint 'GET /status/sessions'. This makes the core operation understandable. However, it does not differentiate this from sibling tools like list_status_sessions_background, list_status_sessions_history_all, or list_livetv_sessions, and it omits the word 'active' or 'current'.
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?
There is no guidance about when to use this tool versus alternatives such as list_status_sessions_history_all or list_transcode_sessions. The description provides no selection criteria, exclusions, or pointers to related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_status_sessions_backgroundARead-onlyIdempotent
Get background tasks.
GET /status/sessions/background
| 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?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is established. The description adds only the endpoint path and does not disclose extra behavioral traits such as pagination, filtering, or response semantics, but with annotations present a 3 is appropriate.
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?
One short sentence plus the endpoint line, with the core purpose front-loaded. Every piece of text contributes 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?
For a parameterless, read-only, idempotent tool with an output schema, the description plus endpoint is sufficient for an agent to call it correctly. Nothing critical is missing.
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, so there is nothing the description needs to explain about arguments. Baseline 4 applies because there is no parameter semantics burden.
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 states a clear operation and resource: 'Get background tasks', reinforced by the endpoint path GET /status/sessions/background. The name and resource concept separate it from sibling list_status_sessions, but it does not explicitly name or contrast that sibling, so it narrowly misses a 5.
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 given about when to use this tool over alternatives such as list_status_sessions or status-session history tools. The only implied context is the word 'background' in the name and endpoint, which is not enough to route an agent definitively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_status_sessions_history_allARead-onlyIdempotent
List Playback History.
GET /status/sessions/history/all
Args:
account_id: The account id to restrict view history
viewed_at: The time period to restrict history (typically of the form viewedAt>=12456789)
library_section_id: The library section id to restrict view history
metadata_item_id: The metadata item to restrict view history (can provide the id for a show to see all of that show's view history). Note this is translated to metadata_items.id, parents.id, or grandparents.id internally depending on the metadata type.
sort: The field on which to sort. Multiple orderings can be specified separated by , and the direction specified following a : (desc or asc; asc is assumed if not provided). Note metadataItemID may not be used here.
exclude_elements: Comma-separated list of elements to exclude from the response
exclude_fields: Comma-separated list of fields to exclude from the response
include_fields: Whitelist of fields to return
include_elements: Whitelist of elements to include
viewed_at_query: Greater-than filter for viewedAt timestamp
viewed_at_query_2: Less-than filter for viewedAt timestamp
device_id: Filter by device ID
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| device_id | No | ||
| viewed_at | No | ||
| account_id | No | ||
| exclude_fields | No | ||
| include_fields | No | ||
| viewed_at_query | No | ||
| exclude_elements | No | ||
| include_elements | No | ||
| metadata_item_id | No | ||
| viewed_at_query_2 | No | ||
| library_section_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe read-only, non-destructive profile. The description adds useful behavioral details, such as metadata_item_id being translated internally to metadata_items.id/parents.id/grandparents.id and sort restrictions (metadataItemID may not be used), but it does not disclose default scope, pagination, or result limits for an endpoint named 'history_all'.
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 efficiently structured: a one-line purpose, the endpoint, then a clear 'Args' list where each parameter earns its place. There is no fluff or repetition, and the front-loaded purpose makes the intent immediately obvious.
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 12 optional parameters and an output schema present, the parameter docs are complete, but high-level operation context is missing. The description does not clarify the relationship between viewed_at, viewed_at_query, and viewed_at_query_2, nor state whether the endpoint returns all history or paginated results, leaving ambiguity for a large 'history_all' listing.
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 provides zero descriptions for its 12 parameters, and the description compensates fully by explaining each parameter with meaningful detail. It includes format examples (viewed_at as `viewedAt>=12456789`), syntax rules for sort and direction, and a special note about metadata_item_id translation.
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 opens with 'List Playback History,' a clear verb and resource that identifies the operation as a read of history data, distinct from sibling list_status_sessions (active sessions). It does not explicitly name a sibling or clarify the 'all' scope, relying on the tool name for differentiation.
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_status_sessions, get_status_sessions_history_by_history_id, or delete_status_sessions_history_by_history_id. The description is solely a parameter reference with no usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_syncBRead-onlyIdempotent
Get Sync Status.
GET /sync
| 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?
Annotations already disclose the readOnlyHint, openWorldHint, idempotentHint, and destructiveHint profile, so the description is not the sole carrier of behavioral information. It adds the HTTP endpoint 'GET /sync', but little other behavioral context beyond that.
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 and front-loaded, containing only a one-line purpose and the endpoint. Nothing is padded, and for a trivial no-parameter tool, this is an appropriately sized definition.
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 tool is a simple read with 0 parameters, annotations carry the behavioral profile, and an output schema exists so return values need not be described. The description is minimal but sufficient; the only gap is clarifying the exact scope of 'sync status'.
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, so there is nothing for the description to explain beyond the schema. With no parameters, the baseline of 4 is appropriate and no additional semantic burden exists.
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 a verb and resource ('Get Sync Status') plus the endpoint 'GET /sync', so the basic intent is recognizable. However, it is vague about what 'sync status' contains and does not distinguish this from sibling tools such as list_sync_items and list_sync_queue.
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?
There is no guidance on when to call this tool versus alternatives like list_sync_items or list_sync_queue, nor any exclusions or prerequisites. The description simply states the endpoint with no contextual decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_itemsBRead-onlyIdempotent
Get Sync Items.
GET /sync/items
| 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?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds no behavioral context beyond the raw endpoint. It doesn't mention pagination, limits, response characteristics, or any side effects, which is a notable gap even with annotations present.
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 brief: 'Get Sync Items.' plus the endpoint. It is concise and not verbose, but it repeats the endpoint redundantly. The structure is simple and front-loaded, though it could be more informative without sacrificing conciseness.
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 (not shown here), the description should still clarify what 'sync items' refers to and how this endpoint relates to similar list_* or sync_* tools. It lacks any operational context, making it incomplete for correct usage in a broad API surface.
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 description correctly implies no additional input is needed. Since there are no parameters to document, the description fulfills its role without adding unnecessary detail, and the baseline for 0-parameter tools 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 'Get Sync Items' with a specific verb and resource, establishing a clear purpose. However, it does not differentiate from sibling tools like list_sync or get_sync_items_by_sync_id, which could cause confusion without deeper inspection.
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?
There is no guidance on when to use this tool versus the many sync-related siblings (e.g., list_sync, list_sync_queue, list_sync_transcode_queue). No context about intent, filtering, or prerequisites is provided, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_queueCRead-onlyIdempotent
Get Sync Queue.
GET /sync/queue
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. But the description adds zero behavioral context – it doesn't mention that this is a read-only operation, nor does it describe any pagination, filtering, or side effects beyond what the annotations imply. With high annotation coverage, the bar is lower, but the description still provides no additional 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 extremely short – a title plus an HTTP endpoint. While there is no wasted text, it is under-specified. It doesn't offer a meaningful explanation of what the sync queue is or any context that would help an agent. It is concise but not adequately 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?
An output schema exists, so return values are presumably documented there. However, the description lacks any context about the purpose of the sync queue, how it relates to other sync tools (list_sync, list_sync_items), or what makes this endpoint distinct. For a zero-parameter read operation, it may be minimally adequate, but it fails to fully orient 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?
The tool has zero parameters, and schema description coverage is 100% (trivially, no properties). According to the rubric, 0 parameters yields a baseline of 4. There is no need for the description to add parameter semantics 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 states 'Get Sync Queue' – a clear verb ('Get') and resource ('Sync Queue'). However, it doesn't elaborate on what a sync queue is or what the response contains. With siblings like list_sync, list_sync_items, and list_sync_transcode_queue, it lacks differentiation. An agent could reasonably confuse it with list_sync.
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?
There is no guidance on when to use this tool versus alternatives. Nothing indicates the difference between this and list_sync or list_sync_items, nor does it state any context or prerequisites. The agent is left to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_transcode_queueBRead-onlyIdempotent
Get Sync Transcode Queue.
GET /sync/transcodeQueue
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the description doesn't need to repeat safety facts. However, it adds no behavioral context beyond the endpoint path—such as what items the queue contains, whether it reflects in-progress or queued transcodes, or any pagination/ordering. With annotations covering safety, the description still fails to add meaningful behavior 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 a single concise sentence plus the endpoint, with no filler. It is appropriately front-loaded and every token 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?
For a zero-argument read-only operation with an output schema and safety annotations, the description provides enough to invoke the tool successfully. However, it lacks any clarification of what a 'Sync Transcode Queue' is or how it relates to similar tools, leaving a meaningful gap for an agent trying to choose between this and sibling queue/transcode list 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 input schema has zero parameters, so schema coverage is trivially 100% and the description need not explain arguments. The baseline for 0 parameters is 4, and no additional parameter context 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 states a clear verb and resource: 'Get Sync Transcode Queue.' This precisely identifies the operation. It doesn't differentiate from sibling tools like list_sync_queue or list_transcode_sessions, but the name and endpoint make the purpose unmistakable.
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 given on when to use this tool over alternatives. The sibling list includes several related queue and transcode tools, but the description does not explain what distinguishes this one. An agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_system_agentsBRead-onlyIdempotent
Get Metadata Agents.
GET /system/agents
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds only the HTTP endpoint and resource name, not behavioral context such as response shape, pagination, authorization needs, or any side effects. It does not contradict the annotations.
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 brief: one short phrase plus the endpoint line. Every token is relevant, and there is no filler or repetition. It is as concise as a zero-parameter GET operation reasonably can be.
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 zero-parameter GET with rich annotations and an output schema, the description is nearly sufficient. However, the phrase 'Metadata Agents' is inconsistent with the tool name 'list_system_agents' and the path '/system/agents', which could confuse an agent about exactly which resource is returned. This ambiguity weakens an otherwise complete minimal definition.
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%, so there is nothing for the description to document. The description correctly avoids inventing parameter details, and the baseline of 4 for a no-parameter tool 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 states a clear verb and resource ('Get Metadata Agents') and includes the exact endpoint 'GET /system/agents', so an agent knows what operation to invoke. It doesn't explicitly differentiate from the sibling get_system_agents_by_agent_id, though the collection-style path and singular sibling name imply the distinction.
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 given about when to use this tool versus alternatives such as get_system_agents_by_agent_id. The description implies 'use this when you want system agents' but provides no explicit exclusions, context, or routing cues beyond the bare endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_system_settingsBRead-onlyIdempotent
Get System Settings.
GET /system/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?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description's "Get" plus GET /system/settings are consistent with that safety profile. The description adds no behavioral context beyond the annotations (no auth, rate limits, or output characteristics), but because the annotations carry that burden, this is acceptable with no contradiction.
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 short lines with no wasted words; the endpoint line adds useful HTTP-path context. It is appropriately sized for a zero-parameter read tool, though "Get System Settings" adds little beyond the tool name itself.
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 correct invocation, the definition is nearly sufficient: no parameters to pass, an output schema covers return values, and annotations cover safety. The gap is that it never clarifies what 'system settings' contains or how this endpoint differs from list_server, list_system_agents, and list_system_updates, leaving tool-selection ambiguity unresolved.
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, so the description has nothing to explain and the baseline for a zero-param tool applies. Schema coverage is trivially 100% with an empty properties object.
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?
"Get System Settings" states a clear verb (Get) and resource (System Settings), and the included endpoint 'GET /system/settings' confirms the read operation. However, with closely named siblings like list_server, list_servers, list_system_agents, and list_system_updates, the description does nothing to differentiate what uniquely constitutes 'system settings,' leaving some selection ambiguity.
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 given on when to use this tool versus alternatives. It names no sibling, states no exclusions, and provides no conditions for use — a notable gap given the large number of list_* sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_system_updatesARead-onlyIdempotent
Check for System Updates.
GET /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?
The annotations already provide a strong safety profile with readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the HTTP GET endpoint, which reinforces the read-only nature, but it discloses no further behavioral context such as authentication, refresh behavior, or whether this triggers a check against an external update source.
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 minimal and efficient: a clear opening phrase plus the exact endpoint. There is no redundancy or filler, and the most important 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?
For a zero-parameter, read-only operation with an output schema and comprehensive annotations, the description provides enough information to make the call. It leaves some potential ambiguity regarding how this tool relates to list_updater_status, but the output schema and annotations cover most operational concerns.
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 an empty input schema, so there is nothing for the description to clarify. A baseline of 4 is appropriate because no parameter semantics 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 states a clear action and resource: 'Check for System Updates' with 'GET /system/updates'. It is specific enough to know what the tool does, but it does not explicitly distinguish itself from related siblings such as list_updater_status, update_updater_check, or update_updater_apply.
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?
There is no guidance on when to use this tool versus alternatives. Siblings like list_updater_status and update_updater_check exist and could overlap semantically, but the description gives no criteria, exclusions, or recommended context for choosing list_system_updates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_transcode_sessionsARead-onlyIdempotent
Get Transcode Sessions.
GET /transcode/sessions
| 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?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method and path, which is useful but minimal. It does not disclose any additional behavioral details such as whether the result is limited to active transcode sessions, whether pagination applies, or what the response shape represents.
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 purpose sentence followed by the exact HTTP endpoint. There is no filler or redundant content, and the key 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?
For a parameterless GET tool with an output schema and read-only/idempotent annotations, the description is nearly complete. It lacks only contextual detail about what a 'Transcode Session' represents or when such information is useful, but the endpoint plus annotations are enough for a competent agent to invoke it correctly.
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 and 100% schema coverage, so there are no parameter semantics for the description to clarify. Baseline for zero-parameter tools is 4; the description correctly adds nothing about 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 the resource ('Transcode Sessions') and includes the exact endpoint 'GET /transcode/sessions'. It does not explicitly differentiate itself from sibling listing tools like list_status_sessions, but the resource name and endpoint are specific enough for basic identification.
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?
There is no guidance about when to choose this tool over related siblings such as list_status_sessions or list_sync_transcode_queue. No conditions, exclusions, or alternative routes are mentioned. The usage is only implied by the tool name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_updater_statusARead-onlyIdempotent
Querying status of updates.
GET /updater/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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method and path, which is minor extra context, but it does not disclose what 'status' includes or how the result behaves. No contradiction with annotations.
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 one-line purpose statement followed by the exact endpoint. There is no wasted text, and the most important 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?
For a zero-parameter, read-only status endpoint with an output schema and explicit annotations, the description is sufficiently complete. The agent knows the exact HTTP request to make and can rely on the output schema for response 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?
The tool has zero parameters, so there are no parameter semantics to document. The description and schema are consistent, and the endpoint clarifies there is no input to provide. The baseline for zero-parameter tools is appropriate here.
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 a specific verb ('Querying') and resource ('status of updates'), and includes the exact endpoint 'GET /updater/status'. It is clear enough to identify the tool's purpose, though it does not explicitly differentiate itself from siblings like list_system_updates or update_updater_check.
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 given about when to use this tool versus alternatives. The description only states what the tool does and provides the HTTP path; it does not mention when checking updater status is appropriate, nor does it distinguish this from related updater endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_userCRead-onlyIdempotent
Get Token Details.
GET /user
| 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?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the phrase 'Get Token Details' and the endpoint, which does not disclose any behavioral traits beyond what the annotations imply. No authentication requirements, response handling, or caveats are mentioned.
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 front-loaded, which is appropriate for a zero-parameter read operation ограничењима, but it is so sparse that it omits necessary context like the purpose of the token details or the relationship to the tool name. It is concise but under-specified.
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 read operation with no parameters and an output schema, the description might be minimally sufficient. However, the mismatch between the tool name and description, plus the complete lack of usage context, leaves an agent uncertain about when to use it among the large sibling set.
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, so there are no parameters to document. The description does not need to explain parameters, and the schema provides 100% coverage by having none. Baseline 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 states 'Get Token Details' with the endpoint 'GET /user', which is a specific operation, but it conflicts with the tool name 'list_user' which suggests listing users. The many sibling tools (list_users, list_users_2, list_users_account) are not differentiated from this one, leaving ambiguity about what exactly this tool does.
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. The description does not mention any conditions, exclusions, or related tools like list_users or list_users_account, so an agent cannot determine the appropriate selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_usersBRead-onlyIdempotent
Get Legacy Users.
GET /api/users/
| 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?
Annotations already establish that this is a read-only, idempotent, non-destructive operation, so the safety profile is covered. The description adds only the 'Legacy' scope and endpoint, without additional behavioral details such as pagination, authentication, or response caveats; there is no contradiction with annotations.
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 front-loaded: one semantic sentence plus the endpoint. It is appropriately compact for a zero-parameter read operation, though the endpoint line adds little beyond what the name implies.
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 no-parameter read tool with an output schema and strong annotations, the essential invocation context is present. However, it never explains what makes 'Legacy Users' distinct from the numerous sibling user-listing tools, so selection context remains 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?
The tool has zero parameters and schema description coverage is 100%, so no parameter documentation is needed. The description appropriately has nothing to add about parameter semantics.
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 Legacy Users' — a specific verb and resource — and reinforces it with the endpoint GET /api/users/. However, it does not explicitly differentiate itself from sibling tools like list_users_2 or list_users_account, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus the many sibling user-listing tools. The phrase 'Legacy Users' hints at a specific scope, but no explicit when/when-not or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_users_2BRead-onlyIdempotent
Get list of all connected users.
GET /users
| 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?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds the scope 'all connected users' and the HTTP endpoint, but it does not explain what 'connected' means, whether the result is paginated, or whether the user list represents current connections or authorized users.
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, direct, and front-loaded with the main action; the 'GET /users' line adds a concrete route reference. The phrasing is slightly terse and the second line is not strictly necessary, but overall there is no clutter.
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, robust safety annotations, and a present output schema, the tool is mostly self-sufficient. Missing context is limited to the meaning of 'connected users' and the distinction from near-identical siblings, which prevents a perfect score.
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, so the schema carries no semantic weight and the baseline is high. The description's phrase 'all connected users' provides a minimal but sufficient semantic hint that no parameters are needed to fetch the complete set.
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 a clear action and resource ('Get list of all connected users'), so the core purpose is understandable. However, it does not distinguish itself from closely named siblings such as 'list_users' or 'list_users_account', leaving ambiguity about what 'connected' means and why this variant exists.
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 about when to use this tool instead of sibling tools like 'list_users', 'list_home_users', or 'list_users_account'. The description does not mention prerequisites, exclusions, or alternative selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_users_accountARead-onlyIdempotent
Get Account (XML).
GET /users/account
| 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?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the XML response format and the endpoint, which are useful but not extensive. It does not contradict annotations and provides some extra behavioral context beyond the structured 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 extremely concise, consisting of a two-word summary and an endpoint. Every token earns its place, and the key information (resource, format, path) is front-loaded with no filler.
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, read-only tool with a rich annotation set and an output schema, the description is nearly complete. It includes the endpoint and format, which are essential. It could be improved by clarifying what 'Account' refers to and explicitly noting the relationship to the JSON sibling, but the low complexity makes the current text sufficient for an agent to call the tool correctly.
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 is trivially complete. Per the baseline for zero-parameter tools, a 4 is appropriate since the description does not need to explain any parameter semantics.
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 verb 'Get' and the resource 'Account', and the XML note distinguishes it from the sibling list_users_account_json. It is clear enough, though it does not explain whose account or what fields are returned, leaving slight ambiguity about the resource's meaning.
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 given for when to use this tool versus alternatives. The XML mention is an implicit hint for format preference, but there is no statement about when to choose this over list_users_account_json or other account-related tools like list_user and list_users.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_users_account_jsonBRead-onlyIdempotent
Get Account (JSON).
GET /users/account.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?
Annotations already cover the key behavioral traits (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the description doesn't need to repeat safety info. It adds the HTTP method and JSON format, which is minor but non-contradictory extra context. With the annotations covering the safety profile, 3 is appropriate.
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 two compact clauses: 'Get Account (JSON).' followed by the endpoint. No extraneous words, and the essential info is front-loaded. Every element earns its place for a trivial read-only endpoint.
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 read-only endpoint with an output schema, the description is reasonably complete. However, it does not clarify what 'Account' entails or distinguish itself from sibling list_users_account, leaving a small but relevant ambiguity for tool selection. Given the simplicity, a 3 captures this 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?
The input schema has zero parameters and 100% schema description coverage, so the description does not need to explain any parameters. Baseline 4 applies for zero-parameter tools; there is no additional semantic information 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 operation: 'Get Account (JSON)' and provides the explicit endpoint. It is specific about the resource (account) and the response format (JSON). However, it does not differentiate this from the similarly named sibling tool list_users_account, which could serve the same purpose in a different format.
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. There is no mention of contexts, exclusions, or why an agent might choose this over list_users_account or list_users_2. The agent is left to infer usage purely from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_v2_user_webhooksCRead-onlyIdempotent
User Webhooks.
GET /api/v2/user/webhooks
| 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?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds no extra behavioral context such as auth requirements, scope of returned data, pagination, or response behavior; 'User Webhooks' is just a label, not a disclosure.
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 brief and front-loaded, but 'User Webhooks' is redundant with the tool name and the GET line is an endpoint rather than a functional sentence. It is concise but under-specified rather than efficiently complete.
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 and annotations covering return shape and safety, and no parameters, the description needs little. However, it lacks an explicit statement about what is being listed (user-specific vs global webhooks) and does not disambiguate from the similar sibling list_webhooks, leaving minor but real 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?
This tool has zero parameters, so the input schema is completely sufficient. The description has nothing to add, meeting 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 identifies the resource ('User Webhooks') and the HTTP endpoint (GET /api/v2/user/webhooks), making the action implicitly a list/read. However, it never states the purpose in a complete phrase such as 'List webhooks for the current user,' so it largely restates the tool's name and endpoint rather than explaining what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The description does not mention alternatives like list_webhooks or create_v2_user_webhooks, nor does it give any condition that would make this endpoint the right choice over a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhooksBRead-onlyIdempotent
Get Webhooks.
GET /webhooks
| 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?
Annotations already convey that this is read-only, idempotent, and non-destructive, so the description carries a lighter burden. It adds the HTTP endpoint but no details about pagination, authentication, or response behavior, and it does not contradict the annotations.
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 definition is very short, but 'Get Webhooks' essentially restates the tool name and the endpoint line is largely redundant with it. It is not bloated, but it also does not use the available space to add meaningful substance.
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 read-only tool with an output schema and rich annotations, this is nearly sufficient to invoke correctly. The main gap is that it does not distinguish itself from the similar sibling list_v2_user_webhooks, so selection among related tools is underspecified.
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 schema coverage is 100%, so there is nothing for the description to add. This matches the baseline for a no-parameter tool.
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 a clear verb and resource ('Get Webhooks') and includes the concrete endpoint 'GET /webhooks', so an agent knows it retrieves webhooks. However, it does not differentiate from sibling list_v2_user_webhooks or clarify which webhook scope is returned, so it stops short of a 5.
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 given on when to use this tool versus list_v2_user_webhooks or create_webhooks. There are no exclusions, alternatives, or contextual selection criteria; the agent must infer usage entirely from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_websocket_notificationsBRead-onlyIdempotent
Connect to WebSocket.
GET /:/websocket/notifications
Args:
filter: By default, all events except logs are sent. A rich filtering mechanism is provided to allow clients to opt into or out of each event type using the `filters` parameter. For example:filters=-log: All event types except logs (the default).filters=foo,bar: Only the foo and bar event types.filters=: All events types.filters=-foo,bar: All event types except foo and bar.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds value beyond that by revealing the streaming/connection nature and the default event filtering (all events except logs). It stops short of describing connection lifecycle, persistence, or message framing, but the annotation coverage lowers the bar.
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?
Good front-loading with a one-line summary followed by endpoint and args. The four filter examples are somewhat verbose for the point, the Args block is loosely formatted, and there are grammatical slips ('All events types') that a tighter edit would catch.
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 zero required parameters and an output schema present, the filter semantics are the main burden and they are well covered. Missing is the WebSocket lifecycle behavior (does the call block? how long does the connection last?) and any differentiation from the sibling `list_websockets_notifications` tool, which is a notable gap for a connection-style 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% — the `filter` property is just an array-or-null with no description. The description compensates strongly with the default behavior, opt-in/opt-out syntax (+/-), and four concrete examples. The effectiveness is undercut by a naming inconsistency: the prose refers to a `filters` parameter while the schema names it `filter`, which could cause an agent to pass the wrong key.
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 opens with a concrete action ('Connect to WebSocket') and specifies the exact endpoint 'GET /:/websocket/notifications', giving the agent a clear verb+resource pair. However, it does not differentiate itself from the near-identical sibling `list_websockets_notifications`, and the verb 'Connect' is slightly at odds with the tool name's 'list' 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?
No guidance is given on when to select this WebSocket transport over the obvious alternative `list_eventsource_notifications`, nor how it relates to the near-duplicate `list_websockets_notifications`. The filter examples explain parameter usage, but the description never tells the agent when to use this tool vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_websockets_notificationsBRead-onlyIdempotent
Get WebSocket Notifications.
GET /:/websockets/notifications
| 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?
Annotations already cover the read-only, idempotent, non-destructive profile, but the description adds no behavioral context beyond 'Get'. It fails to clarify whether this is a one-time list or a persistent WebSocket stream, which is a significant ambiguity.
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 free of fluff, but the first sentence largely restates the tool name. The endpoint line adds a technical detail, yet the overall structure provides no context beyond the bare call.
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 read-only tool with a rich annotation set and an output schema, the description is minimally sufficient to invoke the tool. However, it leaves key contextual gaps around the notification semantics and the distinction from EventSource notifications.
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 the baseline is 4. No parameter descriptions are needed, and the description correctly avoids inventing any.
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 WebSocket Notifications with a specific verb and resource. However, it does not differentiate this from the sibling list_eventsource_notifications, so an agent might confuse the two.
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 list_eventsource_notifications. It only gives the endpoint and a terse one-liner, leaving the decision entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
patch_livetv_dvrs_by_dvr_idCIdempotent
Update DVR Settings.
PATCH /livetv/dvrs/{dvrId}
Args: dvr_id: The ID of the DVR.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond the annotations. Annotations indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, but the description does not mention side effects, auth requirements, or consequences of the update. It merely restates the action without disclosing what settings are updated or if changes are reversible.
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 and front-loaded with the main action ('Update DVR Settings') followed by the HTTP path and parameter list. It contains no filler. However, it could be slightly more structured to explicitly separate the description from the technical details.
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 one simple integer parameter and an output schema, the description covers the essential operation and parameter definition. However, it lacks differentiation from similar sibling tools and does not indicate whether it's a partial vs full update, nor any prerequisites or error conditions. It is adequate but not 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 description provides a minimal explanation of the dvr_id parameter ('The ID of the DVR.'), which adds a bit of clarity beyond the schema's type and required flag. However, with 0% schema description coverage, the description could give more context, such as where to find the DVR ID or its format. It's adequate for a simple integer ID.
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 'Update DVR Settings' which clearly indicates a write operation on DVR resources. It is a specific verb+resource. However, it doesn't differentiate from the sibling update_livetv_dvrs_by_dvr_id, which likely does the same general update, so there is ambiguity about scope or partial update semantics.
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 that this is the PATCH (partial update) variant, nor does it reference sibling tools like update_livetv_dvrs_by_dvr_id or update_livetv_dvrs_by_dvr_id_prefs for more specific updates. An agent would have to infer usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_actions_remove_from_continue_watchingCIdempotent
Remove From Continue Watching.
PUT /actions/removeFromContinueWatching
Args: key: The metadata key of the item
| Name | Required | Description | Default |
|---|---|---|---|
| key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write, idempotent, non-destructive operation. The description adds only the HTTP method and path, with no extra behavioral context such as side effects, auth requirements, or what happens when the key is absent.
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 front-loaded, with the endpoint and parameter listed cleanly. However, the opening sentence mostly repeats the tool name, leaving room for more substantive content in the same 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?
For a simple one-parameter action with annotations and an output schema, the description provides the minimum viable information. It lacks usage context, alternative differentiation, and clarification of nullable key behavior, but the endpoint and parameter meaning are sufficient for a straightforward call.
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 'Args' line carries the burden. It does add that 'key' is 'The metadata key of the item', which is useful, but it doesn't clarify optionality, format, or the effect of a null key—especially important since the parameter is not 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 action ('Remove From Continue Watching') and provides the exact HTTP endpoint. The target resource ('Continue Watching') distinguishes it from sibling watchlist tools, though it doesn't explicitly call out that distinction.
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 given about when to use this tool versus alternatives like create_actions_remove_from_watchlist, nor are prerequisites or context mentioned. The agent must infer usage entirely from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_home_users_by_user_idCIdempotent
Update Home User.
PUT /home/users/{userId}
Args: user_id: The unique identifier of the user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, but the description adds no behavioral detail beyond the word 'Update'. It does not disclose what happens to existing settings, whether the update is a merge or replace, any authorization requirements, or side effects. No contradiction with annotations exists, but the description also provides no added 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?
The description is very short and front-loaded with the purpose, followed by the HTTP method/path and an argument list. Every sentence earns its place and there is no filler. It sacrifices detail for brevity, but as a concise structure it is effective.
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 an update operation, the description is incomplete: it does not say what fields can be updated, whether a request body is required, or how the update behaves. With only a single parameter listed and no body information, an agent cannot determine how to construct a valid update call beyond the user ID. The existence of update_home_users_restricted_by_user_id hints at a more specific variant, but no distinguishing context is provided.
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 provides only the title 'User Id' with no description (0% coverage), so the description must carry the semantic weight. It does offer 'user_id: The unique identifier of the user', which adds a minimal clarification beyond the schema. However, it does not explain constraints, how the ID is used, or any relationship to the update body.
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 opens with 'Update Home User.', which is a clear verb-plus-resource statement and immediately identifies the operation. It also provides the HTTP method and path, reinforcing the purpose. However, it does not differentiate this tool from sibling tools such as update_home_users_restricted_by_user_id, and 'Home User' is left somewhat ambiguous.
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 gives no guidance on when to use this tool versus the many related home-user tools like create_home_users, update_home_users_restricted_by_user_id, or delete_home_users_by_user_id. No prerequisites, use-cases, or exclusions are mentioned. The only extra context is the endpoint and parameter listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_home_users_restricted_by_user_idCIdempotent
Update Restricted User.
PUT /home/users/restricted/{userId}
Args: user_id: The unique identifier of the user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, which cover the basic safety profile. The description adds no extra behavioral context such as required permissions, side effects, or which fields are updatable; it only restates the action, providing no value beyond the annotations.
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, with the action front-loaded before the endpoint and argument. There is no fluff or redundancy, and it is appropriately sized for a one-parameter tool, though it is arguably too terse.
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?
Although the tool is simple with one parameter and an output schema exists, the description leaves a critical gap: it does not explain what a 'restricted user' is or when to use this tool over the nearly identical 'update_home_users_by_user_id'. An agent cannot confidently decide to invoke it correctly without that 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?
Schema description coverage is 0%, so the description must compensate. It only says 'user_id: The unique identifier of the user', which is a minimal clarification of the parameter's role but does not explain any constraints, the meaning of 'restricted' in this context, or how this ID relates to the operation. For a single-parameter tool, this is barely adequate.
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 a clear verb and resource: 'Update Restricted User' with the PUT endpoint. It is not a tautology and is unambiguous about the action, but it does not explicitly differentiate from the sibling 'update_home_users_by_user_id' beyond the word 'restricted' in the tool name, relying on the name rather than the description to distinguish.
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 the closely related 'update_home_users_by_user_id' or explain what distinguishes a 'restricted' user from a regular home user, nor does it give any criteria for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_hubs_sections_by_section_id_manage_by_identifierAIdempotent
Change hub visibility.
PUT /hubs/sections/{sectionId}/manage/{identifier}
Args: section_id: The section ID for the hubs to change identifier: The identifier of the hub to change promoted_to_recommended: Whether this hub should be displayed in recommended promoted_to_own_home: Whether this hub should be displayed in admin's home promoted_to_shared_home: Whether this hub should be displayed in shared user's home
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | ||
| section_id | Yes | ||
| promoted_to_own_home | No | ||
| promoted_to_recommended | No | ||
| promoted_to_shared_home | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful context beyond the annotations by specifying exactly which visibility aspects are affected: recommended, admin's home, and shared user's home. It does not contradict the annotations, and the idempotent/non-destructive hints already signal the safety profile. However, it does not explain side effects of setting these values, such as whether false removes an existing promotion.
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 compact and front-loaded: a clear action line, the HTTP path, and a structured Args list. Every line earns its place, and there is no filler or redundant restating of the schema.
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 core action and all parameters, and the output schema handles return values, so it is functionally usable. But it omits usage guidance, accepted value formats, and the relationship to the many similar manage/move sibling tools, leaving some important context missing for a 5-parameter update 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?
With 0% schema description coverage, the description provides one-line meanings for all five parameters, which is valuable. But it says 'Whether this hub should be displayed for promoted_to_* parameters while the schema types are string/null, creating ambiguity about expected values such as 'true'/'false' and the effect of null/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 states a specific action and resource: 'Change hub visibility' with the PUT path. The path and parameter list make clear it changes promotion flags for a specific hub in a section, but it does not explicitly differentiate itself from sibling tools like create_hubs_sections_by_section_id_manage or update_hubs_sections_by_section_id_manage_move.
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 about when to use this tool versus the many related hub-management siblings, no exclusions, and no mention of alternatives. The word 'update' implies modification of existing hub preferences, but that is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_hubs_sections_by_section_id_manage_moveAIdempotent
Move Hub.
PUT /hubs/sections/{sectionId}/manage/move
Args: section_id: The section ID for the hubs to reorder identifier: The identifier of the hub to move after: The identifier of the hub to order this hub after (or empty/missing to put this hub first)
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| identifier | No | ||
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that the operation is mutating, idempotent, and non-destructive. The description adds a useful behavioral nuance: 'empty/missing to put this hub first' explains what happens when after is absent. However, it does not disclose side effects on the rest of the ordering or any prerequisites, so it only partially enriches the annotation 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?
The description is compact and well-structured: a one-line purpose, the endpoint, and a clean parameter list. No filler or repetition; every sentence 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?
The description covers all parameters and the output schema is present, so return values need no explanation. However, it omits usage guidance and does not clarify how this tool relates to the many similar hub-management siblings, leaving an agent to guess when this specific move operation is appropriate.
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 fully compensates by explaining all three parameters: section_id as the section containing hubs, identifier as the hub to move, and after with the special empty/missing behavior. This goes well beyond the bare schema properties.
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 opens with 'Move Hub,' which clearly identifies the verb and resource, and the endpoint path 'PUT /hubs/sections/{sectionId}/manage/move' further specifies the operation. It is unambiguous about what the tool does, but it does not explicitly distinguish itself from closely related siblings like update_hubs_sections_by_section_id_manage_by_identifier, so it falls short of a 5.
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 conditions, exclusions, or how this move operation differs from other hub-management tools, leaving an agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_invites_requests_by_invite_idAIdempotent
Accept an Invite.
PUT /api/invites/requests/{inviteId}
Args: invite_id: The pending invitation ID. friend: Whether the invitation includes a friend relationship. home: Whether the invitation includes Plex Home membership. server: Whether the invitation includes access to a shared server.
| Name | Required | Description | Default |
|---|---|---|---|
| home | No | ||
| friend | No | ||
| server | No | ||
| invite_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey mutation, idempotency, and non-destructiveness. The description adds the 'PUT' method and the accept semantics, but does not disclose downstream effects such as creating friend relationships or granting Plex Home/server access after acceptance.
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 front-loaded with the essential action. The endpoint and argument list are directly useful, though the endpoint line slightly duplicates information inherent in the tool name.
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 four-parameter mutation with an output schema, the description covers the action, endpoint, and every parameter's meaning. It does not provide broader context such as invite lifecycle or error cases, but none are essential to invoke it correctly.
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 fully compensates by defining invite_id as the pending invitation ID and clarifying friend, home, and server as relationship-bearing flags. The 'Whether' phrasing suggests booleans while the schema types are string/null, so a small ambiguity remains.
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 opens with a specific action verb and resource: 'Accept an Invite,' and identifies the endpoint. It clearly distinguishes the tool's purpose from generic library/playlist updaters in the sibling list, though it does not name an alternative.
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 when to use the tool: when accepting a pending invite. However, it provides no explicit guidance on prerequisites, what constitutes a pending invitation, or when a different invite-management tool would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_clean_bundlesCIdempotent
Clean bundles.
PUT /library/clean/bundles
| 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?
Annotations carry most of the behavioral burden (idempotent, non-read-only, openWorld), but the description adds no side-effect detail beyond the word 'clean'. An agent cannot know what changes, whether it triggers background work, or what 'bundles' refers to. No annotation contradiction is present.
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 text is very short and front-loaded with the action; the HTTP path is redundant but harmless. This is concise rather than bloated, though it sacrifices substance.
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 no-parameter maintenance operation, one sentence could be enough, but 'Clean bundles' does not explain the operation's effect, target, or prerequisites. The output schema reduces the need to describe return values, but the missing behavioral context makes the description 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?
The tool has zero parameters and the input schema is empty, so there are no parameter semantics for the description to add. The 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 repeats the tool name's phrase ('Clean bundles.') and adds only the raw HTTP path, providing no definition of what cleaning bundles entails or what scope it covers. It does not distinguish this operation from nearby maintenance tools like update_library_optimize or delete_library_caches.
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?
There is no when-to-use guidance, prerequisite, or comparison to alternatives. Given hundreds of sibling tools and multiple library maintenance operations, an agent receives no help selecting this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_collections_by_collection_id_itemsAIdempotent
Add items to a collection.
PUT /library/collections/{collectionId}/items
Args: collection_id: The collection id uri: The URI describing the items to add to this collection
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | ||
| collection_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description merely restates the mutation ('Add items') without adding behavioral details such as how duplicate items are handled, how the uri is parsed, or any side effects. No extra context is provided beyond the annotations.
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 exceptionally concise: a one-line purpose, the HTTP method and path, and the two arguments. Every sentence serves a purpose, and the most important 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?
The description covers the essential operation and parameters, and the output schema exists so return values are covered. However, it leaves ambiguity around the 'uri' parameter: whether it accepts a single URI or multiple, what the null default means, and how items are added (append vs replace). These gaps make it incomplete for an agent to call the tool with confidence.
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% description coverage, so the description is the sole source of parameter meaning. It provides a concise explanation for each argument: 'The collection id' and 'The URI describing the items to add to this collection.' While brief, it does add semantic value 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 states a clear verb and resource: 'Add items to a collection.' It also specifies the HTTP method and path. This distinguishes it from sibling tools like update_library_collections_by_collection_id_items_by_item_id and ..._move, which operate on specific items or move them.
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 when to use the tool ('Add items to a collection') but does not explicitly mention alternatives or exclusions. It lacks any guidance on when to choose this over other collection-related operations, so the usage context is only implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_collections_by_collection_id_items_by_item_idCIdempotent
Update an item in a collection.
PUT /library/collections/{collectionId}/items/{itemId}
Args: collection_id: The collection id item_id: The item to delete
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | ||
| collection_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts the annotations. It labels item_id as 'The item to delete,' which conflicts with destructiveHint=false and with the tool's own 'Update' purpose. The annotations already cover readOnly=false, idempotent=true, and destructive=false, but the description adds a misleading behavioral signal instead of clarifying side effects, permissions, or scope of the update.
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 front-loaded with the main action, but the Args block is repetitive and contains an incorrect parameter description. The endpoint line is useful but partly redundant with the tool name. Overall, the structure is compact but not clean or fully purposeful.
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 an update operation, the description does not explain what 'update' actually changes, what values are accepted, or how this differs from related update/move tools. The output schema exists, so return-value documentation is not required, but the core semantics of the operation are still underspecified and internally inconsistent.
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 only provides tautological text for collection_id ('The collection id') and an actively wrong description for item_id ('The item to delete'). This is misleading and can cause an agent to misuse the parameter as a delete target.
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 names a clear verb and resource: 'Update an item in a collection.' It also gives the exact PUT endpoint, so an agent can identify what resource is being acted on. However, it does not differentiate this from sibling tools like update_library_collections_by_collection_id_items or the _move variant, and the later 'item to delete' wording muddies the intended purpose.
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?
There is no guidance about when to use this tool versus alternatives. No exclusions, prerequisites, or conditions are given, and the sibling tools that overlap semantically (e.g., the plural items update or move variant) are never referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_collections_by_collection_id_items_by_item_id_moveBIdempotent
Reorder an item in the collection.
PUT /library/collections/{collectionId}/items/{itemId}/move
Args: collection_id: The collection id item_id: The item to move after: The item to move this item after. If not provided, this item will be moved to the beginning
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| item_id | Yes | ||
| collection_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false, lowering the burden on the description. The description adds a genuinely useful behavior: if 'after' is not provided, the item moves to the beginning. However, it does not mention side effects on the ordering of other items or response 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 compact and front-loaded with the action sentence, followed by the endpoint and parameter notes. There is no filler, though the Args block is somewhat redundant with the schema.
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 three-parameter move operation with an output schema, the description provides the endpoint, parameter roles, and the important default behavior of 'after'. It lacks usage-scenario context and side-effect notes, but those are not critical for invoking this simple operation.
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 does explain 'after' meaningfully, including the default-to-beginning behavior, but the descriptions for collection_id and item_id merely restate the schema titles and add little semantic value.
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 opens with 'Reorder an item in the collection', a specific verb and resource, and the HTTP path includes '/move', making the intent clear. It does not explicitly distinguish itself from sibling move operations like update_play_queues_by_play_queue_id_items_by_play_queue_item_id_move, so it stops short of full differentiation.
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?
There is no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The only usage signal is implied by the word 'Reorder', so an agent gets little help choosing among the many move-type sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_idsCIdempotent
Edit a metadata item.
PUT /library/metadata/{ids}
Args: ids: Comma-separated list of IDs args: The new values for the metadata item
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| args | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate a non-read-only, idempotent, non-destructive operation, and the description's 'Edit' and PUT are consistent with those. However, the description adds no important behavioral context such as whether args is a partial update or full replacement, what side effects occur, or how multiple IDs are handled.
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 front-loaded with no wasted words, but it is under-specified for the open args object and the ids/schema mismatch. It is concise but not sufficiently 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?
Given the open-world args object and zero schema description coverage, the description does not give enough information to construct a valid call. It does not explain what fields can be edited, whether args is required, or how the endpoint behaves with multiple IDs, leaving too much unresolved.
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 carry the parameter semantics. It says ids is a comma-separated list, but the schema defines ids as an array, which is a misleading mismatch. The args parameter is only described as 'the new values' with no explanation of allowed keys or structure.
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 says 'Edit a metadata item' and gives the PUT endpoint, so the verb and resource are clear. It doesn't explicitly distinguish itself from the many update_library_metadata_by_ids_* siblings, so it slightly lacks differentiation.
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?
There is no guidance about when to use this generic edit operation versus the many specialized update_library_metadata_by_ids_* tools. The description provides no context, prerequisites, or exclusions that would help an agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_addetectCIdempotent
Ad-detect an item.
PUT /library/metadata/{ids}/addetect
Args: ids: Comma-separated list of IDs
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is not read-only, not destructive, and idempotent, but the description adds no behavioral context beyond that. It does not disclose whether this starts a background job, modifies stored metadata, requires specific permissions, or has any side effects. No contradiction with annotations exists, but the description is too thin to enrich them.
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 and front-loaded with the main action followed by the endpoint and parameter note. There is no redundancy or filler. It is lean, though it sacrifices substance for brevity.
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 mutating operation with no readOnlyHint and no output schema details, the description is insufficient. It leaves the agent without a clear understanding of what 'ad-detect' means, what happens to the items, and what conditions might apply. The endpoint and annotations carry most of the context, but the description itself does not fill the 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?
Schema description coverage is 0%, so the description must compensate. It does add the useful detail that 'ids' is a comma-separated list, which is not present in the schema. However, it does not explain what kind of IDs these are or how they map to the endpoint's metadata path, leaving the parameter semantics only partially clarified.
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 a specific resource operation: 'Ad-detect an item' with the endpoint PUT /library/metadata/{ids}/addetect. This is more than a tautology and differentiates from sibling update_* tools, but 'ad-detect' is domain jargon and the description does not clarify what the operation actually does to the 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?
There is no guidance about when to use this tool versus alternatives. It does not mention the intended scenario, prerequisites, or how it differs from related operations like update_library_metadata_by_ids_intro or update_library_metadata_by_ids_credits. The usage is only implied by the endpoint name, not explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_analyzeCIdempotent
Analyze an item.
PUT /library/metadata/{ids}/analyze
Args: ids: Comma-separated list of IDs thumb_offset: Set the offset to be used for thumbnails art_offset: Set the offset to be used for artwork
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| art_offset | No | ||
| thumb_offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already supply. It does not disclose whether analysis is a background process, whether it mutates the item, what side effects occur, or what the output schema represents. Annotations indicate readOnly=false and idempotent=true, but the description fails to elaborate.
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 compact and to the point, listing the HTTP route and parameters without fluff. The opening sentence 'Analyze an item' is almost redundant with the tool name, but overall the structure is efficient and easily skimmable.
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 an output schema exists so return value description is not required, the description omits critical context: when to call this operation, what 'analyze' entails, whether it is long-running, and any side effects. For a mutating tool with readOnly=false, this leaves the agent under-informed about implications.
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?
Since the schema provides no descriptions (0% coverage), the description's one-line explanations for ids, thumb_offset, and art_offset are necessary and helpful. However, they are minimal: no units, ranges, or details about how offsets affect thumbnails/artwork. The meaning is clear enough for basic invocation but lacks depth.
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 a verb ('Analyze') and a resource ('an item'), which identifies the core action. However, 'an item' is vague and does not clarify that this operates on library metadata by IDs, nor does it explain what 'analyze' actually does or how it differs from sibling operations like refresh, index, or addetect.
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?
There is no guidance on when to use this tool versus the many sibling update_library_metadata_by_ids_* tools. No context about prerequisites, typical use cases, or distinctions is provided, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_by_elementBIdempotent
Set an item's artwork, theme, etc.
PUT /library/metadata/{ids}/{element}
Args: ids: Comma-separated list of IDs element: The type of artwork element (e.g., art, poster, thumb) url: The url of the new asset.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| url | No | ||
| element | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotency, mutability, and non-destructive flags, so the baseline burden is lower. The description adds that this performs a PUT-style set of an element to a new URL, implying replacement. However, it does not state what happens when url is null, auth requirements, or any side effects like cache invalidation.
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 text is tight: one purpose sentence, one endpoint line, and three parameter lines with no filler. 'etc.' is vague, but the overall structure is easily scannable and front-loads the 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?
For a simple 3-parameter update with an output schema and safety annotations, the essential call mechanics are present. The main gaps are the lack of differentiation from create_library_metadata_by_ids_by_element and no clarification of nullable url behavior, which an agent would need to choose and invoke this tool confidently among many siblings.
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%, but the Args block compensates: ids is defined as a comma-separated list, element is described with examples (art, poster, thumb), and url is explained as the location of the new asset. It stops short of clarifying the null default or allowed element values, but it provides the core meaning absent from 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 opens with a concise verb+resource: 'Set an item's artwork, theme, etc.' and is reinforced by the documented PUT endpoint. It clearly identifies this as a mutation of metadata artwork elements, but 'etc.' is vague and it doesn't explicitly contrast with the similarly named sibling create_library_metadata_by_ids_by_element.
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 gives no conditions for when to use this tool rather than create_library_metadata_by_ids_by_element or other update_library_metadata_by_ids_* alternatives. It lists parameters but not any selection criteria, prerequisites, or exclusions. The only hint is the PUT method embedded in the endpoint line.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_chapter_thumbsBIdempotent
Generate thumbs of chapters for an item.
PUT /library/metadata/{ids}/chapterThumbs
Args: ids: Comma-separated list of IDs force: Force the operation even if conditions are not met
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| force | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the mutation/idempotency profile is covered. The description adds that the operation can be forced, implying there are conditions, but it doesn't explain what those conditions are. No contradiction with annotations; it adds a small amount of behavioral context beyond them.
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 brief and front-loaded with the core action. The PUT endpoint line provides useful REST context, and the Args section is compact. No filler or redundancy, though the endpoint could be considered somewhat redundant with the tool name. Still, every sentence contributes.
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 (2 simple parameters, output schema exists, annotations cover safety/idempotency), the description is mostly complete. It omits details about the conditions under which force is needed and doesn't mention multi-item handling, but these are gaps rather than critical omissions. For a tool of this simplicity, it's 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?
Schema description coverage is 0%, so the description must compensate. It does explain both parameters: ids as a comma-separated list of IDs and force as a flag to bypass unmet conditions. This adds real meaning beyond the schema, though the conditions for force remain vague. For a 2-parameter tool, this is solid but not exhaustive.
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: 'Generate thumbs of chapters for an item.' This is a specific verb plus a concrete resource, and the tool name is consistent. It doesn't explicitly differentiate from sibling tools, but the resource (chapter thumbs) is distinct enough. Minor ambiguity remains in 'an item' while the ids parameter accepts a comma-separated list.
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?
There is no guidance on when this tool should be used rather than a sibling, no prerequisites, and no exclusions. The description simply states what it does without contextual routing. Siblings like update_library_metadata_by_ids_analyze or _intro are not mentioned, so an agent gets no help choosing among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_creditsCIdempotent
Credit detect a metadata item.
PUT /library/metadata/{ids}/credits
Args: ids: Comma-separated list of IDs force: Force the operation even if conditions are not met manual: Whether to perform the operation manually
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| force | No | ||
| manual | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnly=false, idempotent=true, and destructive=false. The description adds only minimal context for the force and manual parameters and does not explain what side effects 'credit detect' produces, whether it writes metadata, or what conditions can be forced. This is not enough to understand the operation meaningfully.
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 has no filler text, but the first sentence is confusing and ungrammatical. The endpoint and Args sections are compact and somewhat useful, but the overall wording does not earn its place clearly.
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?
Even with an output schema and annotations supplying some safety traits, the core meaning of the operation is opaque. An agent could fill ids and call the endpoint, but it would not understand what 'credit detect' changes or why to use this tool over other metadata update variants.
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 carries the full semantic burden. It gives one useful line for each parameter: ids are comma-separated, force bypasses unmet conditions, and manual controls whether the operation is performed manually. However, it does not clarify accepted values for force/manual or what 'manual' actually entails.
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's main line, 'Credit detect a metadata item,' is an ungrammatical and unclear purpose statement—it does not specify whether the operation detects credits, updates credits, or runs credit detection. Although the PUT endpoint names the resource, it does not differentiate this tool from the many update_library_metadata_by_ids variant 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 given about when to use this tool versus the many sibling operations, including update_library_metadata_by_ids or other update_*_credits-like actions. It includes 'force' and 'manual' arguments, but no situational context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_indexBIdempotent
Start BIF generation of an item.
PUT /library/metadata/{ids}/index
Args: ids: Comma-separated list of IDs force: Force the operation even if conditions are not met
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| force | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a small amount of behavioral context beyond the annotations: 'Start' implies an asynchronous initiation, and 'force' implies that the operation normally checks some conditions before proceeding. However, it does not disclose what those conditions are, what happens to existing BIF data, or whether the call returns immediately or waits for completion. No contradiction with the annotations exists.
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 compact and front-loaded with the core purpose, followed by the endpoint and parameter explanations. Every line earns its place, with no redundant or filler prose.
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?
An output schema exists, so return-value documentation is not needed. The description covers the two parameters and the basic action, but it does not explain what BIF is, whether multiple IDs are processed as one batch, or what conditions the 'force' flag bypasses. For a tool in a large family of similarly named update_library_metadata_by_ids_* operations, slightly more context would improve 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?
Schema description coverage is 0%, so the description must compensate, and it partially does: 'ids: Comma-separated list of IDs' adds format details absent from the schema, and 'force: Force the operation even if conditions are not met' clarifies the flag's purpose. The force explanation is somewhat vague about what conditions are involved, but both parameters receive meaningful semantic elaboration.
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 a specific action ('Start BIF generation') on a specific resource ('an item' in the library metadata), and includes the HTTP endpoint. This distinguishes it from many sibling update_library_metadata_by_ids_* tools, though 'BIF' is never defined and the singular 'item' sits awkwardly against the plural 'ids' parameter.
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?
There is no guidance about when to use this tool versus alternatives such as update_library_metadata_by_ids_analyze, update_library_metadata_by_ids_refresh, or update_library_metadata_by_ids_credits. The only implicit cue is the word 'Start', which suggests an asynchronous generation action, but no explicit when/when-not conditions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_introBIdempotent
Intro detect an item.
PUT /library/metadata/{ids}/intro
Args: ids: Comma-separated list of IDs force: Indicate whether detection should be re-run threshold: The threshold for determining if content is an intro or not
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| force | No | ||
| threshold | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a bit of behavioral context beyond the annotations by indicating this is a detection operation that can be re-run and has a threshold for intro classification. Annotations already convey idempotency and non-destructiveness, so the description does not need to repeat those, and it does not contradict them.
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 structure is compact and easy to scan: a one-line purpose, the endpoint, and an Args list. The first sentence is grammatically poor, but there is no redundant filler and the endpoint 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?
With an output schema present and safety-related annotations available, the description does not need to explain return values or destructive behavior. Still, it lacks parameter value domain details and any comparison to sibling detection tools, which makes it minimally adequate but not fully complete for confident invocation.
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 carries the full burden for parameter meaning. It provides a functional gloss for each parameter: comma-separated ids, force as a re-run flag, and threshold as the intro decision boundary. However, it does not specify acceptable values, ranges, or behavior when optional parameters are omitted, leaving real gaps.
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 identifies intro detection as the operation and gives the explicit PUT endpoint, so an agent can distinguish it from sibling tools like credits or voice_activity by subject. The wording 'Intro detect an item' is awkward, but the verb 'detect' plus the endpoint and args make the core purpose 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?
There is no guidance on when to use this tool versus related siblings such as update_library_metadata_by_ids_addetect, update_library_metadata_by_ids_credits, or update_library_metadata_by_ids_analyze. The only usage hint is implicit through the 'force' arg indicating re-running detection, but no explicit when-to-use or when-not-to-use conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_marker_by_markerBIdempotent
Edit a marker.
PUT /library/metadata/{ids}/marker/{marker}
Args: ids: Comma-separated list of IDs marker: The id of the marker to edit type: The type of marker to edit/create start_time_offset: The start time of the marker end_time_offset: The end time of the marker attributes: The attributes to assign to this marker
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| type | No | ||
| marker | Yes | ||
| attributes | No | ||
| end_time_offset | No | ||
| start_time_offset | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, idempotent, non-destructive operation. The description adds the HTTP method (PUT) and a note in the 'type' parameter that it can 'edit/create', implying an upsert behavior. However, it does not disclose side effects, auth needs, or how existing marker data is handled, leaving room for more 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?
The description is concise and well-structured: a one-line summary, the HTTP path, then an Args list. It avoids unnecessary fluff and front-loads the core action. It could be improved by adding usage guidance, but the format is efficient and scannable.
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 6 parameters and zero schema descriptions, the description must carry the full explanatory burden. It only provides terse parameter glosses and omits context such as what a 'marker' is, how 'ids' and 'marker' relate, whether attributes are merged or replaced, and time offset units. The presence of an output schema covers return values, but the description is still insufficient for an agent to craft a correct request confidently.
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 lists each parameter with a short gloss (e.g., 'ids: Comma-separated list', 'marker: The id of the marker to edit'), adding minimal meaning over the bare schema. It lacks crucial details like time offset units, allowed 'type' values, and the structure of 'attributes', so it is only partially compensating.
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 'Edit a marker.' and includes the HTTP PUT path, which identifies the action and resource. However, it does not explicitly distinguish itself from sibling tools like create_library_metadata_by_ids_marker or delete_library_metadata_by_ids_marker_by_marker, relying mostly on the verbose name. This is clear but lacks explicit sibling differentiation.
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 creating or deleting markers, and no conditions or exclusions are mentioned. It simply states the action with a parameter list, leaving an agent to infer usage context. With sibling tools for create and delete, explicit selection criteria are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_matchCIdempotent
Match a metadata item.
PUT /library/metadata/{ids}/match
Args: ids: Comma-separated list of IDs guid: The guid name: The name year: The year to filter by
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| guid | No | ||
| name | No | ||
| year | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true, destructiveHint=false, and readOnlyHint=false, but the description adds no behavioral context beyond that. It does not say what side effects a match has, whether existing fields are overwritten, or what matching criteria mean in practice. No contradiction with annotations exists.
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, but the 'Args' block largely duplicates the input schema and several lines are tautological. The opening sentence is vague, and the redundant parameter list means not every part 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?
For a mutation-like operation with four parameters and zero schema descriptions, this description is incomplete. Even though an output schema exists, the agent lacks enough information to know what the operation does, when to choose it, or how guid/name/year interact with ids during matching.
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 carry the parameter meaning, but it mostly repeats the parameter names: 'guid: The guid' and 'name: The name' are tautologies. Only 'ids: Comma-separated list of IDs' and 'year: The year to filter by' add limited value, and the role of these fields in the match operation is still unclear.
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 identifies a resource ('a metadata item') and an operation ('Match'), and gives the exact endpoint, so it is more than a tautology. However, 'match' is ambiguous and the description does not explain what matching entails, nor does it distinguish this from siblings like update_library_metadata_by_ids_matches or update_library_metadata_by_ids_unmatch.
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?
There is no guidance about when to use this tool versus the many sibling metadata update/match operations. The description only restates the endpoint and arguments; it provides no context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_matchesDIdempotent
Get metadata matches for an item.
PUT /library/metadata/{ids}/matches
Args: ids: Comma-separated list of IDs title: The title to filter by parent_title: The parentTitle agent: The identifier of the metadata agent to use language: The language code to use year: The year to filter by manual: Whether to perform the operation manually
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| year | No | ||
| agent | No | ||
| title | No | ||
| manual | No | ||
| language | No | ||
| parent_title | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description describes a read-only 'Get' operation while the annotations say readOnlyHint=false and the HTTP method is PUT. This is an annotation contradiction and hides the mutating nature of the operation; no side effects, state changes, or prerequisites are disclosed.
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 organized, but the opening sentence is actively misleading, and parent_title's explanation is a tautology. The endpoint line is useful, but the structure leads with incorrect 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 7 parameters, an output schema, and a large sibling family, the definition lacks when-to-use context, behavioral side effects, and any relationship to the other metadata update tools. The parameter list alone is insufficient for safely invoking what appears to be a mutating match operation.
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 arg list adds real meaning to all 7 parameters, especially ids, title, year, agent, and language. However, manual lacks accepted values and the schema types it as a string, while parent_title is merely restated as 'The parentTitle.'
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 says 'Get metadata matches for an item,' which is a specific retrieval statement, but the tool name says update_, the endpoint is PUT, and readOnlyHint=false. This makes the stated purpose misleading rather than merely vague.
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 given for when to use this tool versus closely related siblings such as update_library_metadata_by_ids_match, update_library_metadata_by_ids_unmatch, or update_library_metadata_by_ids_merge. It also never explains when manual should be set or what workflow this supports.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_mergeCIdempotent
Merge a metadata item.
PUT /library/metadata/{ids}/merge
Args: ids: Comma-separated list of IDs ids_query: Comma-separated list of item identifiers
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| ids_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey readOnly=false, idempotent=true, and destructive=false, and the description adds no behavioral context beyond restating the endpoint. It does not disclose what happens to the merged items, whether the operation is reversible, or whether special permissions are needed. The description neither contradicts nor meaningfully extends the annotation profile.
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?
Four short lines, front-loaded with the purpose before the endpoint and args, with no filler words. Each line carries information, though the brevity borders on under-specification rather than disciplined conciseness.
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 and safety-relevant annotations, the description need not cover return values or idempotency, but it must explain a non-trivial 'merge' semantic and how the two parameters interact. It does neither, and offers no sibling differentiation, leaving the agent to guess when this tool is appropriate.
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 two 'Args' lines carry the entire burden of parameter meaning. They clarify that ids is a comma-separated list and that ids_query relates to item identifiers, but the definitions are shallow, largely restate the parameter names, and tension exists with the schema type for ids_query (array/null vs 'comma-separated list'). The relationship between ids and ids_query is never explained.
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 opens with a specific verb-resource pairing — 'Merge a metadata item' — and the endpoint URI '/library/metadata/{ids}/merge' reinforces the operation target. The word 'merge' distinguishes it from the large family of update_library_metadata_by_ids_* siblings (split, match, unmatch, refresh). However, it never explains what merging actually entails, leaving the semantics somewhat ambiguous.
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?
There is no guidance on when to use merge instead of sibling operations such as update_library_metadata_by_ids, split, match, or unmatch. No preconditions, no exclusions, and no description of the operation's effect are provided — a costly omission given the roughly 200 sibling tools listed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_prefsDIdempotent
Set metadata preferences.
PUT /library/metadata/{ids}/prefs
Args: ids: Comma-separated list of IDs args: The args
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| args | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description repeats the HTTP method (PUT) and provides the endpoint path, but does not add meaningful behavioral context beyond that. It does not mention whether the operation requires special permissions, what happens to existing preferences, or whether the changes are reversible. With no annotation coverage beyond the basic hints, the description fails to carry the burden of behavioral disclosure for a mutating 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 short but not effective. It includes a bare endpoint and docstring-like parameter lines, but the info is under-specification. The phrase 'Set metadata preferences.' is too terse to be useful, and the 'Args' section is repetitive of the schema without adding clarity. The structure is front-loaded with the vaguest summary instead of actionable details.
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 (it modifies preferences for metadata items), the description is severely incomplete. There is no information about what preferences can be set, the expected format of the 'args' object, or how the response will look, even though an output schema exists. The tool is part of a large family of library update tools, and without further context, an agent would not know when to use it or how to fill in the parameters correctly.
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%, and the description adds almost no parameter meaning. It states 'ids: Comma-separated list of IDs' which is helpful, but 'args: The args' is completely tautological. The description does not explain what 'args' should contain, what keys are valid, or what the structure of the preference object is. Given the open-world annotation, the tool expects arbitrary data, but the description leaves the agent in the dark about how to construct the args.
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 'Set metadata preferences.' is extremely vague. It does not specify what 'metadata preferences' are, which metadata items they apply to, or how the tool differs from the numerous sibling tools like update_library_metadata_by_ids, update_library_sections_by_section_id_prefs, or update_prefs. The verb 'Set' is clear, but the resource and scope are ambiguous.
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?
There is no guidance on when to use this tool versus alternatives. The description does not mention any context for use, such as when updating preferences for specific metadata items or how it relates to other update_library_* tools. An agent would have no way to distinguish this from update_library_metadata_by_ids or update_prefs without guessing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_refreshBIdempotent
Refresh a metadata item.
PUT /library/metadata/{ids}/refresh
Args: ids: Comma-separated list of IDs agent: The identifier of the metadata agent to use mark_updated: The markUpdated skip_refresh: Skip synchronous refresh
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| agent | No | ||
| mark_updated | No | ||
| skip_refresh | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is not read-only, is idempotent, and is not destructive, but the description adds little behavioral context beyond that. It does not explain side effects, whether the operation can be long-running, or what 'skip synchronous refresh' implies for the response. No contradiction with annotations exists.
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 compact and front-loaded with the core action, then the endpoint and parameters. It is mostly efficient, though the mark_updated line is unhelpful and could have been clarified or omitted.
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 large family of update_library_metadata_by_ids_* siblings and zero schema descriptions, the description is too sparse to fully guide selection and invocation. It lacks usage context, behavioral caveats, and meaningful documentation for all parameters, despite having an output schema.
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 carry the burden of explaining parameters. It does so reasonably for ids, agent, and skip_refresh, but mark_updated is described only as 'The markUpdated', which is a tautology and adds no real meaning.
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 a clear verb and resource: 'Refresh a metadata item.' It is distinct enough from the many sibling tools by naming the refresh action, though it does not explicitly differentiate itself from similar metadata-update operations such as analyze, index, or match.
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?
There is no guidance about when to use this tool versus the many sibling tools that also operate on library metadata. The description only provides the endpoint and argument list, leaving the agent to infer the appropriate context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_splitBIdempotent
Split a metadata item.
PUT /library/metadata/{ids}/split
Args: ids: Comma-separated list of IDs
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations (readOnlyHint=false, idempotentHint=true, destructiveHint=false) already cover the basic safety/mutation profile, and the description adds no context about side effects, prerequisites, or what happens to the original metadata item. 'Split a metadata item' restates the action without disclosing behavior such as whether split creates new metadata records or only re-links existing parts.
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 compact: a one-line purpose, the HTTP endpoint, and the parameter format, with no filler. It is front-loaded with the key action and keeps each line 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?
For a one-parameter tool with an output schema and straightforward annotations, the description is minimally viable: it gives the endpoint and parameter format. It remains thin on domain context—what 'split' means, prerequisites, and when to use it—so a cautious agent would need external knowledge to invoke it with full confidence.
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 schema coverage at 0%, the Args line is the only source of parameter meaning. It usefully adds 'Comma-separated list of IDs,' clarifying the expected string format beyond the bare 'Ids' title, but it does not define what the IDs identify or any 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 opens with 'Split a metadata item,' a clear verb+resource statement that tells an agent the operation applies a split action to metadata. It is not fully differentiated from the many sibling update_library_metadata_by_ids_* tools, and 'split' is left undefined, but the core action is 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 sentence explains when this tool should be chosen over siblings such as update_library_metadata_by_ids_merge, update_library_metadata_by_ids_match, or the generic update_library_metadata_by_ids. There are no exclusions, conditions, or alternative references, so an agent receives no usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_unmatchBIdempotent
Unmatch a metadata item.
PUT /library/metadata/{ids}/unmatch
Args: ids: Comma-separated list of IDs
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the mutation/idempotency profile, but the description adds no behavioral context beyond the bare 'Unmatch' action. It does not disclose what gets cleared or changed, whether the operation can be reversed, or any side effects on matched library items.
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 compact: an action sentence, the HTTP endpoint, and an Args note. Every element adds information and there is no filler or repetition of structured fields beyond what 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?
For a one-parameter operation with an output schema present, the description gives the essential call shape. However, it is contextually thin: it never explains the effect of unmatching or its relationship to match/matches siblings, so an agent is left to infer the domain semantics.
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 partially by documenting 'ids: Comma-separated list of IDs'. It does not specify what kind of IDs these are or any constraints, leaving the parameter only minimally explained.
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 a clear action ('Unmatch a metadata item') and gives the endpoint, so the agent knows this is the unmatch operation rather than match or matches siblings. It falls short of a 5 because it doesn't define what 'unmatch' means in library terms or explicitly contrast with update_library_metadata_by_ids_match.
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 given on when to use this tool versus alternatives such as update_library_metadata_by_ids_match or update_library_metadata_by_ids_matches. No prerequisites, exclusions, or contextual triggers are provided, so the agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_metadata_by_ids_voice_activityBIdempotent
Detect voice activity.
PUT /library/metadata/{ids}/voiceActivity
Args: ids: Comma-separated list of IDs force: Indicate whether detection should be re-run manual: Indicate whether detection is manually run
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | ||
| force | No | ||
| manual | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-destructive, idempotent write. The description adds minimal behavioral context beyond 'detect voice activity' and does not explain whether detection runs synchronously, returns results, or updates metadata. No contradiction with annotations, but little extra 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?
Compact and front-loaded with the core purpose, followed by endpoint and parameter definitions. No wasted sentences, though the endpoint line adds little beyond the name.
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 3-parameter operation with an output schema and safety annotations, the description covers the basics. It omits when to use it versus similar update_library_metadata_by_ids_* siblings, and does not clarify operational behavior such as rerun semantics or side effects beyond parameter names.
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 define parameters. It does so for all three: ids as comma-separated IDs, force as re-run control, and manual as manual-run indication. It lacks value formats or examples for force/manual, but it compensates for the schema gap well.
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 a specific action ('Detect voice activity') on a specific resource (voice activity for library metadata IDs). It is distinct from sibling operations like addetect, analyze, or intro, though it does not explicitly contrast itself with them.
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 rather than a sibling, or when to set force vs manual. The parameter hints are present, but there is no contextual decision-making help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_optimizeBIdempotent
Optimize the Database.
PUT /library/optimize
Args: async_: If set, don't wait for completion but return an activity
| Name | Required | Description | Default |
|---|---|---|---|
| async_ | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the operation is non-read-only, idempotent, and non-destructive. The description adds useful async behavior: setting 'async_' avoids waiting and returns an activity, implying the default is to wait. It does not mention other potential side effects or long-running characteristics beyond this.
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 filler: one purpose sentence, an HTTP endpoint, and one parameter explanation. Every line contributes, and the endpoint 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?
For a tool with one optional parameter and an output schema, the description covers the async path and the endpoint. However, it remains vague about what 'optimize' actually does, what the synchronous default returns or waits for, and how the returned activity should be interpreted, leaving gaps in the agent's mental model.
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 carries the parameter burden and does explain the only parameter: 'async_' controls whether the caller waits for completion or receives an activity immediately. It does not specify accepted string values, but the core semantic is meaningfully conveyed.
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 a clear verb and resource: 'Optimize the Database' and identifies the endpoint 'PUT /library/optimize'. It does not, however, differentiate this from sibling operations such as create_library_optimize or create_library_sections_by_section_id_optimize, so it lacks sibling distinction.
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?
There is no guidance on when to use this tool, when not to use it, or what alternatives exist. The description simply provides the HTTP path and an argument, leaving the agent to infer appropriate usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_parts_by_part_idAIdempotent
Set stream selection.
PUT /library/parts/{partId}
Args: part_id: The id of the part to select streams on audio_stream_id: The id of the audio stream to select in this part subtitle_stream_id: The id of the subtitle stream to select in this part. Specify 0 to select no subtitle all_parts: Perform the same for all parts of this media selecting similar streams in each
| Name | Required | Description | Default |
|---|---|---|---|
| part_id | Yes | ||
| all_parts | No | ||
| audio_stream_id | No | ||
| subtitle_stream_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-destructive, idempotent operation, so the description does not need to restate that. It adds useful behavioral detail about selecting audio/subtitle streams and the special value 0 for 'no subtitle.' However, it does not disclose what happens when optional stream parameters are omitted or whether the change persists globally, though annotations soften this 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 compact and well structured: a one-line summary, the HTTP endpoint, and a clean args list. There is no filler, and each sentence 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?
Given that an output schema is present, the description does not need to explain return values. The endpoint, required part_id, and all parameter semantics are covered. The main missing piece is behavior when optional parameters are omitted, but overall this is sufficient for a simple parametric 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 description coverage is 0%, so the description carries the full burden of explaining parameters. It explains all four parameters clearly, including the important 'Specify 0 to select no subtitle' detail and the all_parts behavior. This fully compensates for the lacking 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 opens with 'Set stream selection,' which names a specific action and resource: selecting streams on a library part. The endpoint and args further clarify that it operates on a specific part by ID. It does not explicitly contrast with sibling tools like update_library_streams_by_stream_id_ext or create_player_playback_set_streams, but the 'library parts' resource is distinct enough.
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?
There is no guidance about when to use this tool versus alternatives, nor any exclusions or prerequisites. The description implies it is for selecting audio/subtitle streams on a library part, but an agent is not told how it differs from other stream-related update tools 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.
update_library_sections_by_section_idBIdempotent
Edit a library section.
PUT /library/sections/{sectionId}
Args: section_id: The section identifier name: The name of the new section scanner: The scanner this section should use agent: The agent this section should use for metadata metadata_agent_provider_group_id: The agent group id for this section language: The language of this section locations: The locations on disk to add to this section prefs: The preferences for this section
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| agent | No | ||
| prefs | No | ||
| scanner | No | ||
| language | No | ||
| locations | No | ||
| section_id | Yes | ||
| metadata_agent_provider_group_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose idempotentHint=true, destructiveHint=false, and readOnlyHint=false, and the description does not contradict them. The description adds the PUT method and parameter-level semantics, but it does not disclose whether the update is partial or full, nor what happens to omitted fields—key behavioral context not covered by annotations.
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 compact and well-organized: a single purpose statement, the HTTP method/path, and a clearly formatted Args list. There is no redundant prose, and each line serves a distinct function.
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 8 optional parameters and only section_id required, it is critical to know whether unspecified fields are left unchanged or reset to defaults/null. The description never states the update semantics, and the phrase 'locations... to add' hints at additive behavior without confirming replacement vs append. The output schema exists, so return values are covered, but this core usage ambiguity makes the description incomplete for reliable invocation.
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 provides one-line meanings for all 8 parameters, adding genuine value beyond the bare property titles. Some definitions are terse or ambiguous ('name: The name of the new section' is odd for an update; 'prefs: The preferences' is vague), but overall it 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 opens with 'Edit a library section.' which clearly identifies the verb and resource. The URL path and field list further specify the scope, distinguishing this generic settings update from more specific sibling tools like update_library_sections_by_section_id_move or _prefs, though it doesn't explicitly name them.
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 the many update_library_sections_by_section_id_* siblings. Since several siblings overlap (e.g., prefs, all, edit), the agent is left to infer which tool is appropriate for a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_sections_by_section_id_allAIdempotent
Set the fields of the filtered items.
PUT /library/sections/{sectionId}/all
Args:
section_id: The id of the section
type: The media type to filter by
filters: The filters to apply to determine which items should be modified
field_value: Set the specified field to a new value
field_locked: Set the specified field to locked (or unlocked if set to 0)
title_value: This field is treated specially by albums or artists and may be used for implicit reparenting.
artist_title_value: Reparents set of Tracks or Albums - used with album.title.* in the case of tracks
artist_title_id: Reparents set of Tracks or Albums - used with album.title.* in the case of tracks
album_title_value: Reparents set of Tracks - Must be used in conjunction with artist.title.value or id
album_title_id: Reparents set of Tracks - Must be used in conjunction with artist.title.value or id
tagtype_idx_tag_tag: Creates tag and associates it with each item in the set. - [idx] links this and the next parameters together
tagtype_idx_tagging_object: Here object may be text/thumb/art/theme - Optionally used in conjunction with tag.tag, to update association info across the set.
tagtype_tag_tag: Remove comma separated tags from the set of items
tagtype_tag: Remove associations of this type (e.g. genre) from the set of items
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | ||
| filters | No | ||
| section_id | Yes | ||
| field_value | No | ||
| tagtype_tag | No | ||
| title_value | No | ||
| field_locked | No | ||
| album_title_id | No | ||
| artist_title_id | No | ||
| tagtype_tag_tag | No | ||
| album_title_value | No | ||
| artist_title_value | No | ||
| tagtype_idx_tag_tag | No | ||
| tagtype_idx_tagging_object | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context beyond the annotations, including implicit reparenting for title/artist/album fields, tag creation, tag removal, and required parameter conjunctions. This is especially valuable because readOnlyHint=false alone does not convey these 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 long but earns its length by covering every parameter once and formatting them as a list, with the route and a one-line summary first. It is structured and scannable for a high-complexity tool, though it could be tighter and more example-driven.
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 14-parameter bulk mutation tool, the description is moderately complete: it documents every parameter and several dependencies, and an output schema exists, so return details are not its job. But it lacks examples, does not explain filter or field-value syntax, and omits guidance on the scope/scale of changes, which an agent would need to safely invoke it.
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 carries the full burden, and it does define all 14 parameters with some behavioral meaning. However, a few definitions remain ambiguous, such as what 'field_value' actually targets and how the 'idx' parameter linking mechanism works in practice.
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 opening line, 'Set the fields of the filtered items,' names a specific action and target resource, and the PUT route ties it to bulk section-item updates. It is clear enough about the core operation, though 'fields' is somewhat unspecific and it does not explicitly contrast with sibling bulk-update tools like update_library_metadata_by_ids.
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 use for updating a filtered set of items, but gives no explicit guidance on when to choose this tool over alternatives such as update_library_sections_by_section_id or update_library_metadata_by_ids. There are no stated preconditions, exclusions, or scenario examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_sections_by_section_id_analyzeCIdempotent
Analyze a section.
PUT /library/sections/{sectionId}/analyze
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that the operation is not read-only, is idempotent, and is not destructive. The description adds only the HTTP method and path, which reinforce those hints but do not explain consequences like whether analysis modifies metadata, how long it takes, or what permissions are needed. The description adds little beyond the structured annotations.
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 brief and front-loaded, but much of it is redundant with the tool name and schema. The args block adds no new information, and the one-sentence purpose is too vague to be genuinely useful. It is under-specified rather than efficiently 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 one-parameter tool with an output schema, the description still leaves the core action undefined. It does not explain what analysis entails, when to trigger it, or what side effects may occur. The annotations provide some safety signals, but overall the description is insufficient for an agent to confidently select and invoke this tool among many related library operations.
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 for the schema's sparse definition. It only restates 'section_id: Section identifier', which is no more meaningful than the schema's 'section_id' integer with title 'Section Id'. It fails to explain what a section is, how to identify it, or any constraints or format.
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 says 'Analyze a section' and shows the PUT endpoint, identifying the resource and action. However, it does not explain what 'analyze' means in terms of server behavior, and it does not differentiate this from many sibling tools like update_library_sections_by_section_id or update_library_metadata_by_ids_analyze. The purpose is minimally clear but relies on the tool name for interpretation.
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?
There is no guidance on when to use this tool versus alternatives. It does not mention any conditions, prerequisites, or exclusions, leaving the agent to infer usage from the ambiguous verb 'analyze' and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_sections_by_section_id_editCIdempotent
Edit Section.
PUT /library/sections/{sectionId}/edit
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), so the bar is lower, but the description adds almost nothing beyond the bare word "Edit". It does not disclose what gets modified, whether changes are reversible, or what the response represents, and it does not contradict the annotations.
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, but it is under-specified rather than efficiently structured: "Edit Section.", the PUT path, and the Args block largely restate the tool name and input schema. The limited content is front-loaded but does not earn its place by adding 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?
Even with an output schema and one documented parameter, the description does not explain what editing a section entails or why this endpoint exists alongside update_library_sections_by_section_id and update_library_sections_by_section_id_prefs. An agent cannot determine the consequences or correct scenario for invoking this 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 bears the burden, and it does partially meet it by stating "section_id: The unique identifier of the library section", which adds meaning beyond the schema's bare "Section Id" title. However, with only one parameter this is a modest contribution and no semantics about allowed values or meaning of the edit are 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?
"Edit Section." is essentially a restatement of the tool name; it names a verb and resource but says nothing about what editing a section actually involves, so it does not distinguish this from siblings like update_library_sections_by_section_id or update_library_sections_by_section_id_prefs. The HTTP path echoes the name rather than adding semantic scope.
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?
There is no guidance on when to use this tool, what conditions select it, or how it differs from the many sibling update tools for library sections. No exclusions or alternatives are mentioned, leaving the agent to guess which update endpoint is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_sections_by_section_id_empty_trashCIdempotent
Empty section trash.
PUT /library/sections/{sectionId}/emptyTrash
Args: section_id: Section identifier
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description 'Empty section trash' clearly implies a destructive operation, yet annotations declare destructiveHint=false. This is a direct contradiction. The description also adds no other behavioral context beyond the bare action.
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 and front-loads the action, with the endpoint included for reference. The Args section duplicates the schema, but this is a minor inefficiency.
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 endpoint and parameter are present, but the tool lacks usage context, side effects, or differentiation from siblings. Given the simple one-parameter nature and existing output schema, it is adequate but not 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's 'section_id: Section identifier' is redundant with the schema's 'Section Id' and adds no new semantics. With 0% schema description coverage, the description fails to compensate, though the parameter is a simple identifier.
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 action 'Empty section trash' with a clear resource. However, it does not differentiate from the similar sibling create_library_sections_by_section_id_empty_trash, which could 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 is provided on when to use this tool versus alternatives. The sibling list includes a create_ variant with the same suffix and a get_ variant, but the description does not mention any distinguishing conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_sections_by_section_id_moveCIdempotent
Move Section.
PUT /library/sections/{sectionId}/move
Args: section_id: The unique identifier of the library section
| Name | Required | Description | Default |
|---|---|---|---|
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey the safety profile (not read-only, not destructive, idempotent). The description adds only the endpoint and the phrase 'Move Section', without explaining what moving entails, what changes, or what side effects occur. It does not contradict annotations but also does not enrich them.
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 terse and clearly structured with a title, endpoint, and args section. There is no wasted wording, though the Args block partially duplicates schema information and the brevity borders on under-specification.
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 one-parameter tool with an output schema and annotations, this is minimally usable. However, it lacks operational context about what 'move' actually does and when it should be chosen over the many similar update/move sibling tools, leaving meaningful gaps 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?
Schema description coverage is 0%, so the description must compensate. It gives a minimal explanation of section_id as 'the unique identifier of the library section', which is helpful but adds little beyond the schema's type and title. No format, source, or constraints are 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?
The description clearly names the operation ('Move Section') and the resource (library section), and the endpoint reinforces the intent. It distinguishes itself from the generic update_library_sections_by_section_id via the move suffix, but it doesn't explicitly differentiate among the many sibling move 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 given about when to use this tool versus alternatives. It doesn't explain that this is for reordering/moving a library section, nor does it mention any conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_sections_by_section_id_prefsCIdempotent
Set section prefs.
PUT /library/sections/{sectionId}/prefs
Args: section_id: Section identifier prefs: The preference key to retrieve or set
| Name | Required | Description | Default |
|---|---|---|---|
| prefs | No | ||
| section_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds only 'Set section prefs' and the endpoint, with no extra context about authorization, effects on existing preferences, or response behavior. It does not contradict the annotations, but it adds no behavioral detail beyond them.
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 front-loaded with 'Set section prefs,' but the Args block largely repeats schema property names with minimal added value. The phrase 'retrieve or set' is also unnecessary and confusing for an update/PUT operation.
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 0% schema coverage and no usage guidance, the description fails to explain what preference keys/values are acceptable or what the request body should contain. An agent trying to call this tool correctly would still have to guess at the semantics of the prefs object.
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 for the undocumented parameters. It gives thin labels like 'Section identifier' and 'The preference key to retrieve or set,' but the schema types prefs as an object, so calling it a 'key' is misleading and does not explain how to structure preferred values or which preference keys are valid.
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 a specific action and resource: 'Set section prefs' along with the PUT endpoint. It does not explicitly differentiate from sibling tools such as get_library_sections_by_section_id_prefs or update_library_metadata_by_ids_prefs, but the verb+resource combination is reasonably 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 given about when to use this tool versus alternatives for reading prefs, updating metadata prefs, or modifying DVR prefs. The description only implies usage through the name and endpoint, with no exclusions or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_library_streams_by_stream_id_extBIdempotent
Set a stream offset.
PUT /library/streams/{streamId}.{ext}
Args: stream_id: The id of the stream ext: This is not a part of this endpoint but documented here to satisfy OpenAPI offset: The offest in ms
| Name | Required | Description | Default |
|---|---|---|---|
| ext | Yes | ||
| offset | No | ||
| stream_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, idempotent, non-destructive operation. The description adds useful context by stating offset is in milliseconds and that ext is not actually part of the endpoint despite being required. It doesn't contradict the annotations, but it doesn't explain side effects or what changing the offset does to the stream.
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, well-organized, and front-loaded with the core action. The parameter list is compact and each line adds necessary information. There is no redundant filler.
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 tool has a simple shape, an output schema, and annotations that provide safety-related context. The description covers parameter meanings and the ext quirk, but it lacks clarification on what a null offset means and doesn't distinguish this tool from similar playback-offset operations. It is minimally sufficient for calling the endpoint but leaves semantic 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?
The schema has 0% description coverage, but the description compensates by explaining all three parameters: stream_id identifies the stream, ext is a required placeholder, and offset is in ms. The ext clarification is especially valuable because it prevents an agent from misusing a required but meaningless parameter.
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 a clear verb and resource: "Set a stream offset." This distinguishes it from the sibling get_ and delete_ operations on the same path. However, it doesn't elaborate on what a stream offset means or how it relates to playback, so it's clear but not fully differentiated.
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?
There is no guidance about when to use this tool versus alternatives like create_player_playback_set_view_offset or get_library_streams_by_stream_id_ext. The description just repeats the action without providing context, use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_livetv_dvrs_by_dvr_idCIdempotent
Update DVR Settings.
PUT /livetv/dvrs/{dvrId}
Args: dvr_id: The ID of the DVR.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish non-read-only, idempotent, and non-destructive behavior. The description adds no behavioral context beyond that—it does not disclose what gets changed, side effects, authorization implications, or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, front-loaded with the purpose, and cleanly organizes the endpoint and argument. There is no filler or redundancy, though it is thin in 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?
The definition does not explain what 'DVR Settings' includes, what a successful update does, or whether a request body is expected. The output schema exists, but the missing payload and behavioral context leave the tool incomplete for an update operation.
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's single required parameter dvr_id already carries the title 'Dvr Id', and the description's 'The ID of the DVR' adds no meaningful new information. With 0% schema description coverage, the description should compensate for missing parameter context but does not.
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 action ('Update') and the resource ('DVR Settings'), but 'settings' is too generic to distinguish from sibling operations like update_livetv_dvrs_by_dvr_id_prefs, update_livetv_dvrs_by_dvr_id_lineups, or patch_livetv_dvrs_by_dvr_id. It also largely restates the tool name without specifying what settings are changed.
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?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of when a different DVR-related operation would be more appropriate. The description only exposes the endpoint and argument.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_livetv_dvrs_by_dvr_id_devices_by_device_idAIdempotent
Add a device to an existing DVR.
PUT /livetv/dvrs/{dvrId}/devices/{deviceId}
Args: dvr_id: The ID of the DVR. device_id: The ID of the device to add.
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes | ||
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a non-read-only, idempotent, non-destructive operation, so the description is not solely responsible for safety disclosure. It adds only the 'existing DVR' prerequisite and the add semantics, with no information about side effects or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short lines: an action sentence, the endpoint, and two argument definitions. No filler; the important behavior 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?
For a two-required-parameter operation with an output schema and supporting annotations, the description is nearly sufficient: it provides the endpoint, action, and parameter semantics. It lacks only explicit usage boundaries/alternatives, and prerequisites are limited to 'existing DVR.'
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% description coverage, so the Args block must compensate. It maps dvr_id to 'the ID of the DVR' and device_id to 'the ID of the device to add,' giving both parameters functional meaning beyond their 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 opens with 'Add a device to an existing DVR,' naming a specific operation (add) and clear resources (device, DVR). The wording distinguishes it from the sibling deletion tool delete_livetv_dvrs_by_dvr_id_devices_by_device_id and from DVR-level updates like update_livetv_dvrs_by_dvr_id.
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?
'Add a device to an existing DVR' implies the intended context and carries an implicit prerequisite that the DVR already exists. However, it does not explicitly state when to prefer this over the sibling delete/update tools or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_livetv_dvrs_by_dvr_id_lineupsCIdempotent
Add a DVR Lineup.
PUT /livetv/dvrs/{dvrId}/lineups
Args: dvr_id: The ID of the DVR. lineup: The lineup to delete
| Name | Required | Description | Default |
|---|---|---|---|
| dvr_id | Yes | ||
| lineup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contains an annotation contradiction: it describes the lineup parameter as 'the lineup to delete', which implies destructive behavior, while the annotations declare destructiveHint=false. It also adds no useful behavioral context beyond the annotations, such as idempotency effects or what happens to existing lineups.
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 text is short and has an Args section, but the incorrect 'to delete' wording is actively harmful, and the HTTP path is redundant with the tool name. Not every sentence 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?
For a simple two-parameter tool, the description should be easy to follow, but the conflicting parameter description makes it incomplete. The presence of an output schema reduces the need to explain return values, but the core semantics of what 'lineup' should contain are missing.
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 carry the parameter semantics. 'dvr_id: The ID of the DVR' adds little beyond the property name, and 'lineup: The lineup to delete' is likely a copy-paste error from the delete sibling, making the actual value expected for an add operation unclear.
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 opening phrase 'Add a DVR Lineup' is a specific verb plus resource, and the HTTP path matches. However, the parameter explanation later says 'The lineup to delete', which directly contradicts the stated purpose and leaves the agent uncertain whether this tool adds or removes a lineup.
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?
There is no guidance about when to use this tool versus the sibling delete_livetv_dvrs_by_dvr_id_lineups or the various DVR update tools. It simply states the operation without giving context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_livetv_dvrs_by_dvr_id_prefsBIdempotent
Set DVR preferences.
PUT /livetv/dvrs/{dvrId}/prefs
Args:
dvr_id: The ID of the DVR.
name: Set the name preference to the provided value
value: Preference value to set.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| value | No | ||
| dvr_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide the key behavioral signals: readOnlyHint=false, idempotentHint=true, destructiveHint=false. The description adds an HTTP method and resource path but does not disclose side effects, authorization requirements, or what happens when optional parameters are omitted. It does not contradict the annotations.
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 front-loaded with the core purpose before the parameter list. It has no filler or repetition, though the 'value' argument description is somewhat weak. Overall, it is appropriately compact.
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 small setter tool with an output schema and annotations, the description is minimally adequate. It identifies the resource, method, and arguments, but it does not explain important invocation edge cases such as whether name and value can be omitted, what preference keys are valid, or how the operation affects an existing preference.
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 carries the burden of explaining parameters. It gives a basic explanation for each parameter, but 'value: Preference value to set' is largely tautological and the description does not clarify valid preference names or value formats. It adds some meaning beyond the bare schema but leaves significant ambiguity.
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 a clear verb and resource: 'Set DVR preferences.' The included endpoint, 'PUT /livetv/dvrs/{dvrId}/prefs', makes the target resource unambiguous. It is distinguishable from sibling tools by the 'DVR preferences' scope, though it does not explicitly call out any sibling alternatives.
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?
There is no guidance about when to use this tool versus other DVR-related or preferences-related siblings. The description simply states what the tool does and lists arguments, leaving the agent to infer the appropriate usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_logAIdempotent
Logging a single-line message to the Plex Media Server log.
PUT /log
Args: level: An integer log level to write to the PMS log with.
0: Error
1: Warning
2: Info
3: Debug
4: Verbose message: The text of the message to write to the log. source: A string indicating the source of the message.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | ||
| source | No | ||
| message | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-destructive, idempotent operation. The description adds useful context by identifying the target as the PMS log and documenting the log level meanings, but it does not disclose return behavior, authentication needs, or any side effects beyond writing a log entry.
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 compact, well-structured, and free of filler. It front-loads the core purpose, includes the endpoint, and provides a clear labeled argument list with useful level values.
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 low-complexity logging tool, the description fully documents the parameters and the target resource, and an output schema is present to describe return values. It could be more complete with usage guidance or optionality notes, but nothing critical is missing for calling the 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 only lists property names with no descriptions, so the description carries the full burden. It clearly explains the meaning of all three parameters, including an explicit mapping of integer levels to log severities, which is essential for correct invocation.
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 that this tool logs a single-line message to the Plex Media Server log, with the verb 'logging' and resource 'Plex Media Server log.' It is specific about the operation, though it does not explicitly differentiate itself from the sibling tools create_log and create_log_networked.
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?
There is no guidance about when to use this tool versus alternatives, or any exclusions or prerequisites. The description only explains the parameters and endpoint, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_media_grabbers_devices_by_device_idAIdempotent
Enable or disable a device.
PUT /media/grabbers/devices/{deviceId}
Args: device_id: The ID of the device. enabled: Whether to enable the device
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | ||
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate idempotence and non-destructiveness, so the bar is lowered. The description does not contradict the annotations and accurately reflects a mutation that toggles device state, but it adds no further behavioral context such as side effects, permissions, or retry implications.
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 compact and well ordered: a one-line action, the HTTP route, then two one-line parameter explanations. There is no filler or redundant elaboration.
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 update with annotations covering safety and an output schema covering return values, the description is nearly complete: it provides the route and both parameters. The main gap is lack of format guidance for the enabled parameter, but overall an agent has enough to attempt a correct call.
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 Args section adds qualitative meaning: device_id is 'The ID of the device' and enabled is 'Whether to enable the device.' However, schema description coverage is 0%, and the description does not clarify the accepted string/null values for enabled or what omitting it means, so compensation is only partial.
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 a specific action, 'Enable or disable a device,' with a clear resource and a concrete endpoint path. This distinguishes it from sibling operations on the same device resource, such as delete, channelmap, or prefs updates, without needing to open the schema.
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 given about when to choose this tool over alternatives like delete_media_grabbers_devices_by_device_id or update_media_grabbers_devices_by_device_id_prefs. The usage context is only implied by the enable/disable wording, with no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_media_grabbers_devices_by_device_id_channelmapBIdempotent
Set a device's channel mapping.
PUT /media/grabbers/devices/{deviceId}/channelmap
Args: device_id: The ID of the device. channel_mapping: The mapping of changes, passed as a map of device channel to lineup VCN. channel_mapping_by_key: The mapping of changes, passed as a map of device channel to lineup key. channels_enabled: The channels which are enabled.
| Name | Required | Description | Default |
|---|---|---|---|
| device_id | Yes | ||
| channel_mapping | No | ||
| channels_enabled | No | ||
| channel_mapping_by_key | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, idempotent, non-destructive operation, and the description's 'Set' action is consistent with those hints. It adds a small amount of behavioral context by describing the mappings as 'changes', but it does not clarify whether this replaces the entire mapping, merges changes, or how the optional parameters interact.
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 and front-loaded with the core action, followed by the endpoint and a structured argument list. There is no fluff, though the endpoint line partly repeats information already present in the tool name.
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 four parameters, only one required, and no output schema details in the description, an agent is left uncertain whether to supply channel_mapping, channel_mapping_by_key, both, or neither, and whether channels_enabled is necessary for the desired effect. The relationship between the optional parameters is not explained, which is a significant gap for constructing a correct request.
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 Args section carries the full burden of explaining parameters. It covers all four parameters with meaningful distinctions: device_id, channel_mapping to VCN, channel_mapping_by_key to lineup key, and channels_enabled. The descriptions are terse and 'mapping of changes' is somewhat vague, but they still add value beyond the raw 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 opens with 'Set a device's channel mapping', a specific verb and resource, and the endpoint makes the target clear. It is distinct from the sibling update_media_grabbers_devices_by_device_id by naming the channelmap resource, though it does not explicitly contrast itself with that sibling.
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?
There is no guidance on when to use this tool versus alternatives such as update_media_grabbers_devices_by_device_id or update_media_grabbers_devices_by_device_id_prefs. The description implies its purpose but provides no exclusions, prerequisites, or context that would help an agent select it over similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_media_grabbers_devices_by_device_id_prefsCIdempotent
Set device preferences.
PUT /media/grabbers/devices/{deviceId}/prefs
Args: device_id: The ID of the device. name: The preference names and values. value: Preference value to set.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| value | No | ||
| device_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false). The description adds the HTTP PUT verb, which aligns with and implicitly confirms idempotency, but adds no further context about effects, auth requirements, or whether existing preferences are overwritten or merged. No contradiction with annotations; minimal added 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 text is short and the one-line purpose is front-loaded, but the Args block largely duplicates parameter information already present in the schema, and because it adds confusing semantics rather than clarity, its lines do not fully earn their 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?
For a write operation with an output schema and 0% schema description coverage, the description is under-specified. It never explains what kinds of preferences exist, whether name/value are a pair, what happens to existing preferences, or whether changes take effect immediately. An agent has enough to guess the call shape but not to use it safely or correctly.
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 bears the full burden. It attempts to explain args but poorly: 'name: The preference names and values' is garbled and plural, while the schema shows a single nullable string. The relationship between name and value is not clarified (e.g., do they form a key-value pair? can multiple preferences be set in one call?). An agent cannot confidently construct a correct payload from this.
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 states a specific verb and resource: 'Set device preferences.' The HTTP path clarifies the target (media grabbers devices). However, it doesn't differentiate from sibling _prefs tools like update_livetv_dvrs_by_dvr_id_prefs or update_library_sections_by_section_id_prefs, relying on the tool name to carry the distinguishing resource context.
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 when-to-use guidance, no exclusions, and no reference to alternatives such as update_media_grabbers_devices_by_device_id (updating the device itself) or update_media_grabbers_devices_by_device_id_channelmap. The description provides the endpoint and args but gives an agent no basis for deciding between this and the several sibling update tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_media_subscriptions_by_subscription_idCIdempotent
Edit a subscription.
PUT /media/subscriptions/{subscriptionId}
Args: subscription_id: The unique identifier of the subscription prefs: The preference key to retrieve or set
| Name | Required | Description | Default |
|---|---|---|---|
| prefs | No | ||
| subscription_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds only the HTTP method and the confusing statement that prefs is 'the preference key to retrieve or set' – this is at odds with an update operation and doesn't clarify side effects, scope of changes, or permissions. No meaningful behavioral detail is added beyond the annotations.
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 front-loaded, which is good. However, the Args section contains tautological and misleading content, and the useful information (PUT endpoint) is minimal. It could be restructured to explain that prefs accepts an object of preference updates.
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 2-parameter mutation with an output schema, the description is incomplete. It doesn't explain what prefs should contain, whether the update is partial or full replacement, or how success/failure is conveyed beyond the output schema. An agent would struggle to construct a correct request.
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 explain the parameters, but it fails. 'subscription_id' is just relabeled as 'unique identifier' (tautological), and 'prefs' is described as a 'preference key' while the schema says it's an object of key-value pairs, actively misleading the agent about the expected payload.
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 'Edit a subscription' and includes the PUT endpoint, giving a clear verb and resource. However, it doesn't distinguish this from sibling update_media_subscriptions_by_subscription_id_move or other subscription tools beyond the name, and doesn't specify what fields are editable besides prefs.
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 such as create_media_subscriptions, delete_media_subscriptions_by_subscription_id, or the _move variant. There is no mention of context, prerequisites, or exclusions, so an agent cannot infer when this is the correct choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_media_subscriptions_by_subscription_id_moveAIdempotent
Re-order a subscription.
PUT /media/subscriptions/{subscriptionId}/move
Args: subscription_id: The unique identifier of the subscription after: The subscription to move this sub after. If missing will insert at the beginning of the list
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| subscription_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral detail beyond annotations by clarifying that if 'after' is missing, the subscription is inserted at the beginning of the list. This is useful context that complements the idempotent and non-destructive hints already present in the annotations. No contradiction with annotations.
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 compact and front-loaded with 'Re-order a subscription.' The HTTP line and Args list are directly relevant, and there is no fluff. It could omit the HTTP endpoint, but it adds useful context without significant bloat.
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 operation with an output schema, the description adequately covers the action, target resource, and parameter behavior. It does not discuss return values (covered by output schema) or edge cases, but the tool is straightforward and the essentials are present.
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%, but the description fully explains both parameters: subscription_id identifies the subscription, and after specifies the subscription to move this one after, with a clear fallback to the beginning if omitted. This compensates entirely for the 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 states a specific verb and resource: 'Re-order a subscription.' The HTTP endpoint /move and the distinction from the sibling update_media_subscriptions_by_subscription_id make the tool's specific role clear without needing to inspect schemas.
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?
Usage is implied by the operation name and the 'after' parameter explanation, but the description gives no explicit guidance on when to use this tool versus alternatives like update_media_subscriptions_by_subscription_id or delete_media_subscriptions_by_subscription_id. There is no when-not or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_myplex_refresh_reachabilityCIdempotent
Refresh Reachability.
PUT /myplex/refreshReachability
| 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?
Annotations already indicate the operation is not read-only (readOnlyHint=false) and is idempotent, but the description adds no additional behavioral context. It does not disclose side effects, authorization requirements, rate limits, or what state changes occur on refresh.
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 terse, containing only a phrase and an HTTP path. It is front-loaded and contains no fluff, which is generally good, but it borders on under-specification. Still, for a 0-parameter tool, the brevity is not itself a problem.
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?
Even with zero parameters and an output schema present, the description is incomplete. It fails to define what reachability is, what the refresh operation does, or what observable effect it has. An agent cannot determine when to call this tool or what to expect from it.
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)Skip explanation needed. The schema covers 100% of properties (none), so the description does not need to add parameter details. Baseline 4 for 0 parameters 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 states a specific verb+resource ('Refresh Reachability'), but it is essentially a restatement of the tool name and the HTTP endpoint. It does not explain what 'reachability' means in this context or what the refresh actually does, and it does not differentiate the tool from its many siblings.
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?
There is no guidance on when to use this tool versus any alternative. The description gives no context about the intended scenario, prerequisites, or exclusions. It is a bare command with no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_pins_linkCIdempotent
Link OAuth PIN.
PUT /pins/link
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds no behavioral context beyond restating the action; it does not explain side effects, prerequisites, or what 'linking' an OAuth PIN entails. It does not contradict the annotations.
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 compact, front-loaded with the core action, and includes only the endpoint, the single parameter, and a brief actionable instruction. Every sentence contributes meaning without 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 an output schema exists and annotations cover basic flags, the description still leaves significant ambiguity about what 'link' means, when the operation should be performed, and what the body should contain beyond a generic pointer to other endpoints. It is minimally sufficient but not complete for confident invocation.
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 provides no property details and the body is an open object with additionalProperties true, so schema coverage is 0%. The description identifies body as the 'request payload' and advises reading the GET or /schema endpoint for fields, which is a useful pointer, but it does not describe any actual fields or expected structure, leaving the agent to discover the semantics externally.
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 a specific verb and resource: 'Link OAuth PIN' with the endpoint 'PUT /pins/link'. This makes the operation identifiable and is not merely a restatement of the tool name, though it does not explicitly contrast with sibling PIN tools like create_pins or get_pins_by_pin_id.
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 given about when to use this tool versus alternatives such as create_pins or get_pins_by_pin_id. The only instruction is to read the matching GET or /schema endpoint first, which is a preparation step rather than a usage condition or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_playlists_by_playlist_idBIdempotent
Editing a Playlist.
PUT /playlists/{playlistId}
Args: playlist_id: The ID of the playlist
| Name | Required | Description | Default |
|---|---|---|---|
| playlist_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false, so the description does not need to restate safety. However, it adds minimal context beyond the method, such as the HTTP method (PUT) and the path. It does not disclose potential side effects like overwriting existing properties, but annotations cover the general safety profile.
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 just a short title line and the ARGS block. The essential information (HTTP method and path) is front-loaded. The ARGS block is necessary and directly maps to the schema. There is no extraneous text, though the formatting uses a mix of markdown and plain text that is acceptable.
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 tool has a single parameter and an output schema, but the description does not leverage the output schema to explain return values. It also lacks any notes about error scenarios or the need to provide additional fields in the body (e.g., playlist details), even though the input schema only lists the ID. Given the simplicity, the description is borderline adequate but could mention what aspects of the playlist can be edited.
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 a brief explanation of the playlist_id parameter ('The ID of the playlist'), but the schema already provides the parameter name and type (integer). Schema coverage is 0%, but the description does provide some semantic value by tying the ID to a playlist. Since there is only one parameter and it's self-explanatory from the schema, the added value is marginal.
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 'Editing a Playlist' with the PUT method and path, which clearly indicates the resource and action. It is distinguished from 'create_playlists' by the verb 'update' and the reference to a specific playlist ID. Though it doesn't explicitly name a sibling, the purpose is 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?
The description provides no guidance on when to use this tool versus alternatives like 'create_playlists' or 'update_playlists_by_playlist_id_items'. It doesn't clarify whether this tool handles only basic metadata updates or is appropriate for reordering etc., leaving the agent to infer from the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_playlists_by_playlist_id_itemsCIdempotent
Adding to a Playlist.
PUT /playlists/{playlistId}/items
Args: playlist_id: The ID of the playlist uri: The content URI for the playlist. play_queue_id: The play queue to add to a playlist.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | ||
| playlist_id | Yes | ||
| play_queue_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false, so the description adds little behavioral context beyond stating it is an additive operation. It does not disclose duplicate-item behavior, failure effects, required permission, or response semantics, which would be valuable for a mutation endpoint.
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 organized with an endpoint and an Args block, making the core information easy to scan. Minor formatting issues like the double space in 'Adding to a Playlist' and the redundant 'Args:' header do not significantly hurt readability.
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 3-parameter mutation tool with no schema-level parameter descriptions, the description is incomplete. It fails to explain how to provide multiple items, whether uri and play_queue_id are alternatives or complementary, or what the output/result indicates, leaving a critical gap for correct invocation.
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, but it only paraphrases the parameter names: 'The ID of the playlist', 'The content URI for the playlist', and 'The play queue to add to a playlist'. It does not explain URI format, the relationship between uri and play_queue_id, or whether at least one is required despite playlist_id being the only required field.
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 'Adding to a Playlist' and provides the endpoint PUT /playlists/{playlistId}/items, making the action and resource clear. The name and description together distinguish it from sibling operations like deleting playlist items or moving items within a playlist, though it does not explicitly differentiate itself.
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 gives no guidance on when to use this tool versus alternatives such as update_playlists_by_playlist_id_items_by_generator_id or create_playlists. It only restates the basic operation, leaving the agent to infer usage from the endpoint and name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_playlists_by_playlist_id_items_by_generator_idCIdempotent
Modify a Generator.
PUT /playlists/{playlistId}/items/{generatorId}
Args:
playlist_id: The ID of the playlist
generator_id: The generator item ID to modify.
item: Note: OpenAPI cannot properly render this query parameter example ([See GHI](https://github.com/OAI/OpenAPI-Specification/issues/1706)). It should be rendered as:Item[type]=42&Item[title]=Jack-Jack Attack&Item[target]=&Item[targetTagID]=1&Item[locationID]=-1&Item[Location][uri]=library://82503060-0d68-4603-b594-8b071d54819e/item//library/metadata/146&Item[Policy][scope]=all&Item[Policy][value]=&Item[Policy][unwatched]=0
| Name | Required | Description | Default |
|---|---|---|---|
| item | No | ||
| playlist_id | Yes | ||
| generator_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly=false, idempotent=true, and destructive=false, and the description only restates that this is a modify operation via HTTP PUT. It adds no extra behavioral context such as whether the item is replaced wholesale, auth requirements, or side effects, and it does not contradict the annotations.
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 compact and front-loaded with the operation and path. The long OpenAPI rendering note and GHI link add necessary workaround information but are meta-commentary rather than user guidance, so the structure is only moderately clean.
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 tool has a complex item parameter with unusual query-parameter serialization, but the description does not explain how to pass the object in an MCP call, whether item may be omitted, or what a Generator is in this context. The output schema and annotations cover some concerns, but the missing serialization and semantics guidance leaves an agent guessing.
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 must carry parameter meaning. It gives minimal definitions for playlist_id and generator_id, and while the item parameter is not semantically explained, the detailed query-string example (Item[type], Item[title], Item[Policy], etc.) provides a usable shape for constructing a request. However, it never explains what these fields mean or which are 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 states 'Modify a Generator' and provides the PUT path, which clearly identifies the verb and resource. It doesn't explicitly distinguish itself from sibling playlist-update tools, but the generator-specific resource is evident from the name and path.
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?
There is no guidance on when to use this tool versus update_playlists_by_playlist_id_items, update_playlists_by_playlist_id_items_by_generator_id_by_metadata_id_by_action, or the delete/get generator siblings. The only implied context is the resource name; no alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_playlists_by_playlist_id_items_by_generator_id_by_metadata_id_by_actionBIdempotent
Reprocess a generator.
PUT /playlists/{playlistId}/items/{generatorId}/{metadataId}/{action}
Args: playlist_id: The ID of the playlist generator_id: The generator item ID to act on metadata_id: The metadata item ID to act on action: The action to perform for this item on this optimizer queue
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| metadata_id | Yes | ||
| playlist_id | Yes | ||
| generator_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, destructive, and idempotent hints, so the description does not need to restate those. It adds some context by mentioning an 'optimizer queue' and an 'action to perform,' but it does not explain side effects, required permissions, or what the reprocessing actually changes.
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, front-loaded with a one-line purpose, and follows with a clear endpoint and parameter list. There is no filler or unnecessary repetition beyond the endpoint, which is directly 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?
The description provides enough structure to attempt a call: endpoint, required parameters, and a basic parameter breakdown. However, the lack of valid 'action' values and the absence of guidance on how this differs from sibling generator/playlist tools leave a significant correctness 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?
Schema description coverage is 0%, so the description must compensate, and it does define all four parameters in plain terms. The meanings of playlist_id, generator_id, and metadata_id are clear, but 'action' remains vague with no allowed values or examples.
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 operation as 'Reprocess a generator' and provides the full endpoint, which makes the resource and verb reasonably clear. It does not explicitly differentiate itself from sibling tools like update_playlists_by_playlist_id_items_by_generator_id, but the endpoint and 'optimizer queue' context add specificity.
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?
There is no statement about when to use this tool versus alternatives, and no exclusions or prerequisites are given. The description implies a use case through 'Reprocess a generator,' but it does not help an agent choose among the many playlist-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_playlists_by_playlist_id_items_by_playlist_item_id_moveAIdempotent
Moving items in a playlist.
PUT /playlists/{playlistId}/items/{playlistItemId}/move
Args: playlist_id: The ID of the playlist playlist_item_id: The playlist item ID to move. after: The playlist item ID to insert the new item after. If not provided, item is moved to beginning of playlist
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| playlist_id | Yes | ||
| playlist_item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate idempotentHint=true, destructiveHint=false, and readOnlyHint=false. The description adds the behavior that omitting 'after' starts from beginning of the playlist, which is meaningful. It does not contradict the annotations and adds some context beyond them, though it doesn't discuss permissions or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action and endpoint, and then structured as a compact Args list. Every line provides needed information without filler.
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 mutation with an output schema present, the description adequately explains the operation and all parameters. It lacks notes on prerequisites like item existence or playlist editability, but this is reasonable to leave implicit for this tool and the schema covers returns.
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 carries full responsibility for parameter meaning. It documents all three parameters: playlist_id, playlist_item_id, and after, and explains the behavior when 'after' is omitted. This exceeds the schema's bare list of names and types.
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 opens with 'Moving items in a playlist' and includes the explicit HTTP endpoint 'PUT /playlists/{playlistId}/items/{playlistItemId}/move'. This clearly identifies the verb and resource. It does not explicitly contrast itself with similar sibling tools like update_playlists_by_playlist_id_items, but the 'move' scope is unmistakable from name and endpoint.
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 gives no guidance on when to use this tool versus alternatives such as update_playlists_by_playlist_id_items or update_play_queues_by_play_queue_id_items_by_play_queue_item_id_move. It only states what the tool does, leaving the agent to infer usage from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_play_queues_by_play_queue_idAIdempotent
Add a generator or playlist to a play queue.
PUT /playQueues/{playQueueId}
Args: play_queue_id: The ID of the play queue. uri: The content URI for what we're adding to the queue. playlist_id: The ID of the playlist to add to the playQueue. next: Play this item next (defaults to 0 - queueing at the end of manually queued items).
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | ||
| next | No | ||
| playlist_id | No | ||
| play_queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating but non-destructive, idempotent operation. The description adds useful detail beyond annotations: the HTTP method and that `next` defaults to 0, meaning the item queues at the end of manually queued items. It does not discuss repeated-call behavior, duplicate handling, or response side effects, so there is room above, but it does not contradict annotations.
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 definition is compact and front-loaded: one sentence states the operation, then the endpoint and an Args list give parameter details without repetition or filler. Every line carries useful 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?
For a four-parameter tool with one required field, this is mostly sufficient: it identifies the queue, the item(s) to add, and the optional next behavior. However, it does not spell out the relationship between `uri` and `playlist_id` (whether only one may be supplied or both are allowed), which is a material gap for an agent constructing a valid call.
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%, and the description compensates by explaining all four parameters: `play_queue_id` is the target queue, `uri` is the content to add, `playlist_id` selects a playlist, and `next` controls placement with a default. It could clarify whether `uri` and `playlist_id` are alternatives or combinable, but it adds substantial value over 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 opens with a specific action and object: 'Add a generator or playlist to a play queue.' This clearly differentiates the operation from sibling play-queue tools such as move, reset, or shuffle, and matches the verb in the tool name without merely restating it.
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 intended use is implied by 'Add'—this is the tool to put a generator or playlist into an existing play queue—but there is no explicit when-to-use/when-not-to-use guidance or mention of alternatives like delete_play_queues_by_play_queue_id_items for removal. Sibling context alone is not enough to route an agent confidently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_play_queues_by_play_queue_id_items_by_play_queue_item_id_moveCIdempotent
Move an item in a play queue.
PUT /playQueues/{playQueueId}/items/{playQueueItemId}/move
Args: play_queue_id: The ID of the play queue. play_queue_item_id: The play queue item ID to delete. after: The play queue item ID to insert the new item after. If not present, moves to the beginning.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | ||
| play_queue_id | Yes | ||
| play_queue_item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the HTTP method and the behavior of the 'after' parameter (moves to beginning if absent), which is useful. However, it incorrectly labels play_queue_item_id as 'to delete,' which is a factual error that could mislead the agent about the item's role. Since annotations already indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false), the description's mislabeling undermines 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?
The description is concise: a one-sentence purpose, the HTTP path, and a clear arg list. The structure is front-loaded with the action and easy to scan. The typo detracts slightly but does not significantly hurt the overall conciseness.
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 move operation, the description explains the effect of 'after' but omits details like the overall reordering behavior, what happens to the queue, or any response specifics. The output schema exists but its content is not provided here. The mislabeling of play_queue_item_id further reduces completeness, leaving gaps for an agent trying to use the tool correctly.
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 explain parameters. It does explain play_queue_id and after (including the default behavior), but play_queue_item_id is described as 'to delete,' which is wrong—it should be the item to move. This error makes the parameter semantics unreliable, though the 'after' explanation is adequate.
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 'Move an item in a play queue' with a specific verb and resource, and the HTTP path reinforces the action. It is distinct from sibling operations like reset, shuffle, or unshuffle. However, the parameter description contains a typo ('to delete' for play_queue_item_id), which slightly muddles the otherwise clear purpose.
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 you want to move an item), but it does not explicitly differentiate from alternatives such as the playlist move tool or other queue mutations. There is no mention of when not to use it or any prerequisites, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_play_queues_by_play_queue_id_resetBIdempotent
Reset a play queue.
PUT /playQueues/{playQueueId}/reset
Args: play_queue_id: The ID of the play queue.
| Name | Required | Description | Default |
|---|---|---|---|
| play_queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral detail beyond the annotated hints. It does not explain what 'reset' changes (playback position, queue order, or item history), nor any side effects, despite the annotations indicating a non-read-only, idempotent, non-destructive mutation.
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 tightly structured: a one-sentence purpose, the HTTP endpoint, and the argument list. It contains no filler, though the Args section largely repeats schema 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?
For a single-parameter operation with an output schema and safety annotations, the description is minimally viable. However, 'reset' remains ambiguous in effect, and there is no statement about what state is reset or what the response represents, leaving an agent to rely on domain assumptions.
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 schema description coverage at 0%, the description must define the parameter. 'play_queue_id: The ID of the play queue' provides a basic identifier meaning but is only slightly more informative than the schema's title 'Play Queue Id'; it does not add format, source, or validation context.
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 opens with 'Reset a play queue.', a specific verb and resource. The endpoint 'PUT /playQueues/{playQueueId}/reset' confirms the exact operation, and 'reset' differentiates this from sibling mutations like shuffle, unshuffle, and update.
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 given on when to call reset versus related play-queue operations. The description states only what the endpoint does, with no mention of prerequisites, scenarios, or exclusions, so an agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_play_queues_by_play_queue_id_shuffleBIdempotent
Shuffle a play queue.
PUT /playQueues/{playQueueId}/shuffle
Args: play_queue_id: The ID of the play queue.
| Name | Required | Description | Default |
|---|---|---|---|
| play_queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is not read-only, is non-destructive, and is idempotent; the description adds the PUT method and path but does not describe the effect on the queue order or whether a previous order is recoverable. This is adequate for a simple mutation but lacks richer 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?
The description is very short and front-loads the action, with no filler. The endpoint and Args block are mildly redundant with the schema but still compact and scannable.
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 one-parameter operation with annotations and an output schema, the call is mostly self-contained, but the description leaves usage selection and the exact outcome of 'shuffle' unstated. It is functional without being a complete guide.
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%, and the description's only parameter note — 'The ID of the play queue' — mostly restates the schema title 'Play Queue Id.' It does not add format, bounds, or usage nuance beyond what the parameter name already implies.
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 opens with 'Shuffle a play queue,' naming a specific verb and resource, and reinforces it with the explicit PUT path. It does not make the contrast against sibling operations such as unshuffle or reset explicit, so it misses the top score.
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?
There is no guidance about when to choose this tool over alternatives like update_play_queues_by_play_queue_id_unshuffle or reset, and no prerequisites or exclusions are stated. The intended use must be inferred from the tool name and one-line action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_play_queues_by_play_queue_id_unshuffleBIdempotent
Unshuffle a play queue.
PUT /playQueues/{playQueueId}/unshuffle
Args: play_queue_id: The ID of the play queue.
| Name | Required | Description | Default |
|---|---|---|---|
| play_queue_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the tool to be non-read-only, idempotent, and non-destructive, and the description does not contradict them. 'Unshuffle a play queue' states the core side effect, but the description adds little behavioral context beyond that, such as what happens to playback order or whether authorization is required.
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 front-loaded with the operation in the first sentence. The endpoint and Args lines are clear, though the Args line largely repeats information already present in the schema and could be omitted.
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 one-parameter tool with annotations and an output schema, the description is minimally sufficient to invoke the tool. However, it does not define what 'unshuffle' actually does (e.g., restoring original order versus disabling shuffle) or differentiate it from shuffle/reset siblings, leaving a selection 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?
Schema description coverage is 0%, so the description needed to compensate for the single parameter. It only restates 'play_queue_id: The ID of the play queue,' which adds no real meaning beyond the schema's property name and title 'Play Queue Id.' No constraints, format, or source for the ID are 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?
The description opens with 'Unshuffle a play queue,' a specific verb and resource that clearly states the operation. The endpoint line reinforces the target resource. However, it does not explicitly distinguish itself from sibling operations such as shuffle or reset, relying mostly on the tool name for that differentiation.
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 when-to-use guidance is provided. The description does not mention when unshuffle is appropriate versus shuffle, reset, or other play-queue operations, nor does it list prerequisites or exclusions. The only cue is the verb 'unshuffle,' which implies but does not explain the condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_prefsCIdempotent
Set preferences.
PUT /:/prefs
Args: prefs: The preference key to retrieve or set
| Name | Required | Description | Default |
|---|---|---|---|
| prefs | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no meaningful behavioral detail beyond annotations. The 'retrieve or set' wording is confusing, and it does not state what gets updated, the scope of the preferences, or the effect of passing null.
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 text is very short and front-loaded, but the Args block is confusing and does not earn its place. It is concise but imprecise, and the 'retrieve or set' phrase actively undermines 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?
For a one-parameter tool with 0% schema description coverage, the description fails to explain how to pass preferences or what the data shape should be. It also does not say what scoping the preferences apply to, even though sibling tools and list_prefs/list_prefs_get exist.
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 is solely responsible for explaining the parameter. It calls prefs 'the preference key', but the schema expects an object (or null), not a key. It does not describe the key-value map structure, valid values, or default/null behavior.
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?
'Set preferences' is almost a direct restatement of the tool name, and the Args line says the prefs value is a 'key to retrieve or set', making it unclear whether this is a read or write operation. It gives no differentiation from sibling get/list preference tools or section-specific preference 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?
There is no guidance on when to call this tool instead of list_prefs, list_prefs_get, or the section-scoped preference tools. The description fails to provide any context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_rateAIdempotent
Rate an item.
PUT /:/rate
Args:
identifier: The identifier of the media provider containing the media to rate. Typically com.plexapp.plugins.library
key: The key of the item to rate. This is the ratingKey found in metadata items
rating: The rating to give the item.
rated_at: The time when the rating occurred. If not present, interpreted as now.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| rating | No | ||
| rated_at | No | ||
| identifier | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a non-read-only, idempotent, non-destructive operation. The description adds a useful behavioral detail about `rated_at` defaulting to now, but it does not disclose whether existing ratings are overwritten, what rating values are valid, or any authentication requirements.
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 compact and front-loaded with the core purpose, followed by the endpoint and a clean Args list. There is no redundant filler, and each line contributes useful 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?
For a small four-parameter tool with an output schema and annotations, the description covers the essential parameter semantics and defaults. The main missing context is the expected rating scale/range and behavior when re-rating an already-rated item, which an agent would need for a fully correct invocation.
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 carries the full burden, and it does so well: it explains all four parameters, identifies `key` as the metadata `ratingKey`, provides a typical `identifier` example, and defines the behavior of `rated_at`. This is meaningfully informative beyond the raw 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 action, 'Rate an item,' and reinforces it with the endpoint 'PUT /:/rate'. It is distinct from the broader sibling set, though it does not explicitly call out an alternative or clarify edge cases such as updating vs. creating a rating.
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 intended usage is implied: use this tool when an item needs to be rated. However, there is no explicit guidance about when not to use it, no sibling comparison, and no prerequisites such as whether the item must already exist or whether the rating key is mandatory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_scrobbleBIdempotent
Mark an item as played.
PUT /:/scrobble
Args:
identifier: The identifier of the media provider containing the media to rate. Typically com.plexapp.plugins.library
key: The key of the item to rate. This is the ratingKey found in metadata items
uri: URI of the item to scrobble. Format is library://<section-uuid>/item/<url-encoded-key> or plex://movie/<guid> or plex://episode/<guid>.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| uri | No | ||
| identifier | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover mutability (readOnlyHint=false), idempotency (idempotentHint=true), and non-destructiveness (destructiveHint=false). The description adds no behavioral detail beyond the purpose, such as whether play count is incremented or if repeated calls change state, so it offers little value beyond annotations.
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 and well-structured: a one-line purpose, the endpoint, and a clear parameter list. It is front-loaded with the action and avoids unnecessary content, 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?
The tool is relatively simple and has an output schema plus annotations, but the description lacks important invocation context. It doesn't state whether key or uri is required, how to handle cases where both are provided, or how this action relates to playback state. This is a notable gap for correct invocation.
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 explaining each parameter: identifier as the media provider, key as the ratingKey, and uri with explicit format examples. This adds real meaning, though it does not clarify which parameters are required or how they relate to each other.
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 'Mark an item as played' uses a specific verb and resource, clearly conveying the action. It does not explicitly name sibling tools like update_unscrobble, but the term 'scrobble' and the played/unplayed distinction are enough to differentiate in most cases.
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 such as update_unscrobble or update_rate. There are no prerequisites, usage scenarios, or exclusions mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sharings_by_user_idCIdempotent
Update Share.
PUT /sharings/{userId}
Args: user_id: The unique identifier of the user
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only, is idempotent, and is not destructive. The description adds the HTTP method and path but does not disclose what effect the update has, what fields change, or any side effects. It provides little value beyond the annotations.
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 compact and organized with a path and an Args section, avoiding fluff. However, 'Update Share.' is under-specified and the Args block largely repeats schema information rather than 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?
For a mutation tool with one parameter and an output schema, the description is still incomplete: it does not explain what a 'Share' is, what the update changes, or what the caller should expect. An agent would struggle to know the tool's real purpose among many similar update_* siblings.
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 needed to compensate, but it only restates that user_id is the user's identifier, which the schema already conveys via the property title and integer type. No additional meaning, format, or usage context is 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?
The description states the verb ('Update') and resource ('Share') and includes the HTTP path, so an agent can infer it updates a sharing record for a user. However, 'Share' is vague and it does not differentiate this from related sharing operations beyond the name itself.
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 given about when to use this tool versus alternatives such as delete_sharings_by_user_id or other update tools. The HTTP method and path are shown, but there is no context about prerequisites, intended workflow, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sync_refresh_contentBIdempotent
Refresh Sync Content.
PUT /sync/refreshContent
| 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 adds no behavior beyond the name; it does not disclose what the refresh does, what state it affects, whether authorization is needed, or what side effects occur beyond the annotations. The endpoint path is also encoded in the tool name gallery. The idempotentHint and destructiveHint annotations are present, but the description itself contributes no additional transparent 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?
The description is two short lines, front-loads the action, and includes the explicit HTTP endpoint. There is no wasted text; every token contributes.
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 no-parameter call with an output schema, the description is nearly sufficient, but it lacks context on what 'Sync Content' encompasses and how it differs from 'Refresh Synclists'. The agent is left to infer the behavior from the endpoint pattern and sibling names. It is minimally viable but has clear 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 zero parameters, there is no parameter burden. The schema coverage is 100% (vacuously), and the description is not required to add parameter semantics. Baseline 4 is appropriate for a no-parameter tool.
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 names a specific action ('Refresh') on a resource ('Sync Content') and includes the HTTP endpoint, giving clear verb+resource semantics. However, it does not distinguish 'Sync Content' from the sibling tool 'update_sync_refresh_synclists', and the wording is a near-restatement of the tool name, so it misses full sibling differentiation.
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?
There is no guidance about when to invoke this tool versus alternatives. The description only restates the operation and endpoint, with no conditions, prerequisites, or exclusions. An agent cannot tell whether to use this over update_sync_refresh_synclists or other refresh-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sync_refresh_synclistsCIdempotent
Refresh Sync Lists.
PUT /sync/refreshSynclists
| 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?
Annotations already cover the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), and the description adds only the HTTP method and endpoint path. It does not disclose what the refresh actually affects, whether it is global or scoped, or what side effects occur. The PUT method is consistent with idempotentHint=true; no contradiction exists.
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 compact and front-loads the purpose, with no filler words. However, it is bare-bones: the endpoint line largely duplicates the semantics already present in the tool name, so the structure earns no additional credit for content 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?
The tool is simple (0 params, output schema present, annotations covering safety), so the bar is lower. Still, the description omits operational context: what triggering a refresh does, how it differs from update_sync_refresh_content, and whether it applies globally. Given the ambiguous sibling landscape, an agent has no basis to select this tool confidently.
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, so there is nothing the schema or description needs to document. The baseline of 4 for a zero-parameter tool applies; no parameter information is missing.
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 a verb ('Refresh') and resource ('Sync Lists'), so the core action is identifiable. However, it is essentially a restatement of the tool name (update_sync_refresh_synclists → 'Refresh Sync Lists') and does nothing to distinguish this from the closely related sibling update_sync_refresh_content.
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?
There is no guidance on when to invoke this tool versus alternatives. No context is given about when a sync-list refresh is needed, no exclusions are stated, and the sibling update_sync_refresh_content is not mentioned. The only implied usage is circular: use it to refresh sync lists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_unscrobbleBIdempotent
Mark an item as unplayed.
PUT /:/unscrobble
Args:
identifier: The identifier of the media provider containing the media to rate. Typically com.plexapp.plugins.library
key: The key of the item to rate. This is the ratingKey found in metadata items
uri: URI of the item to scrobble. Format is library://<section-uuid>/item/<url-encoded-key> or plex://movie/<guid> or plex://episode/<guid>.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | ||
| uri | No | ||
| identifier | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the behavioral profile (mutating, idempotent, non-destructive), so the description adds only the endpoint and operation semantics. It does not disclose side effects or prerequisites, but given the annotation coverage this is acceptable. Minor copy-paste wording ('to rate', 'to scrobble') slightly muddies the behavior but does not contradict annotations.
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 one-line summary followed by endpoint and compact arg docs is efficient. The arg descriptions contain unnecessary repetition of rate/scrobble phrasing, but no sentence is extraneous.
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 three-optional-parameter mutation with annotations covering idempotency and safety, plus an output schema, the description covers the endpoint and all parameter semantics. The only notable gap is the lack of usage guidance relative to update_scrobble.
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 carries the full burden, and it documents all three parameters. It adds valuable meaning: identifier's typical value, key's relationship to ratingKey, and uri's concrete format templates.
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 a clear verb and resource in 'Mark an item as unplayed' and reinforces it with the endpoint 'PUT /:/unscrobble'. It is readily distinguishable from the sibling update_scrobble by function, though it never names that tool explicitly.
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?
There is no guidance on when to use this tool versus alternatives such as update_scrobble or update_rate. The endpoint and arg docs imply usage but provide no conditions, exclusions, or selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_updater_applyAIdempotent
Applying updates.
PUT /updater/apply
Args:
tonight: Indicate that you want the update to run during the next Butler execution. Omitting this or setting it to false indicates that the update should install immediately.
skip: Indicate that the latest version should be marked as skipped. The entry for this version will have the state set to skipped.
| Name | Required | Description | Default |
|---|---|---|---|
| skip | No | ||
| tonight | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral context by explaining the scheduling semantics of 'tonight' and the state-change effect of 'skip'. The annotations already indicate this is a mutating, idempotent, non-destructive operation, so the description does not need to repeat that, but it also does not disclose potential side effects such as service restarts or whether the update actually installs immediately when tonight is false.
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 compact and front-loaded with what the tool does, followed by a clean Args section. The HTTP endpoint is slightly redundant with the tool name but not harmful. Every sentence contributes useful 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?
For a low-complexity tool with two optional parameters and an output schema, the description covers the key decision points an agent needs: when the update runs and how to skip a version. It does not explain preconditions like whether an update must first be found or downloaded, but this is a minor gap given 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?
With 0% schema description coverage, the description fully compensates by clearly explaining both parameters. 'tonight' is distinguished between deferred and immediate execution, and 'skip' is tied to a specific state change on the Release entry. This is more informative than the bare schema types.
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 operation clearly as 'Applying updates' with the explicit endpoint 'PUT /updater/apply'. This makes the primary purpose understandable, though it does not distinguish itself from its sibling update_updater_check or explain what 'apply' means in the broader update workflow.
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 like update_updater_check or list_updater_status. It only explains parameter effects, not the conditions under which applying an update is appropriate or what prerequisites must exist first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_updater_checkAIdempotent
Checking for updates.
PUT /updater/check
Args: download: Indicate that you want to start download any updates found.
| Name | Required | Description | Default |
|---|---|---|---|
| download | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that the 'download' argument can trigger starting downloads of found updates, which is a meaningful behavioral detail. It does not elaborate on side effects or prerequisites, but annotations already cover idempotency and destructiveness, and the added context is valuable.
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 and front-loaded. 'Checking for updates' immediately states the purpose, the endpoint is included, and the one parameter is explained without unnecessary filler.
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 with one optional parameter and an output schema, the description is mostly sufficient, but it lacks guidance on when to call it versus sibling update tools and leaves the download parameter's value semantics underspecified. These are clear gaps in 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?
Schema description coverage is 0%, and the description provides a semantic explanation for the single 'download' parameter: 'Indicate that you want to start download any updates found.' This adds meaning beyond the bare schema, but it does not specify accepted string values or how null/false behaves, leaving ambiguity.
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 operation is 'Checking for updates' and identifies the specific endpoint PUT /updater/check. This is a clear verb+resource pairing, though it does not explicitly distinguish itself from sibling tools like update_updater_apply or list_updater_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?
There is no guidance about when to use this tool versus alternative update-related tools. Sibling tools include update_updater_apply, list_updater_status, and list_system_updates, but the description gives no conditions, exclusions, or preferred scenarios to help an agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_user_view_state_syncCIdempotent
Update View State Sync.
PUT /user/view_state_sync
| 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?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered by structured data. The description adds only the HTTP method (PUT), which corroborates idempotency but adds no behavioral context such as side effects, authentication requirements, or what state is modified.
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 with no wasted words, but this is under-specification rather than disciplined conciseness. It contains only a tautological phrase and an endpoint, omitting all explanatory content that the tool's complexity and ambiguous name demand.
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 output schema and annotations cover return values and safety traits, but the core semantics of the operation — what 'view state sync' is, what updating it does, and when it applies — are entirely missing. With zero parameters, the description is the only place to convey the tool's meaning, and it fails to do so.
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%, so there is nothing for the description to document. Per the baseline for 0-param tools, a 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?
"Update View State Sync." is essentially the tool name split into words — a tautology that adds no meaning beyond the name. The endpoint "PUT /user/view_state_sync" confirms the resource path but does not explain what "view state sync" actually is or what updating it entails, so an agent cannot distinguish its purpose from the many other update_* and sync_* siblings.
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 offers zero guidance on when to invoke this tool versus alternatives like get_sync_items_by_sync_id, list_sync, update_sync_refresh_content, or update_sync_refresh_synclists. There are no conditions, prerequisites, or exclusions stated anywhere.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
405 tool updates
v1.0.0- First observed
create_actions_add_to_watchlist - First observed
create_actions_remove_from_watchlist - First observed
create_auth_jwk - First observed
create_auth_token - First observed
create_butler - First observed
create_butler_by_butler_task - First observed
create_by_transcode_type_transcode_universal_fallback - First observed
create_download_queue - First observed
create_download_queue_by_queue_id_add - First observed
create_download_queue_by_queue_id_items_by_item_id_restart - First observed
create_home_users - First observed
create_home_users_by_id_switch - First observed
create_hubs_sections_by_section_id_manage - First observed
create_library_collections - First observed
create_library_file - First observed
create_library_metadata_by_id_arts - First observed
create_library_metadata_by_id_posters - First observed
create_library_metadata_by_ids_by_element - First observed
create_library_metadata_by_ids_extras - First observed
create_library_metadata_by_ids_marker - First observed
create_library_optimize - First observed
create_library_sections_all - First observed
create_library_sections_by_section_id_empty_trash - First observed
create_library_sections_by_section_id_optimize - First observed
create_library_sections_by_section_id_refresh - First observed
create_library_sections_refresh - First observed
create_livetv_dvrs - First observed
create_livetv_dvrs_by_dvr_id_channels_by_channel_tune - First observed
create_livetv_dvrs_by_dvr_id_reload_guide - First observed
create_log - First observed
create_log_networked - First observed
create_media_grabbers_devices - First observed
create_media_grabbers_devices_by_device_id_scan - First observed
create_media_providers - First observed
create_media_providers_refresh - First observed
create_media_subscriptions - First observed
create_media_subscriptions_process - First observed
create_myplex_claim - First observed
create_pins - First observed
create_pins_xml - First observed
create_play_queues - First observed
create_player_playback_audio_stream - First observed
create_player_playback_mute - First observed
create_player_playback_pause - First observed
create_player_playback_play - First observed
create_player_playback_play_media - First observed
create_player_playback_refresh_play_queue - First observed
create_player_playback_seek - First observed
create_player_playback_set_parameters - First observed
create_player_playback_set_rating - First observed
create_player_playback_set_state - First observed
create_player_playback_set_streams - First observed
create_player_playback_set_text_stream - First observed
create_player_playback_set_view_offset - First observed
create_player_playback_skip_by - First observed
create_player_playback_skip_to - First observed
create_player_playback_step_back - First observed
create_player_playback_step_forward - First observed
create_player_playback_stop - First observed
create_player_playback_subtitle_stream - First observed
create_player_playback_unmute - First observed
create_player_playback_video_stream - First observed
create_player_playback_volume - First observed
create_playlists - First observed
create_playlists_upload - First observed
create_security_token - First observed
create_servers_by_machine_id_shared_servers - First observed
create_shared_servers - First observed
create_status_sessions_terminate - First observed
create_timeline - First observed
create_users_password - First observed
create_users_signin - First observed
create_v2_user_webhooks - First observed
create_webhooks - First observed
delete_activities_by_activity_id - First observed
delete_butler - First observed
delete_butler_by_butler_task - First observed
delete_download_queue_by_queue_id_items_by_item_id - First observed
delete_home_users_by_user_id - First observed
delete_hubs_sections_by_section_id_manage - First observed
delete_hubs_sections_by_section_id_manage_by_identifier - First observed
delete_library_caches - First observed
delete_library_metadata_by_ids - First observed
delete_library_metadata_by_ids_marker_by_marker - First observed
delete_library_metadata_by_ids_media_by_media_item - First observed
delete_library_sections_all_refresh - First observed
delete_library_sections_by_section_id - First observed
delete_library_sections_by_section_id_collection_by_collection_id - First observed
delete_library_sections_by_section_id_indexes - First observed
delete_library_sections_by_section_id_intros - First observed
delete_library_sections_by_section_id_refresh - First observed
delete_library_streams_by_stream_id_ext - First observed
delete_livetv_dvrs_by_dvr_id - First observed
delete_livetv_dvrs_by_dvr_id_devices_by_device_id - First observed
delete_livetv_dvrs_by_dvr_id_lineups - First observed
delete_livetv_dvrs_by_dvr_id_reload_guide - First observed
delete_livetv_sessions_by_session_id - First observed
delete_media_grabbers_devices_by_device_id - First observed
delete_media_grabbers_devices_by_device_id_scan - First observed
delete_media_grabbers_operations_by_operation_id - First observed
delete_media_providers_by_provider - First observed
delete_media_subscriptions_by_subscription_id - First observed
delete_play_queues_by_play_queue_id_items - First observed
delete_play_queues_by_play_queue_id_items_by_play_queue_item_id - First observed
delete_playlists - First observed
delete_playlists_by_playlist_id - First observed
delete_playlists_by_playlist_id_items - First observed
delete_playlists_by_playlist_id_items_by_generator_id - First observed
delete_sharings_by_user_id - First observed
delete_status_sessions_history_by_history_id - First observed
delete_users_signout - First observed
get_by_transcode_type_transcode_universal_decision - First observed
get_by_transcode_type_transcode_universal_session_by_session_id_by_segment_id_m4s - First observed
get_by_transcode_type_transcode_universal_session_by_session_id_by_segment_id_ts - First observed
get_by_transcode_type_transcode_universal_start_extension - First observed
get_by_transcode_type_transcode_universal_subtitles - First observed
get_download_queue_by_queue_id - First observed
get_download_queue_by_queue_id_item_by_item_id_decision - First observed
get_download_queue_by_queue_id_item_by_item_id_media - First observed
get_download_queue_by_queue_id_items - First observed
get_download_queue_by_queue_id_items_by_item_id - First observed
get_downloads_by_channel_json - First observed
get_hubs_metadata_by_metadata_id - First observed
get_hubs_metadata_by_metadata_id_postplay - First observed
get_hubs_metadata_by_metadata_id_related - First observed
get_hubs_sections_by_section_id - First observed
get_hubs_sections_by_section_id_manage - First observed
get_library_collections_by_collection_id_composite_by_updated_at - First observed
get_library_collections_by_collection_id_items - First observed
get_library_media_by_media_id_chapter_images_by_chapter - First observed
get_library_metadata_augmentations_by_augmentation_id - First observed
get_library_metadata_by_id_children - First observed
get_library_metadata_by_id_compute_path - First observed
get_library_metadata_by_id_grandchildren - First observed
get_library_metadata_by_id_grandparent - First observed
get_library_metadata_by_id_nearest - First observed
get_library_metadata_by_id_on_deck - First observed
get_library_metadata_by_id_parent - First observed
get_library_metadata_by_id_reviews - First observed
get_library_metadata_by_ids - First observed
get_library_metadata_by_ids_all_leaves - First observed
get_library_metadata_by_ids_by_element_by_timestamp - First observed
get_library_metadata_by_ids_extras - First observed
get_library_metadata_by_ids_file - First observed
get_library_metadata_by_ids_related - First observed
get_library_metadata_by_ids_similar - First observed
get_library_metadata_by_ids_subtitles - First observed
get_library_metadata_by_ids_tree - First observed
get_library_metadata_by_ids_users_top - First observed
get_library_parts_by_part_id_by_changestamp_by_filename - First observed
get_library_parts_by_part_id_indexes_by_index - First observed
get_library_parts_by_part_id_indexes_by_index_by_offset - First observed
get_library_people_by_person_id - First observed
get_library_people_by_person_id_media - First observed
get_library_sections_by_section_id - First observed
get_library_sections_by_section_id_agents - First observed
get_library_sections_by_section_id_albums - First observed
get_library_sections_by_section_id_all - First observed
get_library_sections_by_section_id_all_leaves - First observed
get_library_sections_by_section_id_artists - First observed
get_library_sections_by_section_id_arts - First observed
get_library_sections_by_section_id_autocomplete - First observed
get_library_sections_by_section_id_by_content_rating - First observed
get_library_sections_by_section_id_by_decade - First observed
get_library_sections_by_section_id_by_folder - First observed
get_library_sections_by_section_id_by_resolution - First observed
get_library_sections_by_section_id_by_year - First observed
get_library_sections_by_section_id_categories - First observed
get_library_sections_by_section_id_clips - First observed
get_library_sections_by_section_id_cluster - First observed
get_library_sections_by_section_id_collections - First observed
get_library_sections_by_section_id_common - First observed
get_library_sections_by_section_id_composite_by_updated_at - First observed
get_library_sections_by_section_id_compute_path - First observed
get_library_sections_by_section_id_edit - First observed
get_library_sections_by_section_id_empty_trash - First observed
get_library_sections_by_section_id_episodes - First observed
get_library_sections_by_section_id_filters - First observed
get_library_sections_by_section_id_first_characters - First observed
get_library_sections_by_section_id_hubs - First observed
get_library_sections_by_section_id_label - First observed
get_library_sections_by_section_id_location - First observed
get_library_sections_by_section_id_match - First observed
get_library_sections_by_section_id_moment - First observed
get_library_sections_by_section_id_movies - First observed
get_library_sections_by_section_id_nearest - First observed
get_library_sections_by_section_id_newest - First observed
get_library_sections_by_section_id_on_deck - First observed
get_library_sections_by_section_id_optimize - First observed
get_library_sections_by_section_id_photos - First observed
get_library_sections_by_section_id_playlists - First observed
get_library_sections_by_section_id_prefs - First observed
get_library_sections_by_section_id_recently_added - First observed
get_library_sections_by_section_id_refresh - First observed
get_library_sections_by_section_id_search - First observed
get_library_sections_by_section_id_settings - First observed
get_library_sections_by_section_id_shows - First observed
get_library_sections_by_section_id_sorts - First observed
get_library_sections_by_section_id_tags - First observed
get_library_sections_by_section_id_timeline - First observed
get_library_sections_by_section_id_unmatch - First observed
get_library_sections_by_section_id_unwatched - First observed
get_library_streams_by_stream_id_ext - First observed
get_library_streams_by_stream_id_levels - First observed
get_library_streams_by_stream_id_loudness - First observed
get_livetv_dvrs_by_dvr_id - First observed
get_livetv_dvrs_by_dvr_id_channels - First observed
get_livetv_dvrs_by_dvr_id_guide - First observed
get_livetv_dvrs_by_dvr_id_recordings - First observed
get_livetv_epg_countries_by_country_by_epg_id_lineups - First observed
get_livetv_epg_countries_by_country_by_epg_id_regions - First observed
get_livetv_epg_countries_by_country_by_epg_id_regions_by_region_lineups - First observed
get_livetv_sessions_by_session_id - First observed
get_livetv_sessions_by_session_id_by_consumer_id_by_segment_id - First observed
get_livetv_sessions_by_session_id_by_consumer_id_index_m3u8 - First observed
get_media_grabbers_devices_by_device_id - First observed
get_media_grabbers_devices_by_device_id_channels - First observed
get_media_grabbers_devices_by_device_id_thumb_by_version - First observed
get_media_subscriptions_by_subscription_id - First observed
get_pins_by_pin_id - First observed
get_play_queues_by_play_queue_id - First observed
get_playlists_by_playlist_id - First observed
get_playlists_by_playlist_id_generators - First observed
get_playlists_by_playlist_id_items - First observed
get_playlists_by_playlist_id_items_by_generator_id - First observed
get_playlists_by_playlist_id_items_by_generator_id_items - First observed
get_servers_by_machine_id - First observed
get_services_browse_by_base64path - First observed
get_status_sessions_history_by_history_id - First observed
get_sync_items_by_sync_id - First observed
get_system_agents_by_agent_id - First observed
get_user_by_uuid_settings_opt_outs - First observed
list_accounts - First observed
list_activities - First observed
list_auth_keys - First observed
list_auth_nonce - First observed
list_butler - First observed
list_claim_token_json - First observed
list_clients - First observed
list_cloud_server - First observed
list_devices - First observed
list_diagnostics - First observed
list_diagnostics_databases - First observed
list_diagnostics_logs - First observed
list_eventsource_notifications - First observed
list_features - First observed
list_friends - First observed
list_geoip - First observed
list_home - First observed
list_home_users - First observed
list_hubs - First observed
list_hubs_continue_watching - First observed
list_hubs_continue_watching_items - First observed
list_hubs_home_recently_added - First observed
list_hubs_items - First observed
list_hubs_promoted - First observed
list_hubs_search - First observed
list_hubs_search_voice - First observed
list_identity - First observed
list_ip - First observed
list_library - First observed
list_library_all - First observed
list_library_matches - First observed
list_library_optimize - First observed
list_library_random_artwork - First observed
list_library_recently_added - First observed
list_library_search - First observed
list_library_sections - First observed
list_library_sections_all - First observed
list_library_sections_prefs - First observed
list_library_sections_watchlist_all - First observed
list_library_tags - First observed
list_livetv_dvrs - First observed
list_livetv_epg_channelmap - First observed
list_livetv_epg_channels - First observed
list_livetv_epg_countries - First observed
list_livetv_epg_guide - First observed
list_livetv_epg_languages - First observed
list_livetv_epg_lineup - First observed
list_livetv_epg_lineupchannels - First observed
list_livetv_epg_search - First observed
list_livetv_recordings - First observed
list_livetv_sessions - First observed
list_media_grabbers - First observed
list_media_grabbers_devices - First observed
list_media_grabbers_devices_discover - First observed
list_media_providers - First observed
list_media_subscriptions - First observed
list_media_subscriptions_scheduled - First observed
list_media_subscriptions_template - First observed
list_music_transcode - First observed
list_myplex_account - First observed
list_photo_transcode - First observed
list_ping - First observed
list_play_queues_1 - First observed
list_player_resources - First observed
list_player_timeline_poll - First observed
list_playlists - First observed
list_prefs - First observed
list_prefs_get - First observed
list_progress - First observed
list_resources - First observed
list_resources_2 - First observed
list_root - First observed
list_security_resources - First observed
list_server - First observed
list_server_access_tokens - First observed
list_server_users_features - First observed
list_servers - First observed
list_services_browse - First observed
list_services_ultrablur_colors - First observed
list_services_ultrablur_image - First observed
list_statistics_bandwidth - First observed
list_statistics_resources - First observed
list_status_sessions - First observed
list_status_sessions_background - First observed
list_status_sessions_history_all - First observed
list_sync - First observed
list_sync_items - First observed
list_sync_queue - First observed
list_sync_transcode_queue - First observed
list_system_agents - First observed
list_system_settings - First observed
list_system_updates - First observed
list_transcode_sessions - First observed
list_updater_status - First observed
list_user - First observed
list_users - First observed
list_users_2 - First observed
list_users_account - First observed
list_users_account_json - First observed
list_v2_user_webhooks - First observed
list_webhooks - First observed
list_websocket_notifications - First observed
list_websockets_notifications - First observed
patch_livetv_dvrs_by_dvr_id - First observed
update_actions_remove_from_continue_watching - First observed
update_home_users_by_user_id - First observed
update_home_users_restricted_by_user_id - First observed
update_hubs_sections_by_section_id_manage_by_identifier - First observed
update_hubs_sections_by_section_id_manage_move - First observed
update_invites_requests_by_invite_id - First observed
update_library_clean_bundles - First observed
update_library_collections_by_collection_id_items - First observed
update_library_collections_by_collection_id_items_by_item_id - First observed
update_library_collections_by_collection_id_items_by_item_id_move - First observed
update_library_metadata_by_ids - First observed
update_library_metadata_by_ids_addetect - First observed
update_library_metadata_by_ids_analyze - First observed
update_library_metadata_by_ids_by_element - First observed
update_library_metadata_by_ids_chapter_thumbs - First observed
update_library_metadata_by_ids_credits - First observed
update_library_metadata_by_ids_index - First observed
update_library_metadata_by_ids_intro - First observed
update_library_metadata_by_ids_marker_by_marker - First observed
update_library_metadata_by_ids_match - First observed
update_library_metadata_by_ids_matches - First observed
update_library_metadata_by_ids_merge - First observed
update_library_metadata_by_ids_prefs - First observed
update_library_metadata_by_ids_refresh - First observed
update_library_metadata_by_ids_split - First observed
update_library_metadata_by_ids_unmatch - First observed
update_library_metadata_by_ids_voice_activity - First observed
update_library_optimize - First observed
update_library_parts_by_part_id - First observed
update_library_sections_by_section_id - First observed
update_library_sections_by_section_id_all - First observed
update_library_sections_by_section_id_analyze - First observed
update_library_sections_by_section_id_edit - First observed
update_library_sections_by_section_id_empty_trash - First observed
update_library_sections_by_section_id_move - First observed
update_library_sections_by_section_id_prefs - First observed
update_library_streams_by_stream_id_ext - First observed
update_livetv_dvrs_by_dvr_id - First observed
update_livetv_dvrs_by_dvr_id_devices_by_device_id - First observed
update_livetv_dvrs_by_dvr_id_lineups - First observed
update_livetv_dvrs_by_dvr_id_prefs - First observed
update_log - First observed
update_media_grabbers_devices_by_device_id - First observed
update_media_grabbers_devices_by_device_id_channelmap - First observed
update_media_grabbers_devices_by_device_id_prefs - First observed
update_media_subscriptions_by_subscription_id - First observed
update_media_subscriptions_by_subscription_id_move - First observed
update_myplex_refresh_reachability - First observed
update_pins_link - First observed
update_play_queues_by_play_queue_id - First observed
update_play_queues_by_play_queue_id_items_by_play_queue_item_id_move - First observed
update_play_queues_by_play_queue_id_reset - First observed
update_play_queues_by_play_queue_id_shuffle - First observed
update_play_queues_by_play_queue_id_unshuffle - First observed
update_playlists_by_playlist_id - First observed
update_playlists_by_playlist_id_items - First observed
update_playlists_by_playlist_id_items_by_generator_id - First observed
update_playlists_by_playlist_id_items_by_generator_id_by_metadata_id_by_action - First observed
update_playlists_by_playlist_id_items_by_playlist_item_id_move - First observed
update_prefs - First observed
update_rate - First observed
update_scrobble - First observed
update_sharings_by_user_id - First observed
update_sync_refresh_content - First observed
update_sync_refresh_synclists - First observed
update_unscrobble - First observed
update_updater_apply - First observed
update_updater_check - First observed
update_user_view_state_sync
TDQS
Scored across 405 tools
With 405 auto-generated tools, many are near-duplicates or have unclear boundaries, such as delete_playlists vs delete_playlists_by_playlist_id and multiple library section listing variants. Several GET tools are even described as 'Set...' while POST/PUT versions of the same path exist, making misselection very likely.
Names follow a raw HTTP-verb-plus-path pattern (create_/get_/list_/update_/delete_), but 'get' and 'list' are used inconsistently for GET endpoints, and 'create_' is applied to non-creation actions like create_timeline and create_status_sessions_terminate. Oddities like list_resources_2 and list_prefs_get further break predictability.
405 tools is an extreme count for a single MCP server and appears to be an uncurated dump of the entire Plex REST API. This overwhelms context and makes tool selection impractical; a much smaller curated subset would be appropriate.
The surface is exhaustive, covering library, playlists, play queues, sessions, DVR, sync, users, and system settings, so few major operations are missing. It loses a point because the raw endpoint dump includes many low-level/legacy operations and uneven lifecycle pairs rather than a clean, coherent API surface.
Maintenance
Related MCP Connectors
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceLets AI assistants browse your libraries, search media, get viewing recommendations, check what's on deck, and more — all read-only against your local Plex instance.110 npm1MIT
- FlicenseNot gradedqualityDmaintenanceEnables full management of a Plex Media Server via Claude, including browsing libraries, fixing metadata, managing collections, and more.-
- AlicenseNot gradedqualityCmaintenanceExposes every documented Plex Media Server API operation as a callable tool, plus curated tools for library browsing, media search and editing, playlists, collections, live sessions, user analytics, recommendations, watchlists, playback control and subtitles. Enables clients to query, automate and control a Plex server, discover owned servers and control playback clients through natural language.110 npmMIT
- AlicenseCqualityAmaintenanceEnables full control of Sonarr from Claude.ai and Claude Code by exposing all 234 v3 API operations as tools for managing media libraries.2348 npmMIT