Skip to main content
Glama
rollecode

Audiobookshelf MCP server

by rollecode

Audiobookshelf MCP server

Version Python Audiobookshelf Coverage

Run Audiobookshelf from Claude.ai and Claude Code. All 209 routes are tools. Not a curated subset: every endpoint the web interface can reach, this can reach.

Why not the other options

Audiobookshelf ships docs/openapi.json, but it documents 65 of the 209 routes its Express routers register, so anything generated from it covers under a third of the API. The routers are the complete list:

Approach

Tools

Coverage

Servers built on docs/openapi.json

up to 65

31 %

Hand-written subsets

a dozen or so

under 10 %

This one

209

100 %

The published spec covers libraries, items and a few author and series routes. It leaves out playback sessions, progress, podcasts and their episode downloads, collections, playlists, users, backups, notifications, email and the whole settings surface.

Related MCP server: mcp-openapi-bridge

How it stays complete

scripts/extract_spec.py reads the routers and writes an OpenAPI document, borrowing summaries and parameters from the published docs wherever they exist. scripts/generate_tools.py then turns it into tools:

git clone --depth 1 https://github.com/advplyr/audiobookshelf.git /tmp/abs
python scripts/extract_spec.py /tmp/abs openapi.json
python scripts/generate_tools.py openapi.json src/audiobookshelf_mcp/tools.py

45 of the 209 operations carry the project's own descriptions; the rest are derived from the route.

A test compares every generated call against every operation in the extracted spec, in both directions. A route Audiobookshelf adds and this misses fails the build; so does a tool pointing at a route that does not exist.

Tool names

Verb first, derived from the method and path, so the name says what it does:

Pattern

Meaning

Example

list_*

Read a collection

list_api_libraries, list_api_me

get_*_by_id

Read one record

list_api_libraries_by_id

create_*

POST

create_api_libraries

update_*

PATCH

update_api_libraries_by_id

delete_*

DELETE

delete_api_libraries_by_id

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

What is covered

Every route the three routers register, across /api, /public and /hls: libraries and their items, books, podcasts and episode downloads, authors, series, collections, playlists, search, listening sessions and playback progress, me, users and API keys, notifications, email and ereader devices, RSS feeds and share links, the filesystem browser, caches, backups, logs, tools and the whole settings surface.

Setup

git clone https://github.com/rollecode/audiobookshelf-mcp.git
cd audiobookshelf-mcp
uv venv && uv pip install -e .
export AUDIOBOOKSHELF_URL=http://127.0.0.1:13378
export AUDIOBOOKSHELF_TOKEN=...   # Settings, Users, your user, API token

Claude Code

claude mcp add audiobookshelf -- /path/to/audiobookshelf-mcp/.venv/bin/audiobookshelf-mcp

Writing

Audiobookshelf patches rather than replaces, so body needs only the fields you are changing. Ids are strings throughout, not numbers.

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

audiobookshelf-mcp

8570

The server. No login of its own, never exposed

nginx

8571

Front door, behind a Cloudflare Tunnel

auth-server.js

8572

OAuth 2.1 sign-in, or a fixed bearer token

npm install
node set-password.js 'a password for the sign-in page'
printf 'AUDIOBOOKSHELF_URL=...\n' > ~/.config/audiobookshelf-mcp/env
chmod 600 ~/.config/audiobookshelf-mcp/env

Copy systemd/*.service into /etc/systemd/system/, replacing YOUR_USER and the ISSUER hostname, then:

sudo systemctl enable --now audiobookshelf-mcp audiobookshelf-mcp-auth

Point nginx/audiobookshelf-mcp.conf at your own hostname and send the tunnel at 127.0.0.1:8571.

Environment the server itself reads: AUDIOBOOKSHELF_URL, AUDIOBOOKSHELF_TOKEN. The sign-in page carries the Audiobookshelf mark and accent colour, set through APP_NAME, APP_ACCENT and APP_BLURB in the auth unit.

Claude.ai

Settings, Connectors, Add custom connector, URL https://audiobookshelf-mcp.your-domain/mcp, client ID and secret blank. The sign-in page asks for the password set above. Connectors belong to the account, so adding it once covers mobile too.

Development

uv pip install -e . pytest ruff
.venv/bin/python -m pytest tests
.venv/bin/ruff check .

Available Tools

209 tools
create_api_keysC
Idempotent

Create or act on api api-keys.

POST /api/api-keys

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false (write operation), idempotentHint=true, and destructiveHint=false, so safety is covered. However, the description adds little beyond that—it does not explain side effects (e.g., whether existing keys are invalidated), authentication requirements, or response behavior. The phrase 'act on' is ambiguous and does not disclose what happens on creation. 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.

Conciseness4/5

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

The description is concise, with only three lines including the HTTP endpoint and an Args section. It is not bloated and gets to the point quickly. However, the phrase 'Create or act on' is vague and could be more specific, but overall the structure is efficient.

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

Completeness2/5

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

Given the tool's complexity (one opaque parameter, many related siblings, and an existing output schema), the description is incomplete. It relies on external lookups (GET/schema) for field definitions, does not clarify what 'act on' means, and provides no information about return values or usage conditions. For a create operation with no annotation coverage of behavior, this is insufficient.

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

Parameters2/5

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

Schema coverage is 0%: the only parameter 'body' is an opaque object with additionalProperties=true, so the schema provides no field details. The description directs the agent to read a GET or /schema endpoint for field information, which is a helpful workaround but does not actually describe the parameter semantics. It falls short of compensating for the schema gap.

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

Purpose3/5

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

The description states the resource (api-keys) and HTTP method, but the verb 'act on' is vague and could imply update or delete actions beyond creation. It distinguishes from siblings by mentioning 'api-keys', but does not clearly separate create from patch/delete operations. The tool name clarifies creation, but the description itself lacks precision.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives like patch_api_keys_by_id or delete_api_keys_by_id. The only hint is to read the matching GET or /schema endpoint first, which is a prerequisite for constructing the body but not a usage scenario. No exclusion criteria 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.

create_authorizeC
Idempotent

Create or act on api authorize.

POST /api/authorize

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already convey non-read-only, idempotent, non-destructive, but the description adds no effect or side-effect context. 'Create or act' gives no detail about what the call changes, authorization 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.

Conciseness3/5

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

The description is brief and line-structured, but 'Create or act on api authorize' is weak filler that doesn't earn its place. It is not bloated, yet front-loading is undermined by a vague statement.

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

Completeness2/5

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

For an opaque authorization endpoint with an arbitrary body, the description gives only a discovery pointer and no semantic content. It doesn't explain the purpose of the authorize resource or expected interactions, so an agent would still have to guess or fetch schema.

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

Parameters3/5

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

The sole body parameter is an open additionalProperties object with zero schema descriptions; the description says 'Request payload' and points to GET/schema for field discovery. This is some compensation, though it still leaves actual field semantics undisclosed.

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

Purpose2/5

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

Description says 'Create or act on api authorize' plus the endpoint, which mostly restates the tool's name and gives no concrete operation. It doesn't clarify what authorizing does or how it differs from siblings like patch_auth_settings or create_session_local.

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

Usage Guidelines2/5

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

No guidance about when to use this tool versus alternatives, no exclusions or prerequisites. The only instruction is to read GET/schema, which is about payload discovery, not usage context.

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

create_authors_by_id_imageA
Idempotent

Add an author image to the server.

POST /api/authors/{id}/image

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate idempotentHint=true, readOnlyHint=false, and destructiveHint=false, and the description does not contradict them. The description adds the endpoint and a discovery instruction for the payload, but it does not disclose any additional behavioral traits such as overwrite semantics, response status, or required permissions. With annotations covering the safety profile, 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.

Conciseness4/5

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

The description is short and front-loaded with the purpose. The endpoint line adds useful precision, and the Args section is compact. Minor redundancy like 'to the server' and 'Request payload' does not significantly hurt, but the description is not maximally tight.

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

Completeness3/5

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

The description is adequate for a two-parameter tool with annotations and an output schema. It tells the agent how to handle the uncertain body schema by pointing to the GET and /schema endpoints. However, for an image-related write operation, it leaves ambiguity about content type or body format, and the 'matching GET' reference may not directly describe the create payload. Overall it is usable but not fully complete.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It does meaningfully: 'id: Path parameter' clarifies the role of id, and 'body: Request payload' plus the instruction to read the matching GET or /schema endpoint gives the agent a concrete path to discover the otherwise opaque body fields. This goes beyond the bare schema even though it does not enumerate the fields itself.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Add an author image to the server.' This clearly identifies the action and target, and the explicit POST /api/authors/{id}/image endpoint reinforces it. It is easily distinguished from siblings like get_authors_by_id_image and delete_authors_by_id_image.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as get_authors_by_id_image, delete_authors_by_id_image, or patch_authors_by_id. The note about reading the matching GET or /schema endpoint is about constructing the body, not about tool selection, so the intended usage context is left implicit.

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

create_authors_by_id_matchB
Idempotent

Match the author against Audible using quick match.

POST /api/authors/{id}/match

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, so the description doesn't need to restate those. However, it adds little beyond the obvious POST implies a mutation. It doesn't explain side effects (e.g., updating author metadata), what happens on a successful match, or any auth/rate-limit requirements. The advice to read the schema endpoint is useful but doesn't disclose behavioral traits.

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

Conciseness4/5

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

The description is short and front-loaded with the purpose. It includes the HTTP method and path, which is redundant but helpful for context. It then lists the two parameters with brief notes. Every line earns its place; there is no fluff. It could be slightly more structured, but it is efficient.

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

Completeness2/5

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

For a mutation tool with an open body schema and no output schema visible, the description is incomplete. It doesn't explain what 'quick match' does, what the response looks like, or any prerequisites beyond reading the schema endpoint. It also doesn't mention idempotency or side effects, even though annotations hint at these. An agent would likely need to consult external documentation to use it safely.

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

Parameters4/5

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

Schema coverage is 0% for the body parameter, which is just an open object. The description compensates by telling the agent to read the matching GET or /schema endpoint to learn the expected fields, which is valuable guidance. For 'id', it simply says 'Path parameter,' which is self-evident from the schema. Overall, the description adds meaningful direction for constructing the body.

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

Purpose4/5

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

The description states a specific verb and resource: 'Match the author against Audible using quick match.' It clearly indicates the action is matching an author, and the endpoint path is provided, which helps distinguish it from other match tools for items or podcasts. However, it doesn't explicitly differentiate from sibling match tools beyond the resource, so it's not a 5.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives. It does instruct the user to read the matching GET or /schema endpoint first, which is a prerequisite, but there is no mention of conditions or exclusions that would route an agent to a different match tool. The description lacks any 'when not to use' or comparison with siblings.

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

create_backupsC
Idempotent

Create or act on api backups.

POST /api/backups

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate idempotency, non-read-only, and non-destructive behavior. The description adds little beyond that, only restating that the operation creates or acts on backups and showing the HTTP method. It does not explain side effects, outcomes, or any additional behavioral traits, and 'act on' is too vague to be informative.

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

Conciseness4/5

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

The description is short and well-organized with the endpoint and argument breakout. The only waste is the ambiguous 'or act on' phrase, which could be removed for clarity.

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

Completeness3/5

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

With a single free-form body parameter and an output schema present, the description gives a reasonable discoverability path. Still, it lacks concrete details about what the tool actually does, what success looks like, and how this relates to sibling backup operations.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It correctly identifies 'body' as the request payload and directs the agent to consult the matching GET or /schema endpoint for fields, which is useful. However, it does not describe any actual fields or their meaning, leaving significant discovery work to the agent.

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

Purpose3/5

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

The description states the resource ('api backups') and a verb ('Create'), but the phrase 'or act on' adds ambiguity and doesn't specify the exact operation. It also does not distinguish this tool from the closely related sibling 'create_backups_upload'.

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

Usage Guidelines3/5

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

The description implies usage when creating backups and instructs the agent to read the matching GET or /schema endpoint first. However, it provides no explicit guidance on when to prefer this tool over alternatives like create_backups_upload, nor any exclusion criteria.

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

create_backups_uploadC
Idempotent

Create or act on backups upload.

POST /api/backups/upload

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior2/5

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

Annotations already provide idempotentHint, destructiveHint, and readOnlyHint. The description adds no behavioral context beyond 'act on backups upload', which is vague. It does not mention side effects, authentication, or what happens on success/failure. Given the annotations, 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.

Conciseness3/5

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

The description is short but contains redundant/vague phrasing ('Create or act on') and repeats the endpoint. It could be more concise and front-loaded with the core action. It is not overly long, but lacks precision.

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

Completeness2/5

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

The tool has a complex body parameter and an output schema, but the description does not clearly explain what the tool does. It points to schema for fields but leaves the operation itself ambiguous. It also does not relate to backup lifecycle or mention any prerequisites. Incomplete for an agent to confidently invoke.

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

Parameters3/5

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

The description clarifies that 'body' is a request payload and directs the agent to read the schema for field details. This is helpful given the schema has no field documentation (0% coverage). However, it does not describe any actual fields or provide syntax, so it only partially compensates.

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

Purpose3/5

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

The description states the resource (backups upload) but uses the vague phrase 'Create or act on' which does not specify the exact action. It does not distinguish from sibling tools like create_backups, and the endpoint is merely restated. The verb is present but ambiguous.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The only hint is to read the schema, which is about parameter usage, not tool selection. There is no mention of 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.

create_cache_items_purgeD
Idempotent

Create or act on items purge.

POST /api/cache/items/purge

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.7/5.0
Behavior2/5

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

Annotations declare idempotentHint=true and destructiveHint=false, suggesting a non-destructive, repeatable operation, yet the name and endpoint with 'purge' strongly imply deletion. The description does not reconcile this: it never clarifies whether it is destructive or what side effects occur. It does not explain the response shape or error behavior. Given the annotations already cover some traits, the description adds almost no behavioral context and even hints at potential contradiction.

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

Conciseness3/5

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

The description is short and gets to the endpoint quickly, but it mixes the endpoint into the prose awkwardly and leaves the explanation fragmented. The instruction to read GET or /schema is useful but could be better structured as a separate note. Overall it is concise but not well-organized.

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

Completeness1/5

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

For a tool with a single unstructured body parameter and no output schema explanation, the description is severely lacking. It does not clarify the purpose, the required body, the differences from sibling tools, or the impact of the operation. The agent is left to guess and must go to external documentation. This is far from complete.

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

Parameters1/5

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 the schema description coverage is 0%. The description simply says 'Request payload' and tells the user to read the GET or /schema endpoint to discover fields. This is not helpful; it places the entire documentation burden on external endpoints. There is no attempt to describe likely body properties or give an example.

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

Purpose2/5

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

The description says 'Create or act on items purge' and shows the endpoint POST /api/cache/items/purge dropped into the middle of prose. It is not a clean verb+resource statement; 'Create or act on' is vague and 'purge' is ambiguous (is it a noun or a verb?). Since the sibling create_cache_purge exists, the phrase 'items purge' weakly distinguishes it, but the purpose is still unclear without inferring it is a cache purge operation.

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

Usage Guidelines1/5

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 sibling create_cache_purge, nor any mention of alternatives or prerequisites. The only hint is the endpoint path, which the agent might not understand. The instruction to read the GET or /schema endpoint first is generic and does not clarify when to call this purge.

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

create_cache_purgeC
Idempotent

Create or act on cache purge.

POST /api/cache/purge

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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

Annotations already indicate idempotentHint=true, readOnlyHint=false, and destructiveHint=false, but the description adds no behavioral context about what a purge does, whether it invalidates immediately, what gets cleared, or any side effects. It does not contradict the annotations, but it also provides no 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.

Conciseness4/5

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

The description is short and front-loaded, with no fluff. The endpoint is stated clearly and the parameter guidance is compact, though the opening line is vague and could have been more informative.

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

Completeness2/5

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

For a tool with one loosely typed body parameter, no documented fields, and a nearby sibling with a similar name, the description is too incomplete. It does not explain the purpose, effects, required fields, or relationship to create_cache_items_purge, so an agent would struggle to invoke it correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It identifies 'body' as the request payload and points to the GET/schema endpoint for fields, which is a small hint, but it does not explain any actual body fields or their meaning. The schema's additionalProperties:true leaves the agent almost entirely unguided.

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

Purpose2/5

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

The description says 'Create or act on cache purge,' which is vague and largely restates the tool name. The endpoint line 'POST /api/cache/purge' identifies the route but does not clarify what the operation actually does or what 'act on' means.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as create_cache_items_purge. The advice to 'Read the matching GET or the /schema endpoint first' concerns how to discover fields, not when to select this tool.

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

create_collectionsC
Idempotent

Create or act on api collections.

POST /api/collections

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already cover idempotency, non-read-only, and non-destructive behavior. The description adds little beyond 'Create or act on' and the endpoint, and does not clarify side effects, authentication needs, or what 'act on' entails. It does not contradict the annotations, but it also does not meaningfully 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.

Conciseness4/5

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

The description is brief and front-loaded with the resource and endpoint, then provides argument guidance. Every sentence serves a purpose, though the phrasing could be more specific.

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

Completeness2/5

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

For a create operation with a free-form body, the description should specify how to determine the required fields and what actions the endpoint supports. It points to external schema resources but leaves 'matching GET' ambiguous and does not clarify the intended use cases relative to sibling tools.

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

Parameters2/5

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

The schema offers no field descriptions, and the description only says 'body: Request payload' and advises reading the GET or /schema endpoint for expected fields. This pointer is helpful but vague—it does not identify which GET endpoint, list any fields, or explain the body structure beyond what the schema already states.

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

Purpose3/5

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

The description states the verb 'Create' and the resource 'api collections', so the core action is identifiable. However, the vague alternative 'or act on' broadens the meaning without explaining what other actions are possible, and it does not distinguish this tool from sibling create_collections_by_id_batch_add or patch_collections_by_id.

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

Usage Guidelines2/5

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

No guidance is given for when to use this tool versus the many sibling collection tools. The only instruction is to read the matching GET or /schema endpoint, which concerns body construction rather than tool selection.

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

create_collections_by_id_batch_addC
Idempotent

Create or act on batch add.

POST /api/collections/{id}/batch/add

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

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

The description provides no behavioral details beyond the annotations. It doesn't mention idempotency (though annotations do), response format, or any side effects. It does not state what happens on success or failure, 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.

Conciseness3/5

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

The description is concise and follows a clear structure with endpoint and args. However, the opening sentence 'Create or act on batch add' is vague and could be clearer. It is not overly verbose, but it sacrifices clarity for brevity.

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

Completeness2/5

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

Given the operation's complexity (POST with a body), the description is insufficient. It doesn't explain what the batch add operation entails, what the body should contain, or what the expected outcome is. The existence of an output schema mitigates the need to describe return values, but the core purpose remains undefined.

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

Parameters2/5

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

The schema has 0% description coverage, and the description only labels id as a path parameter and body as a request payload. It directs the user to read the GET/schema endpoint for fields, but does not describe any actual parameters or their meanings.

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

Purpose2/5

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

The description says 'Create or act on batch add' and provides the endpoint, but does not clarify what 'batch add' does. It is not clear whether this adds items to a collection, updates items, or something else. The name and endpoint suggest adding multiple items, but the description lacks a clear verb-resource statement.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like create_collections_by_id_batch_remove or create_playlists_by_id_batch_add. The description only instructs to read the GET/schema endpoint for field details, which is a prerequisite, not usage guidance.

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

create_collections_by_id_batch_removeC
Idempotent

Create or act on batch remove.

POST /api/collections/{id}/batch/remove

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false and idempotentHint=true, and the description adds little beyond that. It says 'act on batch remove' but doesn't disclose what gets removed, whether it's reversible, or any side effects. The wording is confusing and doesn't clarify the operation's nature.

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

Conciseness2/5

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

The description is short but poorly structured: the first sentence is confusing ('Create or act on batch remove'), and important context is buried. It doesn't front-load the key purpose and provides only a generic schema-reading note.

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

Completeness2/5

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

For a tool with an unstructured body and no parameter documentation, the description is insufficient. It tells the agent to look elsewhere for fields, but doesn't provide enough context about the operation's effect or prerequisites. The output schema exists, but the description doesn't leverage it.

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

Parameters2/5

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

With 0% schema coverage, the description must compensate, but it only labels id as 'Path parameter' and body as 'Request payload' without explaining required fields or structure. The advice to read the schema is not a substitute for semantic description.

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

Purpose2/5

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

The description says 'Create or act on batch remove' which is vague and misleading; it doesn't clearly state that this tool removes items from a collection. The endpoint path hints at batch removal, but the purpose is not articulated distinctly from siblings like batch_add or delete_collections_by_id.

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

Usage Guidelines2/5

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

Only guidance is 'Read the matching GET or the /schema endpoint first' – it tells the agent to consult external resources but doesn't explain when to use this tool vs. single-item delete or batch add. No alternative tools are mentioned or excluded.

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

create_collections_by_id_bookC
Idempotent

Create or act on collections book.

POST /api/collections/{id}/book

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already cover readOnly=false, idempotent=true, destructive=false. The description adds no additional behavioral context, such as what the action actually does, side effects, or prerequisites. It doesn't contradict the annotations, but it also doesn't enrich the agent's understanding beyond what structured fields provide.

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

Conciseness4/5

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

The description is concise and well-structured: purpose line, endpoint, and argument list. It avoids unnecessary verbosity and front-loads the endpoint. However, conciseness here comes at the cost of informativeness.

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

Completeness2/5

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

Despite having an output schema and nested objects, the description fails to explain the core action. An agent cannot determine what 'act on collections book' does, what the expected body shape is, or what the return value represents. The note to read the schema is a workaround but not a substitute for describing the tool's function.

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

Parameters1/5

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

Schema description coverage is 0%, so the description is the only source for parameter meaning, but it only says 'id: Path parameter' and 'body: Request payload'. This is tautological and does not explain what id represents (collection ID?) or what body should contain. It defers to external schema endpoints, which is insufficient.

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

Purpose2/5

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

The description says 'Create or act on collections book' which is vague and largely restates the tool name. It doesn't specify what the 'book' action does (e.g., adding a book to a collection, marking as read, etc.), and it doesn't distinguish from siblings like create_collections or create_collections_by_id_batch_add. The endpoint path gives some context, but the purpose remains unclear.

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

Usage Guidelines2/5

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

The description instructs to 'Read the matching GET or the /schema endpoint first to see the fields this resource expects', which is a useful precondition but not about when to choose this tool over alternatives. It provides no guidance on scenarios where this should be used instead of batch_add or patch operations.

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

create_custom_metadata_providersB
Idempotent

Create or act on api custom-metadata-providers.

POST /api/custom-metadata-providers

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already convey readOnlyHint=false and idempotentHint=true; the description does not contradict them. It adds some value by revealing that the body schema must be discovered via GET or /schema, but it does not explain side effects, whether the operation can create multiple providers, or what 'act on' means.

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

Conciseness4/5

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

The description is short and organized into endpoint, args, and guidance. It avoids unnecessary detail, but the vague 'Create or act on' phrasing and the semi-redundant endpoint line keep it from being maximally tight.

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

Completeness4/5

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

For a tool with one free-form body parameter and an existing output schema, the description includes the crucial prerequisite (read GET/schema first) and the endpoint. It is complete enough for an agent to construct a request, though the ambiguous action semantics and lack of alternative guidance remain minor gaps.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by identifying `body` as the request payload and directing the agent to the GET or /schema endpoint to learn the expected fields. This is useful because the body is an open object (`additionalProperties: true`), though it still omits concrete field examples.

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

Purpose3/5

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

The description identifies the resource (`custom-metadata-providers`) and includes a `POST` path, so an agent can tell this is the creation endpoint. However, the phrase 'Create or act on' is vague—'act on' does not specify what action is performed or what creating a provider entails, and it does not differentiate this tool from sibling list/delete providers beyond the HTTP path.

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

Usage Guidelines2/5

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

There is no statement about when to use this tool versus alternatives such as list_custom_metadata_providers or delete_custom_metadata_providers_by_id. The only guidance is the prerequisite to read the matching GET or /schema endpoint first, which helps with invocation but 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_emails_ereader_devicesC
Idempotent

Update e-reader devices.

POST /api/emails/ereader-devices

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so the safety profile is covered. The description adds the instruction to read the GET/schema first, which is a useful behavioral hint about how to discover the request format. However, it does not disclose other behavioral traits such as what happens if the device does not exist (e.g., does it create or error), whether this operation affects existing devices, or what the response contains. The 'Update' behavior is mentioned but conflicts with the tool name's 'create' prefix, which is a transparency issue.

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

Conciseness4/5

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

The description is concise, using two sentences and a structured 'Args:' block. It front-loads the core action ('Update e-reader devices.') and includes the full endpoint URL, making it easy to scan. The structure is efficient, though the brevity sacrifices necessary details, which is factored into other dimensions.

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

Completeness2/5

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

The tool has one complex object parameter, an output schema exists, and there are many related siblings. The description only instructs to read the GET/schema for fields, which is helpful but insufficient for context. It does not explain what an e-reader device is in this context, how it relates to email, or how it differs from 'create_me_ereader_devices'. The name-description mismatch adds ambiguity. An agent would need additional inference or external knowledge to use this correctly.

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

Parameters3/5

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

The schema has only a 'body' parameter with additionalProperties: true, essentially a free-form object with no described fields (0% coverage). The description says 'body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.' This provides meaningful guidance on how to determine the actual fields, compensating for the lack of schema detail. While it does not list any specific fields, it directs the agent to a discovery mechanism, which is useful but not complete.

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

Purpose3/5

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

The description states 'Update e-reader devices.' and provides the endpoint POST /api/emails/ereader-devices, which clearly specifies an action and resource. However, the tool name is 'create_emails_ereader_devices' while the description says 'Update', creating a mismatch that could confuse an agent. Additionally, it does not differentiate this tool from closely named siblings like 'create_me_ereader_devices' or 'create_emails_send_ebook_to_device', so the purpose is not fully unambiguous.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It only instructs the agent to read the matching GET or /schema endpoint before sending the body, which is a usage hint for constructing the request but not for choosing this tool over others. There is no mention of exclusions or comparisons to sibling tools.

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

create_emails_send_ebook_to_deviceB
Idempotent

Send ebook to device.

POST /api/emails/send-ebook-to-device

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare the operation is not readOnly, is idempotent, and is not destructive, so the description does not need to repeat those traits. The description adds the 'send' behavior and the requirement to discover fields, but it discloses no side effects, prerequisites, or response behavior 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.

Conciseness4/5

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

The description is compact: a one-line action, the endpoint, and a short args note. It is front-loaded with the most important information and contains no filler. It could be slightly more informative without becoming bloated, but the structure is efficient.

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

Completeness2/5

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

Given an opaque body schema, no field descriptions, and many related sibling tools, the description is not complete enough for an agent to confidently construct the request payload or know when this tool is the right choice. It does direct the agent to the schema endpoint, which mitigates the gap, but it leaves key usage context unresolved.

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

Parameters2/5

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

Schema coverage is 0% and the body parameter is an opaque object with additionalProperties: true. The description identifies body as the request payload and points to the GET or /schema endpoint for field discovery, but it supplies no concrete parameter semantics or field details. This is a helpful pointer rather than actual semantic coverage.

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

Purpose4/5

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

The description states a clear action and resource: 'Send ebook to device.' This is distinguishable from sibling tools like create_emails_ereader_devices, which manage devices, and create_emails_test, which tests email settings. However, it does not explicitly differentiate itself or clarify what 'device' means 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.

Usage Guidelines3/5

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

The description gives an explicit prerequisite: 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' This tells the agent how to prepare, but it does not explain when to select this tool over alternatives such as create_emails_ereader_devices or list_emails_settings.

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

create_emails_testB
Idempotent

Send test email.

POST /api/emails/test

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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 by structured data. The description's only additional behavioral disclosure is that the body fields are discoverable via GET or /schema — a small hint about API discoverability. It does not disclose what sending a test email actually does (e.g., whether it sends to the configured address, whether it fails fast if SMTP is unconfigured, whether it persists anything). No contradiction with annotations, but minimal added behavioral value.

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

Conciseness5/5

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

The description is tightly structured and front-loaded: purpose first ('Send test email'), then the HTTP endpoint, then the parameter note. Every line earns its place, and the parameter guidance is appropriately brief. No redundant phrasing or restatement of the tool name.

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

Completeness3/5

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

For a one-parameter tool with an output schema and annotations covering idempotency/non-destructiveness, the description covers the basics: purpose, endpoint, and how to discover the payload. However, it never explains the real-world purpose of a test email (verifying that email/notification settings work), nor what a successful response means for the caller. These gaps are moderate for such a simple tool, making it adequate but not complete.

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

Parameters3/5

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

Schema description coverage is 0% and the single body parameter is an opaque object with additionalProperties: true, so the schema alone is nearly useless. The description partially compensates by labeling body as 'Request payload' and directing the agent to the matching GET or /schema endpoint for field discovery. This is a helpful pointer, but it stops short of enumerating any actual fields, so the agent still needs at least one additional call to understand the payload.

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

Purpose4/5

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

The description states a specific verb and resource ('Send test email') that distinguishes it from email-related siblings like create_emails_send_ebook_to_device and create_emails_ereader_devices. Including the exact endpoint (POST /api/emails/test) further anchors the tool's identity. It loses the fifth point only because it never clarifies what 'test' validates (e.g., verifying SMTP settings) — a nuance an agent selecting this tool would benefit from.

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

Usage Guidelines3/5

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

The description offers procedural guidance ('Read the matching GET or the /schema endpoint first to see the fields this resource expects'), which is useful for constructing the request correctly. However, it provides no explicit when-to-use context versus alternatives — there is no statement of when sending a test email is appropriate (e.g., after configuring email settings) or which sibling handles other email operations. Usage context is only implied by the tool's name.

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

create_feeds_by_id_closeC
Idempotent

Create or act on feeds close.

POST /api/feeds/{id}/close

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already declare this as non-read-only, idempotent, and non-destructive. The description adds only the endpoint URL and a pointer to schema for the body, but does not explain the action's effect, permission requirements, or state changes. With annotations present, the description still fails to provide meaningful 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.

Conciseness3/5

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

The description is compact and well-structured with a URL and Args section, containing no wasted words. However, it is under-specified: the opening purpose sentence is too vague, and brevity comes at the cost of clarity.

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

Completeness2/5

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

The tool has an arbitrary object body and a domain-specific action ('close'), but the description lacks any explanation of what the action does, when it is appropriate, or side effects. It relies entirely on the schema pointer and annotations, which is insufficient for correct invocation.

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

Parameters3/5

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

With schema description coverage at 0%, the description compensates slightly by labeling id as a path parameter and body as the request payload, and by instructing to read the matching GET or /schema endpoint for expected fields. This adds some meaning beyond the bare schema, though the actual body structure remains unspecified.

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

Purpose2/5

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

The description says 'Create or act on feeds close,' which is vague and nearly restates the tool name. It provides the URL POST /api/feeds/{id}/close, hinting at a close action, but never defines what 'close' means in this domain or distinguishes it from the many feed-related sibling tools like create_feeds_*_open.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. The only instruction is to read the matching GET or /schema endpoint for the body payload, which addresses parameter discovery, not usage selection. No exclusions or alternative tools are mentioned.

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

create_feeds_collection_by_collection_id_openC
Idempotent

Create or act on collection open.

POST /api/feeds/collection/{collectionId}/open

Args: collection_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
collection_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already indicate idempotentHint=true and destructiveHint=false, but the description adds no behavioral context such as side effects, authorization needs, or what 'acting on collection open' entails. It does not contradict the annotations, but it also does not meaningfully extend them.

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

Conciseness3/5

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

The description is short and includes a structured Args section with little fluff. However, the opening phrase 'Create or act on collection open' is vague and does not earn its place as a clarifying statement.

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

Completeness2/5

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

The description leaves the core semantics of the 'open' action unexplained and provides no usage context relative to sibling feed tools. The pointer to GET/schema helps with body discovery, but the overall operational picture is incomplete for an agent deciding whether and how to invoke this tool.

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

Parameters3/5

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

The description identifies collection_id as a path parameter and body as the request payload, which adds modest context over the bare schema. The instruction to read the matching GET or /schema endpoint for expected fields is useful given that body is an open object with 0% schema description coverage, but it does not explain concrete parameter values.

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

Purpose2/5

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

The description says "Create or act on collection open," which is vague and largely restates the tool name without defining what 'open' means or what effect it has on the collection. The endpoint path clarifies the resource but does not explain the operation's purpose or distinguish it from sibling open/close feed tools.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives such as create_feeds_by_id_close or create_feeds_item_by_item_id_open. The only operational advice is to read the matching GET or /schema endpoint first, which is a preparation step, not a selection criterion.

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

create_feeds_item_by_item_id_openC
Idempotent

Create or act on item open.

POST /api/feeds/item/{itemId}/open

Args: item_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
item_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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

Annotations tell us the operation is not read-only, is idempotent, and is not destructive, but the description adds little behavioral context beyond the vague "Create or act." It does not explain what side effect occurs, whether authentication is required, or what retrying the operation might imply. No contradiction with annotations exists, but the description carries almost no behavioral weight.

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

Conciseness4/5

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

The description is short and includes the endpoint and parameter list in a scannable format. The pointer to the GET/schema endpoint is useful and avoids duplicating schema details. Minor waste exists in the vague "Create or act" phrasing, but overall it is compact.

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

Completeness2/5

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

Even though an output schema exists, the input contract is underspecified: body is a free-form object and the description defers entirely to other endpoints. The tool's actual purpose remains unclear, and there is no guidance about which feed items are valid or what "open" means in this domain. This is not enough context for an agent to use the tool confidently.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only labels item_id as a path parameter and body as a request payload. It directs agents to read a GET or /schema endpoint for body fields, which is helpful but does not explain the expected fields or their meaning. The description fails to give meaningful semantics for either parameter.

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

Purpose2/5

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

The description says "Create or act on item open," which is vague and essentially restates the tool name without explaining what opening an item means. The endpoint path suggests a POST to mark an item as open, but the description never states the effect or resource semantics clearly. It does not distinguish this from sibling tools like create_feeds_by_id_close or create_feeds_collection_by_collection_id_open.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the many sibling feed/open/close tools. The instruction to read the matching GET or /schema endpoint is about payload discovery, not about choosing this tool over alternatives. The description provides no context for when this 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_feeds_series_by_series_id_openC
Idempotent

Create or act on series open.

POST /api/feeds/series/{seriesId}/open

Args: series_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
series_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations already communicate idempotency and non-destructiveness, but the description adds little behavioral context. It does not explain what state changes 'open' causes, whether it affects feed subscriptions, what options exist in the body, or what the response indicates.

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

Conciseness3/5

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

The description is appropriately short and includes the endpoint and an Args list, so it is not bloated. However, the first sentence is vague and the organization is minimal; the space could have been better used to describe the operation's meaning.

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

Completeness2/5

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

For an action-oriented endpoint with an opaque body object and no field documentation, the description is incomplete. It lacks the core semantics of the operation, any selection criteria relative to sibling tools, and any behavioral side effects. The output schema existing reduces return-value burden, but the description still does not equip an agent to call this tool confidently.

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

Parameters3/5

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

The input schema has 0% description coverage, so the description must compensate. It does add minimal useful semantics by identifying series_id as a path parameter and body as the request payload, plus it points the agent to the GET or /schema endpoint to learn expected fields. This is helpful but still leaves the actual body structure undisclosed.

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

Purpose2/5

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

The description says only 'Create or act on series open', which essentially restates the tool name without defining what 'open' means as an operation. The HTTP path adds endpoint specificity, but the semantic purpose remains vague and does not distinguish this from the many sibling open/close feed tools.

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

Usage Guidelines2/5

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

No guidance is given for when to use this tool versus siblings like create_feeds_collection_by_collection_id_open or create_feeds_by_id_close. The only usage hint is to read the matching GET or /schema endpoint first, which is generic rather than a clear when-to-use rule.

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

create_filesystem_pathexistsD
Idempotent

Create or act on filesystem pathexists.

POST /api/filesystem/pathexists

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations indicate readOnlyHint:false, idempotentHint:true, destructiveHint:false, but the description adds no behavioral context. It does not explain what the tool does (e.g., checks path existence, creates a record, etc.), whether it has side effects, or what the response looks like. With such minimal annotations, the description carries the full burden and fails to disclose any behavior beyond the endpoint.

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

Conciseness2/5

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

The description is short (two lines) but under-specified rather than concise. It lacks essential information, so brevity is not a virtue here. The structure is minimal but does not front-load useful details; it only gives a generic 'Create or act' and an endpoint.

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

Completeness1/5

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

Given the tool's ambiguous name and the open-ended body parameter, the description is grossly incomplete. It does not explain what the tool accomplishes, what the request body should contain, or what the response will be (even though an output schema exists, the agent cannot infer the input). This is inadequate for an agent to invoke it correctly.

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

Parameters1/5

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

The only parameter is 'body' which is an open object (additionalProperties true) with no schema description. Schema coverage is 0%. The description tells the agent to read the GET or /schema endpoint to find fields, deferring responsibility rather than providing any meaning. This provides no value beyond the schema's empty 'body' definition.

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

Purpose2/5

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

The description says 'Create or act on filesystem pathexists' which is vague and ambiguous. It does not state a specific verb like 'check' or 'verify' and the resource 'pathexists' is not clarified. It gives an endpoint but that alone does not explain the tool's purpose. It does not distinguish from siblings, though none are similar, but it fails to provide a clear function.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool vs alternatives. The description does not mention any context, prerequisites, or exclusions. It simply points to the endpoint and tells the agent to read the GET or /schema endpoint, which is not usage guidance.

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

create_genres_renameD
Idempotent

Create or act on genres rename.

POST /api/genres/rename

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.8/5.0
Behavior2/5

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

Annotations cover idempotentHint=true and destructiveHint=false, so the description does not need to repeat those. However, it provides little extra behavioral context beyond 'Read the matching GET or the /schema endpoint first.' It does not explain what the rename operation does, any side effects, or why idempotency matters here.

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

Conciseness2/5

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

The description is concise but the opening sentence is unhelpful and tautological. The endpoint line is useful context, but the overall structure front-loads vagueness rather than the key purpose. It could be shorter and more informative, but the vague phrasing wastes space.

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

Completeness2/5

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

For a mutation tool with a nested-body parameter and an output schema, the description is incomplete. It tells the agent to read the schema, but does not provide any context about what the rename does, what fields are expected, or how to construct a valid request. The annotations cover safety, but the behavioral purpose is still unclear.

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

Parameters2/5

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

The input schema has only a single 'body' parameter with additionalProperties:true, and schema description coverage is 0%. The description does not explain any fields or structure, only instructs to fetch the schema. This does not add semantic meaning beyond the schema and leaves the agent to discover details externally.

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

Purpose2/5

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

The description opens with 'Create or act on genres rename,' which is vague and does not clearly state the operation. The tool name implies renaming a genre, but 'create or act on' is ambiguous. It does not distinguish itself from siblings like create_tags_rename or delete_genres_by_genre.

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

Usage Guidelines1/5

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 when a rename is appropriate, what distinguishes it from create_tags_rename, or any exclusions. The agent is left 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.

create_items_batch_deleteD
Idempotent

Create or act on batch delete.

POST /api/items/batch/delete

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.8/5.0
Behavior1/5

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

The tool is clearly a batch delete operation (as implied by the endpoint and name), yet the annotations declare destructiveHint=false. The description itself says 'batch delete' but does not disclose that this permanently deletes items, nor does it mention any consequences, permissions, or reversibility. This contradicts the annotations, and the description fails to carry the burden of 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.

Conciseness3/5

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

The description is extremely short (two sentences), but it lacks a clear structure. It mixes a high-level phrase with an endpoint and a generic schema-reading instruction. While concise, it is under-specified and not front-loaded with the most important information (that this is a destructive batch delete).

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

Completeness1/5

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

For a mutation/delete tool, the description is grossly incomplete. It does not specify what items are affected, what the request body must contain, what the response looks like (despite having an output schema), or any conditions or limitations. The annotation idempotentHint=true is not explained, and no guidance on idempotent retries is provided. An agent cannot safely invoke this tool without further investigation.

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

Parameters2/5

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

The schema defines a single 'body' parameter as an open object with additionalProperties, and schema description coverage is 0%. The description only says to read the schema endpoint for expected fields, which is a pointer but not an explanation. It does not describe what the body should contain (e.g., list of item IDs) or any structure, leaving the agent without concrete parameter semantics.

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

Purpose2/5

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

The description 'Create or act on batch delete' is vague and does not clarify that the tool performs a batch deletion of items. It does not distinguish from sibling tools like create_items_batch_update or delete_items_by_id. The name starts with 'create' which is misleading for a delete operation, and the description does not resolve this ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as delete_items_by_id or other batch operations. It only advises reading the schema for the request body, but does not explain the intended use case or prerequisites. No context about selecting this tool over other delete methods is given.

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

create_items_batch_getD
Idempotent

Create or act on batch get.

POST /api/items/batch/get

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.3/5.0
Behavior1/5

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

Annotations provide idempotentHint=true and destructiveHint=false, but the description adds nothing about behavior. It doesn't clarify whether the operation is read-only or mutating, and the phrase 'Create or act' is ambiguous. No side effects or response details 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.

Conciseness2/5

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

The description is brief but under-specified. It contains two sentences, but they are unhelpful, so it's not effective conciseness; it's just lacking content.

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

Completeness1/5

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

The description is extremely incomplete. It doesn't explain what the body should contain, what the response looks like, or how to use the tool effectively. The existence of an output schema is not leveraged, and the description provides no context about the batch get operation.

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

Parameters1/5

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

The only parameter is 'body' with additionalProperties:true and no schema description. The description only says 'Read the matching GET or the /schema endpoint first', which is a pointer, not actual semantics. Since schema coverage is 0%, the description fails to compensate.

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

Purpose2/5

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

The description says 'Create or act on batch get' which is vague and doesn't clearly state what the tool does. It provides the endpoint but not the operation's purpose, and doesn't distinguish it from siblings like create_items_batch_delete or create_items_batch_update.

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

Usage Guidelines1/5

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 are many batch operations, and the description doesn't mention conditions or alternatives.

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

create_items_batch_quickmatchC
Idempotent

Create or act on batch quickmatch.

POST /api/items/batch/quickmatch

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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

Annotations provide idempotentHint=true and destructiveHint=false, but the description adds no behavioral detail about what quickmatch actually does, whether it modifies metadata, launches a background job, or returns match candidates. 'Create or act on' is too vague to disclose real behavior beyond what annotations already state.

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

Conciseness4/5

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

The description is brief and front-loads the core intent, endpoint, and argument section without rambling. However, the first sentence is vague and could have been replaced with a more specific explanation of the quickmatch operation.

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

Completeness2/5

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

Even with an output schema present, the description is not complete enough for an agent to call this tool correctly. The core semantics of quickmatch are undefined, the body schema is opaque, and the only guidance is to look elsewhere. An agent still cannot tell what this endpoint expects or what side effects it produces.

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

Parameters2/5

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

Schema description coverage is 0%, and the only parameter, body, is an opaque object with additionalProperties true. The description says body is the 'request payload' and points to the matching GET or /schema endpoint, but it does not describe any expected fields, structure, or examples. This does not compensate for the total lack of schema documentation.

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

Purpose2/5

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

The description says 'Create or act on batch quickmatch', which essentially restates the tool name and uses the vague 'act on' instead of a specific action. It does not explain what quickmatch does or distinguish it from siblings like create_items_batch_update, create_items_batch_scan, or create_items_by_id_match.

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

Usage Guidelines2/5

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

The only usage guidance is 'Read the matching GET or the /schema endpoint first', which is a prerequisite hint, not guidance about when to choose this tool over alternatives. It never states the conditions for using this tool versus create_items_batch_update or create_items_batch_scan.

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

create_items_batch_scanC
Idempotent

Create or act on batch scan.

POST /api/items/batch/scan

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

The description adds no behavioral detail beyond what the annotations already indicate: readOnlyHint is false and destructiveHint is false, so this is neither a pure read nor a destructive operation. It does not explain side effects, idempotency implications, or what happens when the batch scan runs.

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

Conciseness3/5

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

The description is short and reasonably structured with the HTTP method, endpoint, and args clearly separated. However, the opening sentence is vague and contributes little, so the compactness 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.

Completeness2/5

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

Given the open body payload, output schema, and many related batch and scan siblings, the description lacks enough context for reliable invocation. It does not clarify what the scan does, how it differs from related endpoints, or what success or failure looks like.

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

Parameters3/5

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

The body parameter is an open object with no schema descriptions, and the description at least identifies it as the request payload and directs the agent to inspect the matching GET or /schema endpoint for expected fields. This provides a useful discovery path, though it does not describe any concrete fields or structure.

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

Purpose2/5

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

The phrase 'Create or act on batch scan' essentially restates the tool name without defining what a batch scan does or what 'act' means. The endpoint path clarifies the resource but not the behavior, leaving the agent to guess how this differs from sibling tools like create_items_batch_update or create_items_by_id_scan.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as create_items_batch_get, create_items_batch_update, or create_items_by_id_scan. The instruction to read the matching GET or /schema endpoint is about payload discovery, not 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.

create_items_batch_updateC
Idempotent

Create or act on batch update.

POST /api/items/batch/update

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already indicate idempotentHint=true, readOnlyHint=false, and destructiveHint=false, but the description adds almost no behavioral context beyond 'read the schema first.' It does not explain what side effects a batch update has, whether it replaces or merges fields, or what authorization may be required. There is no contradiction with annotations, but the description does not meaningfully supplement them.

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

Conciseness3/5

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

The description is short and structurally organized, with the endpoint and args clearly separated. However, the opening sentence 'Create or act on batch update' is vague and mostly redundant with the tool name, so it does not earn its place as the primary purpose statement.

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

Completeness2/5

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

For a batch-update operation with an open request body, the description should at least specify what objects are affected, whether the update is partial or full, and how this differs from sibling batch operations. None of that context is present; the description leaves the agent dependent on external schema discovery and sibling-tool inference.

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

Parameters2/5

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

Schema description coverage is 0% and the body parameter is an opaque object with additionalProperties: true. The description labels body as 'Request payload' and points to GET/schema for field discovery, which is somewhat helpful, but it never explains what the payload should represent, such as item IDs or which fields are being updated. This falls short of compensating for the complete lack of schema-level parameter descriptions.

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

Purpose2/5

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

The description essentially restates the tool name: 'Create or act on batch update' adds no concrete detail about what the operation does. The endpoint path hints that it targets items, but the description never says 'update multiple items' or describes the effect. This is closer to a 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.

Usage Guidelines2/5

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 create_items_batch_delete, create_items_batch_get, or create_items_batch_quickmatch. The only instruction, to read the matching GET or /schema endpoint first, is a prerequisite for parameter discovery rather than a usage criterion.

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

create_items_by_id_chaptersC
Idempotent

Create or act on items chapters.

POST /api/items/{id}/chapters

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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 safety profile is covered. However, the description adds little behavioral context: it does not explain what 'act on chapters' does, what side effects occur, or whether existing chapters are modified or replaced.

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

Conciseness4/5

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

The description is short, front-loads the endpoint, and keeps the parameter notes brief. Its only real defect is the awkward and unhelpful opening phrase 'Create or act on items chapters,' but there is no wasted prose.

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

Completeness2/5

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

For a mutation endpoint with an unstructured body and minimal schema information, the description relies almost entirely on external discovery via the GET or /schema endpoint. It does not convey what a valid chapter payload should contain, what the operation actually does, or what prerequisites apply, leaving the agent under-informed.

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

Parameters3/5

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

Schema description coverage is 0%, and the body parameter is an open object with no documented properties. The description compensates minimally by labeling id as a path parameter and directing the agent to inspect the GET or /schema endpoint for body fields, but it offers no concrete field-level guidance.

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

Purpose3/5

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

The description names the resource ('items chapters') and gives the endpoint, which distinguishes it from sibling tools, but the verb phrase 'Create or act on' is vague and does not clearly state whether this creates, updates, or replaces chapters. It is understandable only in combination with the POST URL.

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

Usage Guidelines2/5

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

The description provides a prerequisite ('Read the matching GET or the /schema endpoint first') but gives no guidance on when to use this tool versus alternatives like patch_items_by_id_tracks or other create_items_by_id_* endpoints. The intended usage is only implied by the resource 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_items_by_id_coverC
Idempotent

Create or act on items cover.

POST /api/items/{id}/cover

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already cover readOnly, destructive, and idempotent hints, so the description is not the only source. It adds the insight that the body fields must be discovered from a matching GET or /schema endpoint, and the POST path implies a mutation. It does not disclose auth requirements, failure modes, or what side effects occur beyond creating/acting on the cover, but 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.

Conciseness4/5

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

The definition is concise, front-loaded with the one-line purpose, then the exact endpoint, then parameter notes. Every sentence earns its place; there is no filler or repetition of the input schema.

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

Completeness3/5

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

With an output schema and useful annotations, the description does not need to explain return values. However, it leaves the core action ambiguous ('create or act on') and does not say whether the cover payload is JSON, binary, or multipart; the pointer to /schema partially compensates. It is adequate but relies on the agent performing an extra discovery step.

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

Parameters3/5

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

Schema description coverage is 0%, so this dimension needs weight. The description identifies id as a path parameter and body as a request payload, and importantly tells the agent to consult GET or /schema to see the actual fields. It does not describe specific body fields, but for an open additionalProperties object, the lookup instruction is a reasonable substitute.

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

Purpose3/5

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

The summary names a resource ('items cover') and a POST action, so it is more than a tautology. But 'Create or act on items cover' is vague: it does not say whether this uploads, replaces, or generates cover art, and it does not distinguish itself from patch_items_by_id_cover or delete_items_by_id_cover. The endpoint path adds clarity but does not define the exact operation.

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

Usage Guidelines2/5

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

No when-to-use guidance is provided. The only instruction, 'Read the matching GET or the /schema endpoint first,' addresses body discovery, not tool selection or exclusion of related siblings. An agent gets no help choosing this over patch_items_by_id_cover or get_items_by_id_cover.

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

create_items_by_id_matchC
Idempotent

Create or act on items match.

POST /api/items/{id}/match

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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 those. However, the description adds no behavioral context beyond the vague 'Create or act': it does not disclose what state changes occur, whether metadata providers are required, or whether existing match data will be replaced. 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.

Conciseness3/5

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

The description is short and includes the essential endpoint and parameter hints, but the opening sentence 'Create or act on items match' is vague and adds little value. It is not poorly structured overall, but the lead wastes the opportunity to clarify the action.

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

Completeness2/5

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

With an output schema present, return values need not be explained, but the description still leaves critical gaps: what 'match' does, when to call it, what prerequisites exist, and how it differs from batch quickmatch. For a mutation-style action on items, this is insufficient context for an agent to confidently invoke it.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It identifies id as a path parameter and body as the request payload, and it instructs the agent to consult the matching GET or /schema endpoint for field details. This is genuinely helpful for the body object, but it does not explain what id refers to or what fields body should contain.

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

Purpose2/5

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

The description says 'Create or act on items match,' which essentially restates the tool name without clarifying what 'match' means as an operation. The endpoint path POST /api/items/{id}/match is precise, but the description does not explain the effect of the match action or distinguish it from similar tools like create_items_batch_quickmatch.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as create_items_batch_quickmatch or create_items_batch_scan. The only usage-related instruction is to read the matching GET or /schema endpoint first, which is a parameter prerequisite rather than a tool-selection guideline.

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

create_items_by_id_playC
Idempotent

Create or act on items play.

POST /api/items/{id}/play

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already convey idempotentHint, readOnlyHint, and destructiveHint, and the description adds little behavioral context beyond the endpoint. It does not mention side effects, authentication requirements, or what happens to playback state, so the description adds minimal value over 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.

Conciseness4/5

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

The description is compact and scannable: endpoint, args, and a discovery pointer. The opening phrase 'Create or act on items play' is awkward, but every line serves a purpose and there is no unnecessary filler.

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

Completeness2/5

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

The core action is left ambiguous and the description does not place the tool among its many siblings. The GET/schema advice helps with the body, but an agent still lacks a clear understanding of what the play operation does and when to choose it over the episode-specific sibling.

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

Parameters3/5

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

The schema only provides types, so the description usefully clarifies that id is a path parameter and body is the request payload. It also points the agent to the GET or /schema endpoint to discover body fields, which partially compensates for 0% schema description coverage, but actual body fields remain undisclosed.

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

Purpose3/5

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

The description names the endpoint and HTTP method, so it identifies the resource as items/{id}/play. However, 'Create or act on items play' is vague and does not clearly state that this starts or triggers playback, nor does it distinguish from the sibling play_by_episode_id tool.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives. The instruction to read the matching GET or /schema endpoint is a prerequisite for body discovery, not a usage rule. It does not clarify whether this is for whole items only and that episodes should use create_items_by_id_play_by_episode_id.

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

create_items_by_id_play_by_episode_idD
Idempotent

Create or act on items play.

POST /api/items/{id}/play/{episodeId}

Args: id: Path parameter. episode_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
episode_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=false and idempotentHint=true, so the description need not restate those. However, it adds no behavioral context beyond telling the agent to 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' This hints at needing to inspect external schemas but does not explain what the tool actually does, side effects, or expected outcome. It offers minimal extra value over 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.

Conciseness2/5

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

The description is short but poorly structured and under-specified. The first line is ungrammatical and doesn't add clarity. While it front-loads the HTTP endpoint, the rest is repetitive of the parameter names. It is not concise in a helpful way; it omits essential details while dwelling on trivial labels.

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

Completeness1/5

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

Given the tool has a nested body object and no schema descriptions, complete contextual information is essential, but the description is grossly inadequate. It does not explain the purpose of the play action, what the body should contain, or what the response looks like (despite an output schema existing). The agent is left dependent on external endpoints, which may not be accessible in the context. This is far from minimally viable for correct invocation.

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

Parameters1/5

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 fails. It merely labels id and episode_id as path parameters without explaining what they represent (e.g., item ID, episode ID). The body is described as 'Request payload' with a pointer to external docs, but no hint of required fields or structure is given. This leaves the agent unable to construct a valid request without extra lookups, severely lacking in semantic detail.

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

Purpose2/5

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

The description states 'Create or act on items play' which is vague and largely restates the tool name. It does include the HTTP endpoint (POST /api/items/{id}/play/{episodeId}), but does not clarify what 'play' means or what action is performed. It fails to distinguish itself from the sibling create_items_by_id_play, making it hard for an agent to know exactly what this variant does.

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

Usage Guidelines1/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention the sibling create_items_by_id_play or any other context. There is no note about prerequisites, typical use cases, or situations where this tool is preferred, leaving the agent without any routing information.

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

create_items_by_id_scanC
Idempotent

Create or act on items scan.

POST /api/items/{id}/scan

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

The description adds minimal behavioral context beyond annotations. It does not state that the operation triggers a scan, whether it requires authentication, or what side effects occur. The only hint is to read the schema endpoint for the body, which implies the body is dynamic but does not explain the operation's behavior. Annotations already indicate idempotency and non-destructiveness, but the description does not enrich that.

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

Conciseness3/5

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

The description is concise but structurally sparse. It includes an endpoint and a minimal args list. The opening line 'Create or act on items scan' is vague and does not front-load a clear purpose. The format is acceptable but not well-organized; it could benefit from a clearer separation of purpose and usage.

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

Completeness2/5

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

Given the complexity (POST with dynamic body, many sibling tools), the description is incomplete. It does not explain the tool's purpose, the body's expected structure, the response, or when to use it. The pointer to the schema endpoint is a partial workaround, but the description itself is not self-contained, leaving the agent to make assumptions.

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

Parameters3/5

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

The description provides some guidance: it identifies id as a path parameter and body as a payload, and advises reading the GET or /schema endpoint for fields. However, with schema coverage at 0% (body is an open object), this guidance is insufficient to construct a valid request without external lookup. It adds value by pointing to the schema but does not compensate fully for the lack of defined parameters.

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

Purpose2/5

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

The description 'Create or act on items scan' is ambiguous—it does not clarify what 'scan' means or what action is performed. The endpoint POST /api/items/{id}/scan suggests a scan operation, but the description does not differentiate from sibling tools like create_items_batch_scan or create_libraries_by_id_scan. The verb 'Create' is also unclear—does it create a scan job or act on an existing one? The description repeats the tool name without explaining its function.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention that this scans a single item, while create_items_batch_scan scans multiple items, or any other distinguishing context. The description only gives the endpoint and a pointer to the schema, offering no usage criteria.

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

create_librariesA
Idempotent

Create a new library on server.

POST /api/libraries

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide idempotentHint=true, destructiveHint=false, and readOnlyHint=false, covering the basic side-effect profile. The description adds the HTTP method and a schema-discovery instruction, but does not explain response behavior, error cases, or consequences of repeated calls. This is acceptable given the annotations but adds limited 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.

Conciseness5/5

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

The description is compact and front-loaded: the purpose appears first, the endpoint next, and the args section is minimal. Every line earns its place, and there is no redundant prose or filler.

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

Completeness3/5

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

Given that an output schema exists and annotations carry the safety profile, the description does not need to explain return values. However, it leaves the actual creation payload entirely undocumented and relies on the agent to query GET/schema at call time. This is workable but not complete on its own, so it barely meets the minimum viable bar.

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

Parameters2/5

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

Schema coverage is 0%: the only parameter, body, is an opaque additionalProperties object with no field descriptions. The description repeats that body is a 'Request payload' and points to GET/schema for field discovery, which is helpful meta-guidance but does not actually describe what the body must contain. Low-coverage schemas require the description to compensate, and this one only defers the work rather than supplying semantics.

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

Purpose5/5

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

The opening sentence 'Create a new library on server' names a specific action and resource, and the POST /api/libraries line makes the target unambiguous. It is clearly distinguishable from sibling creation tools like create_collections or create_users without needing to open their schemas.

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

Usage Guidelines3/5

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

The description implies usage: use this when creating a new library. It also gives a preparatory instruction to read the GET or /schema endpoint before constructing the body. However, it does not list alternatives or state when this tool should not be used, so guidance is only implicit rather than explicit.

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

create_libraries_by_id_remove_metadataC
Idempotent

Create or act on libraries remove-metadata.

POST /api/libraries/{id}/remove-metadata

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

The description and endpoint reveal only that metadata is removed; they do not describe effects, reversibility, permissions, or how this interacts with library data. Annotations already cover idempotency and non-destructiveness, so the description adds little behavioral context beyond what is structured.

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

Conciseness3/5

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

The description is short and lists Args in a structured way, but the first sentence is garbled ('Create or act on libraries remove-metadata') and the body parameter is left to an external lookup. It is compact but not cleanly written.

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

Completeness2/5

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

For a mutating action with an opaque body schema, the description omits the tool's actual effect and selection criteria. It does tell the agent to consult /schema for body fields, but that is not enough to understand what the operation does or when it is appropriate.

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

Parameters2/5

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

With 0% schema description coverage, the description must explain the parameters, but it only labels id as a path parameter and body as a request payload. It points to the GET or /schema endpoint for body fields, which is helpful, but it never says what id refers to or what fields body should contain.

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

Purpose4/5

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

The description names the resource ('libraries') and the action ('remove-metadata') and gives the exact POST endpoint, so an agent can tell it apart from library scan/update/delete siblings. However, the opening phrase 'Create or act on libraries remove-metadata' is an awkward auto-generated construction rather than a clean statement like 'Removes metadata from a library.'

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

Usage Guidelines2/5

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

There is no guidance on when to choose this tool over patch_libraries_by_id, delete_libraries_by_id, or other library actions. The instruction to read the GET or /schema endpoint before supplying the body is about preparing the request, not about selecting this tool.

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

create_libraries_by_id_scanC
Idempotent

Create or act on libraries scan.

POST /api/libraries/{id}/scan

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations state the tool is non-read-only, idempotent, and non-destructive, but the description adds little behavioral context. It does not disclose that acting on a library scan likely triggers background work, what consequences that has for library content, or what the POST response represents. The 'Create or act on' phrasing is too vague to inform the agent of 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.

Conciseness3/5

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

The description is short and includes the endpoint and argument guidance without excessive padding. However, the first line 'Create or act on libraries scan' is uninformative filler that does not earn its place, weakening the overall structure.

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

Completeness2/5

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

With a meaningless purpose statement, no distinction from sibling scan tools, and an open-ended body object, the description is not complete enough for an agent to confidently select and invoke this tool. Having an output schema helps with return values, but the missing operational semantics and selection guidance leave major gaps.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate. It does clarify that 'id' is a path parameter and 'body' is the request payload, and it directs the agent to the GET or /schema endpoint for body fields. However, it provides no semantics for what id identifies, what body fields are expected, or what valid values look like, leaving a significant burden on the external schema lookup.

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

Purpose2/5

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

The description is essentially a tautology: 'Create or act on libraries scan' restates the tool name without explaining what the operation actually does. It does identify the resource (library scan) and the HTTP endpoint, but an agent cannot tell from this that it triggers a scan, what scanning means, or how it differs from create_items_by_id_scan or create_items_batch_scan.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus sibling scan-related tools, nor any indication of prerequisites or side effects. The only usage hint is to read the matching GET or /schema endpoint before calling, which addresses payload discovery but 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_libraries_orderC
Idempotent

Create or act on libraries order.

POST /api/libraries/order

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already indicate this is not read-only, not destructive, and idempotent; the description adds no side-effect details, permissions, or conditions. It does not contradict the annotations, but it reveals nothing about what creating or acting on a libraries order actually changes or requires.

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

Conciseness3/5

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

The description is short and mostly front-loaded, but the opening sentence merely restates the tool name and adds little value. The endpoint and body guidance are useful, but the tautological first line keeps this from being tightly effective.

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

Completeness2/5

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

For an operation with a generic body, a large sibling set, and no behavioral detail, this description is incomplete. It leaves the meaning of 'libraries order' unexplained and relies on the agent to go elsewhere to understand both the payload and the operation's effect.

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

Parameters2/5

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

The input schema only defines an open-ended body object, and schema description coverage is 0%. The description tells the agent to read the matching GET or /schema endpoint to discover expected fields, which is a helpful pointer, but it does not describe the body semantics or any concrete fields, so it only partially compensates for the schema gap.

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

Purpose2/5

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

The description only restates the tool name ('Create or act on libraries order') and gives the endpoint path. It never says what an 'order' is, whether it means reordering libraries or creating an order object, or what 'act on' covers. The broad phrasing fails to distinguish this from close siblings like create_libraries or patch_libraries_by_id.

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

Usage Guidelines2/5

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

The only guidance is to read the matching GET or /schema endpoint first, which is a prerequisite rather than a usage rule. There is no explanation of when to use this tool vs. alternatives, nor any explicit exclusions. An agent is left to infer the appropriate context 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_me_ereader_devicesC
Idempotent

Create or act on me ereader-devices.

POST /api/me/ereader-devices

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare idempotentHint=true, readOnlyHint=false, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond the vague 'Create or act on' – it does not explain idempotency, side effects, or what happens on repeated calls. The phrase 'act on' introduces ambiguity about whether the tool may mutate or replace existing resources.

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

Conciseness4/5

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

The description is concise: two short sentences plus an Args block, with the endpoint front-loaded. It avoids fluff and clearly points to an authoritative schema source. However, the phrase 'Create or act on' is not as crisp as it could be, and the structure could benefit from a more precise action verb.

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

Completeness3/5

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

An output schema exists, so return values are covered. The pointer to the GET/schema endpoint is essential for the open 'body' object, but the description does not explain what 'ereader-devices' are, their relationship to the current user, or why one would use this over sibling endpoints. It is minimally sufficient for a knowledgeable agent but lacks domain context.

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

Parameters2/5

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

The schema has no descriptions for the single 'body' parameter (0% coverage), so the description must compensate. It only advises reading the matching GET or /schema endpoint, which is a pointer rather than actual parameter semantics. The agent still has no inline understanding of required fields or data types.

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

Purpose4/5

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

The description states a specific verb and resource: 'Create or act on me ereader-devices,' matching the endpoint and tool name. However, 'or act on' is ambiguous and could imply update/delete actions, weakening the clarity. It does not explicitly distinguish from sibling ereader-related tools like create_emails_ereader_devices.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives, nor any exclusions or conditions. The only directive, 'Read the matching GET or the /schema endpoint first,' is a procedural instruction for body construction, not a usage guideline. An agent is left 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.

create_me_item_by_id_bookmarkC
Idempotent

Create or act on item bookmark.

POST /api/me/item/{id}/bookmark

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare non-read-only, idempotent, and non-destructive behavior, so the description only needs to add extra context. It provides the HTTP method and path, and instructs to read the matching GET or /schema endpoint for body fields, which is useful procedural guidance beyond the annotations. However, it does not describe side effects or what 'act' entails, leaving a gap in 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.

Conciseness4/5

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

The description is compact and structured, clearly separating the endpoint, args, and a reference to external schema documentation. Every sentence contributes useful information without fluff. The only redundancy is the vague 'or act' but it does not significantly inflate length.

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

Completeness2/5

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

For an open-bodied POST with no schema descriptions, the description provides a pointer to external discovery but does not explain the action semantics, id meaning, or how this fits with sibling operations. The presence of an output schema covers return values, but the input side remains underspecified. An agent would likely need additional documentation to correctly invoke this tool.

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

Parameters2/5

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

With schema description coverage at 0%, the description must compensate, but it only labels 'id' as a path parameter and 'body' as a request payload. It does not clarify what the id refers to (item ID is only inferable from the tool name) nor does it explain any body fields, instead deferring to GET/schema endpoints. This is minimal added meaning over the raw schema.

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

Purpose3/5

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

The description states a verb ('Create') and a resource ('item bookmark'), but adds 'or act' without specifying what other actions are possible, making the scope ambiguous. It does not differentiate from sibling tools like patch_me_item_by_id_bookmark or delete_me_item_by_id_bookmark_by_time, relying on the tool name to carry most of the meaning.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. While siblings clearly cover update and delete, there is no mention of them or any conditions that would select this tool over them. The vague 'or act' further muddies the intended usage context.

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

create_notificationsC
Idempotent

Create notification settings.

POST /api/notifications

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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). The description adds only the HTTP method/path and adds no behavioral context such as whether existing settings are replaced, auth requirements, or side effects. Idempotency is implied by the annotation but never explained in practical terms.

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

Conciseness4/5

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

Five short sentences, front-loaded with the purpose statement, followed by the endpoint and args guidance. Each line earns its place, though the native Args block is slightly verbose for a single parameter.

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

Completeness3/5

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

Output schema and annotations cover return values and safety profile, so the remaining gap is the free-form body, which the /schema pointer addresses. However, the description is vague about what notification settings are, which GET endpoint is 'matching', and how this relates to sibling notification tools – adequate but with clear gaps.

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

Parameters3/5

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

Schema description coverage is 0% and the body parameter is an unconstrained object (additionalProperties: true), so the description must compensate. It does so by directing the agent to read the matching GET or /schema endpoint to discover expected fields – genuinely useful guidance for an open-world body – though it names no actual fields itself.

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

Purpose4/5

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

"Create notification settings" states a specific verb plus resource, and gives the POST /api/notifications endpoint. It is implicitly distinguishable from siblings like list_notifications, patch_notifications, and delete_notifications_by_id by the create verb, but it does not explicitly name or contrast any sibling.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as patch_notifications or delete_notifications_by_id. The only usage hint is operational – read the GET or /schema endpoint first – which addresses prerequisites, not tool selection, and gives no 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.

create_playlistsC
Idempotent

Create or act on api playlists.

POST /api/playlists

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP endpoint context (POST create), which is consistent with those annotations, but discloses nothing further such as auth needs, side effects, or error behavior. With annotations present the bar is lower, 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.

Conciseness4/5

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

Three short, front-loaded lines: purpose, endpoint, and the arrow note about the body. Each sentence earns its place and there is no filler; the ambiguous 'or act on' phrase is the only mild waste.

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

Completeness3/5

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

For a create tool with a fully open body, pointing to the GET/schema endpoint is the right compensation, and the presence of an output schema means return values need not be documented. However, the description never clarifies what 'act on' means, how this differs from the playlist sibling tools, or what a successful create returns — adequate but thin for such an open-ended tool.

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

Parameters3/5

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

Schema coverage is 0% and the sole 'body' parameter is an open object (additionalProperties: true), so the description must compensate. It labels body as 'Request payload' and directs the agent to the GET or /schema endpoint for the expected fields — a genuinely useful pointer — but it does not describe any actual fields or shape, leaving the body semantics to be discovered elsewhere.

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

Purpose3/5

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

The description anchors on a specific resource and HTTP verb ('POST /api/playlists'), so it is not a tautology. However, 'Create or act on api playlists' is vague about what 'act on' covers, and with siblings like create_playlists_by_id_item, create_playlists_by_id_batch_add, and create_playlists_collection_by_collection_id, an agent cannot tell from the description that this is the base playlist-creation operation.

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

Usage Guidelines2/5

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

The only guidance is a prerequisite — 'Read the matching GET or the /schema endpoint first' — which helps prepare the request payload but says nothing about when to choose this tool over closely related siblings (create_playlists_by_id_item, patch_playlists_by_id, create_playlists_collection_by_collection_id). No when/when-not/alternatives are given.

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

create_playlists_by_id_batch_addD
Idempotent

Create or act on batch add.

POST /api/playlists/{id}/batch/add

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.7/5.0
Behavior2/5

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 no behavioral context beyond that; it doesn't describe side effects, required permissions, or what happens on call. It only gives a generic instruction to read the schema. 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.

Conciseness2/5

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

The description is short, but the opening sentence 'Create or act on batch add' is vague and not useful. It doesn't front-load the essential information. The two-line structure plus a parameter list is minimal but not effective because it omits crucial meaning. It's under-specified rather than concise.

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

Completeness1/5

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

Given a batch-add operation with an output schema, the description should still explain what the tool does, what the id refers to, and what the body expects. It only points to the GET/schema endpoint. This is incomplete for an agent to call it correctly without external lookups. No mention of the resource type (playlist) or the batch semantics.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain the parameters. It only states that id is a path parameter and body is a request payload, which merely restates the schema types. It does not explain that id is the playlist ID or what fields the body should contain beyond 'read the endpoint.' The pointer to GET/schema is a workaround, not semantic description.

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

Purpose2/5

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

The description says 'Create or act on batch add' which is vague and doesn't identify the resource (playlist) or the specific action (adding items). The URL path is given but not decoded. It doesn't distinguish from sibling tools like create_playlists_by_id_batch_remove or create_playlists_by_id_item.

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

Usage Guidelines1/5

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

No guidance on when to use this tool versus alternatives. It doesn't mention that this is for batch adding items to a playlist or compare with single-item addition or removal. The only instruction is to read the GET/schema endpoint, which is about parameter format, not usage context.

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

create_playlists_by_id_batch_removeC
Idempotent

Create or act on batch remove.

POST /api/playlists/{id}/batch/remove

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

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

Annotations indicate idempotentHint=true and destructiveHint=false, but the description does not explain the behavioral implications. The description says 'Create or act on batch remove' which is confusing—'Create' suggests a write operation, but the tool is a batch remove. It does not disclose what happens to the playlist, whether items are deleted or just removed from the playlist, or any side effects. The description adds no 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.

Conciseness3/5

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

The description is short and includes the HTTP path and a pointer to the schema endpoint, which is useful. However, the opening phrase 'Create or act on batch remove' is awkward and unhelpful, and the description could be more concise and clear. It is not well-structured for an agent to quickly understand the tool's purpose.

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

Completeness2/5

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

Given the tool's complexity (batch operation on playlists) and the lack of output schema details, the description is incomplete. It does not explain the request body structure, the expected response, or any prerequisites. The pointer to the GET or /schema endpoint is helpful but shifts the burden to the agent to discover essential information. The description is not sufficient for an agent to invoke the tool correctly without additional lookups.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It only mentions 'id: Path parameter' and 'body: Request payload' with a pointer to the GET or /schema endpoint. This is minimal and does not explain what the body should contain (e.g., list of item IDs to remove). The description fails to provide meaningful parameter semantics.

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

Purpose2/5

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

The description 'Create or act on batch remove' is vague and tautological, essentially restating the tool name. It does not clearly state what 'batch remove' does in the context of playlists (e.g., removing multiple items from a playlist). The HTTP path is provided but adds no semantic clarity about the operation's effect.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. The sibling list includes create_playlists_by_id_batch_add and delete_playlists_by_id_item_by_library_item_id_by_episode_id, which are related operations, but the description does not differentiate this tool from them or explain when batch remove is appropriate.

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

create_playlists_by_id_itemC
Idempotent

Create or act on playlists item.

POST /api/playlists/{id}/item

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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

Annotations indicate a mutating, idempotent, non-destructive operation; the description's 'create or act' aligns with readOnlyHint=false. However, it adds no behavioral context beyond pointing to GET/schema for field expectations, leaving side effects and success criteria undisclosed.

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

Conciseness3/5

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

The description is brief and to the point, with no fluff, but it is so sparse that it sacrifices usefulness. It's concise in length but not sufficiently informative, earning an average score.

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

Completeness2/5

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

Given an open-ended body object with nested structures, the description does not provide enough information to call the tool correctly. It delegates to GET/schema but gives no example or expected response, and its ambiguous purpose leaves a gap that might cause an agent to make incorrect assumptions.

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

Parameters2/5

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

With 0% schema description coverage, the description only says id is a path parameter and body is a request payload that should be read from GET/schema. It gives a pointer but doesn't explain the body structure or allowed fields, so it only partially compensates for the missing schema documentation.

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

Purpose3/5

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

The description names the endpoint and resource ('playlists item') and states it 'creates or acts' on it, but the verb 'act' is ambiguous and doesn't specify what specific action (add/update/delete) it performs, nor does it distinguish from sibling batch operations like create_playlists_by_id_batch_add or batch_remove.

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

Usage Guidelines1/5

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

There is no mention of when to use this tool versus alternatives, no exclusions, and no context that would help an agent decide between this and the many sibling playlist operations. The description offers zero routing guidance.

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

create_playlists_collection_by_collection_idC
Idempotent

Create or act on playlists collection.

POST /api/playlists/collection/{collectionId}

Args: collection_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
collection_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false and idempotentHint=true, so the agent knows it is a write and idempotent. The description adds no behavioral context—no side effects, auth requirements, or what 'act on' means. 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.

Conciseness3/5

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 phrase 'Create or act on' is imprecise, and the structure prioritizes the HTTP method over clarifying the action. It is concise but at the expense of clarity.

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

Completeness2/5

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

For a tool with a generic body parameter and no field documentation, the description is incomplete. It doesn't explain what the collection is, what 'act on' entails, or what the response will be. The pointer to schema/GET is helpful only if the agent can reach those, and it is not sufficient to make the tool usable standalone.

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

Parameters2/5

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

Schema coverage is 0%, so the description must explain parameters, but it only labels collection_id as 'Path parameter' and body as 'Request payload' without explaining semantics. The directive to read GET/schema is a workaround, not meaningful parameter description. Body is a generic object with no documented fields, leaving the agent uncertain about what to send.

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

Purpose2/5

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

The description says 'Create or act on playlists collection,' which is vague. It provides an endpoint but does not specify what action is performed (create collection? add to collection? etc.). It is not a tautology but lacks a specific verb and resource scope, and does not differentiate from sibling tools like create_playlists or create_playlists_by_id_batch_add.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. The only hint is to read the matching GET or schema endpoint for field info, which is about payload structure, not selection. No exclusions or context for choosing this tool are provided.

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

create_podcastsA
Idempotent

Create a new podcast.

POST /api/podcasts

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already cover the basic safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), and the description does not contradict them. It adds that this is a POST endpoint and that body fields should be discovered via GET or /schema, but it does not describe side effects, authentication, or response behavior. Given annotation coverage, 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.

Conciseness5/5

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

The description is compact and front-loaded: action, endpoint, then parameter guidance. Each sentence earns its place, and the /schema pointer is a practical addition without unnecessary elaboration.

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

Completeness4/5

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

For a simple create tool with one generic body parameter and an output schema present, the description is largely complete: it provides the endpoint, the parameter, and a discovery mechanism for body fields. It does not mention auth or alternatives, but those are less critical given the annotations and the explicit schema-discovery instruction.

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

Parameters4/5

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

Schema coverage is 0% and the only parameter is an opaque body object with additionalProperties: true. The description adds meaningful value by labeling body as the request payload and instructing the agent to consult the matching GET or /schema endpoint for expected fields, which compensates for the empty schema.

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

Purpose4/5

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

The opening sentence 'Create a new podcast.' clearly states the action and resource. It is distinguishable from generic create_* tools, but it does not explicitly differentiate from related podcast siblings such as create_podcasts_feed or create_podcasts_opml_create.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives. The only directional advice is to read the matching GET or /schema endpoint for body fields, which is about parameter discovery, not tool selection. Usage is implied but not stated.

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

create_podcasts_by_id_download_episodesA
Idempotent

Download podcast episodes.

POST /api/podcasts/{id}/download-episodes

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the base safety profile is covered. The description adds that this is a POST request with a request payload and tells the agent to inspect the schema for body fields, but it does not disclose side effects, auth requirements, or what launching a download entails.

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

Conciseness5/5

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

The description is compact and front-loaded with the core action, then the endpoint, then the two arguments. There is no filler or redundant restatement, and the schema-instruction sentence earns its place because the body is otherwise undocumented.

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

Completeness4/5

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

For a POST operation with an opaque body, the description gives an actionable way to discover the request shape ('read the matching GET or /schema endpoint'), and an output schema is present so return-value detail is not required. It is slightly incomplete in not describing the actual effect of downloading episodes, but the endpoint and annotations provide enough context for correct invocation.

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

Parameters4/5

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

The input schema is minimal: id is an untyped string and body is an opaque object with additionalProperties. The description adds meaning by identifying id as a path parameter and body as the request payload, and it compensates for the empty body schema by directing the agent to read the matching GET or /schema endpoint to learn expected fields.

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

Purpose4/5

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

The description opens with 'Download podcast episodes,' a clear verb plus resource, and includes the full POST endpoint, so an agent can understand the action. It does not explicitly contrast with sibling tools like get_podcasts_by_id_downloads or create_podcasts_by_id_match_episodes, but the endpoint and action phrase are specific enough to disambiguate.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as get_podcasts_by_id_downloads, get_podcasts_by_id_episode_by_episode_id, or create_podcasts_by_id_match_episodes. The only procedural note—'Read the matching GET or the /schema endpoint first'—addresses how to discover request fields, not when to choose this operation.

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

create_podcasts_by_id_match_episodesB
Idempotent

Quick match podcast episodes.

POST /api/podcasts/{id}/match-episodes

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. override: Override existing details if set to 1

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
overrideNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already cover idempotency, read-only, and destructive hints, so the description doesn't need to restate them. The description adds the 'override' behavior (override existing details if set to 1), which is a meaningful behavioral disclosure. It also characterizes the operation as 'quick match,' but this is vague. Overall, it adds some value beyond annotations but lacks richer details like side effects 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.

Conciseness5/5

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

The description is exceptionally concise: a one-line summary, the HTTP endpoint, and three clearly labeled arguments. It front-loads the core purpose and avoids any fluff or repetition. Every sentence earns its place, making it easy to scan.

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

Completeness3/5

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

For a tool with a simple parameter set and an output schema, the description is mostly sufficient, but the body parameter is a significant gap. The agent is told to 'read the matching GET or the /schema endpoint first' without specifying which GET or what fields to expect. This is an external dependency that may not be accessible to the agent. Annotations provide safety context, but the ambiguity around the payload prevents full completeness.

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

Parameters3/5

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

Schema description coverage is 0%, so the description is the sole explanatory source. It does provide semantics for each parameter: id as a path parameter, body as a payload with a pointer to the matching GET or /schema endpoint, and override as 'override existing details if set to 1.' This adds meaning beyond the bare schema, but the body description is not self-contained—it defers to external endpoints rather than summarizing expected fields.

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

Purpose4/5

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

The description states a specific action ('match') and resource ('podcast episodes'), which clearly differentiates it from siblings like create_items_by_id_match (which targets items). However, 'Quick match' is somewhat vague—it doesn't explain what matching entails or whether it creates associations or metadata. Still, the verb+resource is identifiable and distinguishes from most siblings.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. There is no mention of conditions, exclusions, or comparisons to related tools like create_items_by_id_match or get_podcasts_by_id_search_episode. The only contextual hint is to read the matching GET or /schema endpoint for body fields, which is about parameter usage, 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_podcasts_feedC
Idempotent

Get podcast feed.

POST /api/podcasts/feed

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior1/5

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

Annotation Contradiction: The description says 'Get podcast feed,' implying a read-only operation, while annotations declare readOnlyHint=false, indicating the tool may modify state. The tool name and POST method also suggest creation. The description adds no side-effect context and is inconsistent 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.

Conciseness4/5

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

The description is compact and front-loaded with the core purpose, includes the endpoint and an args section. The structure is easy to scan, though the 'Get' versus POST/create mismatch creates avoidable confusion.

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

Completeness2/5

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

For a POST/create tool with an arbitrary body and many sibling tools, the description omits when to use it, what the request body should contain, any behavioral side effects, and how it relates to other feed/podcast endpoints. Pointing to /schema helps but is not enough to make the tool fully callable.

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

Parameters2/5

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

Schema description coverage is 0%, and the sole 'body' parameter is an open object with additionalProperties. The description labels it as 'Request payload' and tells the agent to inspect the matching GET or /schema endpoint for expected fields, but it does not provide direct semantics for the body contents, leaving the parameter largely opaque.

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

Purpose2/5

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

The description states a resource (podcast feed) and a verb ('Get'), but that verb conflicts with the tool name 'create_podcasts_feed' and the documented POST method. It does not distinguish this tool from the many feed-related or podcast-related siblings, and the operation it actually performs is unclear.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives such as create_podcasts or other feed endpoints. The only instruction is to read the matching GET or /schema endpoint first, which is preparation for the payload, not usage selection guidance.

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

create_podcasts_opml_createB
Idempotent

Bulk create podcasts from OPML feed URLs.

POST /api/podcasts/opml/create

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already establish readOnly=false, idempotent=true, destructive=false, so the safety profile is covered. The description adds the 'bulk' behavior and OPML feed URLs as the input source, but doesn't explain side effects, response behavior, or auth needs.

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

Conciseness4/5

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

The text is short and front-loaded with the operation, followed by endpoint and parameter sections. The 'Args' boilerplate is minimal and does not significantly hurt clarity.

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

Completeness3/5

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

With an output schema present and annotations available, the description doesn't need to cover return values, but the body shape is left completely open. Pointing to the /schema endpoint helps an agent recover, though it doesn't make the definition self-contained.

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

Parameters2/5

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

The schema exposes a single opaque body object with additionalProperties:true and 0% field coverage, so the description needed to compensate. It only labels the parameter as 'request payload' and defers to the GET/schema endpoint, without naming or describing the expected OPML-feed-URL fields.

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

Purpose4/5

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

The opening sentence names a specific verb ('bulk create'), resource ('podcasts'), and input source ('OPML feed URLs'), so the operation is clear. It does not explicitly differentiate from nearby siblings like create_podcasts, create_podcasts_feed, or create_podcasts_opml_parse, so it falls just 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.

Usage Guidelines2/5

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 create_podcasts, create_podcasts_feed, or create_podcasts_opml_parse. The description only states what the endpoint does, with no preconditions, 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.

create_podcasts_opml_parseB
Idempotent

Get feeds from OPML text.

POST /api/podcasts/opml/parse

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate the operation is idempotent and non-destructive, lowering the burden on the description. The description adds the HTTP method and resource path, but it does not clarify whether parsed feeds are only returned or also persisted, and it omits permission/auth context. 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.

Conciseness4/5

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

The description is short, front-loads the core purpose, and has no redundant filler. Each line earns its place, though more behavioral detail could be added without hurting conciseness.

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

Completeness3/5

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

With an output schema and idempotent/non-destructive annotations present, the definition does not need to explain return values or safety. However, it leaves the body shape to be discovered externally and gives no usage context or side-effect clarification, so it is minimally viable rather than fully self-contained.

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

Parameters3/5

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

Schema description coverage is 0% and the body is an opaque additionalProperties object, so the description must compensate. Saying 'body: Request payload' plus directing the agent to read the /schema endpoint is a useful discovery cue, but it supplies no actual field semantics.

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

Purpose4/5

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

The description opens with 'Get feeds from OPML text', which clearly states the action and input resource. It conveys that this tool parses OPML text into feeds, though it does not explicitly name or contrast the sibling create_podcasts_opml_create.

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

Usage Guidelines2/5

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

There is no explicit statement about when to use this tool versus alternatives, nor any exclusions or prerequisites. The only guidance is to read the matching GET or /schema endpoint, which is about parameter discovery, not usage context.

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

create_session_by_id_closeB
Idempotent

Create or act on session close.

POST /api/session/{id}/close

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations indicate idempotentHint=true, so the description doesn't need to state idempotency. But the description omits behavioral details like whether closing a session is irreversible, what side effects occur (e.g., invalidating tokens), or whether it requires authentication. It also refers to the 'body' payload but doesn't explain what happens with it beyond 'act on session close'. Without annotations for destruction, the description carries the burden and falls short on depth.

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

Conciseness4/5

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

The description is extremely short, using four lines. It front-loads the purpose and endpoint, then gives a brief instruction for the body. There is no fluff, but it could have provided more substance without being verbose. The brevity is acceptable, but the lack of detail makes it less useful.

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

Completeness2/5

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

Given that the body is an open object with no schema and the description defers to other endpoints, the tool lacks complete information for an agent to construct a valid request. The presence of an output schema helps, but the body's semantics are undefined. For a tool that's about closing a session, the agent needs to know what fields the body might acceptchers, which is not provided. This is a significant gap.

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

Parameters2/5

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

Schema coverage is 0% and there are only 2 parameters: id and body. The description mentions 'id' as a path parameter and 'body' as a request payload, but the body is an open object with no documented fields, and it explicitly defers to the GET or /schema endpoint. This does little to clarify parameter semantics beyond what the schema already shows; the description should have explained more about the body's expected structure.

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

Purpose4/5

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

The description states the verb and resource: 'Create or act on session close' with the endpoint '/api/session/{id}/close', which clearly indicates closing a session. It distinguishes somewhat from siblings like create_session_by_id_sync, though not explicitly. The phrase 'or act on' is slightly vague, but the endpoint clarifies.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives. It only says to read the matching GET or /schema endpoint to understand the body fields, which implies a need for discovery but not a clear context for when closing a session is appropriate. 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.

create_session_by_id_syncC
Idempotent

Create or act on session sync.

POST /api/session/{id}/sync

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

Aside from repeating the POST endpoint, the description reveals no behavior: no mention of what synchronizing does, what state changes occur, or any side effects. Annotations (idempotentHint, readOnly false) carry the safety profile, but the description adds no behavioral context of its own.

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

Conciseness4/5

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

The description is compact and well organized with endpoint and args. The body-discovery pointer is a useful sentence, though 'Create or act on' is vague and could be replaced with concrete behavior.

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

Completeness2/5

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

For a tool whose semantics are opaque and whose body is unconstrained by the schema, the description is too thin: it omits the purpose/effect of sync and the conditions under which it should be invoked. While an output schema exists, that does not clarify when or why to call this tool.

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

Parameters3/5

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

It correctly identifies id as a path parameter and body as the request payload, and it adds a useful pointer: read the matching GET or /schema endpoint to discover body fields. However, it does not explain what id refers to or what sync actions the body can express, so the 0% schema coverage is only partially compensated.

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

Purpose2/5

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

The description repeats the name ('Create or act on session sync') and gives an endpoint, but never states what the operation actually does—whether it creates a session, synchronizes data, or updates state. It lacks a specific verb+resource and does not distinguish itself from get_session_by_id or delete_sessions_by_id.

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

Usage Guidelines2/5

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

No statement about when to use this tool versus the many session tools (get_session_by_id, delete_session_by_id, create_session_local). The only guidance is to read the GET or /schema endpoint before calling, which is a preparation step, not a selection rule.

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

create_session_localC
Idempotent

Create or act on session local.

POST /api/session/local

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already supply idempotentHint=true, readOnlyHint=false, and destructiveHint=false, and the description does not contradict them. It adds the HTTP method and 'create or act' framing, but gives no detail on side effects, authentication, or what 'acting' changes.

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

Conciseness4/5

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

The description is short and front-loaded with the purpose, followed by the endpoint and argument guidance. The vague 'Create or act' wording costs a point, but there is no filler.

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

Completeness3/5

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

The pointer to GET/schema is useful for an opaque body, and an output schema exists, but the description never explains what a 'session local' is, what 'act' covers, or how this differs from create_session_local_all. An agent could invoke it but may not know the intended scenario.

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

Parameters3/5

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

The schema exposes a single opaque body with additionalProperties true and no property descriptions, so schema coverage is 0%. The description partially compensates by identifying body as the request payload and instructing the agent to consult the matching GET or /schema endpoint, but it supplies no actual field semantics.

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

Purpose3/5

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

The phrase 'Create or act on session local' names a resource but uses the vague compound verb 'create or act', so an agent cannot tell precisely what operation is performed. It does not differentiate from the sibling create_session_local_all or the session close/sync tools, and the endpoint line mostly 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.

Usage Guidelines2/5

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

The only usage guidance is to read the matching GET or /schema endpoint before calling. There is no statement of when to prefer this tool over related session siblings, no exclusions, and no scenario context.

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

create_session_local_allC
Idempotent

Create or act on session local-all.

POST /api/session/local-all

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

The description adds no behavioral detail beyond the annotations. It does not explain what creating or acting on a local-all session entails, what side effects may occur, or why idempotentHint is true, so the description carries little disclosure burden and fails to add context.

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

Conciseness4/5

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

The description is compact and front-loads the core action and endpoint. The brief 'Args' block is useful and avoids unnecessary prose, though the vague 'act on' language prevents a top score.

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

Completeness2/5

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

Given the generic body schema, the absence of an output schema description, and a sibling tool with a near-identical name, the description leaves significant ambiguity about what this endpoint is for and what a successful call produces. The pointer to GET/schema helps but does not complete the picture.

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

Parameters4/5

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

For a single 'body' parameter with schema coverage of 0%, the description usefully identifies it as the request payload and instructs the agent to consult the matching GET or /schema endpoint for the expected fields. This compensates for the opaque additionalProperties: true schema, though it does not enumerate concrete fields.

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

Purpose3/5

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

The description names the resource ('session local-all') and a verb ('Create or act'), but 'act on' is vague and does not specify what operations are performed. It does not differentiate from the closely named sibling create_session_local, leaving an agent uncertain about the tool's exact scope.

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

Usage Guidelines2/5

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

No guidance explains when to choose this tool over alternatives such as create_session_local or create_session_by_id_close. The only operative instruction is to read the matching GET or /schema endpoint first, which is a parameter-discovery tip rather than when-to-use guidance.

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

create_sessions_batch_deleteC
Idempotent

Create or act on batch delete.

POST /api/sessions/batch/delete

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

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

Annotations indicate idempotentHint=true and destructiveHint=false, but the description says 'batch delete' which implies destruction. The description does not clarify the discrepancy or explain what 'act on' means. It also doesn't disclose side effects, whether it's a soft delete, or what happens to related resources. The description adds little beyond the annotations and may even conflict with the destructiveHint=false annotation.

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

Conciseness3/5

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

The description is short and front-loaded with the endpoint, but it wastes the first sentence on a vague phrase 'Create or act on batch delete' that repeats the tool name. The Args section is minimal and the guidance to read the schema is useful but could be more concise. It's not bloated, but it's under-specified.

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

Completeness2/5

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

Given the tool has a required body parameter with no schema details, an output schema, and no clear behavioral description, the description is incomplete. The agent cannot correctly construct the request body without external lookups. The sibling list shows many similar delete tools, and the description doesn't help disambiguate. The output schema exists but the description doesn't explain what the response contains or how to interpret success.

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

Parameters1/5

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

Schema description coverage is 0%, and the description only says 'body: Request payload' with no field details. The schema has additionalProperties: true, so the agent has no idea what fields to include. The description's advice to read the GET or /schema endpoint is a workaround, not actual parameter semantics. This is a significant gap for a tool with a required body parameter.

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

Purpose2/5

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

The description says 'Create or act on batch delete' and includes the endpoint POST /api/sessions/batch/delete. The verb 'Create or act on' is vague and tautological with the tool name; it doesn't clearly state that this tool deletes multiple sessions. It also doesn't distinguish it from the many sibling delete tools like delete_sessions_by_id or create_items_batch_delete.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It only says to read the matching GET or /schema endpoint first, which is generic advice. There is no mention of when batch delete is appropriate, what the body should contain, or how it differs from delete_sessions_by_id.

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

create_share_mediaitemC
Idempotent

Create or act on share mediaitem.

POST /api/share/mediaitem

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already convey readOnly=false, idempotent=true, destructive=false, and the description does not contradict them. But it adds little behavioral context beyond 'create or act on' and the schema-discovery directive; it never describes auth requirements, persistence effects, error behavior, or what a successful call changes.

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

Conciseness4/5

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

The description is compact and front-loaded: purpose line, endpoint, then the argument note. No filler is present, though the wording could be sharper if it replaced 'or act on' with the actual behavior.

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

Completeness3/5

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

For an opaque-body POST with an output schema and supporting annotations, the description covers the essential discovery loop needed to form a payload. It remains incomplete about the operation's intended use and its relationship to the other share endpoints, leaving an agent to guess whether it creates, updates, or performs another action.

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

Parameters3/5

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

The schema provides only an open `body` object with 0% property coverage, so the description's identification of `body` as the request payload and its pointer to the matching GET or `/schema` endpoint are useful compensating guidance. That still stops short of documenting actual fields or constraints, leaving the agent to discover them dynamically.

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

Purpose3/5

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

The description names the resource ('share mediaitem') and includes the endpoint, so an agent can infer a creation/action operation. However, 'Create or act on' is vague—it does not define what 'act on' means or what effect the POST has—and it merely restates the tool name without differentiating it from related share endpoints such as delete_share_mediaitem_by_id or get_public_share_by_slug.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives. The only contextual instruction ('Read the matching GET or the /schema endpoint first') concerns payload construction, not tool selection, and no exclusions or sibling comparisons are given.

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

create_tags_renameC
Idempotent

Create or act on tags rename.

POST /api/tags/rename

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.1/5.0
Behavior2/5

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

Annotations indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, and the description does not contradict them. However, the description adds little behavioral context beyond the word 'rename' in the endpoint path; it does not explain what changes occur, whether existing tag references are updated, or any permission requirements.

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

Conciseness3/5

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

The description is short and the endpoint is front-loaded, but the opening sentence 'Create or act on tags rename' is low-value filler that does not clarify the operation. Replacing it with a concrete statement like 'Renames an existing tag' would make the description more useful without adding length.

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

Completeness2/5

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

With an opaque body schema, no parameter details, and no usage context, the description is not self-contained. The pointer to GET or /schema is helpful, but the definition still lacks the core semantic information an agent needs to confidently select and invoke this tool.

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

Parameters2/5

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

Schema coverage is 0% and the single 'body' parameter is an opaque additionalProperties object. The description only repeats that body is the payload and tells the agent to look at GET or /schema; it never documents the required rename fields such as the current tag name and new tag name.

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

Purpose2/5

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

The description says 'Create or act on tags rename' and gives the POST endpoint, but it never clearly states that the tool renames an existing tag. The phrasing is essentially a restatement of the tool name and is too vague to distinguish from related operations like create_genres_rename or delete_tags_by_tag.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus list_tags, delete_tags_by_tag, or create_genres_rename. The only instruction is to read a GET or /schema endpoint first, which is a prerequisite for calling the tool, not a usage criterion.

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

create_tools_batch_embed_metadataC
Idempotent

Create or act on batch embed-metadata.

POST /api/tools/batch/embed-metadata

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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 no behavioral context beyond 'Create or act on,' so the agent learns nothing about side effects, background processing, or required permissions. It does not contradict the annotations, but it also does not add 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.

Conciseness4/5

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

The description is brief and well-structured: a purpose line, an endpoint line, and an args block. It contains no redundant sentences, though the purpose line is vague. It earns a 4 for efficiency and clear layout.

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

Completeness2/5

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

Given the tool's complex body and 0% schema coverage, the description is not complete. It fails to define what a batch embed-metadata operation does, what the body should contain, or how it differs from create_tools_item_by_id_embed_metadata. The output schema covers return values, but the core semantics and usage context are missing.

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

Parameters2/5

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

With a generic body object and additionalProperties true, schema coverage is 0%. The description calls body a 'Request payload' and tells the agent to read the GET or /schema endpoint, which is a useful pointer but does not describe any actual fields, types, or examples. The agent must still discover the semantics elsewhere.

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

Purpose3/5

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

The description states 'Create or act on batch embed-metadata,' which identifies the resource but uses the vague phrase 'act on' and never explains what embed-metadata does. It also does not differentiate this batch tool from the sibling per-item tool create_tools_item_by_id_embed_metadata. This is more than a tautology but still under-specified.

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

Usage Guidelines2/5

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

The only guidance is 'Read the matching GET or the /schema endpoint first to see the fields this resource expects,' which is a generic lookup instruction rather than when-to-use guidance. It includes no alternatives, no preconditions, and no indication of when the batch tool should be preferred over the per-item version.

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

create_tools_item_by_id_embed_metadataC
Idempotent

Create or act on item embed-metadata.

POST /api/tools/item/{id}/embed-metadata

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already convey readOnlyHint=false, idempotentHint=true, and destructiveHint=false, and the description adds no extra behavioral context such as side effects, permissions, or rate limits. 'Create or act on' merely matches the mutation hint without disclosing what the operation changes.

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

Conciseness4/5

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

The description is compact and well-structured: the endpoint is front-loaded, and the args are listed cleanly. The main weakness is that the first sentence is vague, but there is no unnecessary prose.

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

Completeness2/5

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

For a tool with an unconstrained request body and a vague operation, the description leaves too much to inference. It directs the agent to GET/schema, which helps with payload construction, but it never clarifies the purpose, expected effect, or why an agent should choose this over its batch sibling. The output schema exists, so return-value documentation is not the main gap.

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

Parameters3/5

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

The description correctly notes that id is a path parameter and body is the payload, and it points to the matching GET or /schema endpoint for field discovery. Since the schema has 0% description coverage and body is an opaque additionalProperties object, this pointer is useful, though it does not enumerate any actual body fields.

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

Purpose3/5

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

The description identifies the resource ('item embed-metadata') and an action ('Create or act on') plus the exact endpoint, so it is more than a tautology. However, 'act on' is vague and does not explain what embedding metadata actually does or how this differs from siblings like create_tools_batch_embed_metadata.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as create_tools_batch_embed_metadata, nor any exclusions or prerequisites. The instruction to read the matching GET or /schema endpoint is about request construction, 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_tools_item_by_id_encode_m4bC
Idempotent

Create or act on item encode-m4b.

POST /api/tools/item/{id}/encode-m4b

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already indicate mutation and idempotency, but the description adds no behavioral detail about whether this starts a job, modifies the item, or returns a task status. 'Create or act on' is too vague to disclose meaningful side effects. The description 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.

Conciseness4/5

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

The description is short, front-loaded with the endpoint, and avoids excessive prose. The awkward 'Create or act on' opener and the mostly redundant Args section keep it from being excellent.

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

Completeness2/5

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

For a niche tool with an opaque name, the description omits the core action semantics and selection context. The output schema and annotations reduce the need for return/safety detail, but an agent still cannot tell what encode-m4b does or when to invoke it beyond the literal route name.

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

Parameters3/5

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

Schema coverage is 0%, and the description adds that id is a path parameter and body is the request payload, plus a pointer to GET or /schema to discover body fields. This is useful for an open-object body, but the description still provides no concrete field semantics or hints about what the body must contain.

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

Purpose3/5

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

The description names the endpoint and says 'Create or act on item encode-m4b', but it never explains what encode-m4b actually does or what creating/acting on it means. It is distinguishable from sibling tools mainly by the encoded route name, not by a clear verbal statement of the operation's effect.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool instead of related siblings such as create_tools_item_by_id_embed_metadata or delete_tools_item_by_id_encode_m4b. The only advice is to read the matching GET or /schema endpoint first, which concerns request construction rather than tool selection.

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

create_uploadC
Idempotent

Create or act on api upload.

POST /api/upload

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare idempotent, read-only=false, and destructive=false. The description adds the HTTP method POST and advises schema discovery, but it does not disclose what effects calling the tool has, what an 'act' does, or any success/failure behavior. This level of opacity is not offset by the sparse annotations.

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

Conciseness4/5

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

The description is compact and well-structured: a purpose line, an endpoint line, and a parameter note. There is no redundant content. However, the opening purpose line is vague, so the brevity edges toward under-specification rather than crisp clarity.

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

Completeness2/5

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

The instruction to fetch the schema covers the body parameter, but the description does not explain the resource's purpose, what 'act on' means, or when to select this tool among many siblings. Given the overall ambiguityholly, an agent cannot reliably decide to invoke this tool or understand its high-level effect.

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

Parameters3/5

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

Schema coverage is 0% and the single 'body' parameter is a generic object with additionalProperties true. The description labels it as 'Request payload' and tells the agent to read the matching GET or /schema endpoint first, which provides a useful discovery path but defers all field semantics to runtime inspection.

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

Purpose2/5

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

The description says 'Create or act on api upload' and gives the endpoint, but the verb phrase is vague and does not specify what an upload is or what acting on it entails. It does not distinguish the tool from siblings like create_backups_upload or other create_* tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. The only instruction is to read the matching GET or /schema endpoint first, but that is a prerequisite for understanding the payload, not a selection guideline. No 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_usersB
Idempotent

Create or act on api users.

POST /api/users

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false, covering the mutation and safety profile. The description adds the HTTP method and the instruction to consult GET/schema for expected fields, but does not disclose auth requirements, response behavior, or failure modes. With annotations present, 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.

Conciseness4/5

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

The description is compact and front-loaded, stating the action, resource, and endpoint in the first line. The Args block is minimal and useful. No filler or redundant explanation appears.

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

Completeness3/5

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

The output schema exists, so return values do not need explanation. The description points to the schema endpoint for field discovery, which helps. However, 'matching GET' is ambiguous, and 'or act on' is unclear about the exact scope of operations. It is enough for a basic call but not fully self-contained.

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

Parameters4/5

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

Schema coverage is 0%, so the description carries the burden. It names the only parameter 'body', identifies it as the 'Request payload', and directs the agent to the matching GET or /schema endpoint to discover the expected fields. This compensates reasonably for the empty body schema, though it does not enumerate actual fields.

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

Purpose4/5

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

The description states a specific action ('Create') and resource ('api users'), reinforced by the explicit POST /api/users endpoint. However, 'or act on api users' is vague and could suggest broader mutation behavior than creation alone, and it does not explicitly differentiate from siblings like patch_users_by_id.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives such as patch_users_by_id, delete_users_by_id, or list_users. The only usage hint is to read the matching GET or /schema endpoint first, which is a prerequisite, not a selection criterion.

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

create_validate_cronC
Idempotent

Create or act on api validate-cron.

POST /api/validate-cron

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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

Annotations provide idempotentHint=true, readOnlyHint=false, destructiveHint=false, but the description adds no behavioral context beyond the vague phrase 'Create or act on.' It does not state what side effects occur, what is validated, or what response to expect. No contradiction with annotations, but the description's 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.

Conciseness3/5

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

The description is short and structured with endpoint and Args sections, but the opening sentence is a tautological restatement of the resource and the endpoint line duplicates it. It is concise yet contains filler rather than substantive content.

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

Completeness2/5

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

For a tool with an opaque request body and output schema, the description leaves important context missing: what validate-cron does, what the body must contain, and when to invoke it. The pointer to /schema is the only compensating element, but it is not enough for an agent to select and invoke this tool correctly.

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

Parameters3/5

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

The schema only describes body as an open object with additionalProperties true, and schema coverage is 0%. The description adds that body is the request payload and advises reading the matching GET or /schema endpoint to discover expected fields, which is a useful discovery instruction. However, it never states the actual body contents, and the referenced 'matching GET' is not present in the sibling list, so semantics remain under-specified.

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

Purpose2/5

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

The description only says 'Create or act on api validate-cron' and repeats the POST endpoint. 'Create or act on' is a generic wrapper, not a specific action, and 'validate-cron' is never explained, so an agent cannot tell what this tool actually accomplishes. It does not distinguish itself from the many other create_* sibling tools.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives. 'Read the matching GET or the /schema endpoint first' is a preparation step, not a selection rule, and no sibling or exclusion condition is mentioned.

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

create_watcher_updateC
Idempotent

Create or act on watcher update.

POST /api/watcher/update

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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 only 'Create or act on watcher update' and the HTTP method, without disclosing side effects, state changes, or what 'acting on' entails. It does not contradict the annotations, but it also 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.

Conciseness4/5

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

The description is compact and front-loads the operation, HTTP endpoint, and the single required argument. There is no filler, though the phrase 'or act on' is vague and could be replaced with a more precise verb.

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

Completeness2/5

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

Despite having an output schema, the description is not complete enough for an agent to understand what a watcher update is, when to call this tool, or what effects to expect. The pointer to /schema helps with body construction but does not compensate for the missing domain context and usage conditions.

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

Parameters3/5

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

The schema only defines an opaque 'body' object with additionalProperties true and no field descriptions. The description adds a useful instruction to consult the matching GET or /schema endpoint before calling, which tells the agent how to discover the expected body fields. However, it does not provide concrete field semantics or an example body, leaving a clear gap.

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

Purpose2/5

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

The description mostly restates the tool name as 'Create ... watcher update' and adds a vague 'or act on' that does not explain what a watcher update is or what the tool actually does. The endpoint 'POST /api/watcher/update' is provided, but there is no semantic content that distinguishes this operation from other create_* tools.

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

Usage Guidelines2/5

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

The description offers no guidance about when to use this tool versus alternatives, and the sibling list contains many create_* operations without any differentiators. The only procedural note is to read the matching GET or /schema endpoint first, which is a prerequisite for constructing the body, not a tool-selection criterion.

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

delete_api_keys_by_idC
DestructiveIdempotent

Delete api api-keys.

DELETE /api/api-keys/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the agent knows this is a mutating, destructive operation. The description adds only the HTTP endpoint and a note to read the GET/schema for body fields. It does not disclose permanence of deletion, potential impact on related resources, or any side effects. Given the annotation coverage, the description adds minimal behavioral context beyond what is already known.

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

Conciseness3/5

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

The description is short and to the point, but the first sentence 'Delete api api-keys.' is grammatically awkward and not front-loaded with the key information. The argument list is concise, but the overall structure could be improved by leading with a clearer statement like 'Deletes a specific API key by its ID.'

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

Completeness3/5

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

The tool is relatively simple with two parameters and an output schema. The description provides the endpoint and some body guidance, but it omits an explicit statement that 'id' is the API key's ID and that deletion is permanent. It also does not mention that the body is usually null or that the ID must come from a prior list call. Overall, it is minimally adequate but could be more complete.

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

Parameters2/5

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

With schema_description_coverage at 0%, the description must explain parameters. It labels 'id' merely as 'Path parameter' without stating it is the API key's unique identifier. The 'body' guidance to read the GET or schema endpoint is indirect and does not clarify the body's purpose for a DELETE operation. The description falls short of compensating for the missing schema descriptions.

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

Purpose4/5

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

The description states the action 'Delete' and the resource 'api api-keys', which clearly corresponds to deleting API keys. It also provides the HTTP DELETE endpoint, making the purpose understandable. However, the phrasing 'api api-keys' is awkward and does not explicitly mention 'by ID', though the name and id argument imply it. It is distinct from sibling tools like list_api_keys and patch_api_keys_by_id.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives like create_api_keys or patch_api_keys_by_id. It does not mention that the user should call list_api_keys to obtain an ID or that deletion is permanent. The only instruction is to read the GET or schema endpoint for the body payload, which is about parameter usage, not tool selection.

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

delete_authors_by_idA
DestructiveIdempotent

Delete an author by ID.

DELETE /api/authors/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is known. The description adds little beyond restating the deletion and providing the HTTP endpoint. It does not disclose side effects (e.g., cascading deletes) or permissions. With annotations covering the core behavior, 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.

Conciseness5/5

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

The description is extremely concise: one purpose sentence, the HTTP route, and two parameter explanations with a pointer for the body. No wasted words; information is front-loaded and logically structured.

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

Completeness4/5

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

For a simple delete operation, the description covers the essential call steps: the endpoint and how to determine body fields. An output schema exists (though not shown), so return format is not the description's burden. Minor gaps: no mention of irreversible action or implications, but annotations already communicate destructiveness. Overall sufficient for an agent to call correctly.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It clearly explains id as a path parameter and body as a request payload, and explicitly advises reading the matching GET or /schema endpoint to learn expected fields. This gives actionable guidance beyond the bare schema types.

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

Purpose5/5

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

The description states a clear action ('Delete an author by ID') with a specific verb and resource. It distinguishes from sibling tools like delete_authors_by_id_image by targeting the author entity itself. The HTTP method and path reinforce the scope without ambiguity.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives. There is no mention of scenarios where a different delete tool would be preferred, nor exclusions (e.g., when an author has related entities). The description simply states the action without contextual direction.

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

delete_authors_by_id_imageA
DestructiveIdempotent

Delete an author image by author ID.

DELETE /api/authors/{id}/image

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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 covered. The description adds the DELETE method and path, and it warns that the body fields need to be discovered via GET or /schema. It does not go deeper into side effects like irreversibility, but the annotations carry most of that burden.

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

Conciseness5/5

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

The description is compact and front-loaded with the core action. It includes only the endpoint, argument roles, and a pointer to external schema details—no filler or redundant content.

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

Completeness4/5

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

The description covers the essential purpose, endpoint, and parameter discovery path, and an output schema exists so return-value details are not needed. It could be slightly stronger by naming the exact matching GET sibling (get_authors_by_id_image) and clarifying that body is optional, but the current level is sufficient for correct invocation.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by explaining that id is a path parameter and body is a request payload whose expected fields must be looked up via the matching GET or /schema endpoint. This gives the agent an actionable strategy for resolving the opaque body parameter, even though it does not enumerate the body fields directly.

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

Purpose5/5

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

The description states a specific verb and resource: 'Delete an author image by author ID.' This clearly distinguishes it from delete_authors_by_id (deleting the author record) and create_authors_by_id_image (uploading/creating an image). The HTTP endpoint path further reinforces the exact operation.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when an author's image needs to be deleted. It also advises reading the matching GET or /schema endpoint before supplying a body, which is useful invocation guidance. However, it does not explicitly contrast this with sibling tools or state 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.

delete_backups_by_idB
DestructiveIdempotent

Delete api backups.

DELETE /api/backups/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true and readOnly=false, so the description's 'delete' wording is consistent but not additive. It does not disclose irreversibility, side effects on backup history or related resources, or any ownership/permission requirements, which prevents a higher score.

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

Conciseness4/5

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

The description is compact: one action sentence, the route, and terse parameter notes. There is no filler, and the most important action is stated first, though arguably more behavioral detail could be added without hurting conciseness.

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

Completeness3/5

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

For a 2-parameter destructive operation, the description plus schema and annotations is enough to make a basic delete call, and the output schema covers return-value details. But it lacks contextual completeness around prerequisites, repeatability, and what 'deleting a backup' means in the system, so an agent cannot fully assess side effects.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does identify id as a path parameter and tells the agent to inspect GET or /schema to discover the body fields, which is genuinely helpful direction. However, it does not explain the id format, when body should be supplied, or what fields the body generally contains.

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

Purpose4/5

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

The description clearly states the action ('Delete') and the resource ('api backups'), and the exact DELETE route leaves little doubt about what is invoked. It is distinguishable from sibling delete operations by the resource name and id, though it does not explicitly contrast it with list_backups or create_backups.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus the many related backup or delete_* tools, and no exclusions or alternative recommendations. The note about reading GET or /schema is a body-field discovery step, not a usage-context rule for selecting the tool.

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

delete_collections_by_idB
DestructiveIdempotent

Delete api collections.

DELETE /api/collections/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already cover the destructive nature (destructiveHint=true), non-read-only behavior, and idempotency. The description adds no extra behavioral context such as irreversibility, cascading effects, or permission requirements. It does not contradict the annotations, but it also does not go beyond them in meaningful 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.

Conciseness5/5

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

The description is compact and front-loaded: it states the operation, gives the endpoint, and then provides minimal parameter notes. Every line earns its place without repetition or filler.

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

Completeness3/5

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

The description is adequate for a simple delete-by-id operation given the annotations and output schema, but it leaves gaps: it does not clarify how this differs from delete_collections_by_id_book_by_book_id, does not mention the body is optional (though the schema default covers this), and relies on external endpoints for body semantics.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate, but it only labels 'id' as a path parameter and 'body' as a request payload, directing the agent to GET or /schema for field details. It does not explain that id identifies the collection or describe any expected body fields, leaving most parameter meaning to external lookups.

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

Purpose4/5

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

The description states the verb 'Delete' and the resource 'api collections', and the included endpoint 'DELETE /api/collections/{id}' clarifies that it deletes a single collection by ID. It is not a tautology, though 'collections' is plural and it could be more explicit that this targets the collection itself rather than a book within a collection.

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

Usage Guidelines3/5

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

The description implies the tool is used to delete collections by ID and gives a practical prerequisite: read the matching GET or /schema endpoint first for body fields. However, it does not explicitly distinguish this from close siblings like delete_collections_by_id_book_by_book_id or explain when to choose this over patch_collections_by_id.

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

delete_collections_by_id_book_by_book_idC
DestructiveIdempotent

Delete collections book.

DELETE /api/collections/{id}/book/{bookId}

Args: id: Path parameter. book_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo
book_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true and idempotentHint=true. The description adds some specificity by identifying the target as the book-collection relationship via the endpoint path, which goes slightly beyond the raw annotation. However, it does not disclose consequences such as whether the book itself is deleted or whether the removal 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.

Conciseness3/5

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

The description is short and front-loaded with the endpoint, but the 'Args' section largely repeats the input schema with phrases like 'Path parameter' that add no new information. The useful body-schema pointer is buried at the end. Acceptable size, but not every line earns its place.

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

Completeness3/5

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

For a straightforward delete operation with an output schema and annotations covering destructiveness/idempotency, the description is minimally adequate. However, it omits usage context and leaves parameter semantics vagueho, and relies on the schema endpoint for body information. It is complete enough for a simple call but has clear gaps.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to compensate. It only labels id and book_id as 'Path parameter' without explaining that id refers to the collection ID and book_id to the book ID. The body advice to read the matching GET or schema endpoint is helpful, but the two required path parameters remain semantically under-described.

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

Purpose4/5

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

The description states a specific verb ('Delete') and resource ('collections book'), and the included endpoint template 'DELETE /api/collections/{id}/book/{bookId}' makes the operation unambiguous: removing a book from a collection via its collection ID and book ID. It does not explicitly contrast with sibling operations like create_collections_by_id_book, but the verb and path make the primary purpose clear.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives. The description does not mention that this is the inverse of create_collections_by_id_book, nor does it explain context such as 'use this to remove a book from a collection.' It only restates the request endpoint and parameters.

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

delete_custom_metadata_providers_by_idB
DestructiveIdempotent

Delete api custom-metadata-providers.

DELETE /api/custom-metadata-providers/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the agent knows this is a destructive but idempotent operation. The description adds the instruction to read the matching GET or /schema endpoint first to understand the body fields, which is useful context. However, it doesn't disclose consequences like cascading deletions or irreversibility beyond what annotations imply.

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

Conciseness4/5

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

The description is compact and front-loads the core operation in the first line. The endpoint and args are clearly separated. It earns its place with the body guidance, though the 'Args' section is somewhat redundant with the schema.

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

Completeness3/5

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

For a delete operation with annotations covering destructive and idempotent hints, the description is mostly adequate. It lacks details about the response format (though an output schema exists) and doesn't explain what happens to related data. The pointer to GET/schema for body fields is a reasonable workaround but leaves the agent to do extra research.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It explains that 'id' is a path parameter and 'body' is a request payload, but it doesn't provide any detail about what the body should contain or what the id refers to beyond the resource name. The instruction to read the GET or /schema endpoint is helpful but shifts the burden to the agent rather than documenting the parameters.

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

Purpose4/5

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

The description states a specific verb and resource: 'Delete api custom-metadata-providers' and includes the exact DELETE endpoint. It clearly identifies the operation as deleting a custom metadata provider by ID. However, it doesn't explicitly distinguish from sibling delete tools, though the resource name is unique enough.

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

Usage Guidelines3/5

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

The description implies usage by showing the DELETE endpoint and the id path parameter. It does not explicitly state when to use this tool versus alternatives, but the resource-specific naming and endpoint make the context reasonably clear. No exclusions or alternative tool references are provided.

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

delete_genres_by_genreC
DestructiveIdempotent

Delete api genres.

DELETE /api/genres/{genre}

Args: genre: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNo
genreYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is known; the description merely restates the deletion and the HTTP route. It adds no consequences (e.g., whether deleting a genre cascades or is reversible) beyond the caution to read GET/schema before sending a body, so it contributes 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.

Conciseness4/5

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

The text is compact and front-loaded: one-line purpose, route, then args. The route repeats some of the purpose line, and the arg lines are terse, but there is no filler and the useful GET/schema instruction is included.

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

Completeness3/5

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

For a simple two-parameter delete with an output schema and destructive/idempotent annotations, the essentials are present. Still, it omits how to obtain a valid genre value and does not state whether the body is optional, leaving the agent dependent on the schema and external endpoint discovery.

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

Parameters3/5

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

The schema gives 'genre' as a string and 'body' as an open object, and the description labels genre as a path parameter and body as a request payload. Its main added value is instructing the agent to read the matching GET or /schema endpoint to discover body fields, which partly compensates for the 0% schema description coverage, but it does not describe actual genre value semantics or mark body as optional.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a concrete action and resource ('Delete api genres') and includes the exact route 'DELETE /api/genres/{genre}', so the agent knows it removes a genre. It is clear enough to distinguish from sibling delete tools like delete_tags_by_tag, though it doesn't explicitly state whether the path value is a genre name or ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to choose this tool over delete_tags_by_tag, delete_authors_by_id, or other delete endpoints. The only procedural note is 'Read the matching GET or the /schema endpoint first', which helps with body construction but does not address tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_items_by_idC
DestructiveIdempotent

Delete api items.

DELETE /api/items/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description merely repeats the destructive intent already captured by the destructiveHint=true annotation and readOnlyHint=false. It adds no additional behavioral context such as whether deletion is permanent, cascades to related resources, or requires specific permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core operation and endpoint. It avoids unnecessary prose, though the 'id: Path parameter' line is largely redundant with the endpoint URL.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and annotations plus output schema cover some context, but the description still omits important operational details like deletion consequences, idempotent behavior beyond the hint, and any relationship to sibling bulk-delete or file-specific delete tools. It is minimally viable but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description does add some value by labeling id as a path parameter and explaining that the body expects fields discoverable via GET or /schema. However, it does not describe the id's meaning, format, or the body's actual contents, relying on an external lookup.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Delete api items' and provides the specific DELETE /api/items/{id} endpoint, making the verb and resource unambiguous. However, it does not explicitly distinguish itself from sibling delete tools like delete_items_by_id_cover or delete_items_by_id_file_by_fileid.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus any of the many sibling delete tools. The only directive is to read the matching GET or /schema endpoint for the body payload, which pertains to parameter preparation, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_items_by_id_coverB
DestructiveIdempotent

Delete items cover.

DELETE /api/items/{id}/cover

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, but the description adds no behavioral context beyond that, such as whether the cover is permanently removed, whether a default cover is restored, or any side effects. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded with the core action, then the endpoint, then parameter guidance. There is no filler or redundant content; every line serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with annotations covering destructiveness and idempotency, the minimal description is mostly adequate. However, it omits details about the effect of deletion and gives no usage context, and it relies heavily on the external GET/schema instruction for body construction.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description compensates by labeling id as a path parameter and body as the request payload. The instruction to read the matching GET or /schema endpoint first is useful for discovering expected body fields, though the description does not explain what id represents or enumerate body fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Delete items cover' and the endpoint DELETE /api/items/{id}/cover. It is specific enough to be distinguished from sibling delete operations like delete_items_by_id, though it does not elaborate on what 'cover' means or the scope of deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as patch_items_by_id_cover or get_items_by_id_cover. The only usage-related instruction is to read the matching GET or /schema endpoint for body fields, which is about parameter construction rather than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_items_by_id_file_by_fileidB
DestructiveIdempotent

Delete items file.

DELETE /api/items/{id}/file/{fileid}

Args: id: Path parameter. fileid: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo
fileidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish destructiveHint=true and idempotentHint=true; the description adds no behavioral context beyond the HTTP verb. It does not disclose side effects, reversibility, permissions, or what happens to related resources. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three terse lines with no filler: action statement, exact route, and per-argument annotations plus a useful pointer. It is front-loaded with the purpose and avoids repeating schema types.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter delete with annotations covering destructive/idempotent behavior and an output schema present, the description supplies enough to invoke correctly: route, param roles, and a discovery path for the payload. The lack of sibling differentiation and side-effect detail keeps it just short of fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description maps id and fileid to path parameters and explains that body is a request payload whose fields must be discovered via GET or /schema. This compensates for the opaque body schema (anyOf object/null) by telling the agent how to obtain the required structure, though it does not enumerate actual fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Begins with a specific action and resource ('Delete items file') and gives the exact DELETE endpoint with {id} and {fileid}, making clear it removes a file from an item. It does not, however, distinguish itself from siblings such as delete_items_by_id_cover or get_items_by_id_file_by_fileid, and 'items file' is slightly terse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance, and no alternatives are named. The only operational instruction is to consult the matching GET or /schema endpoint for body fields, which is a prerequisite step but not guidance for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_libraries_by_idA
DestructiveIdempotent

Delete a single library by ID on server.

DELETE /api/libraries/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, and the description's 'Delete' is consistent with them. The description adds no further behavioral context such as permanence, cascading effects, or auth requirements, but 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: purpose, HTTP verb/path, then arguments. Every section earns its place, and the body field note is useful rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter delete operation with an output schema and annotations covering destructiveness and idempotence, the description is nearly complete. It could mention permanence or required auth, but the clear target and the instruction for discovering body fields make it sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that id is a path parameter and explains that body is a request payload whose expected fields should be discovered via the matching GET or /schema endpoint. This gives an agent a concrete way to resolve the body's shape despite the empty schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Delete a single library by ID on server.' It clearly identifies the target as the library itself, making it easy to distinguish from siblings like delete_libraries_by_id_issues and delete_libraries_by_id_narrators_by_narrator_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to choose this tool over alternatives such as patch_libraries_by_id or the more specific delete_libraries_by_id_issues. The description simply restates the DELETE operation and leaves usage decisions 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.

delete_libraries_by_id_issuesA
DestructiveIdempotent

Delete items with issues in a library.

DELETE /api/libraries/{id}/issues

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the description does not need to repeat that. It adds a useful caveat that the body payload requires prior schema/GET consultation, but it does not clarify what exactly constitutes 'issues' or what side effects the deletion has beyond being destructive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact: a one-line purpose, the endpoint, and short parameter notes. Every sentence earns its place, and the essential purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive, idempotent operation with an output schema available, this is minimally adequate. It states the target resource and points to GET/schema for body fields. Still, it leaves the meaning of 'issues' unexplained and does not describe consequences beyond what annotations already convey.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It identifies id as a path parameter and body as a request payload requiring schema lookup, which is helpful. However, it does not enumerate or explain the body fields, and id's role as the library ID is only implicit in the endpoint path.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Delete items with issues in a library.' It also gives the concrete endpoint, which distinguishes this from deleting an entire library (delete_libraries_by_id) or deleting individual items (delete_items_by_id).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. The only instruction, 'Read the matching GET or the /schema endpoint first,' is a preparation step rather than a usage criterion. An agent cannot infer when this tool should be preferred over delete_libraries_by_id or delete_items_by_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_libraries_by_id_narrators_by_narrator_idC
DestructiveIdempotent

Delete libraries narrators.

DELETE /api/libraries/{id}/narrators/{narratorId}

Args: id: Path parameter. narrator_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo
narrator_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already state destructiveHint=true and readOnlyHint=false, so the description adds little beyond them. It does not explain whether the deletion removes the narrator entity entirely or only the library-narrator relation, nor does it describe reversibility or side effects. The 'Delete libraries narrators' line is vague and does not meaningfully clarify what gets destroyed without relying on the URL.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, containing the URL, an Args section, and a body note. However, the opening sentence is poorly formed and detracts from the overall clarity. The structure itself is acceptable but would benefit from a clearer one‑line summary instead of the awkward first phrase.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description supplies the endpoint, path parameters, and a practical reference for the body structure. Because an output schema exists, return values are covered by schema. Still, the missing explicit purpose and a precise statement of what is removed make it not fully complete for a tool that could otherwise be a self-explanatory delete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden for parameter meaning. It lists 'id' and 'narrator_id' as path parameters, but the URL path '/api/libraries/{id}/narrators/{narratorId}' provides the crucial semantic. The body note directing the agent to read the matching GET or /schema is useful and compensates partly for the schema gap, though it does not directly describe required fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first line 'Delete libraries narrators.' is grammatically ambiguous and fails to clearly state the relation between libraries and narrators. The DELETE URL path is more informative, but the sentence alone does not disambiguate whether it deletes libraries, narrators, or a narrator from a library. It also does not differentiate from sibling tools such as delete_libraries (delete library) or patch_libraries_by_id_narrators_by_narrator_id (update narrator).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus other delete/patch operations for libraries and narrators. The only instructional note, 'Read the matching GET or the /schema endpoint first', is about body fields, not about selecting the appropriate operation. An agent cannot tell when this deletion is preferred over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_me_item_by_id_bookmark_by_timeB
DestructiveIdempotent

Delete item bookmark.

DELETE /api/me/item/{id}/bookmark/{time}

Args: id: Path parameter. time: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo
timeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the destructive and read-only profile, so the description does not need to restate them. It adds a useful discovery instruction to consult the GET or /schema endpoint before sending a body, but does not add further behavioral context like irreversibility or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is terse and front-loaded: a one-line summary, the HTTP method/path, and compact arg roles. Every sentence contributes, with no filler or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple destructive endpoint with annotations and an output schema, the core call is identifiable and the body-discovery pointer helps. It remains incomplete because it lacks parameter semantics, usage guidance, and explicit differentiation from sibling bookmark operations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description at least labels id and time as path parameters and body as the request payload, which the raw schema does not convey. However, it never explains what id and time semantically represent or what format time should take, leaving much to be inferred from the endpoint name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action and resource: 'Delete item bookmark.' with the HTTP DELETE endpoint. It does not, however, explicitly contrast itself with siblings like create_me_item_by_id_bookmark or patch_me_item_by_id_bookmark.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided for when to use this tool versus sibling bookmark tools, nor when deletion is appropriate. The instruction to read the matching GET or /schema endpoint is about payload 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.

delete_me_progress_by_idB
DestructiveIdempotent

Delete me progress.

DELETE /api/me/progress/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds little beyond the annotations. Annotations already declare destructiveHint=true and idempotentHint=true, so the fact that it deletes is redundant. The description does not disclose any additional behavioral traits such as side effects, permission requirements, or error behavior. The only extra context is the body payload hint, which is more about parameter handling than 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with no filler. It leads with the purpose, then lists the parameters with brief, actionable notes. Every sentence earns its place, and the structure is clear and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that the output schema exists, the response format is covered. The description does not explain the id parameter's meaning (though inferable from the tool name) or any prerequisites like fetching the progress ID first. For a destructive, idempotent operation, the description is adequate but lacks explicit usage guidance and edge-case behavior. It is complete enough for a simple delete but could benefit from a sentence on how to find the correct id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It identifies 'id' as a path parameter and 'body' as a request payload, but it does not explain what 'id' represents (e.g., the progress entry ID) or give any concrete field examples. The pointer to 'read the matching GET or the /schema endpoint' is useful for understanding the body structure, but it does not provide direct semantic meaning for the parameters themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Delete') and resource ('me progress'), which is sufficient to distinguish it from other delete tools. It is not a tautology, and the resource is specific. However, it doesn't elaborate on what 'me progress' refers to, which is inferable from the tool name and context but not explicitly stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like list_me_progress or patch_me_progress_*. The description only restates the action and parameter list, with no mention of prerequisites (e.g., needing to fetch the ID first) or exclusions. The body hint about reading the GET/schema endpoint is the only usage-related instruction, but it applies to parameter construction, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_me_sessions_by_idB
DestructiveIdempotent

Delete me sessions.

DELETE /api/me/sessions/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry destructiveHint=true and idempotentHint=true, and the description adds only the HTTP method and resource path, not extra consequences like whether the deletion is permanent or affects active playback. It does not contradict the annotations, but it provides no behavioral disclosure beyond what the structured hints already say.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and easy to scan, and the body-discovery instruction is front-loaded. The wording 'Delete me sessions' is grammatically unclear, but the description contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple DELETE-by-id operation, the description plus annotations and output schema is nearly sufficient, and the body hint addresses the one opaque field. It is incomplete around operational context: no explicit current-user scope, no guidance for choosing between this and sibling session-deletion tools, and no mention of how to locate the id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The body parameter is an opaque open object, so the direction to read the matching GET or /schema endpoint first is valuable and partially compensates for zero schema description coverage. The 'id' entry only repeats that it is a path parameter and adds no semantic context such as where to find valid session IDs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation (delete) and the resource (a session under /api/me/sessions/{id}), so an agent can infer it deletes the current user's session. However, 'Delete me sessions' is awkwardly worded and it does not explicitly distinguish this from delete_sessions_by_id or session-close siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The path and 'me' imply this is for deleting the current user's sessions rather than admin/scoped sessions, and the instruction to read the matching GET or /schema endpoint is a useful precondition. But it never states when to prefer this over delete_sessions_by_id or how the id should be obtained.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_notifications_by_idA
DestructiveIdempotent

Delete a notification.

DELETE /api/notifications/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the safety profile is externally known. The description adds little beyond the bare 'Delete a notification' action, but it does not contradict the annotations. Given the simple operation, no serious behavioral disclosure gap remains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sections: purpose, endpoint, args. No filler or repeated annotation content, and the core action is front-loaded. Every sentence adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The definition covers the operation, the endpoint, and parameter preparation strategy, while annotations cover destructive/idempotent behavior and an output schema covers return values. It could note that body is optional, but the schema already marks it not required with a null default, so an agent can call correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden. It clarifies id is a path parameter and explains body is a request payload whose expected fields can be discovered via GET or /schema. This gives an agent actionable direction for both parameters, even though the exact body fields are not enumerated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with 'Delete a notification' — a concrete verb and resource. The HTTP endpoint and args make the target unambiguous, and the name distinguishes it from other delete_* siblings. No ambiguity about what object is affected.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or alternative comparison against sibling delete operations or patch_notifications_by_id. The instruction to read the matching GET or /schema endpoint is a prerequisite for constructing the body, not guidance about when to choose this tool. Selection must be inferred from the name and operation alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_playlists_by_idC
DestructiveIdempotent

Delete api playlists.

DELETE /api/playlists/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare destructiveHint=true and idempotentHint=true, so the destructive nature is known. However, the description adds no new behavioral context: it does not state whether deletion is permanent, whether related playlist items are also removed, whether confirmation is needed, or what side effects occur. The description merely repeats the DELETE semantics already present in the name 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and organized with the action, endpoint, then argument notes. The opening line 'Delete api playlists' is somewhat redundant with the name and endpoint, but the overall structure is efficient and easy to parse. 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete-by-id operation, the description provides the essential resource, endpoint, and a pointer for discovering body fields. Annotations and the output schema cover destructiveness and return expectations. However, the description lacks broader context such as irreversible effects, prerequisites, or when to prefer this over related playlist mutation tools, 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.

Parameters3/5

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 identifies 'id' as a path parameter and 'body' as a request payload, and it advises reading the matching GET or /schema endpoint to discover expected fields. This is useful but does not fully compensate for the opaque body schema or provide details about id constraints or body composition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete api playlists') and includes the exact endpoint 'DELETE /api/playlists/{id}', so an agent can identify the resource and scope. It does not explicitly contrast with closely related siblings such as delete_playlists_by_id_item_by_library_item_id_by_episode_id, but the endpoint and resource are specific enough for basic differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like patch_playlists_by_id or the item-removal playlist endpoint. The only procedural hint is to read the matching GET or /schema endpoint for the body payload, which is parameter guidance rather than usage context. No exclusions or condition-based routing are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_playlists_by_id_item_by_library_item_id_by_episode_idC
DestructiveIdempotent

Delete playlists item.

DELETE /api/playlists/{id}/item/{libraryItemId}/{episodeId}?

Args: id: Path parameter. library_item_id: Path parameter. episode_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo
episode_idYes
library_item_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the description adds no new behavioral information. It does not disclose effects such as irreversibility or side effects. The only extra note, advising to read GET or /schema for the body, relates to parameter handling, not behavior. It does not contradict annotations, but the bar for adding value is not met.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loads the action and HTTP method, and lists parameters in a clear structure. It wastes no words and is easy to scan, though it omits important context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with four parameters and no schema description coverage, the description is too thin. It does not explain what constitutes a valid playlist item, what the expected values for library_item_id and episode_id are, or what happens after deletion. The pointer to GET/schema helps with the body but not with the path parameters. An agent lacks sufficient information to call this tool correctly without additional lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It merely restates the path parameter names and types (e.g., 'id: Path parameter') without explaining their meanings or relationships. The only useful addition is the instruction about the body payload, but the three required path parameters remain under-explained. An agent would still need to infer what id, library_item_id, and episode_id represent from the endpoint path.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb 'Delete' and the resource 'playlists item', and includes the HTTP path which clarifies the scope (removing an item from a playlist). It is clear but does not explicitly contrast with sibling tools like delete_playlists_by_id (which deletes an entire playlist), so differentiation is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. It does not mention when to use it (e.g., when removing a specific episode from a playlist) or when not to. The description only describes the action without contextual selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_podcasts_by_id_episode_by_episode_idA
DestructiveIdempotent

Remove a podcast episode.

DELETE /api/podcasts/{id}/episode/{episodeId}

Args: id: Path parameter. episode_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. hard: Hard delete the episode if set to 1

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo
hardNo
episode_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the description does not need to restate those. It adds value by explaining the 'hard' parameter (hard delete if set to 1) and by suggesting to inspect the schema for expected body fields, which goes beyond annotation data. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a one-line summary, the endpoint, then a bulleted Args list. It is front-loaded with the core purpose and every sentence contributes to usage. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (delete with optional body and hard flag), the description covers all parameters and hints at preparation steps. Annotations handle destructive/idempotent semantics, and an output schema exists for return values. It lacks an explicit mention of the soft-delete alternative, but that is minor given the available context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden. It clearly explains id and episode_id as path parameters, body as a request payload requiring prior schema consultation, and hard as a flag for hard deletion. This provides meaningful semantic context that the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove a podcast episode') and provides the exact endpoint. While it does not explicitly differentiate from other delete tools, the name and endpoint make it specific to podcast episodes, distinguishing it from generic delete operations like delete_items_by_id. A 5 would require 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a practical hint to read the GET or /schema endpoint before supplying a body, which guides parameter preparation. However, it offers no guidance on when to choose this tool over other delete operations, nor any exclusion criteria. The usage context is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_sessions_by_idB
DestructiveIdempotent

Delete api sessions.

DELETE /api/sessions/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the description doesn't need to restate those. It adds the instruction to read the GET or /schema endpoint first, which hints at the need to understand the resource before deletion. However, it doesn't disclose consequences like cascading effects or whether deletion is permanent, beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core action. The endpoint and parameter list are immediately useful. The body guidance is a bit vague but the overall structure is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a delete operation with annotations covering destructiveness and idempotency, the description is mostly adequate. The main gap is the body parameter semantics, which is deferred to another endpoint. Given the output schema exists and the operation is simple, this is acceptable but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It names 'id' as a path parameter and 'body' as a request payload, but provides no detail about what the body should contain or what fields are expected. The instruction to read the GET or /schema endpoint is a workaround, not actual parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Delete api sessions' and includes the HTTP endpoint DELETE /api/sessions/{id}. It distinguishes itself from sibling delete tools by specifying sessions, though it doesn't explicitly contrast with delete_me_sessions_by_id or create_sessions_batch_delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by naming the endpoint and parameters, but it doesn't explicitly state when to use this tool versus alternatives like delete_me_sessions_by_id or create_sessions_batch_delete. It gives a hint to read the matching GET or /schema endpoint first, which is useful context but not a full when/when-not guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_share_mediaitem_by_idA
DestructiveIdempotent

Delete share mediaitem.

DELETE /api/share/mediaitem/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and readOnlyHint=false, so the destructive nature is known. The description adds a hint about the body payload ('Read the matching GET or /schema endpoint...') and states the HTTP method, but does not discuss side effects, reversibility, or authorization. Since annotations cover the safety profile, a modest score of 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action, and contains no filler. The endpoint and argument explanations are efficient. It earns a top score for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and the presence of an output schema, the description provides the essential endpoint and points to external documentation for the body fields. However, it lacks context about what a 'share mediaitem' is, the nature of the id, or any caveats about the deletion. This is adequate but not complete for an agent unfamiliar with the resource.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides no description for the body parameter (coverage 0%), and the description compensates by advising the agent to read the GET endpoint or /schema for field expectations. For the id parameter, it only restates 'Path parameter' without explaining its semantic meaning (e.g., that it identifies a share media item). This adds some value for body, but minimal for id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Delete') and a specific resource ('share mediaitem'), clearly distinguishing it from sibling deletion tools like delete_items_by_id or delete_libraries_by_id. The endpoint path further clarifies the resource type. The purpose is unambiguous and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention any conditions, exclusions, or why one might choose this over other delete tools. The only clue is the resource name, but that is implicit rather than explicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_tags_by_tagB
DestructiveIdempotent

Delete api tags.

DELETE /api/tags/{tag}

Args: tag: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already mark this as destructive and idempotent, but the description adds no behavioral detail beyond restating the delete action. It doesn't mention whether deletion is permanent, cascades, or requires special permissions. The only extra is the advice to read GET or /schema for body fields, which is more about parameter discovery than behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the purpose statement first, then the endpoint, then a short argument list. The advice to consult the GET or schema endpoint is useful and earns its place. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation, the description covers the tag parameter and points to external sources for body fields. It does not explain the response shape or side effects, but the output schema and annotations partially fill that gap. The reliance on external discovery for the body is a reasonable pattern but leaves the description incomplete on its own.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description identifies tag as a path parameter and body as a request payload, adding semantics beyond the schema's bare types. It also directs the agent to the matching GET or /schema endpoint for body field details, which compensates for the 0% schema coverage. However, it doesn't specify any actual body fields, so the semantic enrichment is limited.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation as 'Delete api tags' and provides the HTTP endpoint DELETE /api/tags/{tag}, making the resource and action explicit. It is distinguishable from sibling delete tools by naming tags specifically, even though it doesn't call out alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives is provided. The description only says 'Delete api tags,' which is a purpose statement, not a usage guideline, and there are no exclusions or alternative references. It doesn't tell the agent when a delete is appropriate or what prerequisites exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_tools_item_by_id_encode_m4bB
DestructiveIdempotent

Delete item encode-m4b.

DELETE /api/tools/item/{id}/encode-m4b

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey the key safety profile: destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds the useful instruction to read the matching GET or /schema endpoint for the expected body fields, but it does not describe consequences beyond 'delete' and 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise and well-structured: operation first, then endpoint, then argument definitions. Each line earns its place, including the pointer to the GET/schema endpoint. There is no filler or repetition beyond the endpoint itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with one required id and an optional body, the description identifies the path parameter and instructs reading the matching GET/schema endpoint. Annotations cover idempotent/destructive behavior and an output schema exists, so return-value documentation is not needed. However, it omits what 'encode-m4b' refers to and when to use this tool over related siblings, 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.

Parameters2/5

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 labels id as 'Path parameter' and body as 'Request payload', then tells the agent to read the GET or /schema endpoint. It does not explain what id refers to or what body fields are actually expected, leaving a significant semantic gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Delete item encode-m4b', which names a specific verb and resource, and it includes the full DELETE endpoint. It is not a tautology because it adds the endpoint and argument structure, but it does not clarify what 'encode-m4b' means or differentiate itself explicitly from the many sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as create_tools_item_by_id_encode_m4b or other delete_* tools. It simply restates the action and endpoint without 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.

delete_users_by_idA
DestructiveIdempotent

Delete api users.

DELETE /api/users/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare `destructiveHint: true`, so the destructive nature is known. The description states 'Delete' which matches. It adds an operational hint about reading the GET/schema endpoint for body fields, which is more about parameter prep than behavior. It doesn't disclose side effects (e.g., whether associated data is removed, if the operation is irreversible, or auth requirements). With annotations covering the main safety profile, the description provides minimal extra behavioral context but 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: a one-line action, the endpoint, and two bulleted args. The core purpose is front-loaded, and each sentence serves a clear function. No filler or redundant content. It's efficient and well-structured for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with an output schema (present) and annotations, the description is nearly complete. It covers what the tool does, the endpoint, and how to handle parameters (including where to find body field details). It doesn't explain error handling or return values, but the output schema covers those. With annotations declaring destructive and idempotent, the description is sufficient for an agent to call it correctly, though it could add a note about irreversibility or auth requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains `id` as a path parameter, and `body` as a request payload, advising to read the GET or /schema endpoint for field details. This adds meaning beyond the raw schema (which only gives type and defaults). It does not explicitly mention that `id` is required (though the schema marks it required) or that `body` is optional, but those are in the schema. The guidance to consult the schema is practical and helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Delete') and the resource ('api users'), and the endpoint `/api/users/{id}` specifies a single user. It distinguishes from siblings like `delete_authors_by_id` or `delete_api_keys_by_id` by targeting users, though it doesn't explicitly say 'delete a single user by ID' — that's implied by the path parameter. Clear enough for an agent to identify its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus other delete tools (e.g., `delete_authors_by_id`). There is no mention of preconditions, exclusions, or when to prefer alternatives. The only instruction relates to preparing the `body` parameter (read GET or /schema), which is about parameter usage, not usage context. The description does not state 'use this to delete a user' or any conditions around it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_authors_by_idA
Read-onlyIdempotent

Get an author by ID.

GET /api/authors/{id}

Args: id: Path parameter. include: A comma separated list of what to include with the author. The options are items and series. series will only have an effect if items is included. For example, the value items,series will include both library items and series.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
includeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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 the HTTP method and the include dependency behavior, but does not disclose authentication needs, error behavior, or response characteristics. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core purpose, and uses a clear Args section. The example for include is useful and not padded. Every sentence contributes value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only endpoint with two parameters, an output schema, and strong annotations, the description is complete enough. It covers the endpoint path, both parameters, optional include behavior, and the relationship between include values. Nothing critical is missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the parameter-documentation burden. It explains id as a path parameter and thoroughly documents include with allowed values, the dependency of series on items, and a concrete example. The id explanation is minimal but sufficient given the first sentence establishes the author context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get an author by ID.' It is clear and unambiguous, but it does not explicitly differentiate itself from siblings like get_authors_by_id_image, delete_authors_by_id, or patch_authors_by_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.

Usage Guidelines3/5

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 a single author by ID. However, it gives no explicit guidance about when to prefer this over related tools such as list_search_authors or get_libraries_by_id_authors, nor does it mention exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_authors_by_id_imageA
Read-onlyIdempotent

Get an author image by author ID.

GET /api/authors/{id}/image

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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 exact GET endpoint and path structure, but does not disclose behavior such as error responses, image format, or authentication requirements. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with the core purpose front-loaded, followed by the endpoint and argument details. There is no wasted wording or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple read-only image-fetching tool with one parameter and an output schema. The annotations cover safety, and the description covers the resource and endpoint. It could mention expected response behavior, but for this low-complexity tool the level of detail is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden. It adds that 'id' is a path parameter and ties it to the author ID, which is useful, but it does not elaborate on format, type constraints beyond the schema, or examples. For a single obvious parameter this is minimally sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get an author image by author ID.' This clearly distinguishes it from siblings like get_authors_by_id (author metadata) and create/delete_authors_by_id_image (mutations of the image).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this tool when you need the author's image, given the author ID. It does not explicitly mention alternatives or exclusions, but the purpose is unambiguous enough for an agent to select it over the create/delete image siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_backups_by_id_applyC
Read-onlyIdempotent

Get backups apply.

GET /api/backups/{id}/apply

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly, idempotent, and non-destructive behavior. The description adds no behavioral context beyond the HTTP method and path, so it does not meaningfully disclose anything beyond what structured 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, but the opening sentence is a redundant restatement of the tool name and the Args section mostly repeats schema information. Brevity here reflects under-specification rather than efficient communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though the tool has only one parameter and an output schema, the description fails to explain the core operation: what 'apply' does, what the response represents, or how this endpoint differs from related backup endpoints. An agent would struggle to decide when to call this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description only says 'id: Path parameter', which is slightly more than the schema's bare property definition but adds little real meaning. It does not explain what the id identifies, what values are valid, or how it affects the operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a tautology of the tool name ('Get backups apply') and provides no explanation of what 'apply' means in this context. The endpoint path is listed, but the actual function and resource semantics remain unclear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many sibling tools. It does not distinguish itself from get_backups_by_id_download, list_backups, or other backup-related operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_backups_by_id_downloadC
Read-onlyIdempotent

Get backups download.

GET /api/backups/{id}/download

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the endpoint and path parameter, without disclosing behavior such as whether the response is a binary file, a redirect, or requires special handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately short and front-loaded, with the endpoint and parameter information presented cleanly. Each line has a purpose, though the phrase 'Get backups download' is somewhat awkward and redundant with the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter GET endpoint with strong annotations and an output schema present, the description is minimally viable. It lacks context about selecting this endpoint over siblings and does not clarify what the download response represents, but the required invocation details are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema only provides a required string 'id', and the description adds the useful detail that id is a path parameter via both the endpoint and the Args section. However, it does not clarify what the id refers to beyond the endpoint context, so it only partially compensates for the 0% schema description coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the operation as a GET on /api/backups/{id}/download, which conveys the verb and resource. It is not merely a restatement because the endpoint adds specificity, although it does not explicitly differentiate from sibling backup tools like list_backups or get_backups_by_id_apply.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It does not mention list_backups for finding IDs, get_backups_by_id_apply for a different backup operation, or any conditions that should route an agent here.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_collections_by_idC
Read-onlyIdempotent

Get api collections.

GET /api/collections/{id}

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond the HTTP verb and path; there is no mention of return behavior, error cases, authorization, rate limits, or any side effects. The description does not contradict the annotations, but it also does not meaningfully extend them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: a one-line summary, the endpoint, and an Args section. No unnecessary explanation is included. It loses a point because 'Get api collections' is slightly vague compared to something like 'Get a single collection by its ID', and the endpoint duplicates the Args line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read operation, this is minimally viable: an agent knows the HTTP method, path, and required id. Since an output schema exists, the description does not need to explain return values. However, it does not clarify whether the id is the collection's UUID, how errors are represented, or when a caller should choose this over list_collections. The lack of these details leaves a small but meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only restates that id is a path parameteraging, which is already visible in the endpoint and schema. It does not explain what the id represents (e.g., collection UUID), expected format, or any constraints beyond being a required string.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get api collections' with the endpoint GET /api/collections/{id}. The id path parameter makes it evident that this returns a single collection by identifier, which distinguishes it from list_collections. However, it does not explicitly name or contrast sibling tools like list_collections or get_libraries_by_id_collections, so it misses the top differentiation credit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no explicit guidance about when to use this tool versus alternatives. It does not mention that this fetches one specific collection or that list_collections should be used for retrieving all collections. The endpoint and required id imply the use case, but no direct context or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_hls_by_stream_by_fileD
Read-onlyIdempotent

Get hls.

GET /hls/{stream}/{file}

Args: stream: Path parameter. file: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
streamYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds nothing beyond the annotations. While annotations correctly indicate readOnly, idempotent, and non-destructive behavior, the description does not disclose any additional traits such as authentication requirements, rate limits, response format, or potential errors. It is a bare endpoint listing with 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is under-specified rather than concise. It contains a single sentence, the endpoint, and two trivial parameter labels. While there is no fluff, it lacks necessary structure and context. The format is minimal but not efficiently structured for agent comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (two path parameters, read-only, idempotent), a complete description should at least indicate the purpose, what the HLS stream represents, and typical usage. The description fails to mention any of this. The presence of an output schema 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.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description labels both parameters as 'Path parameter', which is not evident from the schema alone, but this is trivial. It does not explain what 'stream' and 'file' refer to (e.g., IDs, names, or formats). With 0% schema coverage, the description should provide substantial semantic meaning, but it only repeats the parameter names and types without elaborating their role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a tautology: 'Get hls' merely restates the tool name. It does not specify what 'hls' is, what resource it operates on, or how it differs from the many other get_* siblings. The endpoint line 'GET /hls/{stream}/{file}' is marginally informative but still fails to clarify the purpose 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.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus any alternative. The description does not mention context, prerequisites, or exclusions. An agent would have no way to know if this is the right tool for a given HLS retrieval scenario compared to other get_* tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_items_by_idC
Read-onlyIdempotent

Get api items.

GET /api/items/{id}

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is known. However, the description adds no behavioral context beyond restating the endpoint and path parameter, such as what is returned, error behavior, or any auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded, with no filler or redundant prose. The endpoint and parameter are presented in a clear three-line structure, 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations, an output schema, and one required parameter, the description is sufficient to attempt a basic call. However, it lacks semantic definition of 'items' and does not route agents away from the many more specific get_items_by_id_* sibling tools, leaving an incomplete picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must define the 'id' parameter, but it only says 'Path parameter.' This adds minimal value beyond the input schema and does not explain what the ID refers to, its format, or any constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource ('api items') and the operation ('Get'), and the included endpoint GET /api/items/{id} clarifies that this fetches one item by ID. It is distinguishable from siblings like get_items_by_id_cover because it is the base item-by-id endpoint, though 'items' remains semantically vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus the many sibling get_items_by_id_* tools. The description does not mention alternatives such as get_items_by_id_cover, get_items_by_id_download, or get_items_by_id_file_by_fileid, nor does it explain that this is the base metadata fetch.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_items_by_id_coverC
Read-onlyIdempotent

Get items cover.

GET /api/items/{id}/cover

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

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 adds no additional behavioral context, such as the response format (e.g., image binary) or any side effects. It relies entirely on annotations and 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief, but this brevity is not effective conciseness—it is under-specification. The single sentence adds no useful content and could be removed entirely without loss. It is not 'appropriately sized' because it lacks substantive information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While an output schema exists and annotations cover safety, the description fails to explain what a 'cover' is, how the returned data is formatted, or any constraints. Given the tool's simplicity, a minimal description could suffice, but this one adds nothing beyond the name, leaving an agent without confidence about the expected output or semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'id' is described as 'Path parameter' in the description, which merely echoes the schema's title 'Id' and the HTTP endpoint. Schema description coverage is 0%, and the description does not compensate by explaining the format, purpose, or possible values of the id. No value is added beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get items cover' which directly restates the tool name 'get_items_by_id_cover'. It adds no new information about what the cover is, what it represents, or how it differs from other sibling tools like get_items_by_id_metadata_object. This is a tautology rather than a clarifying statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus other item-related endpoints. There is no mention of alternatives, prerequisites, or context (e.g., that this returns an image). The description simply repeats the operation without any usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_items_by_id_downloadC
Read-onlyIdempotent

Get items download.

GET /api/items/{id}/download

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive behavior; the description adds no behavioral context beyond restating the HTTP GET method. It does not mention what a download response actually contains, whether authentication is needed, or whether further 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and easy to scan, with the endpoint front-loaded. However, the 'Args' section duplicates the schema and 'Get items download' largely paraphrases the tool name, so some content is redundant rather than additive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the large sibling tool set and multiple download-related endpoints, this description is too sparse to fully guide selection and invocation. It relies heavily on the tool name, endpoint template, annotations, and output schema to fill in what the description itself omits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has a single required string parameter with no description, and schema coverage is 0%. The description only identifies 'id' as a path parameter, which is already evident from the URL template. It does not explain what the id refers to, its format, or any constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation: get an item's download via GET /api/items/{id}/download. The verb 'Get' and the 'download' resource are clear, and the endpoint gives exact scope. It does not explicitly contrast this with sibling download endpoints, but the path itself disambiguates the target resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool instead of alternatives such as get_items_by_id_file_by_fileid_download or get_libraries_by_id_download. The description only restates the endpoint and leaves all selection 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.

get_items_by_id_ebook_by_fileidC
Read-onlyIdempotent

Get items ebook.

GET /api/items/{id}/ebook/{fileid}?

Args: id: Path parameter. fileid: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
fileidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the HTTP method and path template, not behavioral context such as response type, authentication requirements, or whether the endpoint returns raw file bytes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and organized: purpose line, endpoint template, then an Args list. It avoids fluff, though the purpose line is too vague and the trailing '?' in the endpoint is untidy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only GET with two path parameters and an output schema, the endpoint and parameter list are minimally sufficient to attempt a call. However, the lack of semantic detail about the ebook resource and the absence of sibling differentiation leave the description incomplete for confident tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only restates the parameter names and labels both as 'Path parameter.' It does not explain what id and fileid refer to, what formats are expected, or how fileid relates to the item's ebook files.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a GET operation on an 'ebook' resource with id and fileid path parameters, so an agent can infer it retrieves an ebook file. However, 'Get items ebook' is vague and does not say whether this returns file content, metadata, or a download stream, nor does it distinguish it from sibling endpoints like get_items_by_id_file_by_fileid_download.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use this tool versus alternatives. The sibling list contains many get_items_by_id_* endpoints, but the description does not mention any of them or state conditions for choosing this ebook endpoint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_items_by_id_ffprobe_by_fileidC
Read-onlyIdempotent

Get items ffprobe.

GET /api/items/{id}/ffprobe/{fileid}

Args: id: Path parameter. fileid: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
fileidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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 no behavioral context beyond the HTTP route—no mention of auth needs, response characteristics, or side effects—so it contributes little beyond the annotations. 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and mechanically structured as endpoint followed by args, with no wasted words. However, it is under-specified: the opening line is not an explanatory sentence, and the arg list adds no semantic value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists and annotations cover safety, the description doesn't need to explain return values. But it still fails to explain what ffprobe is, what id/fileid mean, or how this endpoint relates to similar item-file endpoints, so an agent cannot confidently select or invoke it correctly without external knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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 id and fileid, but it merely labels both as 'Path parameter.' This repeats the endpoint structure and adds no meaning about what those identifiers refer to, where they come from, 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.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Get items ffprobe') and gives the REST path, so an agent can see it concerns ffprobe data for an item/file. However, 'ffprobe' is never explained and the synopsis is telegraphic, so the tool's actual purpose is less clear than a human-readable statement like 'Retrieve ffprobe metadata for a media file.' It is only weakly distinguished from siblings like get_items_by_id_file_by_fileid.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance about when to use this tool versus alternatives, no exclusions, and no prerequisites. It only restates the endpoint and path parameters, leaving the agent to infer when ffprobe data is needed or how it differs from other item/file endpoints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_items_by_id_file_by_fileidD
Read-onlyIdempotent

Get items file.

GET /api/items/{id}/file/{fileid}

Args: id: Path parameter. fileid: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
fileidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.6/5.0
Behavior2/5

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 adds no behavioral context beyond that—no mention of response format, whether binary data is returned, or any side effects. Given annotations exist, the description still fails to enrich the calling context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, but it is under-specified rather than concise. It wastes no words but also conveys almost no useful information. The content is essentially a restatement of the endpoint and parameter names, providing zero added value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no description of return values (despite having an output schema, it's not referenced), no usage context, and no clarification of what distinguishes this from siblings, the description is far from complete. An agent cannot make an informed decision to call this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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 repeats that id and fileid are path parameters, which is already implied by the endpoint URL. It provides no explanation of what these identifiers refer to, their format, or any constraints. This is insufficient for a tool with two required parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Get items file' which is extremely vague. It does not state what kind of file, what format, or what exactly is returned. The name itself gives more detail than the description, and there is no differentiation from sibling tools like get_items_by_id_file_by_fileid_download or get_items_by_id_ebook_by_fileid. The purpose is unclear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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 mentions no context, no exclusions, and no relationship to any sibling tool. An agent has no clue why they might prefer this over get_items_by_id_file_by_fileid_download or other file-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_items_by_id_file_by_fileid_downloadC
Read-onlyIdempotent

Get file download.

GET /api/items/{id}/file/{fileid}/download

Args: id: Path parameter. fileid: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
fileidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description needs to add more context such as response format or authentication. It only restates the endpoint and path parameters, adding no behavioral information 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose, which is good. However, the 'Args' section is redundant with the input schema and endpoint template, 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only download with two required path parameters, strong annotations, and an output schema, this is close to minimally viable. It still lacks guidance on selecting this download tool over closely related siblings and does not explain what the returned download contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description needed to explain what id and fileid represent and how they are used. It merely labels both as 'Path parameter', which is also inferable from the URL template, so it does not meaningfully compensate for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Get file download', naming the specific verb and resource, and the endpoint path makes the target clear: a file associated with an item. It is recognizable against siblings like get_items_by_id_file_by_fileid even though it does not explicitly call out the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when this tool should be chosen over alternatives such as get_items_by_id_download or get_items_by_id_file_by_fileid. The description provides neither exclusions nor conditions, so an agent must infer usage 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_items_by_id_metadata_objectC
Read-onlyIdempotent

Get items metadata-object.

GET /api/items/{id}/metadata-object

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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 only the endpoint path and a trivial parameter note, without disclosing any additional behavior such as response structure, auth requirements, or rate limits. 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and lacks fluff, but it is under-specified. It is not front-loaded with key information; the endpoint line is helpful, but the rest is minimal. It is concise in length but not in substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description does not need to explain return values, but it still does not provide enough context for an agent to understand what a 'metadata-object' is or when to use this tool. The single parameter is not explained, and there is no hint of typical usage. The description is barely adequate for a simple GET, but it leaves important gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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. However, it only restates 'id: Path parameter,' which adds no meaning beyond the schema's property type and title. It fails to explain that id refers to the item identifier or its format/constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Get') and a specific resource ('items metadata-object'), and the endpoint path is given. It is distinct from siblings like get_items_by_id and get_items_by_id_cover by naming 'metadata-object', but it does not explain what a metadata-object is, leaving some ambiguity about its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention typical use cases, prerequisites, or exclusions, and the huge sibling list offers no comparison 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_libraries_by_idA
Read-onlyIdempotent

Get a single library by ID on server.

GET /api/libraries/{id}

Args: id: Path parameter. include: Query parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
includeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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 little behavioral context beyond the HTTP method and parameter placement; 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.

Conciseness5/5

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 annotations. Every line adds either resource identification or parameter-location guidance, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple two-parameter shape, an output schema, and read-only annotations, the definition is mostly sufficient for a minimal call using only id. The lack of meaning or allowed values for include is the main completeness gap, since the input schema itself provides no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only restates 'id: Path parameter' and 'include: Query parameter'. It does not explain what values include can take or what related data it might return, leaving the most semantically opaque parameter undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get a single library by ID on server', and the endpoint template reinforces the target resource. It distinguishes this from list_libraries and the get_libraries_by_id_* subresource siblings by narrowing to the single library object.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: the description indicates that the tool returns a single library, which suggests using it when the library object itself is needed, not its items, stats, or series. It does not explicitly name any alternative or exclusion condition, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_libraries_by_id_authorsB
Read-onlyIdempotent

Get all authors in a library.

GET /api/libraries/{id}/authors

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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 method and path template, which is not a behavioral trait beyond what annotations imply. It discloses no additional behavior such as pagination, filtering, or response list structure, so it adds minimal value beyond the structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loads the purpose clearly. The 'Args' section is somewhat redundant with the input schema, but it does add the 'Path parameter' annotation. No fluff, but the manual repetition of schema details could be trimmed slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter GET tool with an output schema present, the description covers the core need: the agent knows what it does and what the `id` parameter refers to. However, it lacks any usage context, and the absence of details about potential auth requirements or response pagination is a minor gap given the tool's low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description identifies `id` as a path parameter and the endpoint `/api/libraries/{id}/authors` implies it is the library ID. This adds context beyond the input schema, which only provides the property name 'Id' with no description. Schema coverage is 0%, so the description partially compensates by clarifying the parameter's role, though it could be more explicit about what kind of ID this is (e.g., UUID).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Get all authors in a library.' It also includes the HTTP endpoint, which reinforces the operation. This distinguishes it from sibling tools like get_libraries_by_id_collections or get_authors_by_id, so an agent can tell what it does without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. The description simply states what it does, with no mention of exclusions, prerequisites, or sibling tools such as list_search_authors or get_authors_by_id. It provides no explicit when-to-use or when-not-to-use context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_libraries_by_id_collectionsC
Read-onlyIdempotent

Get libraries collections.

GET /api/libraries/{id}/collections

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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 endpoint and the word 'Get', such as return shape, pagination, or any special 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, with no filler or redundant prose. It would benefit from more parameter semantics, but the structure itself is clean and appropriately sized for a simple one-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity, the presence of an output schema, and the read-only annotations, the description is minimally adequate. However, it lacks explicit sibling differentiation and parameter semantics, so an agent would need to infer the actual meaning of the id and the purpose of the collections response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden of explaining the id parameter. It only restates that id is a path parameter without explicitly saying it is the library ID whose collections should be retrieved, which is a minimal and incomplete semantic explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a GET operation on a collections resource scoped to a library via the endpoint /api/libraries/{id}/collections. It is clear enough about the resource and action, though 'libraries collections' is slightly awkward and it does not explicitly differentiate itself from siblings like list_collections or get_collections_by_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus the many sibling tools that also deal with libraries or collections. The description only states the endpoint and parameter, 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.

get_libraries_by_id_downloadC
Read-onlyIdempotent

Get libraries download.

GET /api/libraries/{id}/download

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description does not contradict them. But beyond the endpoint, the description adds no behavioral context: no mention of response format, whether a large artifact is streamed, auth requirements, or that this is a binary download rather than a JSON response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is short and front-loaded, but the 'Args: id: Path parameter' line duplicates what the schema already states. It is concise at the cost of omitting needed semantics rather than being appropriately compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, annotated read operation the surface area is small, but the description leaves the core ambiguity unresolved: what does downloading a library return and when would an agent choose this over related download or library tools? Even with an output schema present, the description is not informative enough on its own.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description only says 'id: Path parameter', which repeats the schema's type/title without explaining that id is the library identifier or how it is formatted. The meaning is inferable from the endpoint path, but the description does not actually provide it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies an endpoint and resource ('GET /api/libraries/{id}/download') and clearly implies download, but 'Get libraries download' is vague and mostly restates the tool name. It doesn't say what a 'libraries download' is, so an agent cannot be sure whether it yields an archive, a file stream, or metadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or alternative-routing guidance is provided. Although siblings like get_items_by_id_download and get_backups_by_id_download exist, the description never explains that this tool is for downloading a library as opposed to other download operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_libraries_by_id_episode_downloadsC
Read-onlyIdempotent

Get libraries episode-downloads.

GET /api/libraries/{id}/episode-downloads

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. However, the description adds no behavioral context beyond the endpoint—no mention of what 'episode-downloads' represents, what response to expect, or any special conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action and endpoint. There is no redundant prose, and every line contributes to identifying the tool and its parameter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with only one parameter and an output schema, the basic invocation is clear, but the description does not explain what episode-downloads are or when to prefer this over sibling tools. This lack of semantic and comparative context makes it incomplete for reliable tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description does add that 'id' is a path parameter, which the raw schema does not state. The endpoint path also implies the id refers to a library, so the single parameter is minimally explained, though not richly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get libraries episode-downloads' with the endpoint GET /api/libraries/{id}/episode-downloads. This makes the tool's basic function identifiable, though the phrasing is awkward and it does not explicitly distinguish itself from similar library download tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives like get_libraries_by_id_download or get_podcasts_by_id_downloads. The description only provides an endpoint and parameter, leaving the selection context 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_libraries_by_id_filterdataC
Read-onlyIdempotent

Get libraries filterdata.

GET /api/libraries/{id}/filterdata

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which signal a safe read operation. The description adds that it is a GET request and provides the path, but does not add much behavioral context beyond that. It does not contradict annotations, and the annotations already cover the 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and directly repeats the endpoint, but it lacks informative content. The phrase 'Get libraries filterdata' is not expanded. While conciseness is there, it is under-specification rather than efficient communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, the description need not explain return values. However, the tool is very simple with one parameter, and the output schema might provide details. Still, the lack of clarity on what 'filterdata' is makes it incomplete. The description is adequate for API invocation but not for understanding the domain semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter 'id' with description coverage 0%. The description only mentions 'id: Path parameter.' This adds no semantic meaning beyond the schema. For a single path parameter, that is minimal but still expected. However, since coverage is 0%, the description should at least specify the format or purpose of the id, but it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Get libraries filterdata' and includes the endpoint path, but 'filterdata' is unclear jargon. It is not obvious what 'filterdata' means in this context—could be filter options, data for filters, etc. Among siblings like get_libraries_by_id_items and get_libraries_by_id_stats, the distinction is not explicit, but the resource 'libraries' and endpoint are clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It merely restates the endpoint. There are many sibling tools for libraries (items, stats, search, etc.), but no indication of when filterdata is appropriate, nor any mention of prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_libraries_by_id_itemsB
Read-onlyIdempotent

Get items in a library.

GET /api/libraries/{id}/items

Args: id: Path parameter. sort: The field to sort by from the request. filter: The filter for the library. include: The fields to include in the response. The only current option is rssfeed. collapse_series: Whether to collapse series into a single cover

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
sortNo
filterNo
includeNo
collapse_seriesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive, so the bar is lower. The description adds a little behavioral context via the include option ('only current option is rssfeed') and collapse_series ('collapse series into a single cover'), but it does not discuss pagination, filtering syntax, or response-level behavior beyond what the output schema provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and well-structured: a purpose sentence, the endpoint, then a parameter block. It is front-loaded and every line attempts to add value, though some parameter entries are too terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema presumably covers the return shape, but for a 5-parameter endpoint, the description leaves gaps: valid sort values, filter format, and how the library ID is selected or resolved are not explained. It is adequate for a simple call but incomplete for nuanced use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries all parameter meaning. It gives genuinely useful semantics for include and collapse_series, but id is only called a 'Path parameter' and sort/filter are underspecified with no valid fields or filter syntax explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence identifies a specific action and resource ('Get items in a library') and the endpoint path reinforces it. However, it does not explicitly differentiate this from sibling library endpoints like get_libraries_by_id_series or get_libraries_by_id_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage context is provided: the description does not state when to use this tool instead of other library or items endpoints, nor does it mention exclusions or preconditions. The agent is left to infer 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.

get_libraries_by_id_matchallC
Read-onlyIdempotent

Get libraries matchall.

GET /api/libraries/{id}/matchall

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2/5.0
Behavior2/5

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 known. The description adds no behavioral context beyond the endpoint path—it does not explain what 'matchall' returns, what matching behavior occurs, or any other runtime effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is very short, which is good, but this is under-specification rather than useful conciseness. It consists of a vague one-line summary plus an HTTP path and an argument label, leaving the reader without the information needed to understand or confidently invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though an output schema exists and annotations cover safety, the core meaning of 'matchall' is never explained. Given the large set of sibling library endpoints, an agent cannot determine what this tool does, what it returns, or why it is distinct without external knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema documents a single string 'id' parameter with no description. The tool description adds only 'Path parameter,' which is a small structural detail, but it does not explain what value id should contain, what library it refers to, or any constraints. With 0% schema coverage, the description needed to compensate more fully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description essentially restates the tool name: 'Get libraries matchall' adds no semantic content about what 'matchall' actually does. The HTTP path clarifies the route but not the behavior, and there is no differentiation from sibling tools like get_libraries_by_id or get_libraries_by_id_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description gives only an endpoint and an argument placeholder, with no mention of intended scenarios, exclusions, or 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_libraries_by_id_narratorsB
Read-onlyIdempotent

Get libraries narrators.

GET /api/libraries/{id}/narrators

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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 adds no behavioral detail beyond restating the GET endpoint. No side effects, authorization requirements, or response behavior 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the endpoint and argument list presented clearly. It wastes few words, though 'Get libraries narrators' and the endpoint express overlapping information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with an output schema present, the core call path is adequately documented. However, it omits usage context and any behavioral notes, leaving the description minimally viable rather than fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by identifying id as a path parameter, and the endpoint shows it is the library ID. This goes beyond the schema title 'Id' and gives enough meaning to invoke the tool correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('libraries narrators'), and the endpoint path clarifies that it returns the narrators for a given library. It is distinguishable from sibling library subresource tools such as get_libraries_by_id_authors, 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.

Usage Guidelines2/5

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. There is no mention of exclusions, prerequisites, or any relation to sibling operations like get_libraries_by_id_authors or delete_libraries_by_id_narrators_by_narrator_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_libraries_by_id_opmlB
Read-onlyIdempotent

Get libraries opml.

GET /api/libraries/{id}/opml

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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 GET method and the path resource ('opml') but does not disclose additional behavioral context such as response format, auth requirements, or what 'opml' means in practice. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and logically structured: a one-line summary, the endpoint, and an args section. The first line is somewhat redundant with the tool name, but the rest is economical and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, read-only endpoint with full annotations and an output schema, the description is nearly complete. An agent can determine the HTTP method, path, and required parameter. The main gap is the vague phrasing of the purpose, which keeps it from fully clarifying what the OPML response represents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, and the description minimally compensates by stating 'id: Path parameter.' This adds location information not present in the schema, but it does not explain that id represents a library identifier or what values are valid. The single parameter is simple enough that this is adequate but not rich.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a verb and resource ('Get libraries opml') and includes the endpoint GET /api/libraries/{id}/opml, so an agent can infer the operation. However, 'libraries opml' is grammatically awkward and essentially restates the tool name; it does not clearly explain that this returns the OPML document for a specific library or distinguish it from the many other get_libraries_by_id_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives such as get_libraries_by_id, get_libraries_by_id_items, or get_libraries_by_id_download. There are no exclusions, prerequisites, or conditions provided, leaving the agent to 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_libraries_by_id_personalizedC
Read-onlyIdempotent

Get libraries personalized.

GET /api/libraries/{id}/personalized

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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 only the HTTP method and path, not behavioral context such as auth requirements, scoping, or return behavior. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the endpoint immediately after the one-line summary and no filler. It is appropriately sized for a simple one-parameter tool, even though the summary phrase 'Get libraries personalized' is awkwardly worded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values are mostly covered, and annotations provide the safety context. However, the meaning of 'personalized' is never explained and there is no indication of when this endpoint is the right choice among numerous get_libraries_by_id_* siblings, leaving a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description identifies the sole parameter 'id' as a path parameter, which adds placement information beyond the schema. It does not explain what the id refers to or any format constraints, though the tool and path names imply it is the library id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Get' and identifies the resource as libraries with an id, and the HTTP endpoint adds the exact route. However, 'personalized' is left undefined, so the agent cannot tell what this variant actually returns or how it differs from get_libraries_by_id and the many other get_libraries_by_id_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool instead of alternatives like get_libraries_by_id or get_libraries_by_id_items. The only signal is the endpoint suffix 'personalized', which the agent would have to infer without support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_libraries_by_id_playlistsB
Read-onlyIdempotent

Get libraries playlists.

GET /api/libraries/{id}/playlists

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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 HTTP GET method and path structure, which is useful but doesn't go beyond that. It doesn't describe return format, pagination, or permissions, but given the annotation coverage, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the purpose. It includes the endpoint and parameter listing in a clean format. No unnecessary words. However, it could be slightly more structured, but it's efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple GET tool with one parameter and an output schema, the description is adequate but not rich. It omits explicit clarification that the id is a library ID and doesn't mention any additional context like pagination or sorting. Given the output schema covers return values, it's acceptable but leaves room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden for parameter meaning. It only states 'id: Path parameter.' This is redundant given the endpoint and doesn't clarify that the id is the library ID. An agent might infer it from context, but the description does not explicitly state it, leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb 'Get' and the resource 'playlists' for a library, which is clear and specific. It is implicitly distinct from sibling tools like get_libraries_by_id_items by naming 'playlists'. However, it doesn't explicitly describe what the response contains (a list of playlists), 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.

Usage Guidelines2/5

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. Given the large number of sibling get_libraries_by_id_* tools, the description provides no criteria for selection, such as 'use this to retrieve playlists for a library' or mention of any exclusions. This is a significant gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_libraries_by_id_podcast_titlesB
Read-onlyIdempotent

Get libraries podcast-titles.

GET /api/libraries/{id}/podcast-titles

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds only the HTTP method and path, with no additional behavioral context such as response shape or special cases. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loads the core action and endpoint. Every line is compact, though the 'Args' section is minimal and could be integrated more usefully. It is appropriately concise but not overly padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple read endpoint with one parameter and an output schema, so it does not need to explain return values. However, the description lacks context about what 'podcast-titles' means, how the library id relates to the resource, or any caveats. It is minimally viable but leaves semantic gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the undocumented 'id' parameter. It only says 'id: Path parameter,' which adds that it is a path parameter, but fails to clarify that id represents a library ID or specify expected format. This is insufficient given the low schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get libraries podcast-titles' with the endpoint 'GET /api/libraries/{id}/podcast-titles'. This distinguishes it from sibling library endpoints such as get_libraries_by_id_authors or get_libraries_by_id_series, though the phrase 'podcast-titles' is awkward and could be clearer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The endpoint suggests it retrieves podcast titles for a library, but there are no explicit conditions, exclusions, or references 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_libraries_by_id_recent_episodesB
Read-onlyIdempotent

Get libraries recent-episodes.

GET /api/libraries/{id}/recent-episodes

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already cover the safety profile (read-only, idempotent, non-destructive), so the description is not required to restate that. It adds the exact HTTP method and route, but no additional behavioral context such as pagination, ordering, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the core action and exact route; no wasted prose. It is slightly terse, but for a one-parameter read-only call the brevity is appropriate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity, the annotations, and the presence of an output schema, the description is minimally viable for making the call. However, it lacks any indication of when the recent-episodes endpoint is appropriate, what filtering or pagination exists, and what distinguishes it from adjacent library endpoints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the burden of explaining the parameter. It only repeats that id is a path parameter, which the endpoint path already implies, and doesn't clarify that id identifies a library or how to obtain it. This is thin compensation for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Get') and resource ('libraries recent-episodes'), and the explicit endpoint GET /api/libraries/{id}/recent-episodes makes the operation unmistakable. It doesn't elaborate on what a recent-episode is, but the resource is clear enough to separate it from most siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as get_libraries_by_id_episode_downloads or get_libraries_by_id_items. The description only states the endpoint and provides no context, 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.

get_libraries_by_id_seriesB
Read-onlyIdempotent

Get library series.

GET /api/libraries/{id}/series

Args: id: Path parameter. sort: The field to sort by from the request. filter: The filter for the library. include: The fields to include in the response. The only current option is rssfeed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
sortNo
filterNo
includeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description adds only modest behavioral context—the include parameter's only current option is rssfeed—and otherwise restates the endpoint; 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the key purpose before the endpoint and argument list. It avoids fluff and keeps every line relevant, though the argument list could have added more value in the same space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and strong annotations reduce the need for the description to explain return values and side effects. However, for a library-series listing endpoint with optional sort/filter/include parameters, the missing semantics for sort and filter, plus the lack of sibling differentiation, leave the definition only minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden for parameters, but it only clarifies that id is a path parameter and that include supports rssfeed. sort and filter are left as vague phrases ('field to sort by from the request', 'filter for the library') with no allowed values, syntax, or examples, which is insufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Get library series,' a clear verb+resource statement, and the endpoint GET /api/libraries/{id}/series confirms it returns the series for a specific library. It is not a tautology, but it does not explicitly distinguish itself from related siblings like get_libraries_by_id_series_by_series_id or get_series_by_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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives, and no exclusions. With siblings such as get_libraries_by_id_series_by_series_id and get_series_by_id, an agent gets no help choosing among them; the description relies entirely on 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_libraries_by_id_series_by_series_idA
Read-onlyIdempotent

Get single series in library.

GET /api/libraries/{id}/series/{seriesId}

Args: id: Path parameter. series_id: Path parameter. sort: The field to sort by from the request. filter: The filter for the library. include: The fields to include in the response. The only current option is rssfeed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
sortNo
filterNo
includeNo
series_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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 useful behavior beyond annotations by specifying the HTTP route, the presence of sort/filter/include controls, and the currently supported include value rssfeed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the core purpose, and follows with a clear endpoint and labeled parameter list. Every line contributes useful information without unnecessary prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers return values and annotations cover safety, so the description only needs to clarify selection and parameters. It does that reasonably well, though it could improve by noting how it differs from the similar get_series_by_id and get_libraries_by_id_series tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the parameter documentation burden. It gives at least minimal meaning to all five parameters, especially include with its rssfeed option, though sort and filter remain somewhat vague.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get single series in library', and confirms it with the full endpoint path. This distinguishes it from sibling tools like get_libraries_by_id_series (list) and get_series_by_id (global series lookup).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the phrase 'in library' and the required id and series_id path parameters, but the description does not explicitly say when to choose this over get_series_by_id or get_libraries_by_id_series. No alternative-based guidance or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_libraries_by_id_statsC
Read-onlyIdempotent

Get libraries stats.

GET /api/libraries/{id}/stats

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which cover safety. The description adds only the HTTP method and path, which is minimal and does not disclose any additional behavior (e.g., return format, filtering, or side effects). It repeats the tool name essentially.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short, but it is under-specified rather than concise. The structure (endpoint line and args line) is logical, but the content is nearly empty and does not earn its place. It could be shortened to just the first line without losing anything.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and an output schema, the description is inadequate. It omits what stats are returned, any prerequisites, or how the id should be used. The output schema exists but is not referenced, and the description leaves too much to inference 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.

Parameters1/5

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 states 'id: Path parameter,' which adds no semantic value beyond the schema's type and required flag. It does not clarify that the id is the library ID or provide any format or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get libraries stats.' This clearly identifies the action and target, and it is distinct from sibling tools like get_libraries_by_id_items or get_libraries_by_id_search. However, it does not elaborate on what 'stats' include or how they are structured, leaving some ambiguity about the exact scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many other get_libraries_by_id_* siblings. No mention of use cases, alternatives, or conditions. The bare endpoint line provides no contextual routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_me_bookmarks_by_library_item_idC
Read-onlyIdempotent

Get me bookmarks.

GET /api/me/bookmarks/{libraryItemId}

Args: library_item_id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
library_item_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior3/5

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 nothing beyond the endpoint and parameter, not even a note about what the response contains or if any side effects occur. Since annotations handle the safety traits, a baseline of 3 is appropriate; the description adds minimal behavioral context but doesn't contradict.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loads the purpose, but it's under-specified rather than concise. The structure includes a vague 'Get me bookmarks' sentence, the endpoint, and an args list, but the wording is informal and lacks detail. It doesn't waste words, but it also doesn't earn its place with substantive content, so it's minimal but not well-crafted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (not shown) and a single parameter, the description should still explain the meaning of library_item_id and what bookmarks are returned. It does neither. With no overview of the return value or any constraints, and given that the sibling 'list_me_bookmarks' exists, an agent may not know what this specific tool returns. The description is insufficient for a complete understanding, though the simplicity keeps it from being a total failure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

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 documentation for the parameter. The description only says 'library_item_id: Path parameter', which adds no semantic meaning beyond the schema's type and requirement. It doesn't explain what the ID identifies, format expectations, or relationship to other bookmarks. With zero coverage and no compensation, this is a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get me bookmarks' and provides the endpoint path with a library item ID, making it clear this retrieves bookmarks for a specific item. It is not a tautology and names the resource (bookmarks) and the filter (by library item ID). However, it doesn't explicitly differentiate from sibling 'list_me_bookmarks', which appears to list all bookmarks without the filter, so it's not fully distinguished.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'list_me_bookmarks' or the bookmark creation/deletion tools. The description provides no context on appropriate use cases, prerequisites, or conditions that would select this over siblings. It simply presents the endpoint without any usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_me_item_listening_sessions_by_library_item_id_by_episode_idB
Read-onlyIdempotent

Get item listening-sessions.

GET /api/me/item/listening-sessions/{libraryItemId}/{episodeId}?

Args: library_item_id: Path parameter. episode_id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
episode_idYes
library_item_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the GET method in the description aligns with those. The description adds the path-scoped nature of the request but provides no additional behavioral context such as auth requirements, filtering, or response behavior; with annotations present, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: purpose, endpoint, then args. It has no filler, and the Args block, while somewhat redundant with the schema, earns its place by identifying path-parameter placement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read-only GET with an output schema and safety annotations, the description provides the essential endpoint and parameter locations. It is missing sibling differentiation and a fuller statement of scope, but the tool's low complexity means an agent can still invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description labels both parameters as path parameters and shows their order in the URL, which adds structural meaning. However, it does not explain the semantics of library_item_id or episode_id beyond their self-evident names, nor any constraints or formats.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete operation—'Get item listening-sessions'—and gives the full GET endpoint, naming the resource and both path identifiers. It is clear enough to identify the tool's purpose, though it does not explicitly contrast it with sibling tools like list_me_listening_sessions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It does not mention that this is for a single library item/episode rather than all sessions, nor does it name any sibling tool or exclusion condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_me_progress_by_id_by_episode_idD
Read-onlyIdempotent

Get me progress.

GET /api/me/progress/{id}/{episodeId}?

Args: id: Path parameter. episode_id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
episode_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.7/5.0
Behavior2/5

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 the HTTP method and path, such as whether a 404 is returned for missing progress, authentication requirements, or any side effects. It does not contradict the annotations, but it also contributes no meaningful 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only four lines, but most of it is redundant with the tool name ('Get me progress') and the schema (parameter names and types). The structure front-loads a vague phrase rather than stating the resource clearly, and the Args section adds little value. True conciseness would preserve useful information, which is missing here.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple GET-by-ID tool, the output schema likely covers return values, and annotations cover safety, but the description still lacks essential context about what 'progress' represents and how to correctly construct the path parameters. An agent could not confidently choose the right ID values without external knowledge or sibling tool comparison, making the definition incomplete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description merely labels 'id' and 'episode_id' as path parameters, adding no semantic meaning. It does not explain what IDs these refer to (e.g., library item ID, episode ID) or how they relate to the resource being fetched. The description fails to compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get me progress' is essentially a restatement of the tool name and does not specify what 'progress' refers to (e.g., audiobook or podcast listening progress). The URL pattern hints at a specific item and episode, but the description alone does not differentiate this from siblings like list_me_progress or patch_me_progress_by_library_item_id_by_episode_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of the intended use case, such as retrieving a single progress record by library item ID and episode ID, nor any contrast with list_me_progress or other progress-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_me_progress_by_id_remove_from_continue_listeningD
Read-onlyIdempotent

Get progress remove-from-continue-listening.

GET /api/me/progress/{id}/remove-from-continue-listening

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations declare readOnlyHint=true and destructiveHint=false, but the endpoint path and description both contain 'remove-from-continue-listening,' which implies a state-changing removal. This is an annotation contradiction, and the description adds no clarification about side effects, auth requirements, or what exactly is removed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, but the first line merely restates the tool name and the remaining lines are an endpoint template. It is under-specified rather than usefully concise, and the minimally useful path information is not front-loaded with a clear purpose statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The invocation shape is simple and the output schema exists, but the tool's actual purpose is ambiguous and the read-only annotations conflict with the removal semantics. A caller cannot confidently know what this tool does or what side effects it may have.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter is described as 'id: Path parameter,' which adds the location but not the semantic meaning of the id. With 0% schema description coverage, the description should explain that the id refers to the progress item being removed from Continue Listening; it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially the tool name rewritten as 'Get progress remove-from-continue-listening' and provides no natural-language explanation of what the tool actually does. It is unclear whether it returns progress data or removes a progress item from Continue Listening. It also does not distinguish itself from sibling endpoints like get_me_series_by_id_remove_from_continue_listening.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use this tool versus alternatives. The description does not mention relevant siblings such as get_me_progress_by_id_by_episode_id, delete_me_progress_by_id, or the series-level remove endpoint. An agent must guess from the endpoint path alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_me_series_by_id_readd_to_continue_listeningC
Read-onlyIdempotent

Get series readd-to-continue-listening.

GET /api/me/series/{id}/readd-to-continue-listening

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior3/5

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, such as what 'readd' changes or any side effects; however, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the endpoint, with no filler. It loses a point because the first sentence is an awkward, ungrammatical restatement of the name rather than a clear human-readable purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only, idempotent endpoint with an output schema, the structural context is mostly sufficient. But the description never clarifies the central concept of 'readd-to-continue-listening,' leaving an agent to guess whether this reads data or initiates a re-add action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the burden for the id parameter, but it only says 'id: Path parameter.' This adds the location but not what the id identifies, expected format, or relationship to the series resource.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description is essentially a restatement of the tool name: 'Get series readd-to-continue-listening.' It identifies the endpoint and resource but never explains what 'readd-to-continue-listening' means or what the operation accomplishes, so an agent cannot distinguish it from the sibling remove_from_continue_listening tools based on semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to call this tool versus alternatives. The closely related sibling get_me_series_by_id_remove_from_continue_listening and get_me_progress_by_id_remove_from_continue_listening are never mentioned, nor are any conditions or prerequisites for re-adding a series.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_me_series_by_id_remove_from_continue_listeningC
Read-onlyIdempotent

Get series remove-from-continue-listening.

GET /api/me/series/{id}/remove-from-continue-listening

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

This is an Annotation Contradiction. The description and endpoint path explicitly indicate a remove-from-continue-listening action, which modifies user state, while annotations declare readOnlyHint=true. The description adds no context to reconcile this inconsistency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the endpoint and argument list, with no filler. However, the opening line is nearly a duplicate of the tool name and could have been replaced with a clear one-sentence behavioral statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter endpoint, a complete definition should state the actual effect—removing the series from the continue-listening list—and address the contradiction with readOnlyHint. The current description is essentially just the endpoint path and argument list, leaving the agent uncertain about side effects and applicability.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description needed to explain the id parameter but only says 'id: Path parameter.' This adds location information but not what entity the id refers to, what format it should take, or how to obtain it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the resource (series) and the action (remove-from-continue-listening) through the endpoint path, so an agent can infer the intent. However, it never states plainly that this removes the series from the current user's continue-listening list, and the phrasing is a fragment that largely mirrors 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.

Usage Guidelines2/5

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. It does not mention the inverse sibling get_me_series_by_id_readd_to_continue_listening or any conditions for choosing between them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_me_stats_year_by_yearD
Read-onlyIdempotent

Get stats year.

GET /api/me/stats/year/{year}

Args: year: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

D1.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. However, the description adds no behavioral context beyond the endpoint and parameter list. It does not mention what the response contains, any authentication requirements beyond implicit 'me', or how invalid years are handled. Given the annotations lower the bar, the description still offers 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely brief, which could be seen as concise, but it is under-specification rather than effective conciseness. The endpoint and argument are front-loaded, but the content is far too sparse to be useful. Every word is necessary, but essential information is missing, so this does not merit a higher score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even with an output schema available, the description fails to explain the tool's purpose, the meaning of 'year-by-year stats', or how to interpret results. There is no mention of the data source (user listening history?), the kind of statistics returned, or any caveats. For a tool with a single parameter and an output schema, the description should at least clarify the scope and semantics, but it does not.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the only source of parameter meaning. It merely repeats 'year: Path parameter', which is already obvious from the schema and the URL pattern. It does not explain acceptable formats (e.g., 'YYYY'), whether it must be a past year, or how the path parameter maps to the returned data. This is a critical gap given the tool has only one parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get stats year' is nearly a tautology of the tool name, providing no specificity about what 'stats' refers to (listening stats? server stats?), whose stats (the current user, as implied by 'me' in the name, but not stated), or what 'year by year' means. The endpoint URL reinforces the year parameter but adds no semantic clarity. It fails to distinguish this from many sibling stats tools like get_me_listening_stats or get_stats_server.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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 that this is for the authenticated user's own stats, nor does it compare with other stats endpoints. No exclusions or alternative conditions are provided, leaving an agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_notifications_by_id_testC
Read-onlyIdempotent

Send a test notification.

GET /api/notifications/{id}/test

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says 'Send a test notification,' which implies a side-effecting action, while annotations declare readOnlyHint=true. This is a direct contradiction because sending a notification modifies the environment, conflicting with read-only semantics. The description also adds no behavioral context 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.

Conciseness4/5

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 parameter. It avoids fluff, though the Args section partially duplicates schema information. Overall, it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and an output schema, the description is incomplete: it lacks usage guidance, behavioral detail, and clear relation to sibling tools. The contradiction between the description and annotations further reduces its utility for an agent deciding whether and how to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It identifies `id` as a path parameter and the endpoint path indicates it is the notification ID. This adds minimal but useful meaning beyond the raw schema, though it doesn't explain format, accepted values, or how to obtain a valid id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action and resource: 'Send a test notification' for a given notification id via the GET /api/notifications/{id}/test path. It is not a tautology and is understandable, though it does not differentiate itself from sibling tools like list_notifications_test or create_notifications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool instead of alternatives. No mention of prerequisites, triggering conditions, or exclusions. The only context is the endpoint path, which does not convey usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_playlists_by_idB
Read-onlyIdempotent

Get api playlists.

GET /api/playlists/{id}

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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 specific HTTP method and path, which clarifies the operation but provides no additional behavioral context such as response format, pagination, or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, with no fluff. The endpoint and argument are clearly presented in just a few linescar; however, the phrasing 'Get api playlists' is grammatically awkward and the essential information is almost too sparse to be called well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one required parameter)Skip? needs completion: For a simple read-only operation with an output schema and comprehensive annotations, the description covers the core invocation. Yet it does not explicitly mention that this gets a single playlist by its identifier, nor does it distinguish itself from list_playlists, leaving some contextual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only states 'id: Path parameter,' which adds the location of the parameter but not its semantics (e.g., that it is the playlist identifier, format, or examples). This leaves room for ambiguity about what value to provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Get') and resource ('api playlists'), and the HTTP path `GET /api/playlists/{id}` indicates this fetches a specific playlist by ID. It does not explicitly differentiate from `list_playlists`, but the path parameter and singular resource make the operation largely unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives like `list_playlists` or `get_libraries_by_id`. The description only states the endpoint without any context, prerequisites, or exclusion conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_podcasts_by_id_checknewC
Read-onlyIdempotent

Check and download new episodes.

GET /api/podcasts/{id}/checknew

Args: id: Path parameter. limit: Maximum number of episodes to download

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says 'download new episodes', which implies a server-side state change, while the annotations declare readOnlyHint=true. This is a direct contradiction. It also fails to disclose authentication requirements, background behavior, or whether downloads can be limited or interrupted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose. The endpoint line and argument list are useful and concise. Minor redundancy exists between the tool name and the GET path, but it does not waste significant space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema and annotations, the description leaves critical behavioral ambiguity: it describes a mutating download action while annotated as read-only, and gives no usage context. For a tool with side-effect implications, this is incomplete and potentially misleading.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds meaning for 'limit' by explaining it as the maximum number of episodes to download, which is helpful. However, 'id' is only described as a path parameter, leaving its semantic role as podcast id implicit via the endpoint path rather than explicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Check and download new episodes') and a clear resource (episodes for a podcast, addressed by id). The endpoint path also reinforces that it operates on a specific podcast. However, it does not explicitly distinguish itself from related siblings like get_podcasts_by_id_downloads or create_podcasts_by_id_download_episodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus related podcast endpoints. The description implies it is for checking/downloading new episodes, but it does not mention alternatives, prerequisites, or conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_podcasts_by_id_clear_queueC
Read-onlyIdempotent

Clear episode download queue.

GET /api/podcasts/{id}/clear-queue

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description directly contradicts the annotations. 'Clear episode download queue' implies a state-changing operation, yet annotations declare readOnlyHint: true and destructiveHint: false. This would mislead an agent into believing the operation has no side effects, which is unsafe for a clear action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose, followed by the endpoint and args. It avoids unnecessary wordsholence, but the brevity means some useful behavioral detail is missing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although the tool is simple and an output schema exists, the description fails to explain side effects or reconcile the contradiction with annotations. It also lacks usage guidanceches. The agent cannot safely invoke this tool correctly given the conflicting signals.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only says 'id: Path parameter.' This adds no semantic meaning beyond the schema's type string and required flag. It does not explicitly state that id is the podcast ID or clarify its format or scope.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action and target: 'Clear episode download queue.' This is a specific verb + resource, and the HTTP path clarifies the exact endpoint. It is clearly distinct from sibling tools like get_podcasts_by_id_downloads or get_podcasts_by_id_checknew.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The only implied context is that it clears a queue, but there is no explicit routing or comparison to siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_podcasts_by_id_downloadsB
Read-onlyIdempotent

Get episode downloads.

GET /api/podcasts/{id}/downloads

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds the endpoint path and resource scope but does not disclose any additional behavioral details such as pagination, response format, 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.

Conciseness4/5

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 argument 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.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read endpoint, the description is minimally adequate, especially with an output schema and read-only annotations present. However, it lacks parameter semantics and usage context, so an agent receives only the bare mechanics of the request.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for explaining the parameter. It only says 'id: Path parameter', which adds minimal meaning beyond the schema's bare string type. The endpoint path implies it is a podcast ID, but the description itself does not explicitly state that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get episode downloads' for a specific podcast endpoint. The endpoint path further specifies the resource. However, it does little to differentiate from related siblings like get_libraries_by_id_episode_downloads or get_items_by_id_download.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives. The description simply states what the endpoint returns, with no mention of use cases, exclusions, or comparisons to similar download-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_podcasts_by_id_episode_by_episode_idA
Read-onlyIdempotent

Get a specific podcast episode.

GET /api/podcasts/{id}/episode/{episodeId}

Args: id: Path parameter. episode_id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
episode_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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 nuance beyond the GET method, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with the core purpose, and logically organized with the endpoint and argument list. The Args section is mostly redundant with the schema, but nothing is verbose or unnecessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only GET with two required string parameters and an output schema, this definition is essentially sufficient to invoke the tool correctly. It could be more complete by explaining parameter formats and positioning against sibling episode-related tools, but those are refinements rather than blockers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry the semantic burden. It only repeats that id and episode_id are path parameters without explaining their formats, expected values, or relationships. The endpoint and tool name imply podcast ID and episode ID, but the description itself adds little meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get a specific podcast episode' and includes the exact GET endpoint. This distinguishes it from the delete_ and patch_ variants of the same episode resource, and from other podcast-level getters.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by the GET verb and episode-specific path, but there is no explicit guidance about when to choose this over related endpoints such as get_podcasts_by_id_search_episode or get_libraries_by_id_recent_episodes. It provides no exclusion criteria 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_podcasts_by_id_search_episodeA
Read-onlyIdempotent

Find episode by title.

GET /api/podcasts/{id}/search-episode

Args: id: Path parameter. title: Title of the episode to search for

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
titleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds the GET endpoint but does not clarify search semantics such as exact vs partial matching, case sensitivity, or behavior when title is omitted/null.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: a one-line purpose, the endpoint, then a minimal Args list. No filler or redundancy, and the key action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has an output schema, and annotations cover side effects. Still, the description leaves ambiguity around the optional title parameter and the nature of the search, which are relevant for correct invocation. Overall adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It identifies id as a path parameter and title as the episode title to search for, which adds some value beyond the raw schema. However, it doesn't state that id refers to the podcast ID or explain the implications of title being optional/default null.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific verb and resource: 'Find episode by title.' The endpoint line adds podcast context. It doesn't explicitly differentiate from sibling get_podcasts_by_id_episode_by_episode_id, but the 'by title' qualifier makes the distinction reasonably clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it: when you need to find an episode by its title. It does not state exclusions or compare against alternative tools like get_podcasts_by_id_episode_by_episode_id, so 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_public_session_by_id_track_by_indexC
Read-onlyIdempotent

Get session track.

GET /public/session/{id}/track/{index}

Args: id: Path parameter. index: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds no behavioral context beyond them. It does not mention auth requirements, error behavior, response semantics, or anything the agent wouldn't already infer from annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with the core action and endpoint in the first lines. The Args section is minimal but not bloated, though it adds little beyond the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only GET with annotations and an output schema, the route alone may be enough for invocations where id and index are already known. Still, the lack of parameter semantics and usage context makes it less than fully self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description should compensate by explaining the parameters. It only labels id and index as 'Path parameter', without clarifying that id is the session identifier and index is the track index, leaving the agent to infer meaning from the URL/name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action ('Get') and resource ('session track'), and the endpoint template identifies how the resource is addressed. However, it does not clarify what a 'session track' is or how this differs from the similar sibling get_public_share_by_slug_track_by_index.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides no guidance on when to use this tool or when to prefer an alternative. It does not distinguish this endpoint from related session/share track endpoints and gives no selection context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_public_share_by_slugC
Read-onlyIdempotent

Get public share.

GET /public/share/{slug}

Args: slug: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds only the HTTP method and path, which does not meaningfully disclose behavior beyond what is already inferable from the tool name and annotations; no auth, response-format, or rate-limit 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and the endpoint is front-loaded, which is good. However, the 'Args' block merely repeats schema information and the main sentence is too thin to be genuinely helpful, so the brevity crosses into under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter public read endpoint with an output schema, the description is still incomplete: it leaves the slug semantics unexplained, gives no indication of what data the public share endpoint returns, and does not distinguish this from sibling subresource endpoints. The existing output schema and annotations cannot compensate for the lack of usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage and the single required parameter is documented only as 'slug: Path parameter.' This merely restates the schema's field name and type without explaining what a slug is, what format it expects, or how to obtain it, providing no additional semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

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 public share') and includes the endpoint, so the basic purpose is understandable. However, it does not say what the returned share object contains or how it differs from sibling tools like get_public_share_by_slug_cover, get_public_share_by_slug_download, or get_public_share_by_slug_track_by_index, leaving room for ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus any alternative. The description never mentions related share subresource tools or explains that this is the main metadata endpoint, so an agent has no contextual help for choosing it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_public_share_by_slug_coverC
Read-onlyIdempotent

Get share cover.

GET /public/share/{slug}/cover

Args: slug: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description only adds the HTTP method and path, and does not disclose additional behavior such as whether authentication is needed, what the response body is, or how errors are surfaced. It repeats safety information already encoded in annotations rather than extending it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded with the action, followed by the endpoint and a minimal argument note. There is no filler or redundancy, but the brevity comes at the cost of omitting the substantive context an agent would need.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only GET with an output schema, the endpoint and parameter placement are mostly enough for a basic call. However, the description lacks any context about what a share cover is, how the slug is obtained, or when this endpoint is preferable to sibling share endpoints. 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.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, slug, is described merely as 'Path parameter', which is syntactic rather than semantic. The schema itself has no description for slug, so with 0% schema coverage the description needed to explain what the slug represents, where it comes from, or how it is formatted. It does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get share cover' and the HTTP route GET /public/share/{slug}/cover. It is not a tautology, but it does not explicitly distinguish itself from sibling share endpoints such as get_public_share_by_slug or get_public_share_by_slug_track_by_index beyond its 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.

Usage Guidelines2/5

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 sibling share-related tools, no exclusions, and no mention of how this endpoint relates to the others. 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.

get_public_share_by_slug_downloadC
Read-onlyIdempotent

Get share download.

GET /public/share/{slug}/download

Args: slug: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The only behavioral signal is the GET method, which repeats what readOnlyHint already tells the agent. It adds no context about authentication, download payload characteristics, rate limits, or side effects, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well organized: a one-line summary, the endpoint, and an Args section. It is not padded, though the opening phrase largely restates the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read-only tool with an output schema and safety annotations, the endpoint and required argument are present. However, it does not explain what the download returns or why it is distinct from other public-share and download endpoints, 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.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description needed to define what the slug identifies and how to obtain it, but it only says 'slug: Path parameter,' which is already visible from the endpoint template. This leaves the one required parameter semantically undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description leads with 'Get share download' and shows the full endpoint GET /public/share/{slug}/download, giving a clear verb and resource. It is distinct from cover and track sibling endpoints by operation, but it does not explicitly differentiate itself from those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The text provides no guidance on when to choose this endpoint over related siblings like get_public_share_by_slug or get_public_share_by_slug_cover. It only restates the endpoint and path parameter; there are no prerequisites, 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_public_share_by_slug_track_by_indexC
Read-onlyIdempotent

Get share track.

GET /public/share/{slug}/track/{index}

Args: slug: Path parameter. index: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYes
indexYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only profile is covered. The description adds only the HTTP method and path structure, which repeats rather than extends the annotations; no additional behavioral details such as error cases, authentication needs, or response characteristics 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action, and the Args section is clearly structured. It avoids fluff, though it is arguably too minimal to carry much explanatory weight; still, every sentence is efficient and relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity, read-only annotations, and presence of an output schema, the description covers the basic invocation surface: the endpoint and path parameters. However, it omits contextual guidance about what a share track is and how this endpoint relates to other share endpoints, leaving minor but real gaps for an agent unfamiliar with the API.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description needed to explain the parameters, but it only labels them as 'Path parameter' without providing meaning or constraints. It adds slightly more than the schema by indicating location, but it does not clarify what a slug identifies, what an index represents, or what value formats are expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get share track') and includes the exact endpoint path, making the main purpose clear. It does not explicitly differentiate itself from sibling tools like get_public_share_by_slug or get_public_share_by_slug_cover, but the resource and path structure are specific enough to avoid real ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives, no mention of prerequisites, and no indication of what distinguishes it from related share endpoints. The description simply restates the action and URL, leaving the agent to infer usage context from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_series_by_idC
Read-onlyIdempotent

Get series.

GET /api/series/{id}

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description adds no behavioral context beyond the HTTP GET method. It does not mention response shape, errors, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short, front-loaded with the action, and contains no filler. It is appropriately compact, though the terseness leaves little room for additional useful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-by-id operation with an output schema and safety annotations, the description is minimally workable. However, it omits usage context and alternative routing, so it is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description only notes that id is a path parameter. It fails to clarify what the id identifies, expected format, or constraints, so it does not compensate for the sparse schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb 'Get' and the resource 'series', and the endpoint makes clear it fetches a single series by id. However, it does not distinguish itself from series-related siblings like get_libraries_by_id_series_by_series_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.

Usage Guidelines2/5

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 sibling list contains several series-related getters, but the description provides no routing 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_session_by_idC
Read-onlyIdempotent

Get api session.

GET /api/session/{id}

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description's 'Get' is consistent with those. However, the description adds no further behavioral context such as error behavior, authentication needs, or response characteristics 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with no wasted prose. The first sentence and the HTTP route are mildly redundant, but for a one-parameter GET operation this is an appropriately sized definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, read-only annotations, and the presence of an output schema, the description is minimally adequate. However, it leaves domain semantics unclear—an agent might not know what an 'api session' is or how it relates to list_sessions and public session endpoints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides only the name 'id' and type string, while the description adds that it is a path parameter, which is useful routing information. With schema description coverage at 0%, this is thin compensation: it doesn't explain what the ID represents or any expected format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a GET operation on a specific resource via the route GET /api/session/{id}, and the name matches a fetch-by-id operation. It distinguishes from sibling list/delete/session tools by naming the exact endpoint, though it doesn't define what an 'api session' is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives like list_sessions or the other session-related get/create/delete tools. The description states only the endpoint and parameter without any conditions, exclusions, or comparison 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_stats_year_by_yearC
Read-onlyIdempotent

Get stats year.

GET /api/stats/year/{year}

Args: year: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
yearYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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 context beyond restating the GET endpoint, such as scope, auth needs, or what the stats represent. 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, with no wasted prose. However, it is under-specified rather than efficiently concise, so it earns only a middle score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with many similar siblings and an ambiguous 'stats' scope, the description is incomplete. It does not clarify whether this is global, per-user, or library-specific stats, nor when an agent should choose it over get_me_stats_year_by_year or list_stats_server. The presence of an output schema reduces the need to describe return values, but the usage gap remains significant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only repeats the parameter name and notes it is a path parameter, which is already visible in the endpoint. It does not explain accepted year formats, meaning, or constraints beyond the schema's 'string' type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Get stats year') and identifies the resource via the endpoint path 'GET /api/stats/year/{year}'. This is clear enough to know the tool retrieves stats for a year, but it does not distinguish itself from sibling tools such as get_me_stats_year_by_year or list_stats_server.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus the many related stats tools in the sibling list. It only shows 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.

get_users_by_idB
Read-onlyIdempotent

Get api users.

GET /api/users/{id}

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

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 structure but no additional behavioral context such as authentication requirements or response handling; 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely terse and well-structured: a one-line purpose, the HTTP route, and an args section. Every element earns its place, though 'Get api users' is somewhat redundant with the route; overall it is efficient and readable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the description is minimal but generally adequate for a simple GET-by-ID tool. However, it could improve completeness by explicitly stating that id is the user ID and by providing usage context (e.g., prefer list_users for all users).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only states 'id: Path parameter,' which adds minimal meaning beyond the schema and does not clarify that id is the user's unique identifier or any format constraints. The tool name hints at this, but the description itself is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a GET operation on 'api users' with a path parameter, implying retrieval of a single user by ID. The HTTP route and parameter distinguish it from list_users and user-listening tools, though it doesn't explicitly name these siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives like list_users or get_users_by_id_listening_sessions. The path parameter implies the agent must already have a user ID, but this is not stated, leaving usage 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_users_by_id_listening_sessionsC
Read-onlyIdempotent

Get users listening-sessions.

GET /api/users/{id}/listening-sessions

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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 but no extra behavioral context such as pagination, authentication requirements, error behavior, or what happens for invalid IDs. It does not contradict the 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.

Conciseness4/5

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 arguments are cleanly separated, and there is no unnecessary prose. The slight redundancy between the one-line summary and the full endpoint is minor and does not hurt clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity, rich annotations, and presence of an output schema, the description is mostly sufficient for a basic read operation. Still, it omits why an agent might use this tool versus the many 'me' and 'users' siblings, and it does not address potential constraints like session filtering or pagination. For such a simple tool this is a reasonable but not complete definition.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only defines 'id' as a required string with no description, and schema description coverage is 0%. The description at least clarifies that 'id' is a path parameter, and the endpoint '/api/users/{id}/listening-sessions' implies it is the user ID. However, this is terse and does not explicitly explain the expected value or format beyond location in the URL.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get users listening-sessions' identifies that this returns listening sessions for a user. The included endpoint path further clarifies the operation. It does not explicitly differentiate itself from siblings like list_me_listening_sessions, but the user-versus-me distinction is implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description does not say when to choose this tool over alternatives such as list_me_listening_sessions or get_users_by_id_listening_stats, nor does it mention any exclusions or prerequisites. The only context is the endpoint and argument list, which tells the agent what the tool does, not when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_users_by_id_listening_statsB
Read-onlyIdempotent

Get users listening-stats.

GET /api/users/{id}/listening-stats

Args: id: Path parameter.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is covered. The description reinforces this with 'GET' but adds no additional behavioral context such as authentication requirements, response shape, or aggregation semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose. The 'Args' block is slightly redundant given the endpoint, but overall there is no wasted text and the structure is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering the read-only/idempotent nature, the description is mostly sufficient for a simple one-parameter tool. However, the lack of explicit differentiation from similarly named sibling tools leaves some selection context incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does add that 'id' is a path parameter, and the endpoint makes clear it is a user ID. However, this is minimal and does not explain the value's format or semantics beyond what the path already suggests.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action and resource: 'Get users listening-stats' with the explicit endpoint 'GET /api/users/{id}/listening-stats'. It identifies the resource as per-user listening statistics, which is distinct from sibling tools like listening_sessions, 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.

Usage Guidelines2/5

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_users_by_id_listening_sessions, list_me_listening_stats, or get_stats_year_by_year. The intended use is only implied by 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_api_keysB
Read-onlyIdempotent

Get api api-keys.

GET /api/api-keys

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the description's job is light. It does not contradict annotations and adds the HTTP endpoint, but it provides no additional behavioral context such as what the return data represents. Given the annotations cover safety, 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, which is good, but the phrasing 'Get api api-keys' is redundant and slightly garbled. The HTTP endpoint is informative, but the overall structure is minimal and not polished.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and no parameters, the description is mostly complete. However, it does not explicitly state that this is a list/all operation (versus fetching a single key), and there is no get_api_keys_by_id sibling, so it is clear enough, but a brief clarification would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema coverage is effectively 100%. The baseline for no parameters is 4; the description adds no parameter details because there are none, which is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get api api-keys' which clearly indicates fetching API keys, but it is awkwardly phrased and does not explicitly distinguish from sibling operations like create, delete, or patch. It does include the HTTP endpoint which adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as create_api_keys, delete_api_keys_by_id, or patch_api_keys_by_id. There is no mention of 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.

list_auth_settingsA
Read-onlyIdempotent

Get api auth-settings.

GET /api/auth-settings

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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 GET endpoint but no further behavioral context such as auth requirements, response shape, or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded: the first line states the operation and resource, and the second gives the exact endpoint. There is no filler or redundant explanatory material.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only, idempotent GET endpoint with an output schema and comprehensive annotations, the description is sufficient. Nothing essential is missing 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is trivially 100%, so the baseline of 4 applies. The description needs to explain no parameters, and it does not introduce any ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Get api auth-settings' and the endpoint GET /api/auth-settings. It is distinct from sibling patch_auth_settings by verb, though it does not explicitly name or contrast the alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The endpoint and verb imply this tool is for reading auth settings, and the sibling patch_auth_settings provides an obvious counterpart for modification. However, the description does not explicitly state when to choose this over alternatives or note 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.

list_backupsB
Read-onlyIdempotent

Get api backups.

GET /api/backups

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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 read-only nature is well covered. The description adds no behavioral details beyond the endpoint, such as what the returned list represents or whether it is complete, but with strong annotations this is acceptable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise and front-loaded with the core purpose. However, the second line 'GET /api/backups' is largely redundant with the first sentence, so it does not fully earn its place, preventing a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list tool with an output schema and clear annotations, the description is nearly complete. It could be slightly more explicit about listing all backups or scoping behavior, but an agent can invoke this tool correctly based on the provided information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and 100% schema description coverage, so there is no parameter semantics for the description to clarify. The baseline of 4 applies because with no parameters, the description cannot reasonably add parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get api backups' with the corresponding GET endpoint. It is reasonably distinguishable from sibling backup tools like create_backups and delete_backups_by_id, though it does not explicitly say 'list all' or explain what 'api backups' are.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives such as create_backups, delete_backups_by_id, or get_backups_by_id_download. The HTTP verb and resource imply a read-only listing operation, but no explicit usage context or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_collectionsA
Read-onlyIdempotent

Get api collections.

GET /api/collections

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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 operation. The description adds the endpoint but no further behavioral details, such as whether results are paginated or if it returns all collections without filters. Since annotations cover the safety profile, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of a single phrase and the endpoint path. Every word earns its place, and the main action is front-loaded. There is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list operation with no parameters and an output schema present, the description is adequate. It conveys the action and the resource, and the annotations cover safety. It does not mention potential caveats like result limits, but given the simplicity of the tool, nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivially fully covered. There is no parameter information needed in the description, and the baseline for 0 params is 4. 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get api collections' with the endpoint path, clearly indicating a read operation to retrieve collections. It is distinct from sibling tools like create_collections and delete_collections_by_id, and the name implies listing rather than fetching a single item (which would be get_collections_by_id). However, it does not explicitly say 'list all' or 'return all collections', leaving some nuance implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as get_collections_by_id or list_libraries. It does not mention any prerequisites, filtering options, or scenarios where another tool would be more appropriate. The usage context is entirely left 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_custom_metadata_providersC
Read-onlyIdempotent

Get api custom-metadata-providers.

GET /api/custom-metadata-providers

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior2/5

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 fully covered by structured data. The description adds only the HTTP method and route, with no additional behavioral context such as authentication requirements, pagination behavior, 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short, but it contains two lines that essentially repeat the same information: 'Get api custom-metadata-providers.' and 'GET /api/custom-metadata-providers'. The exact route is useful, but the first sentence is redundant and could be merged or replaced with a clearer domain statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only list tool with an output schema, the basic call information (HTTP GET and path) is present. However, the description does not explain what resource is being listed or how this relates to the sibling provider tools, making it minimally acceptable but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the input schema is empty, so there is nothing for the description to explain. Per the baseline for zero-parameter tools, a score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get api custom-metadata-providers' essentially restates the tool name and endpoint without explaining what custom metadata providers are or that the tool lists all of them. It does not distinguish this list operation from the sibling create_custom_metadata_providers or delete_custom_metadata_providers_by_id tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention that this is the read/list counterpart to creation or deletion operations, leaving the agent to infer usage from the tool name and sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_emails_settingsA
Read-onlyIdempotent

Get email settings.

GET /api/emails/settings

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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 GET endpoint, which confirms the read-only nature, but does not add behavioral context beyond that. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and front-loaded: 'Get email settings' immediately conveys the purpose, and the HTTP endpoint line adds a useful confirmation. It is concise without being a tautology, though it could arguably be slightly more descriptive about what settings are included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only, idempotent GET endpoint with an output schema present, the description is nearly complete. The only minor gap is that it doesn't describe what email settings are returned, but the output schema likely covers that, and the annotations cover the behavioral profile.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics burden on the description. The schema is empty and coverage is 100%, meaning nothing is undocumented. The description correctly implies no inputs are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Get') and resource ('email settings'), and the HTTP endpoint reinforces the action. It is distinguishable from siblings like patch_emails_settings (which modifies settings) and list_auth_settings (which lists a different kind of settings), though it doesn't explicitly name those alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is the read-only counterpart to patch_emails_settings and a more specific settings variant than list_auth_settings, but it does not explicitly state when to use this tool versus those alternatives. The context of 'Get email settings' is clear enough for a simple read operation, but no explicit when/when-not guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_feedsB
Read-onlyIdempotent

Get api feeds.

GET /api/feeds

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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 context beyond what is already structured. It does not disclose response shape, pagination, authentication needs, or any 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and front-loaded with the core verb and resource. The endpoint line adds a small amount of concrete detail, and there is no filler or repetition beyond the near-duplication of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only listing tool with an output schema and safety annotations, the description is minimally sufficient. However, it does not clarify what 'api feeds' represents, what the returned feed list contains, or when this endpoint should be used, 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.

Parameters4/5

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 clarify. The baseline for a zero-parameter tool is 4, and the description is not required to compensate for missing parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource ('api feeds') and the operation ('Get'), and the included endpoint 'GET /api/feeds' confirms the HTTP method and path. It is clear enough to distinguish from other list_* siblings, though it does not explicitly explain what an 'api feed' is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus any alternative, no context about the data returned, and no exclusions or prerequisites. The description is purely declarative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_filesystemC
Read-onlyIdempotent

Get api filesystem.

GET /api/filesystem

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive, so the description carries no additional burden for safety. However, it adds no behavioral context—such as what data is returned, whether it enumerates directories/files, or any constraints. This is a missed opportunity given the tool's ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is extremely terse, but brevity is not effective because it omits necessary context. The HTTP line 'GET /api/filesystem' is redundant for an MCP tool call and does not assist selection or invocation. It could have been replaced with a useful sentence about what is listed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even with an output schema available, the description fails to explain the tool's role in the system. The name suggests listing the filesystem, but the description does not specify what entries are returned or how this tool fits with sibling operations. An agent would have to infer behavior from the name and surrounding tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is complete (empty schema). Per the rubric, the baseline for 0 params is 4; the description doesn't need to add parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get api filesystem' but does not explain what 'filesystem' means or that it lists filesystem contents. It is a vague paraphrase of the tool name, offering little beyond the resource name. It does not distinguish from other list_* tools or clarify the scope of the listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives. There is no mention of related tools like create_filesystem_pathexists or when a list might be appropriate. The description relies entirely on the name, which is insufficient for routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_genresB
Read-onlyIdempotent

Get api genres.

GET /api/genres

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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 endpoint path and HTTP method, with no additional behavioral details such as pagination, ordering, or response structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and front-loaded. It states the action and the exact endpoint in two lines with no unnecessary prose, though the endpoint path is somewhat redundant with the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only list operation with output schema available and strong annotations, the description is nearly sufficient. It clearly identifies what to call, but it omits a plain-language statement that the tool lists all available genres.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the input schema is empty, so there is nothing for the description to clarify. The endpoint line adds a little context, and no parameter compensation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Get' and identifies the resource '/api/genres', making it clear this tool retrieves genres. It is distinct from sibling tools like create_genres_rename and delete_genres_by_genre, though it does not explicitly say it returns the full list of genres.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives or any exclusions. While the sibling list names make the purpose inferable, the description itself offers no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_librariesA
Read-onlyIdempotent

Get all libraries on server.

GET /api/libraries

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds the concrete endpoint (GET /api/libraries) but does not disclose other behavioral traits such as authentication needs, pagination, or ordering. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short lines with no filler. The purpose is stated first, and the endpoint is provided as a compact implementation detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only listing tool with annotations covering safety and an output schema present, the description provides everything needed to invoke it correctly. The endpoint and scope are both clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline is 4. The description does not need to add parameter meaning since there is nothing to document beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Get all libraries') and resource ('all libraries on server'), which unambiguously differentiates it from per-library tools like get_libraries_by_id. The endpoint line reinforces the exact resource being retrieved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when an agent needs the full set of libraries, but it does not explicitly state when to prefer this over get_libraries_by_id or other library-specific tools. No exclusions 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.

list_logger_dataC
Read-onlyIdempotent

Get api logger-data.

GET /api/logger-data

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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), and the description adds no behavioral context beyond restating the GET endpoint. It discloses no auth requirements, response characteristics, or meaning of 'logger-data', contributing nothing 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is under-specified rather than concisely informative. The two lines ('Get api logger-data' and 'GET /api/logger-data') repeat the same information, so the second line does not earn its place; this is terse restatement rather than structured, value-dense content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only tool with an output schema and strong annotations, the description is minimally sufficient to invoke the tool. However, it leaves the agent without any sense of what logger-data contains or when it is relevant, which matters given the large sibling set.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing the description needs to document. The baseline of 4 applies; the absence of parameter prose is not a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get api logger-data') and gives the concrete endpoint 'GET /api/logger-data'. This is clear enough for an agent to know what the tool retrieves, though it does nothing to differentiate it from the many sibling list_*/get_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as list_notificationdata, list_stats_server, or list_sessions. No context, prerequisites, or exclusions are provided, so the agent must 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_meB
Read-onlyIdempotent

Get api me.

GET /api/me

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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 only the HTTP method and path, with no extra behavioral context such as authentication requirements or response semantics. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, with no filler. However, 'Get api me' is awkward and largely duplicates the 'GET /api/me' line, so it is not maximally polished.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, rich annotations, and an output schema, the tool is simple to invoke. Still, the description never explicitly states that this returns the current user's profile, which is the core semantic needed to distinguish it from sibling list_me_* tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema description coverage is 100%, so the schema fully documents inputs. The description correctly implies no parameters are needed, matching 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the action ('Get') and resource ('api me') and gives the explicit endpoint 'GET /api/me', making it clear this targets the current-user profile. However, it does not explicitly distinguish itself from the many sibling list_me_* subresource tools, 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.

Usage Guidelines2/5

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_me_bookmarks or get_me_*. The endpoint implies it returns the current authenticated user, but the description never states that or any prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_me_bookmarksB
Read-onlyIdempotent

Get me bookmarks.

GET /api/me/bookmarks

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds no behavioral information beyond the annotations. Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description merely repeats the HTTP GET method. It does not add context like whether all bookmarks are returned, pagination, or 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one short sentence and an endpoint line. It front-loads the core meaning and contains no filler or redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with no parameters, an output schema, and full annotation coverage, the description is nearly adequate. However, it leaves the meaning of 'me' slightly implicit and does not clarify that this lists the current user's bookmarks in contrast to the per-item sibling, so a small completeness gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing for the description to clarify. Baseline 4 applies because parameter semantics are moot when no parameters exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get me bookmarks' clearly identifies the verb (get) and resource (bookmarks) scoped to the current user, and the endpoint reinforces it. It does not explicitly distinguish from the sibling get_me_bookmarks_by_library_item_id, but the list prefix and simple wording make the general intent clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as get_me_bookmarks_by_library_item_id. There is no mention of context, prerequisites, or conditions that would steer an agent toward or away from this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_me_items_in_progressB
Read-onlyIdempotent

Get me items-in-progress.

GET /api/me/items-in-progress

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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 method/path, which repeats the read-only nature rather than disclosing additional behavioral traits such as pagination, response format, or scoping details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, with no filler content. The endpoint line provides concrete routing information, but the first line is largely a paraphrase of the tool name and could have been more informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with an output schema and safety annotations, the description is mostly adequate. However, it lacks any explanation of what 'items-in-progress' means or how it relates to similar sibling endpoints, leaving potential ambiguity for an agent selecting between list_me_progress and this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema description coverage is 100%, so the schema fully documents the input surface. The description does not need to add parameter detail, and no such detail is expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get') and resource ('items-in-progress'), and the HTTP path clarifies the exact endpoint. However, it is essentially a restatement of the tool name and does not distinguish it from sibling tools like list_me_progress or list_me_listening_sessions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. The description does not mention related list_me_* endpoints, when it should be preferred, or any exclusions, leaving the agent to infer applicability 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_me_listening_sessionsC
Read-onlyIdempotent

Get me listening-sessions.

GET /api/me/listening-sessions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description does not need to repeat safety. However, it adds no additional behavioral context—such as what the response contains, pagination, or any constraints. The mention of 'GET' is redundant with the read-only annotation and does not enrich the agent's understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, containing just a brief summary phrase and the endpoint. There is no wasted wording, and it is well-structured for such a simple tool. However, it is so minimal that it 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.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the abundance of similar sibling tools (e.g., list_me_sessions, get_users_by_id_listening_sessions, list_me_listening_stats), the description fails to clarify what makes this tool unique or when to use it. Although the output schema is present, the description leaves too much ambiguity for an agent to reliably select it without deeper analysis.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing to explain. The description correctly avoids adding any parameter details, and the schema coverage for parameters is effectively 100% (empty). A baseline of 4 is appropriate for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get me listening-sessions' which specifies the verb and resource, indicating it retrieves the current user's listening sessions. However, it does not explicitly differentiate from similar tools like 'get_me_item_listening_sessions_by_library_item_id_by_episode_id' or 'list_me_sessions', leaving some ambiguity about its exact scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It merely repeats the GET endpoint and offers no context on scope, prerequisites, or contrasts with the many related list tools, leaving the agent to guess when to select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_me_listening_statsB
Read-onlyIdempotent

Get me listening-stats.

GET /api/me/listening-stats

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description's 'Get' and 'GET' method are consistent with those. It adds no behavioral context beyond the endpoint, but for a zero-parameter read-only tool the annotation coverage is sufficient and 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler; the endpoint is a useful reference and is placed after the one-line purpose. Every element earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, an output schema, and robust read-only annotations, the core call is fully specified. However, the description does not clarify what listening-stats contains or how it differs from the numerous sibling listening/session/stats tools, which is the main gap for tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema has 100% coverage, so there is nothing for the description to explain. Baseline 4 for zero-parameter tools is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Get') and resource ('me listening-stats') and includes the exact endpoint GET /api/me/listening-stats, so an agent knows it retrieves the current user's listening statistics. It does not explicitly distinguish this from sibling tools like list_me_listening_sessions or get_users_by_id_listening_stats, 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance or mention of alternatives; the only hint is 'me' in the name and endpoint, which implies current-user scope. An agent facing many sibling stats/session tools must infer when this is preferred over list_me_listening_sessions or get_users_by_id_listening_stats.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_me_progressC
Read-onlyIdempotent

Get me progress.

GET /api/me/progress

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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 behavioral context beyond the HTTP verb and path, such as what data is returned, how it is scoped, or whether it reflects only currently in-progress items.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short but the main phrase 'Get me progress' carries no additional information beyond the tool name. The HTTP line adds some concrete value, but the overall structure is under-specified rather than deliberately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite a simple schema and supportive annotations, the description does not explain what the response contains or how this endpoint relates to other progress-related endpoints. An agent would have difficulty knowing whether this tool returns all user progress, only items in progress, or a summary without external knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema coverage is 100%, so no parameter documentation is needed. The description being non-informative about parameters is acceptable; the baseline for zero-parameter tools is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get me progress' is essentially a restatement of the tool name and provides no specifics about what 'progress' means or what the returned data represents. It does not differentiate from closely related siblings like list_me_items_in_progress or get_me_progress_by_id_by_episode_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description gives no context about use cases, prerequisites, or exclusions that would help an agent choose between list_me_progress and the many other progress-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_me_sessionsC
Read-onlyIdempotent

Get me sessions.

GET /api/me/sessions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

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 repeating the endpoint—no mention of return format, pagination, or what data is included. Since it adds nothing beyond annotations, the score is low.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but it contains redundancy: 'Get me sessions' and 'GET /api/me/sessions' convey the same information. It's not front-loaded with any distinguishing context. While brevity is good, it sacrifices necessary clarity, so it's average.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple no-param tool with an output schema, but the description is incomplete for an agent to understand what it returns or when to use it. Given the large sibling set, it needs to specify that it lists the current user's sessions and how that differs from list_sessions. The lack of any context makes it inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so per the rubric the baseline is 4. The description doesn't need to explain parameters, and it doesn't mislead. It correctly implies a simple call with no input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get me sessions' and the endpoint, which identifies the verb and resource, but it is vague. It doesn't clarify what 'sessions' refers to (listening sessions, auth sessions, etc.) and doesn't differentiate from many sibling list tools like list_sessions, list_sessions_open, or list_me_listening_sessions. It is barely more than a tautology, though the endpoint adds a slight hint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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, no exclusions, no mention of which sibling to choose under what circumstances. The description provides zero usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_notificationdataB
Read-onlyIdempotent

Get notification event data.

GET /api/notificationdata

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the operation as read-only, idempotent, and non-destructive, which lowers the burden on the description. The description adds only the HTTP GET method and resource path; it does not mention pagination, auth requirements, or filtering, though the zero-parameter schema makes these less critical.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the action, and the second line provides the exact endpoint without filler. For a zero-parameter read-only tool, this is appropriately sized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, an output schema, and safety annotations, the description covers the essentials for invoking the tool. However, it leaves the relationship to similar sibling tools ambiguous, so an agent could select the wrong notification-related endpoint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and complete coverage, so there is no parameter information missing. 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.

Purpose4/5

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 ('notification event data'), and it supplies the concrete API path. It is not a tautology, but it does not explicitly distinguish itself from sibling tools such as list_notifications or list_notifications_test.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus the many notification-related siblings. The description does not say how list_notificationdata differs from list_notifications or when one should be preferred over the other.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_notificationsA
Read-onlyIdempotent

Get notification settings.

GET /api/notifications

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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 additional context such as authentication requirements, rate limits, or response behavior. It is consistent with annotations but provides no extra 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: 'Get notification settings.' plus the endpoint. It is front-loaded with the purpose and every character earns its place. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only settings retrieval with no parameters, the description suffices. Since an output schema exists (as per context), return structure is presumably defined elsewhere. It lacks mention of pagination or default behavior, but given the simplicity, it is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema is empty, so the description does not need to elaborate on parameter semantics. With 0 params, the baseline is 4, and the description correctly omits parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get notification settings' which is a specific verb and resource, clearly indicating a retrieval operation. It distinguishes from sibling tools like list_notifications_test and list_notificationdata by specifying 'settings', though it could be more explicit about the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as list_notificationdata or list_notifications_test. There are no conditions, exclusions, or mentions of sibling tools, 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.

list_notifications_testA
Read-onlyIdempotent

Send general test notification.

GET /api/notifications/test

Args: fail: Whether to intentionally cause the notification to fail. 0 for false, 1 for true.

ParametersJSON Schema
NameRequiredDescriptionDefault
failNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide the read-only, idempotent, and non-destructive profile, lowering the description's burden. The description adds one useful behavioral detail: the fail parameter can intentionally cause the notification to fail. It doesn't disclose much else, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded with the endpoint line, followed by a clear Args section. It is somewhat terse but contains no filler and covers the essential behavior for a simple one-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameter, annotation coverage, and an existing output schema, the description is mostly sufficient for direct invocation. It falls slightly short in providing enough context about when to choose this tool over the many notification-related siblings, which leaves it only partially complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description gives high-value, non-schema information for the sole parameter fail, explicitly mapping 0 to false and 1 to true. This is exactly what an agent needs to correctly invoke the tool, especially since the schema only declares an integer with no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action and object: 'Send general test notification.' This helps an agent understand that the tool performs a notification test, and the 'general' qualifier partially distinguishes it from ID-scoped variants, though it does not explicitly contrast with siblings like get_notifications_by_id_test.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool instead of related notification tools such as list_notifications or get_notifications_by_id_test. The description only states the action and fails to mention any condition, exclusion, or recommended context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_playlistsB
Read-onlyIdempotent

Get api playlists.

GET /api/playlists

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the operation as read-only, idempotent, and non-destructive, and the GET method is consistent with that. The description adds no behavioral context beyond the annotations—such as pagination behavior, authentication needs, or response scope—so it provides 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and free of unnecessary filler, but 'Get api playlists' essentially restates the tool name and is redundant with the endpoint line. The brevity is more under-specification than purposeful conciseness, and no helpful differentiating context is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, read-only list endpoint with an output schema, only a modest description is needed. The endpoint and resource are present, but the description does not clarify whether this returns the global playlist collection or a library-scoped one, which is a meaningful gap given the sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so there is no parameter documentation burden for the description to carry. With 100% schema coverage and no parameters, the baseline of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Get' with the resource 'playlists' and includes the exact endpoint 'GET /api/playlists', so the core operation is clear. However, it does not explicitly clarify whether this returns all playlists, a specific playlist, or library-scoped playlists, so it does not fully distinguish itself from sibling tools like get_playlists_by_id or get_libraries_by_id_playlists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention that this lists all playlists or that get_playlists_by_id should be used for a single playlist, leaving the agent to infer usage 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.

list_search_authorsC
Read-onlyIdempotent

Get search authors.

GET /api/search/authors

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds no behavioral context beyond the endpoint path, and does not mention scope, pagination, auth requirements, or any side-effect-relevant trait. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, with no filler or redundant content. The endpoint line is a useful concrete reference. Given the simple parameterless nature of the tool, this level of brevity is appropriate and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, an output schema, and strong safety annotations, the invocation mechanics are fully covered. However, the description is ambiguous about what 'search authors' specifically returns and when it should be used relative to sibling search/list endpoints. This is a clear gap for an agent deciding between lookalike tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so there is nothing for the description to explain about inputs. The baseline of 4 for parameterless tools applies; no additional parameter context is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get search authors' is essentially a direct restatement of the tool name list_search_authors. It does not clarify what a 'search author' is, what the result represents, or how this differs from sibling tools like list_search_books or get_authors_by_id. The GET path adds a concrete endpoint but not semantic clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool instead of alternatives. With many sibling list_search_* and author-related endpoints, an agent receives no explicit or implicit cue for choosing this tool. The description is not misleading, but it provides zero routing help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_search_booksC
Read-onlyIdempotent

Get search books.

GET /api/search/books

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds no behavioral context beyond the GET verb and endpoint, such as pagination, auth requirements, or result scoping.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and free of filler, and the endpoint is front-loaded. However, 'Get search books' is redundant with the tool name and does not add real value, so the brevity is closer to under-specification than effective conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema and annotations reduce the need to document return values and safety. Still, the description never explains what a 'search book' is, how results are scoped, or how this differs from the many sibling list_search_* tools, leaving an agent with insufficient context for confident selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty input schema, so there is practically nothing for the description to clarify. With schema coverage at 100%, the baseline of 4 applies because no parameter documentation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get search books' essentially restates the tool name and does not clarify what a 'search book' is or what this endpoint returns. The endpoint path adds some specificity, but it does not distinguish this tool from sibling search tools like list_search_authors, list_search_covers, or list_search_podcast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to call this tool versus the many sibling search/list tools. The description only repeats the endpoint and gives no context, 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_search_chaptersC
Read-onlyIdempotent

Get search chapters.

GET /api/search/chapters

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses no behavioral traits beyond the read-only and idempotent hints already present in the annotations. It does not mention pagination, result scope, ordering, or any operation-specific behavior. The 'GET' verb in the endpoint merely repeats what the annotations already communicate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is short but under-specified rather than concisely informative. The phrase 'Get search chapters' merely restates the tool name, leaving only the endpoint line as marginally useful. A single explanatory sentence would improve structure without adding bulk.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though the tool has no parameters and an output schema exists, the description leaves the core entity 'search chapters' undefined. It also gives no guidance for selecting this tool among its many sibling search/list tools. The definition is not complete enough for an agent to understand what it is retrieving or when to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so there is no parameter semantics for the description to explain. This is an appropriate baseline for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get search chapters' is essentially a synonym of the tool name 'list_search_chapters', so it restates the name without adding real semantic content. It does not define what a 'search chapter' is or how this resource differs from sibling tools like list_search_books, list_search_authors, or list_search_covers. The endpoint path is the only additional information, and it clarifies location but not purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus the many sibling search/list tools. No conditions, prerequisites, or exclusions are provided. An agent must infer intended 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.

list_search_coversB
Read-onlyIdempotent

Get search covers.

GET /api/search/covers

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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 it's a safe, non-mutating operation. The description adds minimal value; it only restates the endpoint. There's no mention of response format, pagination, or any other behavioral traits, but given annotations cover safety, a 3 is reasonable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of a one-line summary and the endpoint URL. It's front-loaded with the main purpose. No wasted words, though it could be slightly more informative without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple tool with no parameters that reads data imaginably. The output schema exists, so return values are documented elsewhere. The description is minimally adequate, but lacks any detail on what 'search covers' represents or how it fits into the search feature. For such a simple tool, a 3 is fair.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema covers 100% (essentially empty). The description cannot add parameter meaning because there are none. According to the rules, with zero params, baseline is 4, and this is met since no additional info is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get search covers' with a clear verb and resource, but it's very terse. It doesn't distinguish from sibling tools like list_search_authors, list_search_books, etc., which follow a similar pattern. Without context on what 'search covers' means (e.g., cover images for search results), its purpose is somewhat ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool vs. alternatives. The description includes only the endpoint URL, which gives a clue but doesn't explain use cases or exclusions. It's not misleading, but the tool's context among search-related siblings is omitted.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_search_podcastC
Read-onlyIdempotent

Get search podcast.

GET /api/search/podcast

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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 only the HTTP method (GET), which is redundant. It does not disclose expected response format, pagination, or any other behavioral traits, providing minimal extra 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short, essentially a single sentence plus the endpoint. It is front-loaded with the basic purpose but is too terse to be considered well-structured for an agent, lacking essential context while remaining efficient in length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description does not explain what the search returns or how it behaves with no parameters. For a 'search podcast' tool, it's unclear whether this searches by title, returns all podcasts, or requires hidden query parameters. The description is insufficient for an agent to understand the tool's capabilities.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and an empty input schema. Per calibration, the baseline for 0 params is 4. The description needs no parameter explanation since none exist, and it neither adds nor detracts from schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Get search podcast' which identifies a verb and resource, distinguishing it from sibling search tools for authors, books, etc. However, it is vague about what exactly is searched (podcasts vs. episodes) and lacks specificity about the search's scope or outcome.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternative search tools like list_search_books or list_search_authors. The description only provides the endpoint without any conditions, typical use cases, or exclusions, leaving the agent without context for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_search_providersA
Read-onlyIdempotent

Get search providers.

GET /api/search/providers

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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 endpoint and method, which provides minor context, but discloses no additional behavioral traits such as auth requirements or output semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short lines with no filler. It front-loads the core purpose and includes the endpoint route without redundant explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless, read-only listing tool with an output schema and detailed annotations, the description is complete enough for correct invocation. Nothing critical is missing from an agent's perspective.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, and schema description coverage is 100%, so the schema has nothing to document. No parameter explanation is needed, making the baseline of 4 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get search providers' states a clear verb and resource. It is readily distinguishable from sibling tools like list_search_authors or list_search_books, though it does not explicitly 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when this tool should be used versus alternatives such as list_search_authors or list_search_books. The description only states the operation with no 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_sessionsC
Read-onlyIdempotent

Get api sessions.

GET /api/sessions

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey read-only, idempotent, non-destructive behavior; the description adds only the endpoint path and repeats 'get'. It does not disclose what subset of sessions is returned, whether auth is required, or any pagination or filtering behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short and front-loaded, with the endpoint line providing a useful direct reference. It is terse but not padded with unnecessary prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read endpoint with an output schema, the basic invocation contract is sufficiently defined. However, missing differentiation from sibling session tools and lack of explanation of what 'api sessions' means leaves contextual ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so there is nothing for the description to add. The baseline of 4 applies because no parameter documentation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

It identifies the verb (get) and resource (api sessions), so the basic purpose is clear. However, it does not differentiate from sibling tools like list_sessions_open or get_session_by_id, and the phrasing is nearly a restatement of 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.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of alternatives, and no exclusions. With multiple session-related siblings, an agent has no basis for choosing this tool over list_sessions_open or list_me_sessions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sessions_openC
Read-onlyIdempotent

Get sessions open.

GET /api/sessions/open

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior3/5

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 endpoint 'GET /api/sessions/open' which confirms the HTTP method, but it does not describe what 'open' means or any behavioral nuances. Since annotations handle the main safety traits, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of a single phrase plus the endpoint. It is front-loaded and does not waste words. However, it is so minimal that it borders on under-specification, but since it is a simple GET with no parameters, conciseness is acceptable. A 4 reflects its efficiency without extra clutter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that a GET request with no parameters and an output schema exists, the description is functionally sufficient for an agent to call the tool. The agent knows it is a read-only operation, and the output schema defines the return format. However, it does not clarify what constitutes an 'open' session, which could cause ambiguity, but that is a semantic gap rather than a missing invocation detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema coverage is 100% (empty properties). With no parameters to describe, the baseline is 4. The description does not need to explain parameters, and no additional meaning is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get sessions open' essentially restates the tool name 'list_sessions_open' with a synonymous verb ('get' vs 'list') and the same resource. It adds no distinction from siblings like list_sessions or list_me_sessions, and does not clarify what 'open' means. This is a tautology that fails to convey new information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. It does not mention that it returns only open sessions, nor does it differentiate from list_sessions or list_me_sessions. The agent is left 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.

list_stats_serverC
Read-onlyIdempotent

Get stats server.

GET /api/stats/server

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.3/5.0
Behavior2/5

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. However, the description adds no extra behavioral context—it does not describe what data is returned, whether authentication is required, or any potential side effects. The description merely repeats the HTTP method and path, adding minimal 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and to the point, containing only the purpose statement and the endpoint. It is efficient with no filler, but the lack of structure (no headings, no separation of concerns) and the vague phrasing prevent a higher score. It earns points for brevity but loses some for not being more informative within that brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even though there are no parameters and an output schema exists, the description does not clarify what 'stats server' means or what kind of statistics this endpoint returns. An agent calling this tool would have no idea whether it returns system metrics, user counts, or something else. This lack of context makes the tool incomplete for correct invocation and interpretation of results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

This tool has zero parameters, so the description has no parameter semantics to explain. The schema is empty and coverage is 100%. There is nothing for the description to add, and it correctly does not attempt to describe nonexistent parameters. The baseline of 4 applies here since no information is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get stats server' is essentially a restatement of the tool name with no elaboration on what 'stats server' refers to or what data it returns. It includes the HTTP endpoint, which adds some specificity, but it does not distinguish this from sibling tools like get_stats_year_by_year or list_me_listening_stats. An agent cannot tell what this tool does beyond a vague 'get server stats'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

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 conditions, prerequisites, or exclusions. It simply states the endpoint without providing context on the appropriate use case, leaving the agent to guess when to select this over other stats-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tagsB
Read-onlyIdempotent

Get api tags.

GET /api/tags

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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 context but not behavioral depth (e.g., no mention of pagination, ordering, or response shape). It doesn't 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short: two lines, no filler. It front-loads the purpose and includes the endpoint. It could be slightly more descriptive, but for a zero-parameter read-only tool, this is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter GET endpoint with rich annotations and an output schema, the description is mostly sufficient. However, it doesn't clarify what 'api tags' are (e.g., user-defined tags vs. system tags) or what the response contains, which could matter for an agent deciding whether to call this vs. list_genres or list_collections.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema is trivially complete (100% coverage). The description doesn't need to explain parameters. The endpoint line adds a small amount of context beyond the schema, but with no params, the baseline is high.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get api tags' states a clear verb and resource, and the endpoint GET /api/tags reinforces it. However, it doesn't distinguish this from the many other list_* siblings (e.g., list_genres, list_collections) beyond the resource name, and 'api tags' is slightly ambiguous (could mean API endpoint tags vs. library tags).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description only states the endpoint; it doesn't mention that this is for retrieving tags specifically, nor does it contrast with list_genres or other list_* tools. An agent would have 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.

list_tasksC
Read-onlyIdempotent

Get api tasks.

GET /api/tasks

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior3/5

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 endpoint, but it does not contradict the annotations. With annotations covering the safety profile, 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, which is concise, but it is under-specified rather than efficiently informative. The endpoint line is redundant with the tool name and adds little. It earns a middle score for brevity without substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and zero parameters, so the description does not need to explain return values or inputs. However, the description fails to explain what 'tasks' are, what the list contains, or how it relates to the many sibling list tools. For a zero-parameter read tool, this is a notable gap in domain context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics burden on the description. The schema coverage is 100% (vacuously), and the description need not explain any inputs. Baseline 4 for zero-parameter tools is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Get api tasks' is a near-tautology of the tool name and provides no meaningful information about what 'tasks' are in this domain. It does not distinguish this tool from the many other list_* siblings, and the HTTP endpoint reference adds no semantic value.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives. The description merely restates the endpoint and gives no context about task types, filtering, or relationship to other list tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_usersB
Read-onlyIdempotent

Get api users.

GET /api/users

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description only adds the HTTP endpoint and repeats 'Get api users'; it does not disclose behaviors beyond the strong annotations. It offers no information about response shape, pagination, or authorization requirements beyond what the output schema and 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: 'Get api users.' followed by the endpoint. There is no redundant wording, and the content is appropriately minimal for a zero-parameter read operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter read with a rich output schema and comprehensive annotations, the description is largely sufficient. The only notable gap is not explicitly stating that this returns all users rather than online-only users.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so parameter documentation is unnecessary. The description does not need to compensate for missing schema meaning, and the schema coverage is effectively complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get api users', and provides the endpoint. This makes the tool's purpose understandable, though it does not explicitly distinguish it from siblings like list_users_online or get_users_by_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given about when to use this tool versus alternatives. The purpose is implied by the name and endpoint, but there is no mention of exclusions, such as using list_users_online for online users or get_users_by_id for a single user.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_users_onlineA
Read-onlyIdempotent

Get users online.

GET /api/users/online

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds no behavioral context beyond the HTTP endpoint, such as what 'online' means, session semantics, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with the core purpose front-loaded in the first sentence. The endpoint line is arguably redundant but harmless. No filler or unnecessary details are present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there are no parameters, an output schema exists, and annotations cover the operation's safety profile, this is nearly complete for a simple list operation. The only notable gap is not explaining what qualifies a user as 'online' or whether special context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema is trivially complete, so the description has no parameter semantics to explain. The baseline of 4 applies for parameterless tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Get users online.' It distinguishes from siblings like list_users by the 'online' qualifier. However, it mostly restates the tool name and does not add clarifying detail about what 'online' means in this system.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is only implied by the phrase 'users online' — an agent can infer it is for retrieving currently online users. There is no explicit guidance about when to prefer this over list_users or any other alternative, and no exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_api_keys_by_idB
Idempotent

Update api api-keys.

PATCH /api/api-keys/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey that this is a mutation (readOnlyHint=false), non-destructive (destructiveHint=false), and idempotent (idempotentHint=true). The description adds no behavioral context beyond the verb 'Update', such as whether it performs a partial or full replacement, what happens to unspecified fields, or any side effects. The only extra sentence advises reading GET/schema, which is more about parameter preparation than behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the action and endpoint. It includes only necessary elements: the action, endpoint, and a pointer for parameter details. The typo 'api api-keys' is minor, and the structure is efficient with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter update operation with an output schema, the description is adequate. It points to the matching GET or /schema endpoint to learn the body fields, which is a reasonable fallback. However, it does not specify whether the update is partial or full, nor does it mention any permissions or consequences, leaving some ambiguity for an agent deciding how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description must compensate. It merely labels id as a path parameter and body as a request payload, adding nothing beyond what the schema's types already convey. The pointer to GET or /schema is helpful for discovering fields but does not describe the parameters' meaning or structure, leaving the agent without concrete guidance on what to supply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Update api api-keys' with the endpoint PATCH /api/api-keys/{id}, clearly indicating a mutation of an existing API key. It distinguishes from sibling create/delete/list operations by the verb 'Update' and the resource scope. The wording 'api api-keys' is slightly awkward but does not obscure the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description instructs to 'Read the matching GET or the /schema endpoint first to see the fields this resource expects', which is a useful prerequisite for calling the tool correctly. However, it does not explicitly state when to use this tool instead of create_api_keys or delete_api_keys_by_id, relying on the reader to infer from the verb 'Update'. There is no mention of context like authentication or prerequisites beyond reading the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_authors_by_idA
Idempotent

Update an author by ID.

PATCH /api/authors/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish that this is a non-read-only, idempotent, non-destructive operation. The description adds a useful dependency instruction (read GET/schema first) and notes the PATCH method, but does not disclose auth, rate limits, or what the response contains. The added value is modest but consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, directly stating purpose, the HTTP method/path, and arg guidance. There is no extraneous information, and the core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists, the description does not need to explain return values. It provides enough context for a simple update operation: the target, the parameters, and a pointer to discover the body fields. It could mention idempotency or side effects, but those are already covered by annotations. Overall, it's sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that 'id' is a path parameter and 'body' is the payload, and points to the GET or schema endpoint for field details. This is helpful because 'body' is an open additionalProperties object; without this pointer the agent would have no idea what fields to include.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Update an author by ID') and specifies the resource and identifier. It distinguishes from other patch tools by targeting authors specifically, and includes the HTTP method and path, leaving no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implicitly tells when to use (to update an author) and provides a prerequisite ('Read the matching GET or the /schema endpoint first'), but it does not mention alternatives or conditions that would make another tool more appropriate. Given the large sibling set, agents get no explicit differentiation guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_auth_settingsB
Idempotent

Update api auth-settings.

PATCH /api/auth-settings

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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's 'Update' is consistent with them. The description adds useful workflow context by directing agents to the GET/schema endpoint, but it does not disclose update semantics such as partial vs. full replace or permission requirements — meaningful for an open object body.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the verb and resource. The 'body: Request payload' line is near-tautological with the schema, but the HTTP endpoint line and the GET/schema pointer each add value, so most content earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and annotations are present, and the GET/schema pointer resolves field discoverability for the open body parameter. Gaps remain: no differentiation from patch_settings and no disclosure of what the update operation actually affects or requires, leaving the agent partially reliant on external discovery.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the body is an open object (additionalProperties: true), so the description must compensate. It does so minimally but effectively by pointing to the matching GET or /schema endpoint for field expectations, giving the agent a concrete resolution path. It does not, however, describe any actual fields itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Update api auth-settings.' This clearly conveys the tool modifies authentication settings. However, it does not differentiate from the sibling patch_settings, which is also an update-settings tool, so an agent must rely on the name alone to distinguish them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied by the verb and resource — call this when you need to modify auth settings. The instruction to 'Read the matching GET or the /schema endpoint first' is procedural guidance for field discovery, but there is no explicit when/when-not guidance or comparison against alternatives like patch_settings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_backups_pathC
Idempotent

Update backups path.

PATCH /api/backups/path

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior3/5

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 instruction to read the matching GET or /schema endpoint first, which hints at the need to discover the expected fields. However, it doesn't disclose what happens on update, whether the path is validated, or any side effects beyond the annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core action 'Update backups path'. The HTTP method and the pointer to the schema endpoint are useful. It is not bloated, though the 'Args:' formatting is a bit mechanical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a PATCH operation with an opaque body parameter and no schema coverage, the description is thin. It relies on the agent fetching the GET or /schema endpoint, which is a reasonable pattern but leaves the tool incomplete on its own. There is no output schema detail in the description, and the open-world body means the agent needs more context to invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the only parameter 'body' is an open object with additionalProperties: true. The description says to read the matching GET or /schema endpoint to see the fields, which is a pointer but not actual semantic content. It does not name any fields or explain what the body should contain, leaving the agent to do extra discovery work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description says 'Update backups path' which is a clear verb+resource, and the HTTP method PATCH is shown. However, it doesn't explain what 'backups path' means or what the update accomplishes, and it doesn't distinguish this from sibling tools like create_backups or delete_backups_by_id beyond the obvious verb difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It only says to read the matching GET or /schema endpoint first, which is a prerequisite but not a usage condition. There is no mention of when a PATCH to the backups path is appropriate or what scenarios call for it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_collections_by_idA
Idempotent

Update api collections.

PATCH /api/collections/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as non-read-only, non-destructive, and idempotent; the description adds the PATCH method and the update semantics without contradicting those hints. It does not go beyond them to describe side effects, partial-update behavior, or permissions, but with the annotation coverage this is an adequate middle score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: a one-line purpose statement, the exact endpoint, and a minimal two-argument breakdown. Every sentence contributes information, and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple update tool with an output schema and safety-related annotations, the description covers the essential call contract: target id, payload location, and a discovery path for body fields. It could be more complete by stating partial-update semantics or explicitly routing to sibling tools, but an agent has enough to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the burden. It identifies id as a path parameter and body as the request payload, and critically tells the agent to consult the matching GET or /schema endpoint for the expected fields. That compensates well for the opaque additionalProperties body schema, though it does not enumerate concrete fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the action ('Update') and target ('api collections'), and includes the explicit HTTP path PATCH /api/collections/{id}, making it easy to distinguish from list_collections, create_collections, and delete_collections_by_id. It does not, however, explain what a collection is or add scope detail that would earn 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied by 'Update' and the endpoint, but no explicit when-to-use or when-not-to-use guidance against sibling collection tools is given. The inline advice to read the matching GET or /schema endpoint first is a useful precondition for preparing the body, but it is parameter guidance rather than tool-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_emails_settingsA
Idempotent

Update email settings.

PATCH /api/emails/settings

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the description does not need to repeat those. It adds the valuable hint to consult the GET/schema endpoint first, which is behavioral context beyond the annotations. No contradictions exist; 'Update' aligns with the annotations. The hint about schema discovery is a meaningful addition.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences plus an args line. The purpose is front-loaded, the usage hint is direct, and there is no extraneous text. Every sentence earns its place, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a single open-object parameter, the description gives a complete workflow: read the current settings or schema, then send the body. The presence of an output schema (not shown but known) means return values are covered elsewhere. The description is fully 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage and the only parameter 'body' is an open object with additionalProperties true, offering no field details. The description compensates by telling the agent to read the GET or /schema endpoint to discover the expected fields. This is a practical strategy that adds significant semantic meaning beyond the bare schema, though it does not enumerate the fields themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Update email settings,' a clear verb+resource pairing. It is distinct from the sibling list_emails_settings (which reads settings) and other patch_* tools by targeting the email settings resource specifically. The purpose is unambiguous and easily differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a prerequisite: 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' This tells the agent to fetch the current structure before patching, which is essential for constructing a valid body. It does not explicitly name the alternative GET tool, but the verb 'Update' implies the read counterpart. Overall, it gives clear contextual guidance on how to proceed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_items_by_id_coverA
Idempotent

Update items cover.

PATCH /api/items/{id}/cover

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the HTTP method and resource but does not disclose any further behavioral traits, such as whether the previous cover is replaced or any authentication requirements. With annotations present, this is acceptable but 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: it front-loads the purpose in the first sentence, then provides the HTTP path and a brief argument list. Every sentence earns its place, and there is no redundant or vague content. The pointer to GET/schema is compact yet valuable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. The description covers the two parameters and the endpoint, and it correctly directs the agent to schema documentation for the body fields. However, it does not mention potential side effects, prerequisites like item existence, or error scenarios. Given the moderate complexity of a patch operation, this is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, and the body parameter is a free-form object with additionalProperties true. The description compensates by directing the agent to read the matching GET or /schema endpoint to discover valid fields. This is a meaningful addition that helps the agent understand the body parameter, even though it does not enumerate the fields itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Update items cover.' This clearly indicates the tool's purpose. It does not explicitly distinguish from sibling tools like create_items_by_id_cover or delete_items_by_id_cover, but the verb 'Update' and the HTTP method PATCH make the intent clear enough. Slight deduction for not naming alternatives directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some usage guidance by instructing the agent to 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' This helps with parameter construction, but it does not explain when to use this tool versus alternatives (e.g., when to update vs. create or delete a cover). No explicit exclusions or scenario guidance, so it is adequate but not comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_items_by_id_ebook_by_fileid_statusB
Idempotent

Update ebook status.

PATCH /api/items/{id}/ebook/{fileid}/status

Args: id: Path parameter. fileid: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
fileidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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 mutation, and the description is consistent with that. It adds the practical warning that body fields must be discovered from GET or /schema, but it does not disclose side effects, permission requirements, or runtime 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the purpose. The endpoint line repeats information already in the tool name, but it is not harmful because it adds clarity around the HTTP method and path structure. The args list is minimal and each line earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, the description does not need to explain return values. It directs agents to the GET or /schema endpoint for body construction, which is important given the open body schema. Still, it lacks status value semantics, effects of repeated updates, and guidance about when to prefer sibling update tools, making it minimally adequate rather than comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description is the only source of parameter meaning. It correctly identifies id and fileid as path parameters and body as the request payload, and it tells agents how to learn the body's expected fields. However, it gives no field-specific semantics, allowed values, or relationships between the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific operation: 'Update ebook status' for an item/file, and the endpoint path identifies the exact resource. This distinguishes it from related patch tools like patch_items_by_id_cover or patch_items_by_id_media. However, it does not explain what a status update entails or what status values are possible.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is used when updating ebook status, but it does not contrast it with sibling patch operations or state when not to use it. The only explicit usage guidance is to read the matching GET or /schema endpoint first, which is useful but not a full usage policy.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_items_by_id_mediaB
Idempotent

Update items media.

PATCH /api/items/{id}/media

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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 useful guidance that the request body fields should be discovered via GET or /schema, which implies the body is dynamic and not fully enumerable. It does not disclose side effects, permissions, or what happens to existing media, but the annotations cover the core behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core action and endpoint. The Args section is minimal but useful, and the instruction to consult GET or /schema is a practical pointer. It earns its place without excessive verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the open-world body schema and the presence of an output schema, the description provides a reasonable starting point but leaves the agent to discover the actual media fields externally. It does not mention whether the update is partial or full replacement, nor any constraints on the body. For a PATCH operation with an opaque body, more context would be valuable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only names the two parameters ('id' and 'body') without adding meaning beyond the schema. The body parameter is an open object with additionalProperties: true, and the description's advice to read GET or /schema is the only semantic help. This partially compensates but does not fully explain what 'media' fields are expected or how they map to the resource.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb and resource: 'Update items media' with the endpoint PATCH /api/items/{id}/media. It distinguishes this from sibling tools like patch_items_by_id_cover and patch_items_by_id_tracks by focusing on 'media' as the target, though it doesn't explicitly name those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by showing the HTTP method and path, and instructs the agent to read the matching GET or /schema endpoint first to see expected fields. However, it does not explicitly state when to use this tool versus alternatives like patch_items_by_id_cover or patch_items_by_id_tracks, nor does it mention any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_items_by_id_tracksB
Idempotent

Update items tracks.

PATCH /api/items/{id}/tracks

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include idempotentHint=true, so the agent knows the operation is idempotent, but the description does not add any behavioral context beyond that. The description does not mention that the body is flexible (additionalProperties: true) or that the operation might overwrite existing tracks. Since idempotence is already covered by annotations, the description only adds minimal value, making this a baseline 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and to the point. It front-loads the purpose in the first line, then restates the endpoint and gives a brief instruction on how to understand the body. There is no fluff, but the 'Args' section is semi-redundant with the schema. Still, it's efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a high complexity with a nested object body and an output schema that is not described. The description is sparse, but it does give a clear directive to read the GET or /schema endpoint to understand the body fields, which is a pragmatic workaround. However, it does not explain the output, success criteria, or error possibilities. With no output schema details in the description, an agent might not know what to expect in response, but the instruction to use the schema endpoint partially compensates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 2 parameters with 0% description coverage, meaning the schema provides no descriptions. The body is a free-form object with additionalProperties: true, and the description says 'Read the matching GET or the /schema endpoint first to see the fields this resource expects', which is a crucial hint for understanding the body parameter. However, it does not explain the 'id' parameter beyond 'Path parameter', which is obvious from the schema. Overall, the description adds some value by directing the agent to external resources, but it does not fully compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Update items tracks' which identifies the verb 'update' and the resource 'items tracks'. It is distinguishable from sibling tools like patch_items_by_id_media and patch_items_by_id_cover by the resource name, so the purpose is reasonably clear, but it lacks explicit differentiation from similar update operations on the same item resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, prerequisites, or exclusions. The only hint is the resource name 'tracks', which implies it is specific to updating track-related fields, but this is not explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_libraries_by_idC
Idempotent

Update a single library by ID on server.

PATCH /api/libraries/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true, which are not contradicted. The description adds no extra behavioral detail beyond idempotent update; it doesn't explain partial vs full replacement or what happens on missing fields. With annotations already conveying the core semantics, a 3 is reasonable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and gets to the point, but the structure is somewhat sparse; it includes an HTTP path and argument list, which is useful, but could be more concise in prose. It doesn't waste words, but the lack of context makes it too terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the availability of an output schema, the description need not explain return values, but it must clarify the resource semantics and parameter expectations. With 0% schema coverage and no details about the `body` structure, an agent would struggle to know what to send. The pointer to GET /schema is helpful but not embedded in the description's guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%: the schema provides no descriptions for `id` or `body`. The description adds minimal info: `id` is a path parameter Thank you. What will you do? Tell me how you will create the JSON output and ensure the scores are justified. The description also says `body` is the request payload and to read GET to see fields, but it doesn't explain what `id` represents (library ID? item ID?). This is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States it updates a single library by ID via PATCH, but the 'library' resource is ambiguous (could be a library item or a media library). It does not mention what fields are updatable or the effect on the resource. Distinguishes from siblings by being a PATCH by ID, but there are many other PATCH endpoints.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Update a single library by ID on server' and points to GET /schema for fields, but does not explain when to use this vs. other PATCH endpoints like patch_libraries_by_id_narrators_by_narrator_id or patch_settings. No mention of prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_libraries_by_id_narrators_by_narrator_idB
Idempotent

Update libraries narrators.

PATCH /api/libraries/{id}/narrators/{narratorId}

Args: id: Path parameter. narrator_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
narrator_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the operation is idempotent, non-read-only, and non-destructive, so the safety profile is covered. The description adds little behavioral context beyond the word 'Update' and the instruction to consult GET/schema; it does not disclose side effects, merge vs. replace semantics, authorization requirements, or what happens to omitted fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads the core action before the endpoint and argument list. The Args section is somewhat redundant with the input schema, but it is brief and does not waste many words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema and annotations, the description is minimally adequate: it points to GET/schema for the dynamic body structure and identifies required path parameters. It lacks explicit mutation behavior, response expectations, and any prerequisites beyond body discovery, but the existing structured data fills some of these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates somewhat by identifying id and narrator_id as path parameters and body as the request payload, and by directing the agent to GET/schema for field details. However, it does not explain the meaning or format of id or narrator_id beyond what the tool name implies, and body remains an opaque object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Update') and a specific resource ('libraries narrators'), and the PATCH endpoint further disambiguates the target from sibling tools like patch_libraries_by_id or delete_libraries_by_id_narrators_by_narrator_id. It is not a tautology, though 'libraries narrators' is grammatically awkward and could be clearer about what exactly is being updated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a useful precondition: read the matching GET or /schema endpoint to discover the expected body fields. However, it does not explicitly say when to choose this tool over alternatives or when not to use it; usage is only implied by the PATCH verb and resource path.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_me_item_by_id_bookmarkB
Idempotent

Update item bookmark.

PATCH /api/me/item/{id}/bookmark

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already communicate that this is a write operation, non-destructive, and idempotent, so the description does not need to repeat those facts. It adds a useful note that body fields must be discovered via GET or /schema, but it does not disclose partial-update semantics or what happens to existing bookmark fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short, front-loaded with the purpose, and contains no filler. The route and argument notes each earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description, annotations, and output schema together make the tool callable, but the id parameter remains semantically vague and the create-versus-update choice is not addressed. These are notable gaps for an agent selecting and invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by identifying id as a path parameter and by steering the agent to the GET or /schema endpoint for the expected body fields. This is meaningful guidance for a body schema that is otherwise an opaque object with additionalProperties allowed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Update') and resource ('item bookmark'), and the PATCH route reinforces this. It is distinguishable from siblings like create_me_item_by_id_bookmark and delete_me_item_by_id_bookmark_by_time, though it could more explicitly describe whose bookmark and which item it targets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool instead of create_me_item_by_id_bookmark or delete_me_item_by_id_bookmark_by_time. The instruction to read the matching GET or /schema endpoint is a prerequisite, not a tool-selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_me_passwordB
Idempotent

Update me password.

PATCH /api/me/password

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations establish readOnlyHint=false (mutation) and idempotentHint=true, and the description's 'Update...' wording is consistent with those – no contradiction. But the description adds no behavioral context beyond the schema and annotations: it doesn't mention that changing a password is security-sensitive, whether a current password is required for verification, or whether existing sessions are invalidated. For a sensitive credential mutation, this is a gap, though the idempotent hint does cover one behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short lines: purpose, endpoint, and a single parameter note with a discovery pointer. Efficient and front-loaded. The grammar ('Update me password') is slightly awkward, and the 'Args: body' section is minimal, but nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a security-sensitive mutation with a fully opaque body, the description delegates field discovery to GET/schema endpoints, which is a valid mitigation given the open payload. However, it omits context about authentication requirements, whether a current password is needed for confirmation, or any password policy constraints – details an agent would need to call this correctly. The available output schema helps but doesn't cover these semantics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and a body that's an open object (additionalProperties: true), the description is the only semantic source. It states 'Read the matching GET or the /schema endpoint first to see the fields this resource expects' – a genuinely useful directive that tells the agent how to resolve the opaque body instead of guessing. This meaningfully exceeds the bare schema. It stops short of enumerating expected fields (e.g., current/new password), but the discovery pointer compensates for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Update me password' – a specific verb and resource that clearly marks this as changing the current user's own password, distinct from patch_users_by_id (which changes other users) and patch_settings (server settings). The endpoint path is stated. It's clearly a password-update tool, but the wording is slightly informal and it doesn't explicitly differentiate from sibling tools like patch_users_by_id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives. It doesn't mention that patch_users_by_id handles other users' passwords, or that this specifically targets the authenticated user's own credential. There are no when/when-not conditions or exclusions – an agent must infer context from the 'me' naming convention and sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_me_progress_batch_updateC
Idempotent

Update batch update.

PATCH /api/me/progress/batch/update

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already communicate that this is not read-only, is idempotent, and is not destructive; the description adds little beyond that. It does not disclose side effects, whether updates replace or merge existing progress, permissions needed, or what happens to omitted fields. For an update operation, this leaves key behavioral details implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and includes the endpoint and arg section, but the first sentence "Update batch update" is redundant and wastes the front-loaded position. The structure is otherwise acceptable but not exemplary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the open-ended body, the presence of many sibling tools, and no explanation of what a 'batch update' actually does to progress records, the description is incomplete. The pointer to GET/schema helps but does not compensate for the lack of resource semantics, required field patterns, or behavioral outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter is documented only as an open object in the schema, so the description's note that body is the request payload and its pointer to GET/schema for expected fields is genuinely helpful. Still, it does not enumerate any fields or explain the batch structure, so an agent must perform extra discovery before it can construct a valid body.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with "Update batch update," which is essentially a tautology of the tool name and does not state what resource or behavior the batch update affects. The inclusion of the endpoint /api/me/progress/batch/update adds specificity, but the prose itself is vague and does not differentiate this from sibling progress- or batch-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an actionable prerequisite: read the matching GET or /schema endpoint before supplying the body. However, it provides no guidance about when to choose this tool over alternatives such as patch_me_progress_by_library_item_id_by_episode_id, and no explicit 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.

patch_me_progress_by_library_item_id_by_episode_idB
Idempotent

Update me progress.

PATCH /api/me/progress/{libraryItemId}/{episodeId}?

Args: library_item_id: Path parameter. episode_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
episode_idYes
library_item_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal readOnly=false, idempotentHint=true, and destructive=false, so the description does not need to reiterate basic safety. It adds a useful procedural note to inspect the matching GET/schema first, but it does not disclose effects such as whether a progress record is created if missing, how continued listening is affected, or any authentication requirements beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the endpoint and purpose, then provides a brief args breakdown. Every sentence serves a purpose, and the pointer to GET/schema is necessary rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and annotations cover idempotency and non-destructiveness, the description is mostly complete for calling this tool. The main gap is the lack of usage guidance versus sibling progress tools, but the description handles the otherwise undocumented request body by directing the agent to the source of truth.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates by labeling library_item_id and episode_id as path parameters and body as the request payload. The instruction to read the matching GET or /schema endpoint is especially valuable because body is an open additionalProperties object with no field details in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb-resource pair: 'Update me progress' with the PATCH endpoint for a specific library item and episode. It is not just a restatement of the tool name, and the endpoint path adds specificity, but it does not explicitly differentiate itself from sibling progress tools like patch_me_progress_batch_update.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance about when to use this tool versus alternatives such as getting progress, deleting progress, or batch-updating progress. The only procedural advice is to read the matching GET or /schema endpoint before supplying a body, which is about how to construct the request, not when to choose this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_notificationsC
Idempotent

Update select notification settings.

PATCH /api/notifications

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds no behavioral context beyond the phrase 'update select notification settings', which is consistent with the annotations but does not explain what 'select' means, whether it is a partial update, or any side effects. No mention of idempotency or other behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two sentences plus an Args block. It front-loads the purpose and provides a clear, actionable instruction with zero wasted words. The structure is easy to scan and parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one generic body parameter and an output schema present, the description still omits critical details: which fields are updatable, whether the update is partial or full, and what the response contains. The pointer to GET/schema is helpful, but the schema itself is empty (only body object with additionalProperties), so the agent is left with insufficient information to construct a valid request without significant external investigation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema contains a single generic 'body' object with additionalProperties true and no field descriptions (0% coverage). The description compensates minimally by instructing the agent to read the matching GET or /schema endpoint to learn expected fields. This is a helpful pointer but does not enumerate or describe any settings, leaving the agent dependent on external documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Update' and the resource 'notification settings', making the primary action and target unambiguous. However, it does not differentiate this tool from the sibling patch_notifications_by_id, leaving scope ambiguity (global vs. per-notification) unresolved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises reading the matching GET or /schema endpoint before calling, which is a useful prerequisite. However, it gives no guidance on when to choose this tool over alternatives like patch_notifications_by_id or list_notifications, and does not state the scope or conditions for using this particular patch operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_notifications_by_idB
Idempotent

Update a notification.

PATCH /api/notifications/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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 mutation, and the description adds no behavioral context beyond that. It does not mention side effects, auth requirements, partial-update semantics, or response behavior; the body-discovery pointer is more about parameter semantics than 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded: purpose first, then endpoint, then parameter guidance. Every sentence earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter update with an output schema and safety-related annotations available, the description is nearly sufficient. It includes the path template and a clear method for discovering body fields. The main gap is the lack of sibling differentiation and any note about when not to use this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the burden. It correctly identifies id as a path parameter and body as the request payload, and it tells the agent to consult GET or /schema to discover expected fields — useful since body is an open object. However, it does not enumerate any concrete fields, so it only partially compensates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Update a notification') and gives the PATCH path, making the tool's purpose clear. It does not explicitly differentiate from sibling tools like patch_notifications or delete_notifications_by_id, 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for updating an existing notification by id and provides a concrete prerequisite: read the matching GET or /schema endpoint first to learn the expected body fields. However, it gives no guidance on when to prefer this tool over related siblings, nor any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_playlists_by_idB
Idempotent

Update api playlists.

PATCH /api/playlists/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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 PATCH method and, more usefully, discloses that the body is open-ended and must be discovered from GET/schema. It does not describe effects on unspecified fields, auth requirements, or response behavior, 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with a clear verb-first opener and a structured Args section. There is minor redundancy between 'Update api playlists' and 'PATCH /api/playlists/{id}', but overall every line earns its place and the layout is scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value documentation is unnecessary, and annotations cover idempotency/safety. The open-world body is handled via the schema-endpoint pointer, which is the appropriate strategy. Gaps remain: no guidance on partial-update semantics, no auth/permission context, and no routing to related playlist tools, but the core need (how to call and what to pass) is met.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that id is a path parameter and body is the request payload, and it prescribes a discovery mechanism for the body's fields. Given the body has additionalProperties: true, full field enumeration is impossible, and pointing to GET/schema is a reasonable compensation, though it defers rather than supplies actual field semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb+resource ('Update api playlists') and reinforces it with the HTTP method and endpoint pattern. It distinguishes from the many patch_* siblings primarily by the resource name, which the tool name already carries, so it is clear but does not add 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides actionable guidance ('Read the matching GET or the /schema endpoint first to see the fields this resource expects'), which tells the agent how to discover the body shape before invoking. However, there are no when-to-use vs alternatives statements, no exclusions (e.g., when to prefer create_playlists or delete_playlists_by_id), and no prerequisites beyond the schema lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_podcasts_by_id_episode_by_episode_idB
Idempotent

Update a podcast episode.

PATCH /api/podcasts/{id}/episode/{episodeId}

Args: id: Path parameter. episode_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes
episode_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a read-write, idempotent, non-destructive operation. The description adds no behavioral context beyond the generic word 'Update' and the HTTP method. It does not mention authentication requirements, side effects, error behavior, or what fields can be safely changed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, followed by the HTTP path and argument list. It avoids fluff, though the 'Args' lines mostly restate what the schema already shows.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter patch operation with an output schema and annotations, this is minimally adequate but has gaps. It does not explain partial update behavior, what a successful response looks like, or any caveats about the body payload. The pointer to GET/schema helps compensate for the undeclared body structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the burden. It correctly identifies id and episode_id as path parameters and body as the request payload. The instruction to read the matching GET or the /schema endpoint first provides a practical path to discovering the body fields, which is valuable given body is only typed as an open object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action and resource: 'Update a podcast episode.' This distinguishes it from sibling tools like delete_podcasts_by_id_episode_by_episode_id and get_podcasts_by_id_episode_by_episode_id. It does not explicitly clarify partial versus full update semantics, but the PATCH method strongly implies patch semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives like GET or DELETE on the same resource. The only usage-related instruction is to read the matching GET or /schema endpoint first, which is more about parameter discovery than choosing between tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_public_share_by_slug_progressA
Idempotent

Update share progress.

PATCH /public/share/{slug}/progress

Args: slug: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish idempotent=true and non-read-only, so the description does not need to restate those. It adds the useful context that the body is open-ended and must be discovered via GET or /schema rather than being fully specified statically, but it does not disclose side effects or auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact components: a one-line purpose statement, the endpoint, and a minimal args list. The critical guidance about reading GET/schema is included without redundant prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter PATCH with an output schema and annotations covering idempotency/destructiveness, the description provides enough to act: it identifies the slug, explains the body, and tells where to learn the expected fields. It does not over-explain return values, which is appropriate given the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description adds some meaning by marking slug as a path parameter and body as the request payload, and it directs the agent to discover the body fields from the matching GET or /schema endpoint. It does not enumerate what fields the body expects, leaving much of the semantic burden on external discovery.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening phrase 'Update share progress' names a specific action and resource, and the endpoint path /public/share/{slug}/progress reinforces the target. It is distinguishable from siblings like get_public_share_by_slug, but the description does not explicitly contrast it 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for updating progress on a public share and gives a practical prerequisite: read the matching GET or /schema endpoint first. However, it never states when to choose this tool over sibling progress/update endpoints such as patch_me_progress_by_library_item_id_by_episode_id.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_series_by_idA
Idempotent

Update series.

PATCH /api/series/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already carry the safety profile (readOnly=false, destructive=false, idempotent=true), and the description adds little behavioral context beyond the PATCH method and path. It does not disclose partial-update semantics, side effects, or authorization requirements, so it provides minimal value over 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the operation, and uses a clear Args listing. Every sentence serves a purpose, and there is no redundant prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter mutation endpoint with an output schema and safety annotations, the definition is largely sufficient. The body-discovery guidance is the critical missing schema piece; the only remaining gaps are minor, such as explicitly stating partial-update behavior and permissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and an opaque additionalProperties body, the description adds essential meaning: id is a path parameter, body is the payload, and the agent must consult the matching GET or /schema endpoint to discover expected fields. This directly compensates for the schema's lack of detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource ('Update series'), so an agent knows the target operation. It does not add scope or differentiate against other update/patch siblings beyond the resource name, which keeps it just 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied by 'Update series,' and the instruction to read the matching GET or /schema endpoint is a useful precondition for calling it correctly. However, it never explicitly says when to prefer this over sibling patch or create endpoints, 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.

patch_settingsA
Idempotent

Update api settings.

PATCH /api/settings

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already cover idempotence, non-read-only behavior, and non-destructiveness. The description adds the useful context that the expected fields are dynamic and must be discovered via GET or /schema, but it does not disclose update semantics (e.g., partial vs. full replacement) 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, front-loads the purpose, and then provides the endpoint and parameter guidance in a clean structure. 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple one-parameter schema, the presence of an output schema, and the open body design, the description is largely complete: it names the endpoint and tells the agent how to discover valid fields. It could be improved by clarifying what 'api settings' encompasses and whether the update is partial or full, but those are not blocking gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The body parameter is an open object with no static field definitions, and schema description coverage is 0%. The description compensates by explaining that 'body' is the request payload and directing the agent to read the matching GET or /schema endpoint to learn the expected fields, which is essential guidance for this open parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb ('Update') and resource ('api settings'), and reinforces it with the explicit endpoint 'PATCH /api/settings'. It is easy to understand what the tool does, but it does not differentiate itself from sibling tools like patch_auth_settings or patch_emails_settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a concrete prerequisite: read the matching GET or /schema endpoint before constructing the body. However, it does not explain when to choose this tool over related patch_* tools, nor does it mention any exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_sorting_prefixesB
Idempotent

Update api sorting-prefixes.

PATCH /api/sorting-prefixes

Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile: readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds no behavioral context beyond saying 'Update', so it does not disclose side effects, permissions, or partial-update semantics. It is consistent with annotations but provides no 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded, with a one-line summary, the endpoint, and an args note. The endpoint line is slightly redundant with the tool name and summary, but there is no filler. It earns its place as a concise reference.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is an opaque PATCH with a single open body object, and the description defers field knowledge to a 'matching GET' or '/schema endpoint'. However, no get_sorting_prefixes or schema tool appears in the sibling list, so that instruction may not be actionable for the agent. Return values are covered by the output schema, but request construction remains under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the body is an open additionalProperties object, so the description carries the burden. It usefully identifies body as a 'Request payload' and tells the agent to discover fields from GET or /schema, which is a practical pointer. However, it does not enumerate or explain the actual fields, leaving invocation dependent on external discovery.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the operation as updating the api sorting-prefixes resource and includes the exact PATCH endpoint. It distinguishes this tool from sibling patch_* tools by resource name, though it does not explain what sorting-prefixes are.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It instructs the agent to read the matching GET or /schema endpoint before sending a body, which is a useful precondition. However, it does not explicitly state when to prefer this tool over alternatives or when not to use it. Selection is implied by the resource name rather than made explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

patch_users_by_idA
Idempotent

Update api users.

PATCH /api/users/{id}

Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already convey readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds the PATCH verb and the requirement to consult GET/schema for accepted fields, but it does not disclose partial-update semantics, response behavior, or authorization needs 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: action, endpoint, then parameter guidance. Minor redundancy with the schema's own parameter labels prevents a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a dynamic-body PATCH with an output schema and annotations already covering safety, the description supplies the essential missing piece: how to discover the body contract via GET or /schema. It lacks explicit partial-update semantics and id format, but those are reasonably inferable from the PATCH method and referenced schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description partially compensates by labeling id as a path parameter and body as the request payload whose fields must be discovered via GET or /schema. It still does not specify the id format or any concrete body fields, so the compensation is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Update api users') and gives the exact PATCH path, making it distinguishable from sibling patch_* tools like patch_users_by_id_openid_unlink by targeting the core user record. It stops short of a 5 because it does not elaborate which aspects of a user can be updated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage whenever an api user needs updating and provides useful prerequisite guidance to read the matching GET or /schema endpoint first. However, it does not explicitly contrast with alternatives such as create_users, delete_users_by_id, or patch_users_by_id_openid_unlink, so exclusions are absent.

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.

  1. 209 tool updatesv1.0.0
    • First observedcreate_api_keys
    • First observedcreate_authorize
    • First observedcreate_authors_by_id_image
    • First observedcreate_authors_by_id_match
    • First observedcreate_backups
    • First observedcreate_backups_upload
    • First observedcreate_cache_items_purge
    • First observedcreate_cache_purge
    • First observedcreate_collections
    • First observedcreate_collections_by_id_batch_add
    • First observedcreate_collections_by_id_batch_remove
    • First observedcreate_collections_by_id_book
    • First observedcreate_custom_metadata_providers
    • First observedcreate_emails_ereader_devices
    • First observedcreate_emails_send_ebook_to_device
    • First observedcreate_emails_test
    • First observedcreate_feeds_by_id_close
    • First observedcreate_feeds_collection_by_collection_id_open
    • First observedcreate_feeds_item_by_item_id_open
    • First observedcreate_feeds_series_by_series_id_open
    • First observedcreate_filesystem_pathexists
    • First observedcreate_genres_rename
    • First observedcreate_items_batch_delete
    • First observedcreate_items_batch_get
    • First observedcreate_items_batch_quickmatch
    • First observedcreate_items_batch_scan
    • First observedcreate_items_batch_update
    • First observedcreate_items_by_id_chapters
    • First observedcreate_items_by_id_cover
    • First observedcreate_items_by_id_match
    • First observedcreate_items_by_id_play
    • First observedcreate_items_by_id_play_by_episode_id
    • First observedcreate_items_by_id_scan
    • First observedcreate_libraries
    • First observedcreate_libraries_by_id_remove_metadata
    • First observedcreate_libraries_by_id_scan
    • First observedcreate_libraries_order
    • First observedcreate_me_ereader_devices
    • First observedcreate_me_item_by_id_bookmark
    • First observedcreate_notifications
    • First observedcreate_playlists
    • First observedcreate_playlists_by_id_batch_add
    • First observedcreate_playlists_by_id_batch_remove
    • First observedcreate_playlists_by_id_item
    • First observedcreate_playlists_collection_by_collection_id
    • First observedcreate_podcasts
    • First observedcreate_podcasts_by_id_download_episodes
    • First observedcreate_podcasts_by_id_match_episodes
    • First observedcreate_podcasts_feed
    • First observedcreate_podcasts_opml_create
    • First observedcreate_podcasts_opml_parse
    • First observedcreate_session_by_id_close
    • First observedcreate_session_by_id_sync
    • First observedcreate_session_local
    • First observedcreate_session_local_all
    • First observedcreate_sessions_batch_delete
    • First observedcreate_share_mediaitem
    • First observedcreate_tags_rename
    • First observedcreate_tools_batch_embed_metadata
    • First observedcreate_tools_item_by_id_embed_metadata
    • First observedcreate_tools_item_by_id_encode_m4b
    • First observedcreate_upload
    • First observedcreate_users
    • First observedcreate_validate_cron
    • First observedcreate_watcher_update
    • First observeddelete_api_keys_by_id
    • First observeddelete_authors_by_id
    • First observeddelete_authors_by_id_image
    • First observeddelete_backups_by_id
    • First observeddelete_collections_by_id
    • First observeddelete_collections_by_id_book_by_book_id
    • First observeddelete_custom_metadata_providers_by_id
    • First observeddelete_genres_by_genre
    • First observeddelete_items_by_id
    • First observeddelete_items_by_id_cover
    • First observeddelete_items_by_id_file_by_fileid
    • First observeddelete_libraries_by_id
    • First observeddelete_libraries_by_id_issues
    • First observeddelete_libraries_by_id_narrators_by_narrator_id
    • First observeddelete_me_item_by_id_bookmark_by_time
    • First observeddelete_me_progress_by_id
    • First observeddelete_me_sessions_by_id
    • First observeddelete_notifications_by_id
    • First observeddelete_playlists_by_id
    • First observeddelete_playlists_by_id_item_by_library_item_id_by_episode_id
    • First observeddelete_podcasts_by_id_episode_by_episode_id
    • First observeddelete_sessions_by_id
    • First observeddelete_share_mediaitem_by_id
    • First observeddelete_tags_by_tag
    • First observeddelete_tools_item_by_id_encode_m4b
    • First observeddelete_users_by_id
    • First observedget_authors_by_id
    • First observedget_authors_by_id_image
    • First observedget_backups_by_id_apply
    • First observedget_backups_by_id_download
    • First observedget_collections_by_id
    • First observedget_hls_by_stream_by_file
    • First observedget_items_by_id
    • First observedget_items_by_id_cover
    • First observedget_items_by_id_download
    • First observedget_items_by_id_ebook_by_fileid
    • First observedget_items_by_id_ffprobe_by_fileid
    • First observedget_items_by_id_file_by_fileid
    • First observedget_items_by_id_file_by_fileid_download
    • First observedget_items_by_id_metadata_object
    • First observedget_libraries_by_id
    • First observedget_libraries_by_id_authors
    • First observedget_libraries_by_id_collections
    • First observedget_libraries_by_id_download
    • First observedget_libraries_by_id_episode_downloads
    • First observedget_libraries_by_id_filterdata
    • First observedget_libraries_by_id_items
    • First observedget_libraries_by_id_matchall
    • First observedget_libraries_by_id_narrators
    • First observedget_libraries_by_id_opml
    • First observedget_libraries_by_id_personalized
    • First observedget_libraries_by_id_playlists
    • First observedget_libraries_by_id_podcast_titles
    • First observedget_libraries_by_id_recent_episodes
    • First observedget_libraries_by_id_search
    • First observedget_libraries_by_id_series
    • First observedget_libraries_by_id_series_by_series_id
    • First observedget_libraries_by_id_stats
    • First observedget_me_bookmarks_by_library_item_id
    • First observedget_me_item_listening_sessions_by_library_item_id_by_episode_id
    • First observedget_me_progress_by_id_by_episode_id
    • First observedget_me_progress_by_id_remove_from_continue_listening
    • First observedget_me_series_by_id_readd_to_continue_listening
    • First observedget_me_series_by_id_remove_from_continue_listening
    • First observedget_me_stats_year_by_year
    • First observedget_notifications_by_id_test
    • First observedget_playlists_by_id
    • First observedget_podcasts_by_id_checknew
    • First observedget_podcasts_by_id_clear_queue
    • First observedget_podcasts_by_id_downloads
    • First observedget_podcasts_by_id_episode_by_episode_id
    • First observedget_podcasts_by_id_search_episode
    • First observedget_public_session_by_id_track_by_index
    • First observedget_public_share_by_slug
    • First observedget_public_share_by_slug_cover
    • First observedget_public_share_by_slug_download
    • First observedget_public_share_by_slug_track_by_index
    • First observedget_series_by_id
    • First observedget_session_by_id
    • First observedget_stats_year_by_year
    • First observedget_users_by_id
    • First observedget_users_by_id_listening_sessions
    • First observedget_users_by_id_listening_stats
    • First observedlist_api_keys
    • First observedlist_auth_settings
    • First observedlist_backups
    • First observedlist_collections
    • First observedlist_custom_metadata_providers
    • First observedlist_emails_settings
    • First observedlist_feeds
    • First observedlist_filesystem
    • First observedlist_genres
    • First observedlist_libraries
    • First observedlist_logger_data
    • First observedlist_me
    • First observedlist_me_bookmarks
    • First observedlist_me_items_in_progress
    • First observedlist_me_listening_sessions
    • First observedlist_me_listening_stats
    • First observedlist_me_progress
    • First observedlist_me_sessions
    • First observedlist_notificationdata
    • First observedlist_notifications
    • First observedlist_notifications_test
    • First observedlist_playlists
    • First observedlist_search_authors
    • First observedlist_search_books
    • First observedlist_search_chapters
    • First observedlist_search_covers
    • First observedlist_search_podcast
    • First observedlist_search_providers
    • First observedlist_sessions
    • First observedlist_sessions_open
    • First observedlist_stats_server
    • First observedlist_tags
    • First observedlist_tasks
    • First observedlist_users
    • First observedlist_users_online
    • First observedpatch_api_keys_by_id
    • First observedpatch_auth_settings
    • First observedpatch_authors_by_id
    • First observedpatch_backups_path
    • First observedpatch_collections_by_id
    • First observedpatch_emails_settings
    • First observedpatch_items_by_id_cover
    • First observedpatch_items_by_id_ebook_by_fileid_status
    • First observedpatch_items_by_id_media
    • First observedpatch_items_by_id_tracks
    • First observedpatch_libraries_by_id
    • First observedpatch_libraries_by_id_narrators_by_narrator_id
    • First observedpatch_me_item_by_id_bookmark
    • First observedpatch_me_password
    • First observedpatch_me_progress_batch_update
    • First observedpatch_me_progress_by_library_item_id_by_episode_id
    • First observedpatch_notifications
    • First observedpatch_notifications_by_id
    • First observedpatch_playlists_by_id
    • First observedpatch_podcasts_by_id_episode_by_episode_id
    • First observedpatch_public_share_by_slug_progress
    • First observedpatch_series_by_id
    • First observedpatch_settings
    • First observedpatch_sorting_prefixes
    • First observedpatch_users_by_id
    • First observedpatch_users_by_id_openid_unlink

TDQS

C2.3/5.0

Scored across 209 tools

Disambiguation2/5

209 auto-generated tools with boilerplate descriptions ('Create or act on...', 'Get api...') make it hard to tell similar actions apart. Many tools share structural patterns (batch add/remove, cache purge, continue-listening modifications) and some descriptions are misleading (e.g., create_podcasts_feed says 'Get podcast feed').

Naming Consistency3/5

There is a consistent snake_case verb-noun pattern based on HTTP method (list_/get_/create_/patch_/delete_), but 'create_' is used for every POST even when the operation is not a create, and 'get_' is used for state-changing actions like remove-from-continue-listening. This makes names predictable in form but semantically misleading.

Tool Count1/5

209 tools is an extreme count for an MCP server, far beyond the 3-15 well-scoped range and well over the 50+ threshold. The surface is essentially the entire REST API dumped into MCP tools, which overwhelms an agent's tool-selection space.

Completeness4/5

The tool set covers most major CRUD and admin workflows for an Audiobookshelf server: libraries, users, collections, playlists, podcasts, notifications, backups, and media items. Minor gaps exist, such as no get_settings or get_podcasts_by_id, but the overall surface is broad enough for typical agent workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Connects BookStack knowledge bases to Claude through 47+ tools covering complete CRUD operations for books, pages, chapters, shelves, users, search, attachments, and permissions. Enables full management of BookStack content and configuration through natural language.
    56
    108 npm
    87
    MIT
  • A
    license
    C
    quality
    A
    maintenance
    Enables full control of Sonarr from Claude.ai and Claude Code by exposing all 234 v3 API operations as tools for managing media libraries.
    234
    8 npm
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Enables running Overseerr or Jellyseerr from Claude.ai and Claude Code, with all 170 API operations exposed as tools for managing requests, settings, users, issues, and media services.
    170
    MIT