Trakt MCP server
Provides tools for interacting with the Trakt API, covering a wide range of features such as shows, movies, seasons, episodes, people, comments, lists, calendars, scrobbling, check-ins, and user sync data like history, watchlist, ratings, and favorites.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Trakt MCP serverWhat movies are trending on Trakt right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Trakt MCP server
Read and write Trakt from Claude.ai and Claude Code. All 334 endpoints are tools, generated from Trakt's own contract package. Not a curated subset: shows, movies, seasons, episodes, people, comments, lists, calendars, scrobbling, check-ins and everything under a signed-in account.
Why not the other options
Server | Tools | Coverage |
| 79 | 24 % |
| 9 | 3 % |
This one | 334 | 100 % |
The existing servers cover trending, popular, a user's history and a check-in. Nothing else exposes notes, smart lists, favorites, hidden items, the recommendation feed, JustWatch sources, reactions, the scrobbler, calendars beyond the basics, or most of the sync surface that makes Trakt worth scripting.
Related MCP server: Cronometer MCP server
How it stays complete
Trakt publishes no OpenAPI file, but it maintains trakt/api-help, a typed contract package covering every endpoint, with a task that renders it to OpenAPI. scripts/fetch_spec.sh runs that task and slims the 5 MB result down to what the generator reads:
scripts/fetch_spec.sh
python scripts/generate_tools.py openapi.json src/trakt_mcp/tools.pyThis uses Trakt's own generator rather than parsing their contracts independently, so the document here is the one their tooling produces. A test then compares every generated call against every operation in it, in both directions.
Tool names
Verb first, derived from the method and path:
Pattern | Meaning | Example |
| Read a collection |
|
| Read one record |
|
| POST |
|
| PUT |
|
| DELETE |
|
334 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 group in the contract: shows, seasons, episodes, movies, people, search, calendars, comments and reactions, lists and smart lists, notes, recommendations and social recommendations, scrobble, checkin, watchnow and JustWatch sources, certifications, countries, languages, genres, networks, and the whole sync and users surface: collection, history, watchlist, favorites, hidden items, ratings, playback progress and up next.
Setup
git clone https://github.com/rollecode/trakt-mcp.git
cd trakt-mcp
uv venv && uv pip install -e .Create an application at trakt.tv/oauth/applications with the redirect URI urn:ietf:wg:oauth:2.0:oob, then:
export TRAKT_CLIENT_ID=...
export TRAKT_CLIENT_SECRET=... # only needed for signing inClaude Code
claude mcp add trakt -- /path/to/trakt-mcp/.venv/bin/trakt-mcpSigning in
Public data needs only the client id. Anything under sync, users/me, checkin or scrobble needs an account:
start_authenticationreturns a code and a URLOpen the URL, enter the code
finish_authenticationwith the same device code
The token lands in ~/.cache/trakt-mcp/token.json with mode 600 and is refreshed automatically shortly before it expires. clear_authentication revokes it.
Pagination
Trakt reports paging in headers rather than the body, so every result carries a pagination block alongside result when the endpoint is paged.
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 |
| 8580 | The server. No login of its own, never exposed |
nginx | 8581 | Front door, behind a Cloudflare Tunnel |
| 8582 | OAuth 2.1 sign-in, or a fixed bearer token |
npm install
node set-password.js 'a password for the sign-in page'
printf 'TRAKT_CLIENT_ID=...\n' > ~/.config/trakt-mcp/env
chmod 600 ~/.config/trakt-mcp/envCopy systemd/*.service into /etc/systemd/system/, replacing YOUR_USER and the ISSUER hostname, then:
sudo systemctl enable --now trakt-mcp trakt-mcp-authPoint nginx/trakt-mcp.conf at your own hostname and send the tunnel at 127.0.0.1:8581.
Environment the server itself reads: TRAKT_CLIENT_ID, TRAKT_CLIENT_SECRET. The sign-in page carries the Trakt 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://trakt-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
338 toolsclear_authenticationADestructiveIdempotent
Revoke the stored token and forget it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructiveHint and idempotentHint; the description goes beyond them by pinning down exactly what is destroyed (the stored token) and what the resulting state is (forgotten). It doesn't cover side effects like rate limits or required auth, but those are not strongly needed for a zero-parameter clear operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Seven words, front-loaded action, no filler. Every phrase ('revoke', 'stored token', 'forget it') adds a distinct piece of meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless destructive operation with an output schema and annotations covering idempotence and destructive behavior, this is complete. An agent has enough information to know what will happen and when to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and schema description coverage is 100%, so there is nothing for the description to add. The description does clarify that the token in question is the stored authentication token, which is useful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete action: 'Revoke the stored token' and the end state 'forget it.' This clearly separates it from start_authentication and finish_authentication, which establish credentials rather than clear them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied—call this when the stored authentication token should no longer be used—but there is no explicit when/why guidance or comparison with siblings like create_oauth_revoke. It offers no exclusions, yet also names no alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_checkinAIdempotent
Check into an item.
POST /checkin
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds a useful workflow detail: the body's expected fields must be discovered by reading the matching GET or /schema endpoint. It doesn't describe side effects, auth requirements, or idempotency behavior, but with annotations present a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the purpose. The endpoint line and the body note each add useful information without fluff or redundancy. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a hidden, openWorld body and an output schema present, the description provides the essential discovery mechanism by directing the agent to the GET or /schema endpoint. It doesn't explain the domain meaning of 'check into an item' or the relationship to delete_checkin, but the agent has enough to invoke it correctly with the schema guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines 'body' as a free-form object with additionalProperties true and zero descriptions. The description compensates by explaining that body is the request payload and by pointing the agent to the matching GET or /schema endpoint to learn the expected fields. This is meaningful guidance for an openWorld parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Check into' and the resource 'an item' via the POST /checkin endpoint. It conveys the core action, though it does not explicitly distinguish create_checkin from sibling tools like create_scrobble_start or delete_checkin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as delete_checkin or the scrobble endpoints. It only instructs the agent to read the matching GET or /schema endpoint before sending a request, which is procedural but not comparative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_commentsCIdempotent
Post a comment.
POST /comments/
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey that this is not read-only, not destructive, and idempotent. The description adds no behavioral context beyond that, such as authentication requirements, side effects, response behavior, or what happens on duplicate posts. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the core action comes first, followed by endpoint and parameter guidance. There is no filler or redundant prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with a nested, opaque body parameter and no output schema explanation, the description is thin. It does not state what a comment is attached to, which fields are required, whether authentication is needed, or what the response contains, so the agent must rely on external lookups.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has a single unconstrained 'body' object with 0% description coverage. The description only labels it as 'Request payload' and tells the agent to consult another endpoint for fields, which is a discovery workaround rather than actual semantic meaning. It does not compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Post a comment' and gives the explicit endpoint 'POST /comments/', clearly identifying both the action and the resource. It is not a tautology and an agent can tell this creates a comment, though it does not explicitly contrast with sibling comment tools like create_comments_by_id_replies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool instead of the many related comment tools. The only advice is to read the matching GET or /schema endpoint for body fields, which is about parameter discovery, not tool selection or usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_comments_by_id_likeBIdempotent
Like a comment.
POST /comments/{id}/like
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-readonly, idempotent, non-destructive write, but the description adds no behavioral context beyond restating 'Like a comment' and the POST route. It does not mention authentication, side effects, whether duplicate likes are ignored, or how the like can be removed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded: a one-line purpose, the exact endpoint, then a compact args list. Every sentence earns its place and there is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with an output schema and annotations, this is minimally adequate: purpose, endpoint, and id semantics are present, and the body field is delegated to schema discovery. However, it is incomplete as a standalone guide because it lacks selection guidance and does not explain behavioral expectations around liking, so an agent must infer those from the annotations and siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It does add some value: id is described as 'id/slug of the resource,' and body is described as a request payload with an explicit instruction to consult the matching GET or /schema endpoint for expected fields. This is useful but leaves the actual body contract undefined, requiring the agent to perform further discovery.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific action 'Like a comment' and backs it with the exact route POST /comments/{id}/like. This clearly identifies the resource (a comment) and the operation (adding a like), and it is distinct from sibling actions like reporting, replying, or removing a like.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to choose this tool over alternatives such as delete_comments_by_id_like, create_comments_by_id_reactions, or the other comment creation tools. The only process guidance is to read a GET or /schema endpoint before supplying the body, which addresses parameter discovery, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_comments_by_id_reactions_by_reaction_typeBIdempotent
Add comment reaction.
POST /comments/{id}/reactions/{reaction_type}
Args: id: Path parameter. reaction_type: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| reaction_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose non-readOnly, idempotent, non-destructive behavior, so the description does not need to restate them. The description adds the useful instruction that the body schema should be fetched from the matching GET or /schema endpoint, but it does not explain the result of re-adding a reaction 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and organized into a one-line purpose, HTTP route, and a short Args list. The Args lines mostly restate the input schema, but they are not verbose enough to hurt.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with an opaque free-form body, the description provides the route, parameters, and a discovery mechanism for body fields. However, an agent still cannot know what reaction_type values are accepted or what responses/lifecycle apply without external lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description only labels id/reaction_type as path parameters and body as a payload. It gives no valid reaction_type values or body field semantics, although the pointer to the matching GET/schema endpoint partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Add comment reaction,' a clear verb+resource combination, and the path line reinforces exactly which comment and reaction are targeted. It does not contrast with sibling tools such as create_comments_by_id_like or delete_comments_by_id_reactions_by_reaction_type, but the operation is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are given; the agent is left to infer this is the reaction-creation counterpart of the delete tool and distinct from like. The only usage note is to inspect the matching GET/schema for body fields, which is procedural rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_comments_by_id_repliesAIdempotent
Post a reply for a comment.
POST /comments/{id}/replies
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a valuable workflow instruction: 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' This goes beyond the annotations, which already indicate non-read-only, non-destructive, idempotent, and open-world behavior. The description complements these with practical guidance on body construction, but does not cover auth or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is remarkably concise—two sentences plus the HTTP path. It front-loads the purpose and essential guidance without redundancy. Every sentence earns its place, and the body-preparation hint is included efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the description, along with the annotations and an output schema, provides sufficient guidance. It covers the action, path, and the key hint for body construction. It omits specific error handling or authentication details, but these are likely covered generically. The description is adequate for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions and body is freeform, so the description must compensate. It explains id as 'id/slug of the resource' and directs the agent to consult GET/schema for body fields, which is crucial for correct invocation. However, it could be more explicit about what the id refers to (comment id) and the exact expected body structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Post a reply for a comment') and clearly identifies the resource (a comment). It explicitly distinguishes this from reading replies (get_comments_by_id_replies) and creating a new comment (create_comments) by using 'reply' and the path. The name reinforces this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when replying to a comment but does not explicitly contrast this tool with alternatives or provide conditions for use. There is no guidance on when not to use it or mention of prerequisites. It relies on the path and name to signal intent, which is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_comments_by_id_reportBIdempotent
Report a comment.
POST /comments/{id}/report
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover readOnlyHint, destructiveHint, and idempotentHint, so the safety profile is already known. The description adds the POST method and a pointer to discover the body schema, but it does not disclose side effects (e.g., whether reports are anonymous, require authentication, or are rate-limited). There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the primary action. It includes the endpoint, the two arguments, and a necessary hint for building the body. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple report action with an output schema present and annotations covering safety, the description provides enough to invoke correctly: the resource path, the id parameter, and a route to learn about the body. An agent can proceed without missing critical details, though a little more context about what 'report' implies (e.g., moderation) would make it fully unambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'id' as 'The id/slug of the resource' and for 'body' it tells the agent to read the GET or /schema endpoint to discover fields. This is useful but stops short of describing the actual body structure; it offloads discovery to runtime rather than giving explicit semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Report a comment.' The endpoint 'POST /comments/{id}/report' confirms the exact action and resource type. It doesn't explicitly differentiate itself from similar report siblings like create_episodes_by_id_report, but the resource is explicit enough to avoid confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives like create_movies_by_id_report or create_users_by_id_report. It does mention a prerequisite ('Read the matching GET or the /schema endpoint...') but fails to state the context or exclusions that would help an agent 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_episodes_by_id_reportCIdempotent
Report an episode.
POST /episodes/{id}/report
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds the HTTP method and endpoint but nothing else—no authentication, rate limits, side effects, or what the report submission entails. It provides 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and structured with an Args section. The endpoint line is redundant with the tool name but not harmful. It is efficient, though the endpoint duplication could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation with a nested object body, the description is thin. It does not explain what reporting an episode does, what happens on success, or any prerequisites beyond reading the GET/schema. The output schema exists, so return format is covered, but the description lacks essential behavioral context for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero descriptions, so the description must compensate. It describes 'id' as 'id/slug' and instructs the agent to read the GET or /schema endpoint to understand the body fields. This is useful but does not detail the body structure itself, so it only partially fills the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Report') and the resource ('an episode') clearly, and the noun 'episode' distinguishes it from sibling report tools for movies, shows, lists, etc. However, it does not elaborate on what 'report' means or why one would use it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many sibling report tools. No alternatives, conditions, or exclusions are mentioned. The description is purely functional and does not help an agent decide between this and, say, create_shows_by_id_report.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lists_by_id_likeCIdempotent
Like a list.
POST /lists/{id}/like
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds no behavioral context beyond that – it does not explain the effect of liking a list, idempotency implications, authentication requirements, or what happens on repeated calls. Since the description carries only minimal additional transparency, it falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and to the point: a one-line purpose, the exact endpoint, and a compact Args section. It front-loads the core action and avoids filler. The Args guidance is a little terse but still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple like endpoint with an open-world body and an output schema available, the description gives just enough direction: the id parameter is explained, and the body's open nature is addressed by directing to a GET or schema reference. However, it does not mention required body fields, authentication, or the relationship with sibling like/unlike endpoints, leaving some gaps for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds that id is 'The id/slug of the resource' and instructs the agent to read the matching GET or /schema endpoint to discover the body fields. This provides more meaning than the bare schema, though it does not enumerate body fields themselves, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Like a list' with the endpoint POST /lists/{id}/like. It is specific and unambiguous about what action is performed. However, it does not distinguish this from the sibling create_users_by_id_lists_by_list_id_like, which also likes a list but in a different context, so it misses full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as delete_lists_by_id_like or create_users_by_id_lists_by_list_id_like. The only extra instruction is to read the matching GET or /schema endpoint for the body fields, which is parameter discovery, not usage context. No conditions 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.
create_lists_by_id_reportCIdempotent
Report a list.
POST /lists/{id}/report
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent, non-destructive, mutating behavior. The description adds no behavioral detail beyond the fact that it reports a list; it does not mention side effects, permissions, or response expectations, so it contributes little beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the core purpose. It includes the endpoint and argument explanations without fluff, though it may be too terse for critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and annotations, the description is incomplete for an agent deciding when to invoke this tool. It lacks any context about what reporting entails, how it differs from similar report tools, or any usage conditions, leaving the agent to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies that 'id' is an id/slug and that 'body' is a payload to be built after consulting the GET or /schema endpoint. Since the body schema is an open object with no defined fields, this pointer is essential and adds value, though it does not enumerate any actual fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Report' and the resource 'a list', with the endpoint POST /lists/{id}/report making the target explicit. It is not a tautology but is extremely brief and does not differentiate from the many sibling report tools beyond the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like create_users_by_id_lists_by_list_id_report. The only instruction is to read the GET or /schema endpoint to construct the body, which addresses the body parameter but not tool selection or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_movies_by_id_refreshAIdempotent
Refresh movie metadata.
POST /movies/{id}/refresh
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. images: Also queue a refresh of the resource images.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| images | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does add a behavioral trait by stating 'images: Also queue a refresh of the resource images,' implying asynchronous queuing behavior. Annotations already provide idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description does not disclose other potential side effects or rate limits, but it is consistent with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a clear one-line purpose, the endpoint path, and a concise parameter list. Every sentence earns its place, and the guidance to read the matching GET or schema is a practical inclusion without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with a complex body parameterached, the description offers a workable strategy by directing the agent to the schema endpoint for field definitions. The output schema exists, so return values are covered elsewhere. However, it lacks sibling differentiation and does not mention that body is required, though the input schema makes that clear. Overall, it is sufficiently complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning. It provides a meaningful explanation for each parameter: id as 'id/slug', body as a payload requiring external reference, and images as a queue flag. The body explanation is somewhat indirect—pointing to GET/schema rather than listing fields—but it does add value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action—'Refresh movie metadata'—with a specific resource (movies). It is not a tautology and conveys the core purpose. However, it does not explicitly differentiate from the sibling tool create_movies_by_id_refresh_justwatch, leaving that distinction to the name and inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is 'Read the matching GET or the /schema endpoint first to see the fields this resource expects,' which is a prerequisite for constructing the body param, not a when-to-use guideline. There is no mention of when to choose this tool over refresh_justwatch or other refresh variants, so selection criteria are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_movies_by_id_refresh_justwatchAIdempotent
Refresh movie JustWatch links.
POST /movies/{id}/refresh/justwatch
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-destructive, idempotent write operation, so the description does not contradict them. It adds the specific target of the write (JustWatch links), but it does not disclose side effects, auth requirements, rate limits, or what refreshing entails beyond the resource name. This is adequate but not rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the purpose stated first, followed by the endpoint and arguments. Every line earns its place, especially the body-discovery instruction. It could be slightly more explicit about which GET endpoint is 'matching,' but the structure is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with annotations and an output schema present, this is adequate for making the call: it provides the endpoint, id semantics, and a strategy for constructing the body. It lacks when-to-use guidance and behavioral detail, but those gaps are not fatal to basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates meaningfully: it clarifies that id can be an id or slug, and it tells the agent to consult the matching GET or /schema endpoint to discover body fields. This prevents guessing on an open 'body' object, though the actual body fields are not enumerated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Refresh') and an exact resource ('movie JustWatch links'), making the tool's purpose immediately clear. This also distinguishes it from siblings such as create_movies_by_id_refresh (general movie refresh) and create_shows_by_id_refresh_justwatch (shows, not movies). The POST endpoint line reinforces the purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to choose this tool over alternatives like create_movies_by_id_refresh or create_shows_by_id_refresh_justwatch. The only contextual advice is to read a GET or /schema endpoint before supplying the body, which is about payload construction, not tool selection. Usage context is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_movies_by_id_reportBIdempotent
Report a movie.
POST /movies/{id}/report
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what annotations already signal. It does not explain what 'report' does, what side effects occur, whether authentication is needed, or what the response represents. Annotations indicate readOnly=false and idempotent=true, but the description itself contributes no extra behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured, with a clear one-line purpose, the endpoint, and an Args section. Every line earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It is minimally viable for invocation: the agent knows the endpoint, the id parameter, and how to discover body fields. However, it lacks a clear definition of 'report', usage guidance, and behavioral side effects. Annotations and output schema cover some gaps, but not all.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description gives useful semantics: id is the id/slug and body is a request payload whose fields should be discovered via GET or /schema. This is especially valuable because the body schema is open-ended with additionalProperties.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Report a movie' names a specific verb and resource, and the endpoint POST /movies/{id}/report makes the operation concrete. It is distinguishable from sibling report tools by the movie resource, though 'report' itself is somewhat ambiguous (flag vs. generate report).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives. The instruction to read the matching GET or /schema endpoint is about constructing the body, not about choosing this tool over sibling report tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_notesBIdempotent
Add notes.
POST /notes
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (write operation), openWorldHint=true (potential side effects), idempotentHint=true, and destructiveHint=false. The description adds only the HTTP method and a pointer to read the schema. It does not disclose what happens on success, whether authentication is needed, rate limits, or any side effects beyond the annotation hints. The openWorldHint signals possible side effects, but the description does not elaborate, leaving the agent with little behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise—two short sentences plus a parameter note. It front-loads the core action ('Add notes') and the HTTP method, and the parameter guidance is placed after. There is no wasted verbosity, and the structure is clear. However, it could be more informative without losing conciseness, hence a slight deduction from a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (openWorldHint, free-form body, nested objects) and that an output schema exists (though not shown), the description is sparse. It does not explain what a 'note' is, typical fields (e.g., text, timestamp, user), authentication requirements, or the expected response. The pointer to the schema is useful but does not provide immediate context. For a write tool with open-world semantics, this is insufficient for an agent to call it correctly without additional resources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines a single 'body' parameter as an object with additionalProperties: true, meaning it is free-form, and schema description coverage is 0%. The description tells the agent to 'Read the matching GET or the /schema endpoint first to see the fields this resource expects,' which compensates by pointing to where field definitions can be found. This adds value beyond the schema, but it does not enumerate any specific fields, so the agent still lacks direct knowledge of what to include.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Add notes.' which is a clear verb and resource, and the HTTP method POST /notes further clarifies the action. It is unambiguous as a creation operation, especially given sibling tools like update_notes_by_id and delete_notes_by_id. However, it does not explicitly contrast with other create-like tools (e.g., create_comments) or mention the scope (user-specific? global?), so it lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description instructs 'Read the matching GET or the /schema endpoint first to see the fields this resource expects,' which provides a practical usage guideline for constructing the request. However, it offers no guidance on when to choose this tool over alternatives (e.g., update vs. create) or any exclusions. The usage context is implied but not explicitly contrasted with other note-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_oauth_device_codeBIdempotent
Generate new device codes.
POST /oauth/device/code
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, and the description's 'Generate' action aligns with a non-read, non-destructive mutation — no contradiction. The description adds the endpoint and the open-world body hint, but with annotations already carrying the safety profile, it contributes modest additional context about the operation's effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact — an action sentence, the endpoint, and a brief args block. The action is front-loaded. The 'POST /oauth/device/code' line is slightly redundant with the tool name but reinforces the resource. Minimal waste overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (covering return values) and a nested, open-world body. The description provides a pointer to /schema for fields, which helps. But it lacks OAuth flow context — the agent won't know this pairs with create_oauth_device_token or create_oauth_token, nor the sequencing, which matters given the many sibling auth tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It names the single parameter ('body: Request payload') and directs the agent to the /schema endpoint for field definitions, which is reasonable given the open-world (additionalProperties=true) body. However, it does not enumerate any actual body fields or expected structure, leaving the agent to fetch schema elsewhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Generate new device codes') and the resource (OAuth device code). This is distinct from sibling tools like create_oauth_device_token, create_oauth_revoke, and create_oauth_token, which the name and verb differentiate. However, it doesn't explicitly call out how it differs from create_oauth_device_token, leaving some ambiguity about the OAuth flow steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent to 'Read the matching GET or the /schema endpoint first to see the fields this resource expects,' which is useful for body construction. But it provides no when-to-use guidance, no flow context (e.g., that device-code generation precedes token exchange), and doesn't mention alternatives. The usage is only implied from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_oauth_device_tokenCIdempotent
Poll for the access_token.
POST /oauth/device/token
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide the safety profile (non-read-only, idempotent, non-destructive), so the description's job is lighter. 'Poll' usefully implies repeated safe calls, but the description does not disclose behavior on pending or expired codes, required authentication, or rate-limit implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the essential action ('Poll for the access_token') before the endpoint and parameter guidance. It omits important context, but it is not verbose or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fails to explain the OAuth device flow ordering, such as obtaining a device code first and then polling with that code. The body requirements are left entirely to the schema, and while an output schema exists, the critical call semantics are not conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single body parameter is an unconstrained object with additionalProperties true. The description merely labels it as 'Request payload' and directs users to the schema, so it does not communicate what fields are actually needed, such as device_code or grant_type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Poll for the access_token.' and identifies the exact endpoint POST /oauth/device/token. It does not explicitly contrast with the sibling OAuth token tools, but the core action is distinct and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus create_oauth_device_code or create_oauth_token. The only usage instruction is a generic pointer to read the /schema endpoint, with no mention of the device-flow prerequisite or that this should be called repeatedly after obtaining a device code.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_oauth_revokeBIdempotent
Revoke an access_token.
POST /oauth/revoke
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and destructive hints. The description adds the HTTP method and a pointer to the schema endpoint, but doesn't explain the consequences of revoking (e.g., token invalidation, re-auth). It's acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear purpose, endpoint, and args section. It's front-loaded with the action. The redirect to schema is a bit of a detour but keeps it short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a revoke operation, it's missing context like when to use, prerequisites (having an active token), and error handling. However, output schema may cover response format. The description is functional but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It provides a generic instruction to read the GET or /schema endpoint for fields, but doesn't list actual parameters or examples. This is minimal guidance but not zero.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Revoke' and the resource 'access_token', making the purpose unambiguous. It also includes the HTTP endpoint, which is helpful. Though it doesn't differentiate from siblings, the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool or alternatives. It doesn't mention scenarios like token expiry, security, or comparison with create_oauth_token. The agent is left to infer when revocation is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_oauth_tokenCIdempotent
Exchange a token.
POST /oauth/token
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true, which is notable for a token creation endpoint, but the description doesn't explain what idempotency means here or any side effects. The description also doesn't disclose that this is an OAuth token exchange that likely returns access/refresh tokens, or whether it invalidates previous tokens. With no annotation details beyond hints, the description carries the burden of behavioral disclosure and fails to provide meaningful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the endpoint, but it includes a somewhat cryptic instruction to 'Read the matching GET or the /schema endpoint first.' This is not self-contained and may not be actionable for an agent. It's concise but not optimally structured; the pointer to external schema discovery is a workaround rather than a clear explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an OAuth token exchange tool with a single open-object parameter and no output schema details, the description is incomplete. It doesn't explain the OAuth flow, what the body should contain, what the response will be, or how this tool relates to the authentication lifecycle (start_authentication, finish_authentication, create_oauth_device_code, etc.). An agent would struggle to call this correctly without external documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the only parameter 'body' is an open object with additionalProperties: true. The description says 'Read the matching GET or the /schema endpoint first to see the fields this resource expects,' which is a pointer to external documentation rather than actual parameter semantics. It does not explain what fields the body should contain (e.g., grant_type, code, redirect_uri, client_id, client_secret). The description adds minimal value beyond the schema, and the agent is left without concrete guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Exchange a token' and includes the HTTP endpoint POST /oauth/token, which conveys the resource and action. However, it doesn't explain what kind of token is being exchanged, what it is exchanged for, or how this relates to the OAuth flow. The name 'create_oauth_token' and the endpoint make the purpose somewhat clear, but the description itself is thin and doesn't distinguish it from sibling OAuth tools like create_oauth_device_code, create_oauth_device_token, or create_oauth_revoke.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention the OAuth flow context, prerequisites (e.g., needing an authorization code or device code first), or when to use create_oauth_device_token or create_oauth_revoke instead. The only hint is the endpoint path, which an agent would have to infer meaning from.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_people_by_id_refreshAIdempotent
Refresh person metadata.
POST /people/{id}/refresh
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. images: Also queue a refresh of the resource images.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| images | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotent and non-destructive behavior. The description adds useful context beyond those: it mentions queueing image refreshes and directs the agent to discover body fields from another endpoint. This helps set expectations about asynchronous work and schema discovery.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by the endpoint and a clean Args list. Every line adds value, with no redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential call pattern, body requirements, and optional image refresh. With an output schema present, return-value details are unnecessary. Minor gaps remain around side effects and prerequisites, but the provided guidance is sufficient for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description provides meaningful explanations for all three parameters. id is clarified as id/slug, body is explained as a dynamic payload with a discovery path, and images is described as an optional queue trigger. This is strong compensation for the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Refresh person metadata" is a specific verb+resource that clearly distinguishes this from sibling tools like create_movies_by_id_refresh or create_people_by_id_report. The endpoint is also explicitly stated, leaving no ambiguity about what the tool targets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over similar refresh or report tools. It only implies usage from the purpose phrase. The body instruction tells the agent to consult GET/schema, but that is parameter preparation, not tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_people_by_id_reportCIdempotent
Report a person.
POST /people/{id}/report
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is non-read-only, idempotent, and non-destructive. The description adds a useful behavioral note: to consult the GET or /schema endpoint for expected fields, which clarifies the need for external documentation. However, it does not disclose what the report action does (e.g., whether it notifies moderators, is reversible, or has side effects) beyond what annotations cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short but is under-specified rather than concisely effective. The opening 'Report a person' is too vague, and the rest is a terse list of arguments without elaboration. It is structured clearly but fails to deliver necessary information in a compact yet sufficient manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has nested objects, an output schema, and zero schema descriptions, the description is far from complete. It offloads critical information to external endpoints (GET /schema) without even hinting at the return shape. An agent cannot correctly invoke this tool without additional investigations, making it incomplete for a well-defined operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for parameter meaning. It explains 'id' as 'the id/slug of the resource' but for 'body' it merely says 'Request payload' and points to the GET /schema endpoint for details. This defers understanding rather than providing actual semantics, leaving the body structure unexplained and requiring the agent to perform extra lookups.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Report a person' is ambiguous—it could mean either retrieving a report or submitting one. The endpoint 'POST /people/{id}/report' implies a write operation, and the tool name includes 'create', but the description does not explicitly state that it creates a report. It also does not differentiate from siblings like create_movies_by_id_report or create_comments_by_id_report, which share a similar pattern.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It only instructs to read the GET or /schema endpoint to understand the request body, which is a preparation step but not a usage condition. No exclusions or alternative tool mentions are present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_scrobble_pauseAIdempotent
Pause watching in a media center.
POST /scrobble/pause
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, idempotent, non-destructive mutation. The description adds that it pauses watching and gives the endpoint, but it does not disclose prerequisites such as an active scrobble/session or side effects on playback progress. This is acceptable given the annotations, though not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a one-sentence summary, the endpoint, and a single parameter hint. Every line 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, open-body tool with an output schema and annotations covering idempotency and safety, the description is mostly complete. It tells the agent where to learn the body shape, but it is incomplete in not situating pause within the broader scrobble lifecycle relative to start and stop.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides a generic required 'body' object with additionalProperties true. The description labels it as a request payload and instructs the agent to read the matching GET or /schema endpoint to discover expected fields, which is important given the 0% schema description coverage. It does not enumerate fields, but that is reasonable for an open-world body.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line 'Pause watching in a media center' names a specific action and target resource, and the POST /scrobble/pause endpoint anchors it clearly. It is distinguishable from siblings like create_scrobble_start and create_scrobble_stop, though it does not explicitly contrast with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool instead of create_scrobble_start or create_scrobble_stop, nor any indication of the pause/stop distinction. The only conditional instruction is about reading the GET or /schema endpoint for body fields, which is parameter guidance, 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_scrobble_startBIdempotent
Start watching in a media center.
POST /scrobble/start
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds a behavioral cue by instructing the agent to read the matching GET or /schema endpoint first, which is useful for an open-world payload. It does not contradict annotations, but it does not disclose side effects or response behavior beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, direct, and front-loaded with the primary purpose before the endpoint and argument notes. It earns each line, though it could have added one sentence for alternatives or usage context without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and annotations, the description does not need to explain return values or safety. However, it leaves out important invocation context: authentication requirements, when to use start vs pause/stop, and what constitutes a valid scrobble start payload. The pointer to /schema helps but is a deferral rather than complete context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only an opaque 'body' object with 0% property coverage. The description compensates by labeling it 'Request payload' and explicitly directing the agent to the matching GET or /schema endpoint for the expected fields. This is genuinely helpful for an open-ended body parameter, though no concrete field names are given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Start watching') and resource ('in a media center'), backed by the explicit POST /scrobble/start endpoint. It is clear enough as an operation, but it does not explicitly distinguish itself from create_scrobble_pause, create_scrobble_stop, or create_checkin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus related scrobble/checkin operations. It does not mention alternatives, prerequisites, or the scrobble lifecycle. The agent must infer context from sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_scrobble_stopBIdempotent
Stop or finish watching in a media center.
POST /scrobble/stop
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover idempotent and non-destructive hints, and the description adds that this operation stops or finishes watching. However, it does not disclose auth requirements, response behavior, or what happens to an active scrobble state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the action and endpoint, followed by a useful payload-discovery instruction. There is no filler or redundant elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The /schema pointer and annotations provide a reasonable basis for invoking the tool, especially with an open-world body parameter and an output schema present. Still, it lacks usage differentiation among scrobble tools and any mention of prerequisites or side effects, so it is not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only exposes an opaque 'body' object with additionalProperties=true, so the description must compensate. It correctly identifies body as the request payload and instructs the agent to consult the matching GET or /schema endpoint, but it does not list or exemplify expected fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action, 'Stop or finish watching in a media center', and provides the endpoint POST /scrobble/stop. It semantically distinguishes itself from siblings like create_scrobble_start and create_scrobble_pause, though it does not explicitly reference them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as create_scrobble_pause or create_scrobble_start. The only directive is to read the matching GET or /schema endpoint first, which addresses payload discovery 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_search_recentBIdempotent
Add recent search.
POST /search/recent/
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal non-read-only, idempotent, and non-destructive behavior, so the description needs to add behavioral context. It only adds the endpoint and a request-payload note, with no mention of side effects, authentication, or what happens on repeated calls. This does not contradict annotations but also does not enrich them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the action and endpoint stated first. The Args section is minimal but purposeful, and no filler or redundant schema repetition is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return-value details are not required. However, the body is an open object with no inline field documentation, and the description depends entirely on an external /schema lookup. It also omits broader context about how recent searches relate to the sibling search endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It identifies 'body' as the request payload and directs the agent to the matching GET or /schema endpoint to discover expected fields. This is helpful, but the description still does not explain the actual fields or any body structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add recent search' uses a specific verb and resource, and the endpoint 'POST /search/recent/' confirms it is a create operation. It is distinguishable from the sibling create_search_recent_remove, though it does not explain what a 'recent search' semantically contains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The instruction to read the matching GET or /schema endpoint is a useful how-to for body construction, and the action implies when to use the tool. However, there is no explicit guidance about when this tool should be preferred over sibling search-related tools or what the alternative conditions are.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_search_recent_removeCIdempotent
Remove recent search.
POST /search/recent/remove
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover idempotency and destructive hint. The description adds that it's a POST operation and instructs to read the GET/schema for fields, but provides no side effects, return values, or additional behavioral context, contributing minimal value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. It front-loads the action and resource, includes the endpoint, and mentions the argument. Though minimal, it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, but the description doesn't mention return values. The open-ended body is left completely unexplained, requiring external lookup. For a removal operation, it lacks sufficient context for correct invocation without additional resources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter 'body' is an open-ended object with no schema description (0% coverage). The description says to read the matching GET or /schema endpoint, but does not provide any actual field information or structure, deferring entirely instead of compensating for the undocumented payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the verb 'Remove' and resource 'recent search', clearly indicating the action. However, it does not differentiate from sibling tools like create_search_recent beyond the obvious opposite, and doesn't clarify what a 'recent search' entry is or whether it removes all or a single entry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives or other remove operations. It only gives the endpoint and points to schema for payload, without explaining scenarios, prerequisites, or conditions that would 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_seasons_by_id_reportBIdempotent
Report a season.
POST /seasons/{id}/report
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint:false, destructiveHint:false, idempotentHint:true, openWorldHint:true (partial). The description states the action 'report' which implies it creates a report or flags the resource, which aligns with readOnlyHint:false (it's a write operation) and not destructive. It adds that the body fields should be read from the matching GET endpoint, providing context on what to send. It does not detail side effects (e.g., what happens after reporting) but annotations cover the safety profile partially (not destructive, idempotent).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the purpose with the endpoint and HTTP method, followed by parameter definitions. It is concise with no filler, but the guidance to read GET endpoints is placed after parameter definitions, which is acceptable. The structure is rational for the given information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only two parameters and an output schema exists, the description covers the essential call pattern but relies heavily on external references (GET and /schema) for body content. For a reporting operation, it should clarify what constitutes a valid report (e.g., reason, comment) to avoid misuseikuha, but the pointer to GET is a workaround. The output schema may provide return information, so completeness is moderate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides minimal parameter info: it says 'id' is the id/slug and 'body' is the request payload but doesn't explain the structure beyond pointing to the GET endpoint. The schema shows 'body' is an object with additionalProperties true, so the fields are not predefined, and the description's guidance to read the GET endpoint is necessary. However, it doesn't describe any specific fields or formatting, leaving the agent to infer them from the referenced endpoints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reports a season via POST /seasons/{id}/report, and the name 'create_seasons_by_id_report' aligns with that. It specifies the resource (season) and the action (report), distinguishing it from other report tools for different resources (e.g., create_movies_by_id_report). However, it doesn't explicitly contrast with siblings, but the resource is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It instructs to read the matching GET or /schema endpoint to know the fields the body expects, giving clear context for what to do before calling. While it doesn't explicitly state when not to use this tool or name alternatives, the instruction to consult the GET endpoint implies this is for reporting a season when that action is needed, and the presence of sibling report tools for other resources provides implicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_shows_by_id_progress_watched_resetBIdempotent
Reset show progress.
POST /shows/{id}/progress/watched/reset
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral detail beyond the POST method and the action 'Reset show progress.' It does not explain what resetting entails (e.g., whether it clears all episode progress), nor does it note any side effects. Annotations already indicate mutability (readOnlyHint false) and non-destructive nature, so the description adds little novel context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: it starts with the purpose, then the HTTP method and path, then annotated arguments. Every sentence serves a purpose with no redundancy. The reading order is logical and easy to follow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists and annotations provide mutability flags, the description covers the basics for invoking the tool. However, it lacks clarity on what 'reset' actually does (e.g., scope of progress cleared) and how it differs from the delete sibling. The direction to read the schema compensates for the opaque body, but the overall context is incomplete for a nuanced decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description enriches the 'id' parameter by noting it can be an id or slug, which the schema does not. For 'body', it provides a helpful strategy (read the matching GET or /schema endpoint) to discover expected fields, but does not enumerate them. Since schema coverage is 0%, this pointer is valuable but still leaves the agent to investigate further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Reset show progress.' which is a specific action on a show's watched progress. It names the resource and verb. However, it does not explicitly differentiate from the sibling delete_shows_by_id_progress_watched_reset, and the 'create_' prefix in the name could be misleading, though the description clarifies the intended action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description only instructs reading a GET or /schema for the body fields, which is about payload construction, not selection of this endpoint. There is no mention of prerequisites, exclusions, or when to prefer this over the delete counterpart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_shows_by_id_refreshAIdempotent
Refresh show metadata.
POST /shows/{id}/refresh
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. images: Also queue a refresh of the resource images.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| images | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral detail beyond annotations, such as the image queue side effect when the 'images' parameter is set, and advises reading the GET/schema endpoint to understand the body fields. It does not contradict the annotations (readOnlyHint false, idempotentHint true, destructiveHint false).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose, followed by the endpoint and parameter details. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the required parameters, side effects, and prerequisites. It omits whether the refresh is synchronous or asynchronous, but the existence of an output schema mitigates the need to describe return values. Overall, it is adequate for a refresh operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates by explaining each parameter: 'id' as the resource slug, 'body' with instruction to consult GET, and 'images' as queuing image refresh. This adds meaningful context that the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Refresh') and resource ('show metadata'), which clearly distinguishes it from the justwatch refresh sibling. It is not a tautology and gives a precise action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like create_shows_by_id_refresh_justwatch. It only mentions reading the GET endpoint first, which is a prerequisite, not a usage condition or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_shows_by_id_refresh_justwatchAIdempotent
Refresh show JustWatch links.
POST /shows/{id}/refresh/justwatch
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover the safety profile (non-read-only, idempotent, non-destructive), so the description does not need to repeat those. It adds the scope 'JustWatch links' but does not disclose whether refresh replaces existing data, fetches from an external source, has rate limits, or has other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the purpose, then provides the endpoint and argument guidance. The endpoint line is slightly redundant with the tool name but still useful for clarity and does not waste much space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimally adequate for a two-parameter mutation tool, especially since an output schema exists. However, it leaves gaps around when a refresh is appropriate, what side effects occur, and how the body should be shaped beyond the GET/schema pointer. More context would help an agent invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates meaningfully by explaining id as 'id/slug' and giving an actionable strategy for body: read the matching GET or /schema endpoint. While body fields are not enumerated, the guidance tells the agent how to discover them, which is valuable for an open-world body object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Refresh') and a precise resource scope ('show JustWatch links'), which clearly distinguishes it from siblings like create_shows_by_id_refresh and create_movies_by_id_refresh_justwatch. The included POST endpoint reinforces the exact action without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus related alternatives such as create_shows_by_id_refresh or create_shows_by_id_report. It only instructs the agent to read the matching GET or /schema endpoint, which addresses body 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_shows_by_id_reportBIdempotent
Report a show.
POST /shows/{id}/report
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=true), and the description does not contradict them. It adds a modest behavioral cue — that this is a POST mutation whose payload shape is defined by the matching GET/schema — which is useful for the openWorld body parameter. However, it adds little else beyond what the annotations convey, so with the annotations doing the heavy lifting a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and clearly formatted (endpoint, then args), with no wasted words. But it is under-specified rather than concisely complete: the one-line purpose 'Report a show' is thin and the body guidance, while helpful, is generic and could apply to any endpoint. It is efficient in length but the content is minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not required, and the description's pointer to the GET/schema endpoint mitigates the openWorld body field. The main gap is purpose ambiguity — the agent still does not know what a 'report' is or what the tool accomplishes. For a 2-parameter tool this is adequate but not complete, so a 3 fits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, and it compensates reasonably. It explains id is 'the id/slug of the resource' and, crucially, tells the agent to read the matching GET or /schema endpoint to discover the body fields — essential because body has additionalProperties:true and the schema itself documents nothing. This is genuinely helpful guidance for an otherwise opaque free-form payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb and resource ('Report a show') plus the endpoint, so it is not a tautology. However, 'report' is ambiguous — it is never clarified whether this submits an abuse report, requests a content report, or something else. It also does not differentiate itself from many sibling report tools (create_episodes_by_id_report, create_movies_by_id_report, create_seasons_by_id_report), which are identical in form.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or exclusion conditions. With roughly a dozen sibling report tools, the agent gets no signal about which resource type each one targets beyond the name, and no instruction on when to prefer this over the GET variants. The 'Read the matching GET or the /schema endpoint first' line is the only guidance, and it is about parameter lookup, 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_shows_by_id_seasons_by_season_episodes_by_episode_reportBIdempotent
Report an episode.
POST /shows/{id}/seasons/{season}/episodes/{episode}/report
Args: id: The id/slug of the resource. season: Season number episode: Episode number body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| season | Yes | ||
| episode | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-destructive, idempotent mutation, so the description does not need to restate those traits. It adds a useful instruction to read the matching GET or /schema endpoint before supplying the body, but it does not explain side effects, authentication needs, or what 'report' actually does beyond the bare statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action. The endpoint line and Args list are redundant with the tool name and schema, but they are presented cleanly and do not add unnecessary prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and annotations reduce the need for the description to explain return values or mutation safety. The body-discovery instruction is a useful workaround for the open-world body schema, but the description still lacks report semantics, usage context, and any guidance on what the endpoint actually accomplishes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the parameter documentation burden. It explains id as an id/slug, season and episode as numbers, and body as a request payload whose fields should be discovered via GET or /schema. This is helpful but the body parameter remains opaque and no report-specific fields are suggested.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Report an episode.' The endpoint path reinforces that this targets an episode within a show/season. However, it does not differentiate itself from sibling report tools such as create_episodes_by_id_report or create_shows_by_id_report, and 'report' is ambiguous without context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many related report endpoints, such as create_shows_by_id_report or create_seasons_by_id_season_report. The description provides no conditions, exclusions, or alternatives, so an agent must infer usage entirely from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_shows_by_id_seasons_by_season_reportBIdempotent
Report a season.
POST /shows/{id}/seasons/{season}/report
Args: id: The id/slug of the resource. season: Season number body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| season | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, readOnlyHint=false, and destructiveHint=false. The description adds no behavioral context beyond 'Report a season.' It does not disclose what the report does, side effects, or requirements. The instruction to read GET/schema is a parameter hint, not a behavioral disclosure. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct and front-loaded with the purpose, followed by the endpoint and parameter explanations. Each part earns its place with no redundant content. It could be slightly more explanatory without much cost, but it is appropriately sized for a tool with a simple operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and three required parameters; the description provides enough to call it, including guidance on obtaining body fields. However, it lacks guidance on when to use this specific report tool over siblings like create_seasons_by_id_report, leaving a potential selection ambiguity. The description is adequate but not complete in terms of tool selection context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains each parameter: id (the id/slug of the resource), season (season number), and body (request payload, with a pointer to the GET or /schema endpoint for field details). This adds meaningful meaning beyond the bare schema labels, though it does not enumerate expected body fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Report a season'), which is clear and distinct from tools targeting other resources. However, it does not differentiate from the sibling tool create_seasons_by_id_report, which also reports a season but via a different endpoint. The resource is clearly a season within a show context, but this is implied only by the path, not stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like create_seasons_by_id_report or other report tools. The only guidance is to read the matching GET or /schema endpoint for the body fields, which addresses parameter usage rather than tool selection. There is no mention of context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sync_collectionBIdempotent
Add items to collection.
POST /sync/collection
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate that this is a mutating, idempotent, non-destructive operation, and the description is consistent with them. The description adds little behavioral nuance beyond the verb 'add' and the payload-discovery instruction; it doesn't mention duplicate handling, partial failures, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core action, and contains no filler. The 'POST /sync/collection' line is somewhat redundant with the tool's name/purpose, but the overall structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations and the presence of an output schema cover safety and return shape, but the opaque body leaves a major gap. The pointer to 'the matching GET or /schema endpoint' is vague given the many sync collection siblings, and the description doesn't convey what a valid collection-sync payload should contain or how additions behave.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, body, is an opaque additionalProperties object with 0% schema description coverage. Calling it a 'request payload' mostly restates the schema, and telling the agent to read the schema endpoint is a workaround rather than actual parameter semantics. The description does not compensate for the empty body schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Add items') and a resource ('collection'), which matches the tool name and distinguishes it from the obvious counterpart create_sync_collection_remove. It doesn't explicitly mention 'sync' or name a sibling, so it's clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: use this when adding items to a collection. The description also gives a prerequisite ('Read the matching GET or the /schema endpoint first'), which is helpful. However, it doesn't explicitly say when to prefer this over related sync create/update/remove tools, nor does it name the exact matching GET.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sync_collection_removeBIdempotent
Remove items from collection.
POST /sync/collection/remove
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish this is a non-read (readOnlyHint=false), idempotent, non-destructive write, so the bar for extra disclosure is lower. The description adds the concrete HTTP endpoint (POST /sync/collection/remove) and the prerequisite to read the matching GET or /schema response before calling. It does not describe effects on sync state or whether removals are permanent, but that is partially covered by destructiveHint=false. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: a purpose sentence, the endpoint, and one argument line with guidance. Purpose is front-loaded, and each line earns its place. No filler or repetition of the schema's structural details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with a free-form body, the description's pointer to the /schema endpoint and matching GET is the right level of guidance, and the output schema exists so return-value details need not be explained. It is adequate but leaves gaps: it never clarifies whether items are identified by ID or full objects, or whether this is a batch operation, relying on the agent to fetch the schema first.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and body is an opaque additionalProperties:true object, so the description must compensate. It identifies body as the request payload and, crucially, routes the agent to the matching GET or /schema endpoint for field discovery — genuinely useful given the schema gives zero field information. It still omits the actual expected fields and any item-shape or batch semantics, leaving discovery as a homework step.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource ('Remove items from collection'), which clearly distinguishes the collection target from sibling _remove tools like create_sync_watchlist_remove, create_sync_favorites_remove, or create_sync_history_remove. Naming the resource itself carries the differentiation. However, it does not explicitly contrast with the inverse sibling create_sync_collection, and some clarity comes from parsing the tool's own name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied by the verb and resource — call this when the user wants to remove items from their sync collection rather than add or list them. It offers a prerequisite ('Read the matching GET or the /schema endpoint first') but gives no explicit when-to-use or when-not-to-use guidance versus the sibling create_sync_collection or the list_sync_collection_* endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sync_favoritesCIdempotent
Add items to favorites.
POST /sync/favorites
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations. It repeats a mutating action ('Add') and the POST method, but annotations already indicate not read-only, not destructive, idempotent, and open-world. No additional side effects, authentication needs, or rate limits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, puts the purpose first, and has no filler. The endpoint line and body instruction are each informative, so every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is not self-contained: it doesn't identify which GET is 'matching', doesn't explain the relationship to update/remove/reorder siblings, and leaves the body contract to an external schema discovery step. Annotations and output schema help, but an agent still lacks enough context to call this reliably without extra lookups.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only says body is an open object, and the description adds that body is the request payload and directs the agent to the matching GET or /schema endpoint for actual fields. This is useful for an open-world body but does not enumerate any specific expected fields, so it only partially compensates for 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Add items to favorites' and gives the endpoint POST /sync/favorites, making the core action and resource unambiguous. It doesn't explicitly contrast with sibling tools like update_sync_favorites or remove variants, so it falls short of the strongest differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus the many related tools (create_sync_favorites_remove, create_sync_favorites_reorder, update_sync_favorites, etc.). The only instruction is to read a GET/schema endpoint for body fields, which is about payload 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_sync_favorites_removeBIdempotent
Remove items from favorites.
POST /sync/favorites/remove
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, idempotentHint=true, destructiveHint=false), and the description does not contradict them. It adds the endpoint (POST /sync/favorites/remove) and a workflow hint to read the matching GET or /schema endpoint first. It does not disclose effects, reversibility, or auth requirements, but with annotations present the bar is lower and the added context earns a pass.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose line, followed by the endpoint and a terse args note. Each line earns its place; there is no filler or repeated schema content. Slightly formulaic in its 'Args:' layout but appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single opaque body parameter, the description's pointer to GET/schema is a practical workaround-tenacity . With an output schema present, return values need no explanation. The main gap is the absence of any comparison to sibling favorites tools (add/reorder/update), which would materially help an agent choose and construct the call correctly in this large sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%: the body property is an opaque object with additionalProperties:true and no description. The description compensates somewhat by identifying body as the 'request payload' and directing the agent to the matching GET or /schema endpoint for the expected fields. This is useful but gives no actual field-level semantics for this specific favorites-removal payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Remove items from favorites.' This disambiguates the confusing 'create_' prefix in the tool name-new . It clearly signals a removal operation. However, it does not explicitly differentiate from siblings like create_sync_favorites (add) or update_sync_favorites, leaving the agent to infer the relationship from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention that create_sync_favorites adds items, that reorder variants exist, or what makes removal distinct. Among a sibling set with add/reorder/update favorites variants, the agent gets only the implied usage from the verb 'Remove' and no exclusions or routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sync_favorites_reorderCIdempotent
Reorder favorited items.
POST /sync/favorites/reorder
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is not read-only (readOnlyHint=false), is idempotent (idempotentHint=true), and not destructive (destructiveHint=false). The description adds a note about reading the schema first, which is more about input preparation than behavioral transparency. It does not disclose any side effects, ordering semantics, or whether the operation replaces or appends the entire list. Minimal value added over annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and to the point: a one-line purpose, the endpoint, and a brief note on the body. It is front-loaded with the action and does not waste words. However, it is so sparse that some might argue it is under-specified rather than concise, but for what it says, it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a reorder operation, the description is completely inadequate. It does not explain what the body should contain (e.g., an ordered list of IDs), how to specify the new order, or any expected response. It points to the schema but does not provide enough context for an agent to correctly construct the request. With an open schema (additionalProperties true) and no parameter descriptions, the description fails to give any useful operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is 'body', described merely as 'Request payload' with a pointer to look at a GET or schema endpoint. This adds no actual meaning about the structure or required fields; it essentially defers all semantics to an external resource. Given schema coverage is 0%, the description should compensate by explaining what the body contains, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Reorder') and resource ('favorited items'), but it is vague about scope. It does not explicitly say these are 'sync favorites' (only the endpoint reveals that), and it does not distinguish itself from other reorder tools like create_sync_watchlist_reorder or create_users_by_id_lists_by_list_id_items_reorder. The purpose is clear enough for a simple action, but not specific enough to differentiate among 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.
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 only instruction is to read a GET or /schema endpoint for the request payload, which is a generic prerequisite, not a usage guideline. There is no mention of prerequisites, when to avoid it, or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sync_historyAIdempotent
Add items to watched history.
POST /sync/history
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a mutating, idempotent, open-world, non-destructive call. The description adds the concrete effect ('Add items to watched history'), the exact endpoint, and guidance to discover the expected body shape before sending, which is useful operational context beyond the annotations. There is no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly structured: a one-sentence purpose, the endpoint, and a brief Args note. All information is front-loaded and every line earns its place. There is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an open-world POST with an output schema, annotations covering idempotence/safety, and an opaque body parameter, the description provides enough orientation: what the tool does, where it posts, and how to discover the required fields. It does not detail authentication or success responses, but the output schema and explicit schema-discovery instruction cover the main gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only exposes an opaque required body object with additionalProperties allowed, and schema description coverage is 0%. The description compensates by labeling body as the request payload and instructing the agent to consult the matching GET or /schema endpoint to learn expected fields. This is meaningful, actionable guidance for an open-world body.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Add items to watched history.' It also gives the exact endpoint (POST /sync/history), making the tool's role clear and distinguishing it from related sync tools that handle collection, ratings, watchlist, or removal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is explicit: use this tool when you want to add items to a user's watched history. It also provides a clear prerequisite by telling the agent to read the matching GET or /schema endpoint before constructing the body. It does not explicitly compare against create_sync_history_remove, but the operation is unambiguous enough that this is not a major gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sync_history_removeBIdempotent
Remove items from history.
POST /sync/history/remove
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds little beyond the operation name and endpoint; it doesn't describe side effects, response behavior, or why the operation is idempotent. The annotations already indicate idempotentHint and destructiveHint, but the description itself contributes no further behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and every line serves a purpose. The HTTP path and prerequisite are useful, though the path partly repeats the tool name without adding much.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an open-world body schema, the pointer to the matching GET and /schema endpoint is essential and present, and an output schema exists so return values are covered. Still, it omits what kind of history items are expected and any authentication or prerequisite details, leaving it short of fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description needed to compensate, but it only labels body as 'Request payload' and points to the GET/schema endpoint. This is actionable but doesn't explain expected fields, structure, or item identifiers, so the agent still must perform an external lookup.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific action 'Remove items from history' and includes the HTTP path, which distinguishes it from generic CRUD tools. However, it doesn't explicitly connect the tool to sync history or contrast it with sibling removal tools like create_sync_collection_remove or create_sync_watchlist_remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for use—removing history items—and provides a prerequisite: read the matching GET or /schema endpoint first. It does not explicitly explain when to choose this tool over its many sibling remove tools, leaving some selection inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sync_ratingsAIdempotent
Add new ratings.
POST /sync/ratings
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a mutating, non-destructive, idempotent operation, and 'Add new ratings' is consistent with them. The description adds the endpoint and the schema-discovery instruction, but does not explain side effects, auth requirements, or response behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: action, endpoint, and argument guidance are each stated in a short line with no filler. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the open-world body, the presence of an output schema, and annotations covering safety/idempotency, the description provides the key missing information: how to discover the expected body fields. It could say more about the semantics of ratings, but it is adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines body as an open object, so the description's direction to 'Read the matching GET or the /schema endpoint first' is the main semantic contribution. It compensates for the 0% schema coverage by pointing the agent to an authoritative source, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: 'Add new ratings,' reinforced by the explicit POST /sync/ratings endpoint. It is distinguishable from sibling operations like create_sync_ratings_remove and get_sync_ratings_by_type_by_rating, though it does not name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this tool to add new ratings. The instruction to read the matching GET or /schema endpoint first is helpful preparation, but the description does not explicitly state when to prefer this over related sync tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sync_ratings_removeCIdempotent
Remove ratings.
POST /sync/ratings/remove
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds the endpoint and a note to read the matching GET or /schema endpoint first, which is useful context for understanding the request payload. However, it does not disclose what 'remove' does beyond the obvious, whether it is a bulk removal, or what the response contains. The description does not contradict the annotations, but it also does not add much behavioral depth beyond what the annotations already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action 'Remove ratings.' The endpoint and the pointer to the GET/schema endpoint are useful and concise. It earns its place, though the 'Args: body' line is somewhat redundant with the input schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one opaque body parameter, no output schema details in the description, and a confusing name, the description is not complete enough. The pointer to the GET/schema endpoint is a good start, but an agent still lacks information about what ratings are removed, whether the operation is scoped to a user, and what a successful response looks like. The output schema exists but the description does not summarize it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the only parameter is 'body' with additionalProperties: true, so the schema provides no field-level detail. The description tells the agent to read the matching GET or /schema endpoint to see expected fields, which is a helpful pointer, but it does not describe the body structure, required fields, or example payload. With 0% coverage, the description should compensate more than it does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Remove ratings' and gives the endpoint POST /sync/ratings/remove. This states a clear verb and resource, but the tool name 'create_sync_ratings_remove' is confusingly prefixed with 'create_' while the description says 'Remove'. It does not distinguish itself from the sibling create_sync_ratings (which likely adds ratings) beyond the endpoint path, and the name/title mismatch adds ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention that create_sync_ratings is the counterpart for adding ratings, nor does it explain the relationship to get_sync_ratings_by_type_by_rating or other sync tools. The only hint is the endpoint path, which is not enough for an agent to decide when to call this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sync_watchlistAIdempotent
Add items to watchlist.
POST /sync/watchlist
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal idempotency and non-destructiveness. The description adds the concrete behavior that this is a POST to /sync/watchlist and that the body fields should be discovered from the schema/GET endpoint. It does not discuss duplicate handling or response details, but annotations lower the burden here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: one action sentence, the endpoint, then the body guidance. There is no filler, and every line earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter endpoint with an output schema and annotations covering idempotency, the description gives the essential invocation path and directs the agent to the schema for the flexible body. It is slightly incomplete in not naming the corresponding GET or common body examples, but the open-world body may not be enumerable statically.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only provides an opaque body object with additionalProperties true, so the description's note that body is the request payload and to read the matching GET or /schema for expected fields adds useful meaning. However, it does not describe any concrete fields or shapes, leaving the agent dependent on another endpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Add items to watchlist' and gives the exact endpoint POST /sync/watchlist. It distinguishes the add behavior from sibling remove/reorder tools primarily through the verb 'Add', but it does not 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: use this tool to add items to the watchlist. It also provides a prerequisite by saying to read the matching GET or /schema endpoint first, but it does not explicitly say when to prefer this over update/remove/reorder siblings or give exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_sync_watchlist_removeCIdempotent
Remove items from watchlist.
POST /sync/watchlist/remove
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false; the description adds the endpoint and the advice to consult GET/schema, but no additional behavioral details (e.g., whether removal is permanent, any side effects, or authentication requirements). It does not contradict the annotations, but it does not enrich them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief: one line for purpose, one for the endpoint, and a short argument note. It is not padded with filler, though the 'Args: body: Request payload.' line is somewhat redundant with the schema. Overall, it is efficiently sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write operation with an open body schema and an output schema, the description is underspecified. It does not explain what the response will contain, what errors might occur, or how to construct the request beyond pointing to external docs. Given the complexity of the sync resource and the presence of siblings, the description leaves too much to discovery.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single 'body' object with additionalProperties:true, offering zero field definitions (0% schema coverage). The description compensates partially by directing the agent to 'the matching GET or the /schema endpoint first,' but it does not actually describe what fields the body expects (e.g., item IDs to remove). This is a significant gap for a tool that requires a structured payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Remove items from watchlist.' It also provides the HTTP endpoint, making the operation unambiguous. However, it does not explicitly distinguish itself from similarly-named siblings like create_sync_watchlist (which adds) or create_sync_watchlist_reorder, though the verb 'remove' differentiates reasonably.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention that this is for removing specific items (as opposed to clearing the watchlist) or how it relates to other sync operations like create_sync_collection_remove. The only instruction, 'Read the matching GET or the /schema endpoint first,' is about field 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_sync_watchlist_reorderBIdempotent
Reorder watchlist items.
POST /sync/watchlist/reorder
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, covering the mutation safety profile. The description adds the HTTP method (POST) and instructs the agent to consult the GET/schema endpoint for expected fields, but does not disclose reorder behavior details such as how ordering conflicts are resolved or whether existing order is replaced wholesale.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the purpose front-loaded. The HTTP method and the Args pointer each earn their place, and there is no filler or repetition of schema data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is not required. The main gap is that the body payload semantics are delegated entirely to the /schema endpoint, and with an opaque body schema the agent must make an extra call to invoke this correctly; sibling differentiation is also absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the body parameter is an opaque object with additionalProperties: true, so the description carries the burden. It partially compensates by calling body a "Request payload" and directing the agent to the matching GET or /schema endpoint for field details, but it does not describe any actual fields or structure expected in the payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Reorder watchlist items." uses a specific verb and resource, clearly stating what the tool does. The action+resource combination distinguishes it from siblings like create_sync_watchlist, create_sync_watchlist_remove, and create_sync_favorites_reorder, though it does not 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (reordering watchlist items) and adds a prerequisite: "Read the matching GET or the /schema endpoint first to see the fields this resource expects." However, it provides no explicit when-not-to-use guidance or named alternatives among the many create_sync_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_by_id_blockCIdempotent
Block this user.
POST /users/{id}/block
Args: id: The slug that identifies the user, or "me" for the authenticated user. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true obtainable and destructiveHint=false, but the description adds no behavioral context beyond the action itself. It does not disclose side effects (e.g., preventing interactions), required permissions, or response behavior. Since the description is responsible for supplementing annotations, this is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: purpose first, then endpoint, then args. Each line serves a clear function, and there is no fluff. The body guidance is slightly indirect but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately covers id and provides a discovery path for body fields via the GET/schema endpoints. With an output schema and annotations present, the tool is usable, but it lacks any note about side effects or when to choose this over related actions. It is acceptable but not fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The id parameter is well described as 'the slug that identifies the user, or me for the authenticated user', which adds meaning beyond the schema's bare string type. The body parameter is described as a request payload with guidance to read the matching GET or /schema endpoint, but no concrete fields are listed, leaving the agent to fetch schema elsewhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Block this user.' and includes the endpoint POST /users/{id}/block, making the verb and target unambiguous. It does not explicitly differentiate from sibling tools like delete_users_by_id_block, but the action itself is specific enough to avoid confusion in most cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives. The description does not mention conditions for blocking, prerequisites, or the companion unblock operation (delete_users_by_id_block). An agent has 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.
create_users_by_id_followAIdempotent
Follow this user.
POST /users/{id}/follow
Args: id: The slug that identifies the user, or "me" for the authenticated user. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds that this creates a follow relationship and advises consulting the schema/GET before sending a body, but it does not disclose side effects, auth requirements, or rate-limit considerations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-sentence action summary, the endpoint, and an Args block. It contains no filler and front-loads the primary behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple follow operation, with an output schema present and openWorldHint enabled, the description covers the essential call pattern: identify the user and supply a body learned from the schema or matching GET. It leaves the body's exact shape undisclosed and does not mention the reverse delete action, but the tool is simple enough that this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It usefully defines id as a user slug or 'me' for the authenticated user. For body, it only calls it a 'request payload' and points to the matching GET or /schema endpoint, which is helpful discovery guidance though not a direct field list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Follow this user' and gives the explicit endpoint POST /users/{id}/follow, naming a specific action and resource. This clearly distinguishes it from sibling tools like create_users_by_id_block or delete_users_by_id_follow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by the action name, but there is no explicit guidance on when to choose this tool over alternatives, when not to use it, or what prerequisites apply. No mention of authentication or the corresponding unfollow operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_by_id_listsCIdempotent
Create personal list.
POST /users/{id}/lists
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and idempotentHint=true, so the agent knows it's a non-destructive write. The description adds no behavioral context beyond that; it only says 'Create personal list' and instructs to read GET/schema for fields, which is more about parameter discovery. No disclosure of side effects, authentication requirements, or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with a one-line purpose, an endpoint, and two argument descriptions. It front-loads the purpose and then gives technical details. Every sentence is minimal with no wasted words, though it may be too sparse for a complex operation. Still, it is efficient and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the body parameter is an open object and there are many related list operations, the description is incomplete. It doesn't explain what constitutes a 'personal list' or how it differs from a smart list. It relies on the agent to consult other endpoints for field details, adding friction. It also doesn't mention response format, though an output schema exists. Overall, an agent would need additional research to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes id and body, but body is an open object with no defined fields. The description adds the guidance to 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' This helps an agent discover the expected body structure, which is valuable given the schema provides no details. However, it doesn't specify any actual fields, so it's a pointer rather than a full explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Create personal list.' It also provides the endpoint POST /users/{id}/lists. The term 'personal list' distinguishes it from smart lists (e.g., create_users_by_id_smart_lists), though it could be more explicit about what a personal list entails. The purpose is clear enough for an agent to understand the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives like create_users_by_id_smart_lists or update_users_by_id_lists_by_list_id. It doesn't mention any prerequisites, exclusions, or conditions. An agent has no basis to choose this tool over others in the same domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_by_id_lists_by_list_id_itemsBIdempotent
Add items to personal list.
POST /users/{id}/lists/{list_id}/items
Args: id: Path parameter. list_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag this as a non-read-only, non-destructive, idempotent operation, and the description's 'Add' is consistent with them. It adds useful context that the mutation targets a 'personal list' and points the agent to schema discovery, but it does not disclose response behavior, side effects, or auth requirements. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action before the endpoint and args. The POST path and Args block are slightly redundant with the tool name and schema, but they are compact and do not bury the useful schema-discovery instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation with an open body schema, the instruction to consult the matching GET or /schema endpoint is a practical route to the missing payload fields. However, the description still leaves item format, allowed types, and user/list id semantics to that discovery step, so it is adequate but not fully self-contained. An output schema exists, so lack of a return-value description is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter semantics. It only labels id and list_id as 'Path parameter' and body as 'Request payload,' which adds no real meaning; the body's actual item fields are deferred to 'the matching GET or the /schema endpoint.' This is a pointer rather than a semantic explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Add items to personal list' names a concrete verb and resource, so an agent immediately knows this tool appends items to a user's list. It does not explicitly distinguish itself from the remove/reorder siblings, but the 'Add' verb makes the intended operation unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it ('Add items...') and gives one operational prerequisite: 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' It does not say when-not-to-use or name alternatives such as create_users_by_id_lists_by_list_id_items_remove/reorder, so selection 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.
create_users_by_id_lists_by_list_id_items_removeBIdempotent
Remove items from personal list.
POST /users/{id}/lists/{list_id}/items/remove
Args: id: Path parameter. list_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate a write operation (readOnlyHint false) and non-destructive (destructiveHint false). The description's 'Remove items' is consistent with these and adds no further behavioral context, such as whether removal is permanent or requires authentication. Since annotations cover the safety profile, the description adds minimal extra value, but it is not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: one action sentence, the endpoint, and a three-item args list with a useful pointer to the schema. Every element earns its place with no fluff, and the core action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is thin for a tool with an open body and no param documentation. It fails to explain what items can be removed, any constraints or prerequisites, or the response format. The pointer to GET/schema is a workaround but does not make the description complete on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description must compensate. It lists id and list_id as path parameters (redundant with schema) and instructs to read the GET or /schema endpoint for the body fields. This pointer is helpful for the open body object, but it does not describe the expected shape or provide any field details, leaving the agent to discover them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Remove items from personal list.' This is a specific verb and resource, distinguishing it from siblings like the add-items tool (create_users_by_id_lists_by_list_id_items) and reorder. It also includes the HTTP endpoint for clarity. However, it does not explicitly name alternative tools or scope, so it is 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the add-items or reorder tools, nor any prerequisites such as ownership of the list. It only gives the endpoint and args, leaving the agent to infer usage from the name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_by_id_lists_by_list_id_items_reorderBIdempotent
Reorder items on a list.
POST /users/{id}/lists/{list_id}/items/reorder
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly=false, idempotent=true, destructive=false; the description adds no behavioral context beyond 'reorder', such as auth requirements, effect on existing order, or response. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, information-dense pieces: one-line purpose, exact path, and per-argument notes. No filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a reorder operation with a free-form body, the description gives enough to start (endpoint, id semantics, where to look for body schema) but is not self-contained: list_id is undefined and the body fields are explicitly deferred. Annotations and output schema cover safety and return shape, so this is borderline-adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies id ('me' or slug) and tells the user to consult GET/schema for the body fields, which is helpful given the body is an opaque additionalProperties object. However, list_id is only labeled 'Path parameter' with no list identifier semantics, and the reorder payload's required fields are not described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names the exact operation ('Reorder') and resource ('items on a list'), which is specific and matches the endpoint. It doesn't explicitly contrast with sibling reorder/create endpoints, but 'items' and the full path disambiguate it from create_users_by_id_lists_reorder and item add/remove tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over siblings such as create_users_by_id_lists_reorder or create_users_by_id_lists_by_list_id_items_remove. The only usage hint is to read GET/schema for body fields, which is a discovery instruction, not a use-case discriminator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_by_id_lists_by_list_id_likeCIdempotent
Like a list.
POST /users/{id}/lists/{list_id}/like
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal that this is a mutating, idempotent, non-destructive call, and the description does not contradict them. However, beyond 'Like a list', it adds no behavioral detail such as whether liking is toggled, what state changes occur, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the action, followed by the endpoint and an Args list. It contains minimal waste, though repeating parameter names from the schema is somewhat redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition is adequate for a straightforward like action: id and list_id are mostly clarified, and body handling is deferred to a schema lookup. It is less complete on when to select this tool over sibling like/delete endpoints and on actual body fields, but the endpoint, annotations, and output schema cover the core invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate and partially does: it explains that id is a user slug or 'me' and points to GET/schema for the body shape. list_id only gets 'Path parameter' and body remains unspecified, so the agent still needs a schema lookup.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Like a list' plus POST /users/{id}/lists/{list_id}/like states a concrete action and resource: liking a user's list. It is clear what the tool does, though it does not explicitly distinguish itself from sibling like endpoints such as create_lists_by_id_like or delete_lists_by_id_like.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use advice or alternatives are provided. The description simply restates the endpoint and parameters, leaving the agent to infer when this user-scoped like endpoint should be preferred over the many sibling list/like tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_by_id_lists_by_list_id_reorderCIdempotent
Reorder items on a list.
POST /users/{id}/lists/{list_id}/reorder
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, idempotentHint=true, and destructiveHint=false, covering the write nature and idempotency. The description adds minimal behavioral context beyond 'reorder items' and the HTTP method; it does not describe effects on the list, potential errors, or side effects. With annotations covering safety, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the core purpose front-loaded ('Reorder items on a list') followed by the endpoint and parameter list. Every sentence serves a purpose, and there is no fluff. The structure is efficient for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 required params, an open body object, and no schema descriptions, the description does not provide enough context for a successful call. It relies on external hints ('Read the matching GET or /schema') rather than explaining the payload structure or reordering semantics. The presence of an output schema reduces the need to explain return values, but the request side is still under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'id' as 'the slug that identifies the user' (helpful), but 'list_id' is only called a 'Path parameter' with no format details, and 'body' is forwarded to the schema without any field hints. Given the schema has no descriptions and body is an open object, this is insufficient for an agent to construct a correct request without external lookups.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Reorder items on a list' and provides the HTTP method and endpoint, giving a specific verb and resource. However, it does not explicitly distinguish from sibling reorder tools like create_users_by_id_lists_by_list_id_items_reorder or create_sync_watchlist_reorder, which may cause ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives the HTTP method and indicates to read the GET or /schema for body fields, but it does not explain when to use this tool versus alternative reorder tools (e.g., create_users_by_id_lists_reorder, create_sync_favorites_reorder). No explicit conditions or exclusions are provided, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_by_id_lists_by_list_id_reportCIdempotent
Report a user's list.
POST /users/{id}/lists/{list_id}/report
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, but the description adds no behavioral context on top of that. It does not mention what reporting does, any side effects, authorization requirements, or idempotency implications. No contradiction with annotations, but no additional transparency either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and well-structured, with the action front-loaded and an Args section for parameters. It includes only the endpoint and essential argument guidance, with no filler. The newline-separated structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description leaves out the core semantics of what 'report' actually does, how it differs from other report endpoints, and any prerequisites or expected behavior. It does point to external schema discovery for the body, but that is a workaround rather than complete documentation, making this insufficient for an agent to confidently invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain 'id' as a slug or 'me', and it tells the caller to check the matching GET or /schema endpoint for body fields, but 'list_id' is only described as 'Path parameter' and the body remains undocumented. Partial compensation, but limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Report a user's list.' It also includes the endpoint path, which identifies the target resource clearly. However, 'report' is ambiguous (abuse report vs. generated report), and it does not distinguish this from sibling report tools like create_lists_by_id_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as create_lists_by_id_report or the GET tool for the same list. The description only states what the operation does, with no conditions, exclusions, or reference to sibling behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_by_id_lists_reorderBIdempotent
Reorder a user's lists.
POST /users/{id}/lists/reorder
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds the endpoint and advises reading the matching GET or /schema endpoint, which is mildly useful, but it does not disclose behavioral details such as side effects or ordering semantics beyond the word 'Reorder'. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core operation, and contains no filler. The Args section adds path/body distinction and a practical pointer for field discovery, though it partially duplicates schema property titles.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and annotations, the description covers the basic call mechanics and even offers a strategy for the unknown body shape. However, it leaves the distinction from the very similar sibling reorder tool unstated, and the actual body semantics are deferred to external endpoints rather than summarized.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It clarifies that id is a path parameter and body is the request payload, and it directs the agent to read the matching GET or /schema endpoint to discover the expected fields. This is helpful but stops short of specifying what the body should actually contain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Reorder a user's lists', a clear verb+resource statement that explains the operation. It is distinct from the close sibling create_users_by_id_lists_by_list_id_reorder by referring to 'a user's lists' rather than a specific list, but it does not explicitly call out that difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as create_users_by_id_lists_by_list_id_reorder or other reorder endpoints. The description only states what the tool does, not the conditions that select it or exclusions for other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_by_id_reportCIdempotent
Report a user.
POST /users/{id}/report
Args: id: The slug that identifies the user, or "me" for the authenticated user. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true (safe to retry), destructiveHint=false (not destructive), and readOnlyHint=false (it's a write operation). The description adds no behavioral detail beyond the endpoint and parameters. Since annotations cover the basic safety profile, the description doesn't contradict them, but it adds little value; it doesn't explain what the report does (e.g., flags a user for moderation) or any side effects. This is a functional tool, so more transparency would be expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and leads with the endpoint, which is good. It includes a brief parameter list, but the 'body' description is terse and requires external lookup. It's not overly verbose, but it could be more structured: separating purpose from parameters would improve readability. The current structure is acceptable but could be clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema and open-world hint (openWorldHint=true), the description should explain what the tool returns and any context-specific behaviors. It doesn't mention the output at all, nor does it explain what a 'report' does (e.g., triggers moderation, hides content). The siblings include many similar report tools, so the description needs to clarify the exact action and the meaning of the 'body' payload. With 0% schema coverage and an output schema present, more context is required for an agent to use this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides some parameter semantics: it says 'id' is the slug or 'me', and 'body' is the request payload, advising to read the GET or /schema endpoint to see expected fields. This is helpful for the 'body' parameter, which is an open object with no schema properties. However, it doesn't give details for the 'body' structure itself (e.g., required fields, constraints), relying on external references, which may be vague for an agent without access to those docs. For a required, complex parameter like 'body', more explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Report a user' and provides the endpoint, which indicates the action is to report a user by ID. However, it does not describe the purpose beyond the verb 'report' (e.g., why or when reporting is used), and it does not distinguish itself from other similar report tools like create_comments_by_id_report or create_lists_by_id_report. The term 'report' is somewhat generic, and the description could be clearer about what reporting entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention that it is for reporting a user specifically, nor does it contrast with similar report tools for comments, lists, movies, etc. The sibling list includes many other create_*_report tools, so an agent would have to infer usage from the name alone, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_by_id_smart_listsCIdempotent
Create smart list.
POST /users/{id}/smart-lists
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it's a write tool (readOnlyHint: false), idempotent, and non-destructive. The description adds no behavioral context beyond that—no mention of side effects, auth requirements, or what happens if the list already exists. It does not contradict annotations, but it adds no transparency beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short—three lines including the endpoint and Args note. It's front-loaded with the core purpose. It doesn't waste words, but it omits useful details. It earns its keep, but a bit more context could fit without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with an opaque body object and a user path ID, the description leaves critical gaps: it doesn't define what a smart list is, required body fields, or how the output looks (though output schema exists). It defers to external resources, which helps but isn't self-contained. Among many sibling create tools, it doesn't explain selection criteria.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only states 'id: Path parameter' and 'body: Request payload'—repeating the schema names without meaning. It points to external schema/GET but doesn't explain what 'id' refers to (likely user ID) or what fields the body needs. Very limited semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create smart list.') with a specific verb and resource. It doesn't tautologically repeat the name, but it doesn't distinguish smart lists from regular lists or other create tools such as create_users_by_id_lists, which weakens differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' This instructs the agent to look up the schema but doesn't specify when to use this tool versus alternatives (e.g., regular list creation) or any prerequisites beyond reading the schema. No exclusions or alternative routing are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_requests_by_idAIdempotent
Approve follow request.
POST /users/requests/{id}
Args: id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly=false, idempotent=true, and destructive=false, so the description does not need to re-derive the safety profile. It adds the HTTP method and that the action approves a follow request, but does not describe side effects, authentication requirements, or behavior when the request is already approved. With annotation coverage this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action, and uses a compact args layout. The only mild redundancy is 'Path parameter' for id, but overall every line earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core endpoint, required parameters, and body-discovery strategy are present, and the output schema covers return values. What's missing is operational context: where the request id comes from, when approval is appropriate versus deletion, and what the extended option actually expands. Given the open body and the large sibling family, the definition is workable but leaves an agent to infer key selection details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does add value: id is identified as the path parameter, body is flagged as a payload whose fields should be discovered via GET or /schema, and extended is explained as response enrichment. However, id's line is mostly a restatement of the schema and the body fields themselves remain unspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence states a specific action ('Approve follow request') and identifies the resource, making the intended operation clear at a glance. The explicit POST /users/requests/{id} path further grounds it and separates it from siblings like list_users_requests or delete_users_requests_by_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus related request-handling tools such as list_users_requests (to find pending requests) or delete_users_requests_by_id (to reject/remove). The only implicit signal is the verb 'Approve'; conditions, prerequisites, and alternatives are left unstated. Thus it fails to actively route the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_saved_filtersAIdempotent
Add saved filters.
POST /users/saved_filters
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds useful context beyond this: it discloses the HTTP POST method, indicates the body is open-ended, and tells the agent to fetch the resource schema before calling. This is consistent with the annotations and adds genuine behavioral guidance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: an action line, the endpoint, and a single parameter note. Every sentence earns its place, and the most important guidance—consulting GET/schema because the body schema is opaque—is included without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with an open body object and an output schema available, the description is sufficient: it identifies the resource, how to call it, and how to discover the otherwise-unknown body fields. It doesn't discuss return values, but that's covered by the output schema, and annotations handle idempotency and safety.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the body parameter is an open additionalProperties object with no field details. The description labels body as the request payload and compensates by directing the agent to the matching GET or /schema endpoint to learn the expected fields. It still doesn't provide concrete parameter semantics, but the discovery instruction is valuable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Add') and resource ('saved filters'), and gives the HTTP method and endpoint. This makes it clear this is a create operation and distinguishes it from the sibling delete/get tools, though it doesn't define what a saved filter is or which sections it applies to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit invocation guidance: read the matching GET or /schema endpoint first to discover expected body fields. It doesn't explicitly compare with alternatives, but the create-vs-read-vs-delete distinction among siblings is clear enough from the verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_settings_plex_connectCIdempotent
Connect Plex.
POST /users/settings/plex/connect
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as non-read-only, idempotent, non-destructive, and open-world. The description adds no behavioral context beyond the endpoint and payload note; it does not explain side effects of connecting Plex, required auth state, or what changes on the server. There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and front-loaded: 'Connect Plex.' immediately states the action, the endpoint line anchors the call, and the body guidance is short. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter open-world POST, the description gives the bare minimum: endpoint and a body discovery pointer. It omits when to choose this over create_users_settings_plex_sync, what connecting actually does, and any preconditions; the presence of an output schema covers return shape but not these operational gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, body, is an open object with no schema-level field documentation (0% coverage). The description usefully directs the agent to consult the matching GET or /schema endpoint to discover expected fields, which partially compensates for the missing schema. It still does not name or explain any actual body fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Connect Plex.' and gives the exact POST endpoint, clearly naming a specific action and resource. It does not explicitly contrast itself with the similar create_users_settings_plex_sync or update_users_settings_plex tools, so sibling 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.
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 Plex settings/sync tools. The only guidance is to read the matching GET or /schema endpoint before constructing the body, which helps with invocation but not with tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_users_settings_plex_syncCIdempotent
Sync Plex now.
POST /users/settings/plex/sync
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, destructiveHint=false, and idempotentHint=true. The description adds no behavioral context beyond 'now' and the POST endpoint; it does not explain side effects, prerequisites, or what syncing entails. It does not contradict the annotations, but it also does not add meaningful disclosure beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: an action, an endpoint, and an args note. It front-loads 'Sync Plex now' and avoids filler. It is slightly terse, but every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a required open-world body parameter, no schema coverage, and no explicit differentiation from related Plex tools, the description is too thin. It tells the agent where to find the schema but not what the request needs, what the sync does, or what prerequisites exist. The output schema mitigates the need to describe return values, but the invocation context remains incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the body parameter is an open additionalProperties object. The description identifies body as the request payload and points to the matching GET or /schema endpoint for field discovery, which is useful, but it does not actually describe the expected fields or their meaning. The agent must rely on external discovery to understand the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete action and resource: 'Sync Plex now,' backed by the endpoint POST /users/settings/plex/sync. This distinguishes it from siblings like create_users_settings_plex_connect or get_users_settings_plex, though it does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Sync Plex now' implies the intended use case: trigger a Plex sync. However, there is no explicit guidance about when not to use it or how it relates to Plex connect/get/sync alternatives. The note to read the matching GET or /schema endpoint is request-construction guidance, not tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_younify_connectBIdempotent
Create a streaming connection.
POST /younify/connect
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=false, openWorldHint=true, idempotentHint=true, and destructiveHint=false—so this is clearly a non-destructive, open-world, idempotent creation operation. The description adds only that 'Create a streaming connection' and the endpoint, which is consistent with annotations but provides little extra behavioral context. It doesn't describe side effects or requirements beyond pointing to the GET/schema endpoint, which is mildly helpful but not rich. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences: the purpose, the HTTP method/path, and a parameter note with discovery guidance. Every sentence earns its place, the key action is front-loaded, and there is no redundant content. The description is tight and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one free-form body parameter) and annotations plus output schema reduce the need for detailed return-value explanation. However, the description does not explain what a streaming connection is, when creating one is appropriate, or any prerequisites such as authentication. It gives enough to start using the tool (read GET/schema) but leaves contextual gaps around purpose and usage that would help an agent decide to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The body parameter is a free-form object (additionalProperties: true) with zero schema description coverage. The description compensates by labeling 'body: Request payload' and explicitly instructing the agent to read the matching GET or /schema endpoint to discover expected fields. This is a practical, actionable semantic pointer for a schema that lacks any field definitions, exceeding what the raw schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'Create a streaming connection.' The explicit endpoint 'POST /younify/connect' further anchors what operation is performed. While the name already conveys most of this, the description confirms the action and resource unambiguously, though it doesn't explicitly contrast with sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives. The only usage-related note, 'Read the matching GET or the /schema endpoint first to see the fields this resource expects,' is about how to construct the request, not about when to select this tool. There is no mention of exclusions or conditions that differentiate it from the many sibling create_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_younify_users_refresh_by_service_idBIdempotent
Refresh a streaming service.
POST /younify/users/refresh/{service_id}
Args:
service_id: The streaming service id (e.g. netflix).
body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| service_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds no behavioral context beyond 'refresh', such as side effects, asynchronous behavior, or whether it triggers background jobs. It does not explain what 'refresh' entails operationally. Since annotations carry the safety profile, the description contributes little transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loads the purpose, and uses a simple args list. It includes the endpoint redundantly but harmlessly. Every sentence earns its place, and there is no fluff. It could be slightly more structured (e.g., separating endpoint from description), but it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a complex body parameter and an output schema, the description is not fully complete. It tells the agent where to find body fields but doesn't describe the expected response or clarify the difference from the by_all_data sibling. It also omits any mention of idempotency or non-destructive nature, though annotations cover those. The guidance is sufficient for a first call but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains service_id with an example ('netflix') and instructs the agent to read the matching GET or /schema endpoint for body fields, which is crucial for a free-form body object. This provides actionable guidance beyond the bare schema, though it doesn't enumerate specific fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Refresh a streaming service.' It also provides the endpoint and identifies the service_id parameter. The name itself distinguishes it from sibling refresh tools (e.g., by_all_data), and the description reinforces the specific target without being tautological. It lacks an explicit contrast with the closest sibling, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention the similar sibling create_younify_users_refresh_by_service_id_by_all_data or any conditions that would select one over the other. It also fails to state prerequisites or expected context (e.g., when a refresh is needed). The only hint is to read the schema for the body, which is parameter-related, 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_younify_users_refresh_by_service_id_by_all_dataBIdempotent
Refresh a streaming service (full re-sync).
POST /younify/users/refresh/{service_id}/{all_data}
Args:
service_id: The streaming service id to re-sync (e.g. netflix).
all_data: Optional trailing segment that forces a full re-sync of all data rather than an incremental one.
body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| all_data | Yes | ||
| service_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover idempotence and non-destructiveness. The description adds the meaningful full-vs-incremental re-sync behavior and the body-discovery requirement, but it does not clarify side effects, duration, or whether a full re-sync replaces existing data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-ordered: a one-line summary, the REST path, then parameter explanations. There is little wasted text, though the 'optional trailing segment' phrasing is ambiguous enough to cost a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is not complete enough for confident invocation. The all_data parameter is required by the schema but described as optional with no actual value or format, which is a critical gap. Body handling is reasonably delegated to schema discovery, but the tool-specific parameter semantics remain underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the full burden. It gives a useful example for service_id, explains all_data as the full-re-sync switch, and directs body discovery to GET/schema. However, it calls all_data 'optional' even though the schema requires it, and it never states what value all_data should take.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation as refreshing a streaming service and characterizes this variant as a full re-sync. It does not explicitly name or contrast the sibling create_younify_users_refresh_by_service_id, though the all_data explanation implies the incremental-vs-full distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this variant is for a full re-sync rather than an incremental one, and it advises reading the matching GET or /schema endpoint before supplying the body. However, it never explicitly says when to choose this tool over the sibling refresh tool, leaving the routing decision mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_checkinBDestructiveIdempotent
Delete any active checkins.
DELETE /checkin
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover destructive (destructiveHint=true) and idempotent (idempotentHint=true) behavior. The description adds the 'active' qualifier, which gives scoping context, but does not clarify that it likely operates on the authenticated user's current check-in, whether it returns a specific response, or what happens when no check-in is active. It adds some value beyond annotations but remains thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one short sentence plus the HTTP method. Every word earns its place, and the purpose is stated first. There is no fluff or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being a simple tool, the description leaves critical context unaddressed: it does not specify that the check-in is user-scoped, what 'any active checkins' exactly means, or when it should be used (e.g., after stopping playback). The output schema exists, so return details are not required, but the lack of usage context and the ambiguous scope make this description insufficient for reliable agent selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
This tool has zero parameters and the schema is 100% covered, so the description need not explain any. The baseline for zero-parameter tools is 4, and the description does not mislead or require compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Delete') on a resource ('checkins') with a scope qualifier ('any active'). However, the word 'any' is ambiguous – it could imply deleting all checkins or the user's current one, which slightly undermines precision. Still, it is distinct from sibling delete tools and pairs naturally with create_checkin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention that this is for ending a user's active check-in, nor does it reference create_checkin or other scrobble/checkin related tools. An agent receives no context about prerequisites, authentication, or typical invocation scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_comments_by_idADestructiveIdempotent
Delete a comment or reply.
DELETE /comments/{id}/
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as destructive and idempotent, and the description adds that the target is a comment or reply, clarifying what will be removed. It does not mention side effects on likes/reactions or permission requirements, but the annotation coverage lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a declarative purpose sentence, the HTTP endpoint, and the parameter definition. There is no filler, and each line adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter, an output schema, and safety-relevant annotations, the description is largely complete for a simple delete-by-id operation. It does not cover auth or not-found behavior, but these are minor gaps for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description usefully explains the parameter as 'the id/slug of the resource', going beyond the schema's bare string type. It could specify how to obtain the id, but the core semantic is covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Delete' and the resource 'a comment or reply', making the tool's purpose clear. It distinguishes itself from related like/reaction mutations by specifying that it deletes the comment or reply itself, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. It only restates the action, leaving usage context mostly to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_comments_by_id_likeADestructiveIdempotent
Remove like on a comment.
DELETE /comments/{id}/like
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with annotations (destructiveHint=true, readOnlyHint=false) and adds the specific target: it removes the like, not the comment itself. It does not add side-effect context such as auth requirements or behavior when no like exists, but the annotations already carry much of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core action and HTTP endpoint stated immediately. The Args block is somewhat redundant with the schema, but the entire description is short, scannable, and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive operation with annotations and an output schema, the description provides enough to invoke it correctly: the resource, HTTP method, and parameter. It lacks explicit alternative routing and deeper side-effect detail, but those are not required for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required id is described as 'id/slug of the resource,' which adds slug format beyond the schema's bare 'Id' title, and the endpoint path clarifies that the id belongs to the comment. It does not explicitly say 'comment id' in the Args block, leaving some ambiguity, but it is sufficient for a single-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Remove like on a comment,' stating a specific verb and resource, and reinforces it with the endpoint 'DELETE /comments/{id}/like'. This clearly distinguishes it from siblings like create_comments_by_id_like, delete_comments_by_id, and delete_comments_by_id_reactions_by_reaction_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use case is implied by the action: an agent can infer this tool is for removing a like from a comment. However, the description does not explicitly mention alternatives or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_comments_by_id_reactions_by_reaction_typeCDestructiveIdempotent
Remove comment reaction.
DELETE /comments/{id}/reactions/{reaction_type}
Args: id: Path parameter. reaction_type: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| reaction_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so the description does not repeat that. However, it adds value by explicitly showing the HTTP DELETE endpoint pattern, which clarifies the operation is a deletion of a specific reaction on a comment. It could have disclosed more, such as idempotency or response details, but given that idempotentHint=true is already set, the description's contribution is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the main action, but it includes redundant endpoint information that is already evident from the tool name and the HTTP method. The 'Args' section merely repeats parameter names without adding new details, which could be considered filler. It is not overly verbose but could be more informative per sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (destructive, two parameters, no enums), the description is incomplete. It fails to specify what constitutes a valid reaction_type, which is critical for correct invocation. There is no mention of expected response behavior or error conditions. The sibling tool create_comments_by_id_reactions_by_reaction_type suggests that reaction types have specific meanings, but the description does not link to that context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the description is the only source of parameter meaning. It lists 'id' and 'reaction_type' as path parameters but does not explain their valid values or format. For example, 'reaction_type' is a simple string with no enum, and the description does not clarify what constitutes a valid reaction type. This leaves significant ambiguity, but the description does at least label them as path parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Remove') and resource ('comment reaction'), making the primary purpose understandable. However, it does not distinguish this tool from sibling tools like delete_comments_by_id_like, which is also a removal operation on comments, or the corresponding create tool for reactions, so some ambiguity remains about which specific action is performed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. There is no mention of when to prefer this over delete_comments_by_id_like, nor any context about reaction types or scenarios. The description merely restates the HTTP method and path, leaving the agent without instructions on selecting this tool among similar deletion tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_lists_by_id_likeCDestructiveIdempotent
Remove like on a list.
DELETE /lists/{id}/like
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true. The description adds no extra behavioral context such as authentication requirements, error behavior, or side effects beyond restating the action. It does not contradict annotations, but it also does not enrich them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the core action. The endpoint and argument block are concise. There is slight redundancy with the schema, but the overall structure is efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete, the description is minimal but missing key context: whether authentication is required, whether only the owner can remove the like, and the exact meaning of id. It also does not differentiate from the similar user-scoped sibling endpoint. Output schema presence reduces the need for return-value details, but the gaps remain significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only says 'id: The id/slug of the resource,' which adds that id may be a slug but leaves 'resource' ambiguous. It should clarify that id refers to the list id/slug, not the like.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Remove like on a list.' The endpoint DELETE /lists/{id}/like reinforces the target. It is clear enough to distinguish from siblings like create_lists_by_id_like, though it does not explicitly name or differentiate from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No mention of using create_lists_by_id_like to add a like, or of the related delete_users_by_id_lists_by_list_id_like variant. The usage is only implied by the action name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_notes_by_idADestructiveIdempotent
Delete a note.
DELETE /notes/{id}
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description merely restates the destructive action already captured by the annotations (destructiveHint=true, readOnlyHint=false). It does not add behavioral context such as permanent deletion, authorization requirements, side effects, or what happens when the note does not exist. The 'id/slug' note is more of a parameter clarification than a behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: 'Delete a note' immediately states the action, followed by the endpoint and a single parameter explanation. There is no redundant or filler content; every line contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete operation, the description covers the essential details: action, resource path, and id/slug parameter. Output schema and annotations supply the remaining context (destructive, idempotent, response format). It could be more complete by explicitly stating irreversibility, but this is adequately signaled by the destructiveHint annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero description coverage for the id parameter (only a 'Id' title), so the description carries the full burden. The line 'id: The id/slug of the resource' adds meaningful semantic information, clarifying that the parameter accepts either an id or a slug, which is essential for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Delete a note' and includes the explicit endpoint 'DELETE /notes/{id}', which clearly identifies the action, resource, and id parameter. This distinguishes it from sibling tools like get_notes_by_id, update_notes_by_id, and create_notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided beyond the obvious 'Delete a note.' There is no mention of when to prefer this tool over related note tools, no warning about irreversibility, and no exclusions or prerequisites. The tool's intended use is only implied by its name and HTTP verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recommendations_movies_by_idADestructiveIdempotent
Hide a movie recommendation.
DELETE /recommendations/movies/{id}
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true, so the safety profile is clear. The description adds a 'hide' semantic and the exact DELETE route, but does not explain reversibility, side effects, or auth/error behavior. Given the rich annotations, this is tolerable but the description itself contributes little behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four short lines with the key phrase front-loaded before the endpoint and args. Every line serves a purpose with no filler. This is an excellent lightweight tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter DELETE endpoint with a required id, an output schema, and annotations covering destructive/idempotent/readOnly behavior, the description covers the essential call shape. It stops short of explaining side effects or routing to alternatives, but those are partially covered by annotations and the simple resource type. Overall the definition is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description carries the documentation burden for the only parameter. It adds that id is 'The id/slug of the resource,' which clarifies accepted identifier forms beyond the schema's bare string type. For a single simple parameter this is sufficient, even though it could be more explicit about how to obtain the slug.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Hide') and resource ('movie recommendation'), and the word 'movie' distinguishes this from sibling tools like delete_recommendations_shows_by_id. The endpoint line reinforces the exact resource path. There is no ambiguity about what operation is being invoked.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to choose this over alternatives, such as delete_recommendations_shows_by_id or list_recommendations_movies. The intended context is only implied by the verb and resource name. There is no when-not-to-use or exclusion information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_recommendations_shows_by_idBDestructiveIdempotent
Hide a show recommendation.
DELETE /recommendations/shows/{id}
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already expose destructiveHint=true and idempotentHint=true, so the description does not need to restate those. It adds the useful nuance that this is a 'hide' rather than a hard delete, but it does not explain what hiding entails, such as reversibility or visibility effects. This is partial, not contradictory, transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded. The first sentence states the purpose, and the HTTP path and Args section add necessary invocation details without any fluff or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive operation, the description is mostly adequate: annotations cover idempotence and destructiveness, and an output schema exists so return values need not be described. However, the lack of sibling differentiation and the underspecified 'hide' behavior leave some ambiguity about the exact effect and appropriate usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema gives only 'id' with type string and no description, so schema coverage is 0%. The description's Args section compensates minimally by explaining that id is 'the id/slug of the resource,' which clarifies accepted identifier form. However, it does not specify what resource context means precisely or how to obtain the id/slug.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Hide a show recommendation.' This makes the operation identifiable and aligns with the tool name and HTTP DELETE path. It does not explicitly differentiate from delete_recommendations_movies_by_id, but the 'show' qualifier effectively scopes it to the correct sibling domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, such as delete_recommendations_movies_by_id or list_recommendations_shows. No preconditions, exclusions, or context are provided, so the agent must infer usage entirely from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_shows_by_id_progress_watched_resetBDestructiveIdempotent
Undo reset show progress.
DELETE /shows/{id}/progress/watched/reset
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint and idempotentHint. The description adds the action of undoing a reset but does not disclose side effects, requirements, or the impact on watched progress. It provides minimal added value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with the purpose stated first, followed by the endpoint and parameter. Every sentence adds value and there is no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description is mostly adequate but lacks details on the consequences of undoing the reset, such as whether it restores original watched progress or has other effects. The annotation coverage compensates for some gaps, but the description could be more explicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines 'id' as a string with no description. The description clarifies that it accepts an id/slug, which is additional meaning beyond the schema and helps the agent understand the parameter format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb 'Undo' and a specific resource 'reset show progress', distinguishing it from the sibling create_shows_by_id_progress_watched_reset which likely performs the reset. The inclusion of the HTTP path adds further specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as the create version, or any prerequisites. The description simply gives the endpoint and the argument 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_sync_playback_by_idBDestructiveIdempotent
Remove a playback item.
DELETE /sync/playback/{id}
Args: id: ID of the playback entry
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, and the description's 'Remove' is consistent with them. It adds only minimal resource specificity ('playback item') and does not discuss permanence, auth needs, or side effects, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and well-structured: behavior, HTTP method/path, then argument mapping. No filler, and the key semantic is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-required-integer-parameter destructive call with an output schema, the description is mostly sufficient. The main gap is context: it never explains what a playback item is, how to obtain its id, or what permissions/side effects apply, but annotations already cover the destructive nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explicitly labeling the single parameter as 'ID of the playback entry' and showing the {id} path placeholder. For one integer parameter, this is sufficient added meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a clear imperative ('Remove') and names the target resource ('a playback item'), then confirms the HTTP DELETE route. It is specific enough to distinguish the operation from read-only playback siblings, though it does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to delete a playback item, where the id comes from, or how this tool compares with alternatives like get_sync_playback_by_type or delete_checkin. Usage context is only implied by the name and route.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_users_by_id_blockADestructiveIdempotent
Unblock this user.
DELETE /users/{id}/block
Args: id: The slug that identifies the user, or "me" for the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, idempotentHint=true, and readOnlyHint=false. The description adds no additional behavioral context beyond the verb, such as authentication requirements, side effects, or reversibility. It does not contradict the annotations, but it also adds no value beyond what the annotations already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: one sentence for the action, the endpoint, and the parameter. It is front-loaded with the key verb and contains no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with a complete parameter explanation and output schema present, the description is largely sufficient. It could explicitly mention the effect (removes an existing block) or note the inverse relationship to create_users_by_id_block, but the agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description fully explains the only parameter, id: 'The slug that identifies the user, or "me" for the authenticated user.' This goes beyond the input schema, which provides no description and has 0% coverage, so the description carries the full burden and does it well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Unblock this user.' This clearly conveys the action. However, it does not explicitly distinguish the tool from the sibling create_users_by_id_block, relying on the reader to infer that unblocking is the inverse of blocking.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor any prerequisites. It merely states the action itself without any context about when unblocking is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_users_by_id_followADestructiveIdempotent
Unfollow this user.
DELETE /users/{id}/follow
Args: id: The slug that identifies the user, or "me" for the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, idempotentHint=true, readOnlyHint=false, so the description doesn't need to restate those. The description adds the endpoint and the 'me' special value for the id parameter, which is useful. However, it doesn't disclose side effects like whether it removes the user from followers/following lists, or whether it's reversible, or auth requirements. With annotations covering the destructive/idempotent profile, a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the action ('Unfollow this user') followed by the endpoint and parameter explanation. Every sentence earns its place. Minor deduction for including the raw endpoint line which is somewhat redundant with the tool name, but it's useful for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter destructive action with annotations covering idempotency and destructiveness, the description is mostly complete. It explains the parameter and the action. However, it doesn't mention the response format (though output schema exists), nor any error conditions (e.g., not following the user), nor authentication requirements. Given the tool's simplicity, this is acceptable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain the id parameter: 'The slug that identifies the user, or "me" for the authenticated user.' This adds meaning beyond the schema's bare 'Id' string. It's concise and covers the only parameter, so it's adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Unfollow this user' with the endpoint DELETE /users/{id}/follow. It distinguishes from the sibling create_users_by_id_follow (the inverse operation) by naming the action explicitly. However, it doesn't explicitly contrast with the sibling, so it's clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: it's for unfollowing a user, and the sibling create_users_by_id_follow is the follow counterpart. But it doesn't explicitly state when to use this vs alternatives, nor mention prerequisites like authentication or that the user must be currently followed. The context is clear enough for an agent to infer, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_users_by_id_lists_by_list_idBDestructiveIdempotent
Delete a user's personal list.
DELETE /users/{id}/lists/{list_id}/
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=true, so the destructive safety profile is covered. The description adds little beyond that: it does not disclose whether deletion is permanent/reversible, whether list items are also removed, or whether the list must belong to the user. It is consistent with the annotations but not illuminating.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and efficient, but the endpoint line 'DELETE /users/{id}/lists/{list_id}/' redundantly restates what the tool name already encodes, and the 'Path parameter' line for list_id is filler. The description is short and readable, yet contains avoidable waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter string-typed delete with an output schema and strong annotations, the description is adequate for constructing a valid call. However, it omits destructive-operation context such as permanence, scope of the deletion (items inside the list?), and any permission/ownership requirement, and it leaves list_id semantically ambiguous. These gaps are meaningful for a destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for parameter meaning. It does well for id ('The slug that identifies the user, or "me" for the authenticated user') but list_id is dismissed with 'Path parameter,' which adds no meaning beyond the schema's title 'List Id.' One of two parameters is genuinely explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Delete) and resource (a user's personal list), and the HTTP endpoint reinforces the operation. The word 'personal' usefully distinguishes this from sibling delete_users_by_id_smart_lists_by_list_id and delete_users_by_id_lists_by_list_id_like, so an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'personal list' qualifier implies this is for regular lists and not smart lists, and the verb 'delete' makes the core use case self-evident. However, there is no explicit when-to-use guidance, no mention of prerequisites (e.g., list ownership/authorization), and no named alternatives such as the smart-list deletion sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_users_by_id_lists_by_list_id_likeCDestructiveIdempotent
Remove like on a list.
DELETE /users/{id}/lists/{list_id}/like
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and idempotentHint=true, so the description does not need to repeat these. However, it adds no extra behavioral context such as side effects, authentication requirements, or consequences of removing a non-existent like. The HTTP method and path are informational but not behavioral. Given the annotations, a score of 2 reflects the lack of additional transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the primary action. It includes the HTTP method and path in a structured format, followed by an Args section. There is no unnecessary verbiage, and the key information is presented clearly and efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple with only two parameters, and an output schema exists. The description covers id well but leaves list_id essentially undefined. For a destructive operation, it would be helpful to clarify whether the like must exist or if errors are returned. While not severely incomplete, there are notable gaps in explaining the list_id parameter and any edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does provide a useful explanation for id (the slug or 'me'), which adds meaning beyond the schema. However, list_id is only described as 'Path parameter', which is tautological and unhelpful. Overall, the description partially compensates for the missing schema descriptions but leaves one parameter vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove like on a list') and includes the HTTP method and path, which unambiguously identifies the operation. It is distinct from sibling tools like create_users_by_id_lists_by_list_id_like (which adds a like) and delete_lists_by_id_like (which likely deletes a like on a list from a different context). The purpose is specific and understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that this is for removing a like on a user's list, nor does it contrast with create_users_by_id_lists_by_list_id_like for adding a like. There is 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.
delete_users_by_id_smart_lists_by_list_idADestructiveIdempotent
Delete a user's smart list.
DELETE /users/{id}/smart-lists/{list_id}/
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish destructiveHint=true and idempotentHint=true, so the description is not obligated to restate those. It adds no deeper behavioral context such as permanence, consequences for list items, or ownership requirements, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: a one-sentence purpose, the endpoint template, and a short parameter list. It is front-loaded and contains no filler; the endpoint line is mildly redundant with the tool name but not harmful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple destructive operation, the description plus annotations and output schema cover what an agent needs: purpose, parameters, safety profile, and id resolution. It could have explained what a smart list id is, but the core call is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the Args section is the only parameter documentation. It usefully explains that id is a user slug or 'me', but list_id is only described as a path parameter, which adds little beyond the schema. The id explanation elevates this above a pure schema repetition, though not enough for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete verb and object, 'Delete a user's smart list,' which clearly identifies the operation and resource. This distinguishes it from sibling tools like get_users_by_id_smart_lists_by_list_id and update_users_by_id_smart_lists_by_list_id without requiring schema inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: this is the delete operation for a user's smart list. It does not explicitly list when-not-to-use or alternatives, but the action is unambiguous and the sibling tools for creating, reading, and updating smart lists are easily separated by name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_users_requests_by_idBDestructiveIdempotent
Deny follow request.
DELETE /users/requests/{id}
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (destructiveHint=true, readOnlyHint=false, idempotentHint=true), so the description's burden is lower. The phrase 'Deny follow request' adds useful semantic context beyond the annotations by clarifying that the effect is rejection of a pending request, not deletion of an established relationship. However, it omits side effects, reversibility, and whether the requester is notified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal: one semantic sentence plus the HTTP route and an args note. The core meaning is front-loaded and every line earns its place. The HTTP path is somewhat redundant with the tool name but reinforces the route. It is appropriately sized for a one-parameter delete operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter destructive operation with a full annotation profile and an output schema, the description is nearly adequate. Still missing are the practical effects of denying a request, any authorization expectations (e.g., can only deny your own incoming requests), and what the response signifies. An agent could call this correctly, but not with full confidence about consequences.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only adds 'Args: id: Path parameter.' This does provide one piece of information the schema lacks—that id is a path parameter rather than a body value. The single 'id' parameter is self-explanatory from its name, so the gap is minor, but no format or meaning (e.g., user ID, request ID) is specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Deny follow request.' This makes the tool's purpose immediately understandable and distinguishes it from related siblings like delete_users_by_id_follow (which removes an established follow relationship, not a pending request). However, it doesn't explicitly name any sibling or clarify the subtle difference between denying a request and unfollowing a user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as create_users_requests_by_id (which presumably creates a request) or delete_users_by_id_follow. There are no exclusions, prerequisites, or conditions stated. An agent must infer usage entirely from the tool name and HTTP method.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_users_saved_filters_by_idBDestructiveIdempotent
Delete saved filter.
DELETE /users/saved_filters/{id}
Args: id: ID of the saved filter
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey destructiveHint=true, readOnlyHint=false, and idempotentHint=true, so the core risk profile is covered. The description adds the endpoint path but does not disclose consequences such as irreversibility, ownership requirements, or related side effects. There is no contradiction with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and free of unnecessary prose. The endpoint line and args line are slightly redundant with the name and schema, but they add useful context without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter destructive operation, the description is minimally adequate: the endpoint, id semantics, and annotations cover the basics, and an output schema exists. However, it lacks usage guidance and any statement about access requirements or consequences beyond the annotation flags.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a bare 'Id' property, and schema description coverage is 0%. The description compensates with 'Args: id: ID of the saved filter,' which clarifies the parameter's role. It is minimal but sufficient for a single integer parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: 'Delete saved filter.' The HTTP method and path further confirm the operation. It doesn't explicitly contrast with sibling create/get filter tools, but the delete verb makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like create_users_saved_filters or get_users_saved_filters_by_section. There are no exclusions, prerequisites, or selection criteria, leaving the agent to infer usage solely from the verb 'delete.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_users_settings_plex_connectADestructiveIdempotent
Disconnect Plex.
DELETE /users/settings/plex/connect
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and non-read-only behavior. The description adds that the affected resource is the Plex connection, but it does not disclose side effects such as authentication requirements, reversibility, or downstream sync impact. Partial credit for clarifying what is destroyed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact: one plain-language phrase plus the exact HTTP endpoint. Every element is useful and front-loaded, with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, destructive operation with an output schema and clarifying annotations, the description is sufficiently complete to invoke the tool correctly. It could mention consequences or prerequisites, but none are required to make the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description carries no parameter-documentation burden. This is effectively the baseline for parameterless tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Disconnect Plex', reinforced by the exact DELETE path. It clearly distinguishes this from the sibling create_users_settings_plex_connect, making the tool's role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit when-to-use or when-not-to-use guidance and names no alternatives. However, the intended usage is strongly implied by the verb 'Disconnect' and the parameterless destructive endpoint, which an agent can infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_users_syncs_by_idBDestructiveIdempotent
Undo a data sync.
DELETE /users/syncs/{id}
Args: id: The numeric sync id, scoped to the authenticated user. A numeric segment hits a single sync; a non-numeric segment is the filtered list.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the destructive and non-read-only signals, and the description reinforces this with 'Undo.' It adds useful scoping context ('scoped to the authenticated user') and a numeric-vs-non-numeric segment behavior, though the non-numeric part is ambiguous and potentially misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the purpose, and clearly structures the endpoint and argument. The confusing non-numeric sentence is the main structural flaw, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete operation with output schema present and destructive/idempotent annotations available, the description provides enough to invoke the tool: endpoint, purpose, parameter scope, and one-parameter semantics. It could be improved by clarifying what 'undo a data sync' affects, but the core information is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must carry the parameter meaning, and it does identify id as a numeric sync id scoped to the authenticated user. However, the statement that a non-numeric segment is the filtered list conflicts with the required integer schema and is not actionable, so the compensation is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete action, 'Undo a data sync,' and explicitly shows the DELETE /users/syncs/{id} endpoint, so the resource and operation are clear. It does not explicitly distinguish itself from sibling sync tools such as get_users_syncs_by_id or delete_sync_playback_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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool over alternatives, no prerequisites or exclusions, and no mention of related list/update/delete sync tools. The scoping note about the authenticated user is parameter context, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_younify_users_services_by_service_idBDestructiveIdempotent
Unlink a streaming service.
DELETE /younify/users/services/{service_id}
Args:
service_id: The streaming service id (e.g. netflix).
| Name | Required | Description | Default |
|---|---|---|---|
| service_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the destructive nature is known. The description adds no consequences, reversibility information, or authentication expectations, and 'Unlink' restates the purpose without going beyond what structured metadata provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a one-line purpose, the HTTP method/path, and the parameter example. There is no filler, and the call envelope is immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter delete with annotations and an output schema, this is nearly sufficient for making the call. It is missing usage alternatives and any explicit side-effect statement, so it is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates by explaining that service_id is a streaming service id and giving the concrete example 'netflix'. This is enough for an agent to know the expected value format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence 'Unlink a streaming service' states a specific verb and resource, and the DELETE endpoint reinforces the action. It is clear but does not explicitly differentiate itself from sibling tools like create_younify_connect or create_younify_users_refresh_by_service_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as create_younify_connect or create_younify_users_refresh_by_service_id. The agent must infer usage 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.
finish_authenticationAIdempotent
Exchange an approved device code for a stored token.
Args: device_code: The device_code returned by start_authentication. wait_seconds: How long to keep polling while you approve in the browser. 0 checks once and reports whether approval is still pending, which is the better default for an interactive session.
| Name | Required | Description | Default |
|---|---|---|---|
| device_code | Yes | ||
| wait_seconds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses that the tool polls while the user approves in the browser, that wait_seconds=0 performs a single check and reports whether approval is still pending, and that this is preferable in interactive contexts. This adds meaningful behavioral detail without contradicting the idempotentHint or other annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by tightly scoped parameter documentation. Every sentence adds value, and the formatting makes the parameter semantics easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter tool with an output schema available, the description covers the call sequence, parameter behavior, default recommendation, and what a zero-wait call reports. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining device_code as the value returned by start_authentication and precisely defining wait_seconds as the polling duration, with 0 meaning a single status check. This is exactly the guidance the agent needs for both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Exchange an approved device code for a stored token.' This clearly identifies the OAuth device-flow completion step and distinguishes it from related operations like start_authentication or get_authentication_status by tying it to the device_code returned by start_authentication.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes clear sequencing by stating the device_code comes from start_authentication and explains when to use wait_seconds=0 versus longer polling, including a recommendation for interactive sessions. It does not name explicit alternatives or exclusions, but the intended usage context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_authentication_statusARead-onlyIdempotent
Report whether an account is signed in and when the token expires.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, which fully covers the safety profile of a read-only status check. The description adds the specific content of the report (sign-in status and token expiry) but no deeper behavioral context such as whether it reflects local or server-side state. With strong 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence that front-loads the core purpose (reporting sign-in status) and the secondary detail (token expiry). No filler, no repetition of schema or annotation information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 0-parameter, read-only tool with a present output schema and comprehensive annotations, the description is largely sufficient for correct invocation. The only notable omission is guidance on when to check this status relative to the authentication flow, but given the tool's low complexity, that gap is minor rather than critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema is trivially 100% covered. Per the rubric, a 0-parameter tool receives a baseline of 4. The description correctly implies no input is needed, and there is nothing for it to add beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Report') and a clear resource (account authentication status), and specifies the exact information returned: sign-in state and token expiry. This distinguishes it from the authentication-flow siblings like start_authentication, finish_authentication, and clear_authentication by positioning it as the read-only status query. However, it doesn't explicitly name or differentiate against those siblings, which keeps it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the closely related authentication siblings (start_authentication, finish_authentication, clear_authentication, create_oauth_*). There is no mention of preconditions, sequencing (e.g., check before starting auth), or exclusions. This is a pure statement of what it does with zero usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendars_by_target_dvd_by_start_date_by_daysARead-onlyIdempotent
Get DVD releases.
GET /calendars/{target}/dvd/{start_date}/{days}
Args: target: Use "my" for all items that have been watched, collected, or watchlisted plus individual episodes on the watchlist. Use "all" for all items items airing during the specified period. start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD". days: The number of days to retrieve. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date_query: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| years | No | ||
| genres | No | ||
| target | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| start_date_query | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, open-world, and non-destructive behavior, lowering the burden. The description adds useful scope details beyond annotations: 'my' includes watched/collected/watchlisted items plus watchlist episodes, and 'all' covers items airing in the period.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the parameter list is organized, but the entry is padded with repetitive 'Query parameter' lines that do not add information. The optional filters could be condensed into a single line, making the description considerably tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a basic call with the three required parameters and gives useful detail for target and watchnow. It is less complete for filter-rich queries because the optional filter parameters lack format or value guidance, and it does not help an agent choose among sibling calendar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain parameters and it does well for target, start_date, days, watchnow, and the ignore flags. However, eight optional parameters such as genres, years, ratings, runtimes, countries, and certifications are only labeled 'Query parameter', adding little meaning beyond the schema's property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with 'Get DVD releases' and includes the endpoint GET /calendars/{target}/dvd/{start_date}/{days}, so the resource and action are specific. This clearly distinguishes it from sibling calendar tools for movies, shows, and streaming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear it is for retrieving a DVD release calendar over a date range, and explains the target choices ('my' vs 'all'). It does not explicitly name alternative calendar endpoints or say when not to use it, so there is no formal exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendars_by_target_media_by_start_date_by_daysARead-onlyIdempotent
Get media.
GET /calendars/{target}/media/{start_date}/{days}
Args:
target: Use "my" for all items that have been watched, collected, or watchlisted plus individual episodes on the watchlist.
Use "all" for all items items airing during the specified period.
start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD".
days: The number of days to retrieve.
extended: Extended information to include in the response.
watchnow: Use "favorites" for streaming on a favorite service of the user.
Use "any" for streaming on any service in the user's country.
Use "any_all" for streaming on any service in all countries.
Use "free" for streaming for free in the user's country.
Use "free_all" for streaming for free in all countries.
Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country.
Use "subscriptions_all" streaming on any subscription service in all countries
genres: Query parameter.
subgenres: Query parameter.
years: Query parameter.
ratings: Query parameter.
start_date_query: Query parameter.
end_date: Query parameter.
runtimes: Query parameter.
countries: Query parameter.
certifications: Query parameter.
type: Narrow the feed to a single media type. Omit to return both.
group: Collapse same-show-same-day episodes into a single card (full_season / multiple_episodes). Omit for one entry per episode.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| type | No | ||
| group | No | ||
| years | No | ||
| genres | No | ||
| target | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| start_date_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the operation is read-only, idempotent, and non-destructive; the description adds meaningful behavior beyond that, such as target semantics, watchnow streaming options, and group collapsing same-show-same-day episodes into a single card. It does not cover response details or pagination, but an output schema exists and the safety profile is already disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is clearly organized with the endpoint first, then an Args list, and front-loads the required path parameters. The repeated 'Query parameter.' boilerplate for nine parameters inflates the length without earning its place, though the structure makes it scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter endpoint with no schema descriptions, the essential invocation details (required parameters, date format, target semantics) are present, and the output schema handles return-value documentation. However, the many optional filters are underspecified, and there is no guidance about format or behavior for the filter query parameters, so completeness is only adequate for basic calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description needed to document the 16 parameters, but nine of them (genres, subgenres, years, ratings, start_date_query, end_date, runtimes, countries, certifications) are only labeled 'Query parameter.' The required params target/start_date/days are well explained and watchnow/type/group are useful, but a large share of the parameters adds no meaning beyond their property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a GET endpoint for calendar media with target/start_date/days path parameters and explains the difference between 'my' and 'all' targets. The generic /media path distinguishes it from more specific calendar siblings like get_calendars_by_target_movies_by_start_date_by_days, though it never explicitly names those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for when each target value is appropriate ('my' for watched/collected/watchlisted, 'all' for airing items) and explains filtering choices like type, group, and watchnow. It does not mention sibling calendar endpoints or explicitly say when to use this instead of the movies/shows/DVD/streaming calendar tools, so exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendars_by_target_movies_by_start_date_by_daysCRead-onlyIdempotent
Get movies.
GET /calendars/{target}/movies/{start_date}/{days}
Args: target: Use "my" for all items that have been watched, collected, or watchlisted plus individual episodes on the watchlist. Use "all" for all items items airing during the specified period. start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD". days: The number of days to retrieve. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date_query: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| years | No | ||
| genres | No | ||
| target | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| start_date_query | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds some context about the 'target' parameter (my vs. all) and the date format, which helps scoping, but it doesn't describe response format, pagination, or any other behavioral traits beyond what annotations cover. The description does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose but not concise: it lists 17 parameters with minimal explanation, and many are redundant placeholder text like 'Query parameter.' It is front-loaded with the endpoint, which is good, but the parameter list is not well structured and could be condensed or more informative. The description lacks a clear summary or use-case section, making it less effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 17 parameters and an output schema, the description should explain all parameters sufficiently. It fails to do so for many parameters (those marked 'Query parameter' with no guidance). The output schema exists, so return format is defined, but the input semantics are incomplete. For a complex calendar endpoint, this description is inadequate for an agent to invoke it correctly with all optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain every parameter, but it fails to do so. While target, start_date, days, and watchnow have meaningful explanations, genres, subgenres, years, ratings, start_date_query, end_date, runtimes, countries, and certifications are simply labeled 'Query parameter' with no format or allowed values. The agent would not know how to construct these query parameters correctly, making this a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Get' and the resource 'movies', and includes the full endpoint path that clarifies the calendar scope. However, it doesn't explicitly mention that this is specifically for the movie calendar vs. shows or other media types, and the one-liner 'Get movies.' is terse. The sibling names (e.g., get_calendars_by_target_shows_by_start_date_by_days) make the differentiation implicit, so it's clear enough but not explicitly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that this is for movie calendars, nor does it contrast with the shows or DVD calendar endpoints. There is no 'when to use' or 'when not to use' guidance, leaving the agent to infer usage 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_calendars_by_target_shows_by_start_date_by_daysCRead-onlyIdempotent
Get shows.
GET /calendars/{target}/shows/{start_date}/{days}
Args:
target: Use "my" for all items that have been watched, collected, or watchlisted plus individual episodes on the watchlist.
Use "all" for all items items airing during the specified period.
start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD".
days: The number of days to retrieve.
extended: Extended information to include in the response.
watchnow: Use "favorites" for streaming on a favorite service of the user.
Use "any" for streaming on any service in the user's country.
Use "any_all" for streaming on any service in all countries.
Use "free" for streaming for free in the user's country.
Use "free_all" for streaming for free in all countries.
Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country.
Use "subscriptions_all" streaming on any subscription service in all countries
genres: Query parameter.
subgenres: Query parameter.
years: Query parameter.
ratings: Query parameter.
start_date_query: Query parameter.
end_date: Query parameter.
runtimes: Query parameter.
countries: Query parameter.
certifications: Query parameter.
ignore_watched: Ignore watched items.
ignore_collected: Ignore collected items.
ignore_watchlisted: Ignore watchlisted items.
group: Collapse same-show-same-day episodes into a single card (full_season / multiple_episodes). Omit for one entry per episode.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| group | No | ||
| years | No | ||
| genres | No | ||
| target | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| start_date_query | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds parameter context (e.g., target values, watchnow options) but does not disclose additional behavioral traits like rate limits, response size, or pagination. It does not contradict annotations, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and includes redundant lines like 'genres: Query parameter.' that add no value. It is front-loaded with the URL, but the parameter list is long and contains many vague entries. The structure could be tightened by grouping or removing tautological lines.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter tool with no schema descriptions, the description is incomplete. Many parameters are undefined, and it does not clarify the relationship to sibling calendar tools. The presence of an output schema reduces the need for return format, but the missing parameter semantics and lack of usage guidance make it insufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives clear meaning for target, start_date, days, watchnow, ignore_watched/collected/watchlisted, and group. However, at least nine parameters (genres, subgenres, years, ratings, start_date_query, end_date, runtimes, countries, certifications) are merely labeled 'Query parameter.' with no explanation, making them unusable. The description partially compensates but leaves a major gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get shows') and the endpoint, clearly indicating it retrieves show calendar data. However, it does not differentiate from sibling tools like get_calendars_by_target_shows_finales_by_start_date_by_days or get_calendars_by_target_shows_premieres_by_start_date_by_days, which also target shows but with different scopes. The name conveys the resource, but the description lacks explicit sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool instead of the many similar calendar tools (e.g., movies, streaming, premieres). There is no mention of exclusions or alternative scenarios. The parameter explanations are factual but do not help an agent decide between this and get_calendars_by_target_shows_finales_*.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendars_by_target_shows_finales_by_start_date_by_daysCRead-onlyIdempotent
Get finales.
GET /calendars/{target}/shows/finales/{start_date}/{days}
Args: target: Use "my" for all items that have been watched, collected, or watchlisted plus individual episodes on the watchlist. Use "all" for all items items airing during the specified period. start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD". days: The number of days to retrieve. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date_query: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| years | No | ||
| genres | No | ||
| target | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| start_date_query | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds context about target and watchnow options but does not describe the return format, pagination, or any side effects. Given the annotation coverage, a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose, repeating the endpoint path that is already in the tool name. It uses a list format but with inconsistent explanations—some parameters have detailed descriptions, others are placeholder text. The 'Query parameter.' repeats add noise without value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 17 parameters and only 3 required, the description is incomplete. It fails to explain many filter parameters and does not mention output structure or pagination (though an output schema exists). It also omits details like inclusivity of the date range or how 'days' interacts with the start date. Given the complexity, this is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It does explain target, start_date, days, watchnow, and ignore flags, but many parameters (genres, subgenres, years, ratings, start_date_query, end_date, runtimes, countries, certifications) are merely labeled 'Query parameter.' with no detail. This is insufficient for a 17-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get finales.' and the endpoint path clearly indicates it retrieves show finales for a date range. It is distinguishable from sibling calendar tools (e.g., shows, premieres, new) by the 'finales' term. However, it does not explicitly contrast with those siblings, so a 4 is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternative calendar tools. The description only lists parameters and their meanings, without stating use cases like 'Use this for season finales, use premieres for season premieres.' The usage is implied by the name but not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendars_by_target_shows_new_by_start_date_by_daysBRead-onlyIdempotent
Get new shows.
GET /calendars/{target}/shows/new/{start_date}/{days}
Args: target: Use "my" for all items that have been watched, collected, or watchlisted plus individual episodes on the watchlist. Use "all" for all items items airing during the specified period. start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD". days: The number of days to retrieve. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date_query: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| years | No | ||
| genres | No | ||
| target | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| start_date_query | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds behavioral context beyond annotations by explaining target scoping ('my' includes watched/collected/watchlisted items plus episodes; 'all' returns all airing items) and detailing watchnow streaming filter values. It does not mention authentication requirements for 'my' or pagination, but output schema and annotations mitigate those gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the purpose and uses a clear Args structure, but it is padded with eight unhelpful 'Query parameter.' lines that duplicate what the schema already names, and it contains a typo ('items items'). It is long but somewhat justified given the large number of otherwise undocumented parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter endpoint with zero schema descriptions, the description documents every parameter by name, but many entries are placeholders. It does not distinguish this endpoint from the many sibling calendar tools, nor does it state constraints like maximum days or allowed values for extended and filter params. Since an output schema exists, the return shape is covered, but the parameter semantics and tool-selection context remain incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema_description_coverage at 0%, the description carries the full burden, and it provides meaningful detail for target, start_date format, days, watchnow values, and the ignore flags. However, many filter parameters are dismissed as just 'Query parameter.' without any format, allowed values, or semantics, leaving the agent under-informed for those inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get new shows' and includes the URL template 'GET /calendars/{target}/shows/new/{start_date}/{days}', which clearly identifies this as a calendar endpoint for new show releases. It states a verb and resource but does not explicitly define what 'new' means relative to sibling calendar endpoints like premieres or finales, so some disambiguation relies on the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives parameter-level guidance, such as the meaning of target='my' vs 'all', but it never states when to use this tool over closely related siblings like get_calendars_by_target_shows_by_start_date_by_days, premieres, or finales. No alternatives are named and no exclusion criteria are provided, leaving tool selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendars_by_target_shows_premieres_by_start_date_by_daysBRead-onlyIdempotent
Get season premieres.
GET /calendars/{target}/shows/premieres/{start_date}/{days}
Args: target: Use "my" for all items that have been watched, collected, or watchlisted plus individual episodes on the watchlist. Use "all" for all items items airing during the specified period. start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD". days: The number of days to retrieve. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date_query: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| years | No | ||
| genres | No | ||
| target | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| start_date_query | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond that, such as what 'my' includes (watched/collected/watchlisted plus individual watchlist episodes), what 'all' covers, and the watchnow streaming options. It does not mention response format details, but an output schema exists, so this is not a critical omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The summary line and endpoint are front-loaded, and the Args list is organized in a readable way. However, multiple 'Query parameter.' lines add no value, and there are minor typos ('all items items,' missing 'for' before 'streaming on any subscription service'), making the description looser than it should be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 17-parameter tool, the description covers the three required parameters and several important filters, with output schema and annotations handling return values and safety. Still, it leaves many optional filters unexplained and does not help an agent choose this over sibling premieres/finales/new calendar tools, 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.
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 parameters. It does well for core parameters: target, start_date (with format), days, watchnow (detailed options), and ignore_* flags. However, nine parameters including genres, subgenres, years, ratings, start_date_query, end_date, runtimes, countries, and certifications are dismissed as 'Query parameter.' with no added meaning, leaving a notable gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get season premieres.' and includes the HTTP endpoint, giving a specific verb and resource. It clearly identifies the operation and distinguishes it from sibling finales/new/calendar endpoints, though it does not explicitly contrast with the releases_hot_premieres sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling calendar endpoints such as get_calendars_by_target_shows_finales_by_start_date_by_days or get_calendars_releases_hot_premieres_by_start_date_by_days. The only usage direction is embedded in the target parameter description ('my' vs 'all'), which is about parameter scoping, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendars_by_target_streaming_by_start_date_by_daysBRead-onlyIdempotent
Get streaming releases.
GET /calendars/{target}/streaming/{start_date}/{days}
Args: target: Use "my" for all items that have been watched, collected, or watchlisted plus individual episodes on the watchlist. Use "all" for all items items airing during the specified period. start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD". days: The number of days to retrieve. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date_query: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| years | No | ||
| genres | No | ||
| target | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| start_date_query | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context by explaining that target='my' returns user-activity-based items while target='all' returns everything airing in the period, and it specifies the date format. This is useful but not rich; it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The docstring is front-loaded with a one-line summary and an Args list that is easy to scan. However, the nine repeated 'Query parameter.' lines are pure bloat that earn no information value, and there is a typo ('all items items airing'). It is organized but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 17 parameters and an output schema present, the description adequately documents the 3 required parameters and the core call. But for a tool of this complexity, leaving the bulk of optional filters as 'Query parameter' with no format guidance is a notable gap, even though those parameters are optional and default to null.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does well for the required parameters (target, start_date, days) and for watchnow, with concrete value semantics. However, 9 parameters (genres, subgenres, years, ratings, start_date_query, end_date, runtimes, countries, certifications) are dismissed with the tautological 'Query parameter,' which adds no meaning beyond the schema, and extended is vague ('Extended information to include').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with 'Get streaming releases,' a specific verb and resource, and echoes the endpoint path GET /calendars/{target}/streaming/{start_date}/{days}. It is clear but does not explicitly differentiate itself from the many sibling calendar tools (DVD, media, movies, shows), so an agent must infer the distinction from the word 'streaming' alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the sibling calendar tools (get_calendars_by_target_movies_by_start_date_by_days, get_calendars_by_target_shows_by_start_date_by_days, etc.), nor any exclusions or alternative routing. The target parameter explanation describes scoping semantics, not tool-selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendars_releases_hot_by_start_date_by_daysBRead-onlyIdempotent
Get hot releases.
GET /calendars/releases/hot/{start_date}/{days}
Args:
start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD".
days: The number of days to retrieve.
extended: Extended information to include in the response.
watchnow: Use "favorites" for streaming on a favorite service of the user.
Use "any" for streaming on any service in the user's country.
Use "any_all" for streaming on any service in all countries.
Use "free" for streaming for free in the user's country.
Use "free_all" for streaming for free in all countries.
Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country.
Use "subscriptions_all" streaming on any subscription service in all countries
genres: Query parameter.
subgenres: Query parameter.
years: Query parameter.
ratings: Query parameter.
start_date_query: Query parameter.
end_date: Query parameter.
runtimes: Query parameter.
countries: Query parameter.
certifications: Query parameter.
type: Narrow the feed to a single media type. Omit to return both.
group: Collapse same-show-same-day episodes into a single card (full_season / multiple_episodes). Omit for one entry per episode.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| type | No | ||
| group | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| start_date_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds meaningful behavioral context beyond annotations: detailed watchnow value semantics, the type narrowing behavior, and episode grouping collapse options. It does not mention pagination or rate limits, but the annotation coverage makes the added context sufficient for a read-only feed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the one-line purpose and endpoint, and the Args block is reasonably organized. However, it repeats schema parameter names and pads with uninformative 'Query parameter' lines for nine parameters. There are also formatting inconsistencies (e.g., the missing 'for' in 'subscriptions_all streaming'), making it longer and less polished than ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex 15-parameter tool with no schema-level descriptions, and the definition leaves many filter parameters semantically empty. The required start_date and days are clear, and watchnow/type/group are well described, but the bulk of optional filters lack format, allowed values, or examples. The output schema covers return shape, but the input semantics are not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the full burden of explaining parameters. It does explain start_date format, days, watchnow values, type, and group well. However, nine parameters (genres, subgenres, years, ratings, start_date_query, end_date, runtimes, countries, certifications) are only given the placeholder 'Query parameter' with no value format or semantics, leaving a significant gap for an agent trying to use them correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear imperative 'Get hot releases' and includes the endpoint, identifying the specific resource and operation. However, it does not explicitly distinguish itself from sibling hot-calendar variants (e.g., hot_finales, hot_new, hot_premieres), so the agent must rely on the tool name for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_calendars_releases_hot_finales_by_start_date_by_days or get_calendars_by_target_movies_by_start_date_by_days. The description provides parameter details but no exclusions, conditions, or comparison to sibling tools, leaving the selection decision unsupported.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendars_releases_hot_finales_by_start_date_by_daysCRead-onlyIdempotent
Get hot finales.
GET /calendars/releases/hot/finales/{start_date}/{days}
Args: start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD". days: The number of days to retrieve. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date_query: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| start_date_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds little behavioral context. It restates the GET-style retrieval but does not mention pagination, response volume, authentication needs, rate limits, or how the calendar filtering behaves beyond listing query parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear one-line purpose and an explicit endpoint, which helps. However, the long parameter list contains many unhelpful 'Query parameter' placeholders, and the watchnow section is verbose enough that the overall structure is only moderately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters, 0% schema coverage, and several overlapping sibling tools, this description is not complete enough for correct invocation. It documents the two required parameters but leaves acceptable values and formats for most filters undocumented; the output schema covers return shape but not input semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It provides real semantics for start_date (format), days (number of days), and watchnow (allowed values), but most remaining parameters—genres, subgenres, years, ratings, end_date, runtimes, countries, certifications—are dismissed with only 'Query parameter,' which adds no meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get hot finales' and includes the full endpoint path, making the verb and resource clear. It is distinguishable from sibling calendar tools such as hot new, hot premieres, and target shows finales, though it does not explicitly explain what counts as a 'finale' or a 'hot release.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus the many sibling calendar endpoints, such as get_calendars_releases_hot_by_start_date_by_days or get_calendars_by_target_shows_finales_by_start_date_by_days. The agent must infer selection entirely from the tool name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendars_releases_hot_new_by_start_date_by_daysCRead-onlyIdempotent
Get hot new shows.
GET /calendars/releases/hot/new/{start_date}/{days}
Args: start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD". days: The number of days to retrieve. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date_query: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| start_date_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the endpoint and parameter-level behavior such as the start_date format and watchnow filtering values, but it does not disclose response shape, pagination, or other behavioral traits. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the endpoint and organized as an Args block. The watchnow enumeration is useful, but repeated 'Query parameter.' lines add little value and the watchnow block is verbose. Overall it is structured but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with 0% schema coverage, the description is incomplete. It leaves most optional filter parameters underspecified, gives no usage selection guidance, and does not clarify how extended or watchnow interact. An output schema exists, which helps, but the parameter documentation burden is unmet.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain start_date, days, extended, and watchnow in meaningful detail. However, 9 of 13 parameters are dismissed as 'Query parameter' with no syntax, format, or allowed values, leaving significant gaps for an agent selecting values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get hot new shows.' This is clear and more than a tautology. However, it does not distinguish this endpoint from sibling calendar tools like get_calendars_releases_hot_premieres_by_start_date_by_days, leaving some ambiguity about what makes this 'new' flavor unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_calendars_releases_hot_by_start_date_by_days or get_calendars_by_target_shows_new_by_start_date_by_days. It lists parameters but never states selection criteria, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_calendars_releases_hot_premieres_by_start_date_by_daysCRead-onlyIdempotent
Get hot premieres.
GET /calendars/releases/hot/premieres/{start_date}/{days}
Args: start_date: The start date of the calendar. Must be formatted as "YYYY-MM-DD". days: The number of days to retrieve. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date_query: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | Yes | ||
| certifications | No | ||
| start_date_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, and the description adds no further behavioral traits such as auth requirements, pagination, response ordering, or filtering behavior. The GET endpoint and watchnow values are parameter/usage details rather than additional behavioral disclosure beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and endpoint, and the Args list is organized. However, many entries simply repeat the schema property name with 'Query parameter' and add little value, so the list is longer than it needs to be without being genuinely informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter tool with no schema descriptions, the description provides enough to make a basic required-only call but not enough to confidently use optional filters or choose between the many sibling calendar tools. The output schema covers return shape, but usage context and filter semantics remain incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the load. It does document start_date format, days semantics, extended, and the watchnow enumeration in detail, but nine parameters (genres, subgenres, years, ratings, start_date_query, end_date, runtimes, countries, certifications) are only labeled as 'Query parameter' with no meaning, syntax, or accepted values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific operation and resource ('Get hot premieres') and includes the exact GET endpoint, which clearly distinguishes it from sibling calendar endpoints for new, finales, shows, movies, and streaming. An agent can identify this tool as the hot-premieres calendar read without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to prefer this tool over siblings such as get_calendars_releases_hot_by_start_date_by_days, get_calendars_releases_hot_new, or get_calendars_by_target_shows_premieres. The only implied context comes from the endpoint itself, so an agent has no explicit when-to-use or when-not-to-use signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_certifications_by_typeCRead-onlyIdempotent
Get certifications.
GET /certifications/{type}
Args: type: Certification media type.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe read operation. The description adds no behavioral details beyond the endpoint, but it does not contradict the annotations. Given the annotations cover the safety profile, this is adequate but could mention return format or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of a single sentence and an endpoint template. However, it is under-specified and does not efficiently convey essential information. It is not bloated, but it is also not well-structured for an agent to understand the tool's full scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple and has an output schema, the description leaves critical gaps: the meaning of 'type' and the distinction from sibling tools. An agent cannot confidently select and invoke this tool without additional information, making it incomplete for a low-complexity operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no description for the 'type' parameter, and the description only says 'Certification media type,' which is unhelpful. It does not list allowed values (e.g., 'movie', 'show'), provide examples, or explain the difference from the sibling list_certifications_movies and list_certifications_shows. With 0% schema coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get certifications' with a type parameter, which is a clear verb+resource. However, it is vague about what 'certifications' means in this context and does not differentiate from the more specific sibling tools list_certifications_movies and list_certifications_shows. The endpoint pattern adds some clarity but the purpose remains generic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the sibling tools that list certifications by media type. It does not mention alternatives, prerequisites, or specific use cases. An agent would not know if this is the right tool for a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_comments_by_idARead-onlyIdempotent
Get a comment or reply.
GET /comments/{id}
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds little behavioral context beyond the existing safety profile. It does not mention authentication, error behavior, response shape, or any call-relevant side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose, followed by the endpoint and parameter documentation. Every line adds useful information without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only getter with an output schema and strong safety annotations, the description is sufficiently complete. It states what is fetched, how to call it, and what the id parameter means, leaving no critical gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides only a string named 'id' with no description, so the description carries the semantic burden. 'The id/slug of the resource' usefully clarifies that the parameter accepts either an ID or a slug, which is meaningful for a one-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get a comment or reply.' The endpoint path GET /comments/{id} and the 'or reply' clarification distinguish this single-resource fetch from related comment endpoints like replies lists or reaction summaries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_comments_by_id_replies or get_comments_recent_by_comment_type_by_type. The description only restates the operation without giving context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_comments_by_id_itemARead-onlyIdempotent
Get the attached media item.
GET /comments/{id}/item
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe read-only nature is covered. The description adds that the response is the attached media item and that extended affects the response, but does not disclose additional behavior such as error conditions or response shape. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary purpose, followed by the endpoint and a concise Args list. There is no redundant or vague filler; the endpoint line and parameter explanations each add useful context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET operation with only two parameters, an output schema, and safety annotations, the description provides sufficient information: purpose, endpoint, and parameter meanings. It could go further by explaining what 'media item' encompasses, but the name and endpoint make this reasonably clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the Args section in the description is essential. It clarifies id as 'The id/slug of the resource' and extended as 'Extended information to include in the response', adding meaning beyond the bare schema property names. The extended parameter could be more specific, but this is adequate for a simple optional modifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get the attached media item' plus the exact endpoint GET /comments/{id}/item. This clearly distinguishes it from siblings like get_comments_by_id (the comment itself) and get_comments_by_id_replies (replies).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the description: use this when you need the media item attached to a comment. However, it does not explicitly state when not to use it or mention alternatives such as get_comments_by_id or get_notes_by_id_item for analogous attachments.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_comments_by_id_likesARead-onlyIdempotent
Get all users who liked a comment.
GET /comments/{id}/likes
Args: id: The id/slug of the resource. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, so the description doesn't repeat those. It adds useful behavioral details about pagination: default limits, maximum caps, and clamping behavior. This goes beyond the annotations and helps the agent anticipate response size and pagination handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line purpose, the endpoint, and an Args list with clear parameter explanations. No redundant fluff, but the pagination details could be slightly more compact. Still, it is efficient and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET endpoint with an output schema present, the description covers the essential information: purpose, parameters, and pagination behavior. It doesn't mention any special cases like authentication or rate limits, but those are not required given the annotations and simplicity. It is sufficiently complete for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only titles ('Id', 'Page', 'Limit') with no descriptions, so schema coverage is 0%. The description compensates fully by explaining each parameter: id is the resource id/slug, page is the page number, and limit includes details on defaults, maximums, and clamping. This gives the agent complete understanding of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get all users who liked a comment.' It specifies the resource (comment by id) and the action (retrieving likers), and the endpoint URL reinforces the scope. It is easily distinguishable from sibling tools like get_comments_by_id_replies or get_comments_by_id_reactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any conditions, exclusions, or specific scenarios. The agent is left to infer usage from the name and endpoint alone, without contextual differentiation from similar comment-related endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_comments_by_id_reactionsBRead-onlyIdempotent
Get comment reactions.
GET /comments/{id}/reactions/
Args: id: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context such as rate limits, authentication requirements, or pagination behavior. Since the annotations carry the main safety info, a score of 3 is appropriate – the description doesn't contradict but also doesn't enrich beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with a one-line purpose statement and a clean list of arguments. It is front-loaded with the core purpose and uses a clear structure. There is no unnecessary filler or repetition. Every sentence earns its place, making it easy for an agent to quickly grasp the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema (as indicated by the context signal), the description doesn't need to detail return values. It covers the main parameters and the endpoint, but it lacks any mention of pagination semantics (e.g., maximum limit, page numbering starting at 1) or what 'extended' actually includes. It also doesn't address potential constraints or prerequisites. For a simple list endpoint, this is sufficient but not comprehensive, so a score of 3 is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain each parameter: id as a path parameter, extended as 'Extended information to include in the response', page as page number, and limit as items per page with the special value 'all'. This adds meaning beyond the schema, but the explanation of 'extended' is vague and doesn't specify what extended information is included. The other parameters are adequately described, so a baseline of 3 is fair.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get comment reactions' which clearly identifies the verb and resource. It is not a tautology and distinguishes the action from other comment-related tools. However, it doesn't explicitly differentiate from the sibling get_comments_by_id_reactions_summary, which might cause confusion about whether this returns a list or a summary. The endpoint path reinforces the resource but the purpose is still clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_comments_by_id_reactions_summary or get_comments_by_id_likes. It only describes the endpoint and parameters. There is no mention of use cases, prerequisites, or why an agent might choose this over related tools. This is a significant gap for a tool with many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_comments_by_id_reactions_summaryCRead-onlyIdempotent
Get reaction summary.
GET /comments/{id}/reactions/summary
Args: id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the HTTP GET method and path structure, which is signature information rather than behavioral detail, and offers no insight into aggregation behavior, reaction types, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three lines with no filler: the operation is front-loaded, the endpoint is explicit, and the argument list is minimal. Every element earns its place, and there is no redundant prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter idempotent GET with an output schema, the description is close to adequate, but it does not explain what a 'reaction summary' returns (e.g., counts per reaction type, user-specific data) and does not clarify how it differs from get_comments_by_id_reactions. This leaves an agent to infer the response semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for the undocumented 'id' parameter. It only says 'id: Path parameter,' which conveys the parameter location but not its semantic meaning or format. This is a minimal addition that does not fully compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('reaction summary'), and the endpoint path makes the comment context explicit. It suggests a distinction from the sibling get_comments_by_id_reactions by using 'summary', but does not detail what the summary includes, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_comments_by_id_reactions or get_comments_by_id_likes. It simply names the operation without any contextual conditions, 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.
get_comments_by_id_repliesARead-onlyIdempotent
Get replies for a comment.
GET /comments/{id}/replies
Args: id: The id/slug of the resource. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safe read behavior is covered. The description adds useful runtime behavior not in the annotations: default pagination limits, endpoint-varying maximums, and that excessive limits are clamped rather than rejected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the essential one-liner before the endpoint and args. The pagination note is slightly verbose but provides genuinely useful semantics rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only retrieval tool with an output schema and strong annotations, the description covers the main call semantics and pagination nuances. The only notable gap is that 'extended' is left too vague: it does not enumerate the possible extended fields or value formats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining all four parameters: id is the comment id/slug, extended adds response information, and page/limit, including clamping behavior, are described. The extended explanation is terse, but it is more than the bare schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get replies for a comment', a specific verb plus resource, and the endpoint GET /comments/{id}/replies confirms exactly what is retrieved. It is clearly distinct from sibling tools such as get_comments_by_id and create_comments_by_id_replies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly signals this is the read operation for comment replies, and the endpoint path reinforces when it applies: given a comment id, retrieve its replies. It does not list alternatives or exclusions, but for a straightforward GET the intended context is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_comments_recent_by_comment_type_by_typeBRead-onlyIdempotent
Get recently created comments.
GET /comments/recent/{comment_type}/{type}
Args: comment_type: Comment type filter. type: Media type filter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page, can be a number or the value all include_replies: Include replies inline alongside top level comments.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| extended | No | ||
| comment_type | Yes | ||
| include_replies | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds minor behavioral context such as inline replies and limit accepting the value 'all', but it omits pagination defaults, authentication needs, and error behavior. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized: a single opening sentence, the endpoint template, and a clean Args block. Each line adds information without repeating schema titles or boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has six parameters with zero schema descriptions, and the description leaves key invocation details unspecified: valid values for comment_type and type, what extended may request, and pagination behavior. The output schema and annotations cover return shape and safety, but not the domain-specific parameter values an agent needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It provides one-line glosses for all six parameters, including useful clarifications like limit accepting 'all' and include_replies being inline. However, several glosses are near-tautological and no allowed values or examples are given for comment_type, type, or extended.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation, 'Get recently created comments', and the endpoint template `/comments/recent/{comment_type}/{type}` makes the resource and filter dimensions clear. It is distinct from comment-related siblings such as trending, updates, and replies, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description neither mentions related comment endpoints nor provides exclusions, so an agent must infer the correct choice from the tool name and path alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_comments_trending_by_comment_type_by_typeBRead-onlyIdempotent
Get trending comments.
GET /comments/trending/{comment_type}/{type}
Args: comment_type: Comment type filter. type: Media type filter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page, can be a number or the value all include_replies: Include replies inline alongside top level comments.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| extended | No | ||
| comment_type | Yes | ||
| include_replies | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds limited behavioral context, such as 'trending' scope and reply inclusion behavior, but does not explain ordering, pagination defaults, or how 'extended' changes the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and scannable with an opening statement, the endpoint path, and a clean Args block. The endpoint path partially duplicates the tool name, but the format is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even with an output schema and safe-read annotations, the description leaves important gaps: no allowed values for the two required filters, no pagination defaults, and no differentiation from sibling comment endpoints. An agent cannot reliably construct a correct request from the text alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden for all six parameters. It gives one-line explanations for each parameter and helpfully notes that limit can be a number or 'all'. However, it does not define valid values for the required comment_type/type parameters or the extended parameter, leaving key choices ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource ('GET /comments/trending/{comment_type}/{type}') and says it returns trending comments. It is specific enough to recognize the tool's function, but it does not explicitly contrast it with similarly named siblings like get_comments_recent_by_comment_type_by_type or get_comments_updates_by_comment_type_by_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus the recent or updates variants, nor does it explain what values are appropriate for comment_type and type. An agent is left to infer usage context from the endpoint name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_comments_updates_by_comment_type_by_typeCRead-onlyIdempotent
Get recently updated comments.
GET /comments/updates/{comment_type}/{type}
Args: comment_type: Comment type filter. type: Media type filter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page, can be a number or the value all include_replies: Include replies inline alongside top level comments.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| extended | No | ||
| comment_type | Yes | ||
| include_replies | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as readOnly, idempotent, and non-destructive, so the safety profile is covered. However, the description adds no behavioral context beyond that—no mention of authentication requirements, rate limits, default pagination size, or what 'extended' actually includes. It is essentially a restatement of the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and structured with an endpoint line and an Args block. There is no fluff, and every line serves a purpose, though the endpoint line largely mirrors the tool name. It is concise but not particularly informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low schema coverage and the need to distinguish this from several similar comment list endpoints, the description is incomplete. It does not explain the semantics of the two required path parameters (comment_type, type), the behavior of 'extended', or how pagination interacts with the response. The output schema exists, so return format is not required, but the rest leaves several gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides a one-line gloss for each of the six parameters, which is helpful given the 0% schema description coverage. However, most are tautological ('comment_type: Comment type filter', 'page: The page number to retrieve'). The only substantive additions are the limit's flexibility ('can be a number or the value all') and the include_replies explanation. It does not compensate enough for the lack of schema descriptions, especially for 'extended'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get recently updated comments.' which clearly identifies the operation (get) and resource (recently updated comments). However, it does not explicitly differentiate from sibling tools like get_comments_recent_by_comment_type_by_type or get_comments_trending_by_comment_type_by_type, despite the 'updates' concept being distinct. The inclusion of the endpoint path adds a bit of clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this endpoint versus alternatives. The description neither mentions the difference between 'updates', 'recent', and 'trending' comment endpoints, nor any prerequisites or common use cases. An agent has 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.
get_countries_by_typeARead-onlyIdempotent
Get countries.
GET /countries/{type}
Args: type: Media type to return countries for.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description's 'GET' line is consistent with them. No contradictions and no additional side-effect or authorization context are disclosed, leaving an acceptable but minimal transparency picture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: one purpose sentence, the endpoint, and the argument definition. Every line contributes, with no filler or repetition of annotation data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool with an output schema, most required context is present. The significant gap is the lack of allowed values or an example for 'type', which is the only required input; without that, an agent may guess incorrectly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the 'type' parameter; it does, calling it a 'Media type to return countries for'. This adds meaning beyond the bare schema, but it omits the accepted media-type values (e.g., movies/shows), which are important since the schema defines no enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource ('Get countries') and an explicit endpoint 'GET /countries/{type}'. It names the single parameter's role, so the tool is distinguishable from sibling genre/language/certification endpoints, though it doesn't explicitly call out those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by 'type: Media type to return countries for' — an agent can infer that this tool is for fetching country lists for a media type. However, there is no explicit when-to-use guidance or mention of sibling tools such as get_genres_by_type or get_languages_by_type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_episodes_by_id_watchnow_by_countryBRead-onlyIdempotent
Get episode watch now sources.
GET /episodes/{id}/watchnow/{country}
Args: id: The Trakt ID of the resource to get the watch now sources of. country: 2 character country code. links: Query parameter. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| links | No | ||
| country | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds the endpoint and resource scope but does not disclose response behavior, pagination, auth needs, or rate limits. This is acceptable given the annotations, but the description itself adds limited behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the main purpose, followed by the endpoint and an Args list. There is minimal fluff, and the structure is easy to scan. The Args list is somewhat redundant with the input schema but useful because the schema lacks descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists and annotations cover the safety profile, so the description does not need to explain return values or read-only behavior. However, it leaves optional parameters underspecified and offers no guidance for choosing among sibling watch-now tools. It is adequate for a simple GET but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It provides real semantics for id ('Trakt ID of the resource') and country ('2 character country code'), but 'links: Query parameter' and 'extended: Extended information to include in the response' are vague and mostly restate the parameter names. It partially compensates for the schema gap but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: 'Get episode watch now sources.' It also shows the endpoint pattern GET /episodes/{id}/watchnow/{country}, which makes the scope obvious. It does not explicitly distinguish itself from sibling watch-now tools for movies/shows, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus similar sibling tools like get_shows_by_id_watchnow_by_country or get_movies_by_id_watchnow_by_country. The endpoint path implies the resource type, but no explicit when-to-use or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_genres_by_typeCRead-onlyIdempotent
Get genres.
GET /genres/{type}
Args: type: Media type to return genres for. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds minimal behavioral context beyond the GET endpoint; it does not explain what 'extended' information entails or any response quirks. No contradictions with annotations, but also little added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose. The 'GET /genres/{type}' line is redundant with the tool name and adds little, but overall it is efficient with no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two parameters, one required) and the presence of an output schema, the description is mostly complete. However, it omits valid values for 'type' (e.g., movies, shows) and fails to clarify what 'extended' controls, which could lead to incorrect usage. For a simple lookup tool, this is a moderate gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero property descriptions, so the description carries the burden. It provides one-line explanations for both parameters ('type' and 'extended'), but they are vague: 'Media type' does not enumerate valid values, and 'Extended information' is unspecific. It partially compensates for the schema gap but not thoroughly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Get genres') and the endpoint path. It is distinct enough from siblings like get_certifications_by_type, though it doesn't explicitly call out the difference. The name and description make the purpose obvious, but sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like get_certifications_by_type or list_certifications_movies. There is no mention of context, exclusions, or preferred scenarios, 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.
get_languages_by_typeBRead-onlyIdempotent
Get languages.
GET /languages/{type}
Args: type: Media type to return languages for.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds the endpoint path and parameter intent, but does not disclose response shape, pagination, or other behavioral details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and structured, with the endpoint and argument clearly separated. The opening 'Get languages' and the endpoint line are slightly redundant, but there is no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read-only tool with an output schema, the description is nearly adequate. The main gap is that it does not specify the allowed values for 'type', which an agent would need to reliably invoke the tool without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema itself provides no description for the 'type' parameter, so the description's statement that it is 'Media type to return languages for' adds real meaning. However, 'Media type' is vague and does not enumerate possible values or clarify format, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Get languages' via GET /languages/{type}. It is distinct from most siblings by name and endpoint, though it does not explicitly differentiate itself from closely related tools like get_certifications_by_type or get_countries_by_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It explains the 'type' parameter at a basic level but does not mention use cases, exclusions, or relationships to similar language/country/genre endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lists_by_idCRead-onlyIdempotent
Get list.
GET /lists/{id}
Args: id: The id/slug of the resource. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. However, the description adds no behavioral context such as pagination behavior, response size, rate limits, or how the 'extended' parameter affects the result. It is purely a parameter listing with no disclosure of what the tool does at runtime.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The argument list is organized with clear line breaks and the endpoint is front-loaded. However, the repeated 'Query parameter.' entries are low-signal filler that inflate the description without helping the agent, and the watchnow explanation is verbose but valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parametersebb, no schema descriptions, and a rich output schema, the description leaves critical gaps: it does not clarify what the tool returns, what values 'extended' accepts, or the accepted format for filter parameters (e.g., comma-separated lists, date format). An agent cannot reliably construct a correct request from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description carries the full burden. While watchnow has detailed allowed values and ignore_* parameters have short meaningful explanations, nine parameters (genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, certifications) are described only as 'Query parameter.' – a tautology that adds no semantic value. The description only meaningfully covers about a third of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says only 'Get list.' and 'GET /lists/{id}', which restates the tool name without explaining what the list represents or what the response contains. It does not distinguish this tool from sibling tools like get_lists_by_id_comments_by_sort or get_lists_by_id_items_movie, and the presence of item-filtering parameters (genres, years, etc.) makes it ambiguous whether this returns list metadata or list items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description contains only parameter names and placeholder text like 'Query parameter.' with no examples, prerequisites, or indication of which scenarios call for this endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lists_by_id_comments_by_sortBRead-onlyIdempotent
Get all list comments.
GET /lists/{id}/comments/{sort}
Args: id: The id/slug of the resource. sort: Comment sort option. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds parameter semantics but does not disclose pagination defaults, sort options, or response format. It adds some value but not rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of a single sentence and a parameter list. It is well-structured and front-loaded with the core action, with no unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and an output schema, the description covers the basics but lacks specifics like accepted sort values, pagination behavior, or any differentiation from similar tools. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides brief but meaningful explanations for each parameter (e.g., id is 'The id/slug of the resource', limit is 'can be a number or the value all'). Since the schema has no descriptions, this adds value beyond the schema, though sort and extended remain vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Get all list comments.' The endpoint path reinforces that this is for lists. However, it does not explicitly distinguish from sibling comment tools (e.g., get_movies_by_id_comments_by_sort), though the name and path make it clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like get_movies_by_id_comments_by_sort or get_users_by_id_lists_by_list_id_comments_by_sort. The description does not mention selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lists_by_id_items_by_type_by_sort_by_by_sort_howCRead-onlyIdempotent
Get items on a list.
GET /lists/{id}/items/{type}/{sort_by}/{sort_how}
Args: id: The id/slug of the resource. type: List item type filter. sort_by: Sort by a specific property. sort_how: Sort direction. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| sort_by | Yes | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | Yes | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, which cover the core safety behavior. The description adds the endpoint path and parameter list but no additional behavioral context (e.g., response format, pagination details, or error handling). It does not contradict annotations, and the minimal additional info is acceptable given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise in overall length, but it includes redundant placeholders like 'Query parameter' for many parameters, which add no value. The structure is a simple list, and the watchnow explanation is detailed but necessary. It is not excessively verbose, but the lack of useful content for many parameters makes it mediocre.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 20 parameters and an output schema present, the description is incomplete. It does not explain filter parameter formats, required vs optional usage, or authentication prerequisites. While the output schema covers return values, the parameter semantics are largely unexplained, leaving agents unable to construct valid requests without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It provides meaningful detail only for 'watchnow' (with explicit allowed values) and a terse note for 'id'. Most other parameters are described as 'Query parameter' with no explanation of format or meaning (e.g., genres, years, start_date). This is insufficient for an agent to correctly use the tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get items on a list', which identifies the verb and resource. It is specific about the operation. However, it does not distinguish this from sibling tools like get_lists_by_id_items_movie or get_lists_by_id_items_show, which also retrieve list items but with a fixed type. The dynamic 'type' parameter is implied but not contrasted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many sibling list-item tools. The description does not mention alternatives or conditions (e.g., 'use this when you need to filter by type dynamically'). It only lists parameters without any contextual direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lists_by_id_items_movieCRead-onlyIdempotent
Get movie list items.
GET /lists/{id}/items/movie
Args: id: The id/slug of the resource. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already disclose that this is a safe read operation. The description adds no behavioral context beyond that—no mention of pagination, return format, or any operational quirks. It essentially repeats parameter names with minimal explanation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and repetitive, listing 19 parameters with terse labels that often just restate the parameter name. While it is front-loaded with the purpose, the long parameter list is not concise and many entries are uninformative. A more streamlined explanation would be more effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 19 parameters, the description is incomplete. It does not explain what the response contains, how filtering works, or what 'extended' options are available. It also fails to clarify the meaning of the filtering parameters. Given the tool's complexity, a complete description should provide at least an overview of expected output and parameter usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it fails. Many parameters are described only as 'Query parameter' (e.g., genres, subgenres, years), adding no meaning beyond the schema. The watchnow parameter receives a detailed explanation of valid values, which is helpful, but this is the exception. Most parameters lack functional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get movie list items.' and includes the endpoint GET /lists/{id}/items/movie, making the purpose clear. However, it does not explicitly differentiate from sibling tools like get_lists_by_id_items_show or get_lists_by_id_items_movie_show, relying on the name to convey the movie-specific scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that it is for movie items only or how it differs from other list-item retrieval tools. No exclusions or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lists_by_id_items_movie_showBRead-onlyIdempotent
Get media list items.
GET /lists/{id}/items/movie,show
Args: id: The id/slug of the resource. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful pagination and watchnow filter semantics, but it does not disclose auth requirements, rate limits, or any notable response 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The endpoint is front-loaded and the parameter list is scannable. The length is justified by 19 parameters, though several placeholder lines like 'genres: Query parameter' add little value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return shape and the annotations cover safety, but for a 19-parameter endpoint the description still lacks value enums, date formats, sort field options, and sibling-selection guidance. It is minimally viable but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the Args block carries the documentation burden. It gives real meaning to id, sort, watchnow, ignore_* flags, page, and limit, but many parameters are only described as 'Query parameter' with no format, allowed values, or examples, leaving meaningful gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource ('Get media list items') and gives the exact endpoint path, so the operation is identifiable. However, it does not explicitly call out how this differs from the movie-only, show-only, or episode/season sibling tools beyond the endpoint suffix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many sibling list-item tools. No alternatives, exclusions, or selection criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lists_by_id_items_movie_show_episode_seasonCRead-onlyIdempotent
Get all list items.
GET /lists/{id}/items/movie,show,episode,season
Args: id: The id/slug of the resource. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with the annotations: readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so nothing contradicts the safety profile. It adds some behavioral context through the parameter list, but does not disclose aspects like default pagination, response shape, or authentication expectations. Since the annotations already cover the safe read-only nature, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The structure is clear and front-loaded with the core action, followed by a compact arg list. But the description is bloated by repeated, low-value "Query parameter" lines and an endpoint line that largely echoes the tool name. It is organized, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 19-parameter tool with zero schema descriptions, this description leaves major gaps: no format for date/filter parameters, no sort_by or extended value options, no pagination defaults, and no mention of authentication. The read-only annotations cover safety, but the operational details needed to reliably construct a correct request are incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must carry parameter meaning, and it does partially: id is identified as "id/slug", watchnow has explicit allowed values, limit is documented as a number or "all", and the ignore_* flags are explained. However, eight parameters are dismissed as merely "Query parameter", adding no real meaning beyond their titles, and sort_by/extended/etc. lack accepted value formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line states an explicit verb and resource: "Get all list items." The endpoint path clarifies the scope to a specific list's movie/show/episode/season items. However, it does not explicitly distinguish itself from very similar siblings like get_lists_by_id_items_movie_show, so it relies on the name and path to carry differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this tool over the many closely related siblings, such as get_lists_by_id_items_movie_show or get_lists_by_id_items_by_type_by_sort_by_by_sort_how. There are no exclusions, prerequisites, or alternative-selection hints. The intended context is only weakly implied by the endpoint path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lists_by_id_items_showCRead-onlyIdempotent
Get show list items.
GET /lists/{id}/items/show
Args: id: The id/slug of the resource. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds some behavioral detail, like the allowed values for 'watchnow' and pagination parameters, but does not disclose other behavior such as default sorting, response format, or edge cases. It provides minimal extra context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a parameter list, which is organized but verbose. The opening sentence is concise, but the parameter list repeats the endpoint and includes many terse entries. It is not excessively long, but could be more compact and front-load the most important usage details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 19 parameters, an output schema, and no schema descriptions, the tool needs thorough parameter documentation. The description fails to specify formats for many filters (e.g., 'years', 'genres', 'ratings') and does not explain the interaction between filters or pagination defaults. An agent would struggle to construct correct requests for most optional parameters, making this incomplete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must compensate, and it does list all parameters with brief explanations. However, many are just 'Query parameter' without format or allowed values, which is unhelpful. The 'watchnow' parameter gets detailed enumeration, and 'id', 'extended', 'sort_by', 'sort_how', 'page', 'limit', and the ignore_* flags have some clarification. Overall, it adds some meaning but not enough for all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Get show list items' and includes the endpoint path, which specifies the resource. It is distinct from sibling tools like get_lists_by_id_items_movie by the type 'show', so an agent can infer the scope. However, it doesn't explicitly contrast with the generic get_lists_by_id_items_by_type tool, so it slightly lacks differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool instead of alternatives such as get_lists_by_id_items_movie or get_lists_by_id_items_by_type_by_sort_by_by_sort_how. The description only lists parameters without explaining the intended use case or exclusions. An agent would have to infer from the name that this is for show items specifically.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lists_by_id_likesARead-onlyIdempotent
Get all users who liked a list.
GET /lists/{id}/likes
Args: id: The id/slug of the resource. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, open-world, and non-destructive. The description adds useful pagination behavior details (default limits, clamping of limit values) and the 'extended' parameter's purpose, which complements the annotations. However, it does not disclose the response format or potential errors, but given the annotations cover safety, this is adequate but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise with a clear opening sentence followed by an endpoint and parameter list. It front-loads the core purpose and uses structured formatting. The pagination explanation is somewhat verbose but informative, earning it a slightly above-average score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a simple flat structure and an output schema exists (so return values are documented), the description covers the essential purpose and parameters. It includes important pagination behavior. However, the 'extended' parameter remains ambiguous, and there is no mention of sorting or authentication requirements, which could be relevant. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no descriptions for the parameters. The description partially compensates by explaining 'page' as 'The page number to retrieve' and 'limit' as 'The number of items per page' with default and maximum behavior. However, 'id' and 'extended' are only briefly described; 'extended' lacks clarity on what extended information is included. The description adds value but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear, specific statement: 'Get all users who liked a list.' This directly identifies the resource (a list's likes) and the action (retrieving users). It clearly distinguishes from siblings like get_users_by_id_lists_by_list_id_likes which gets the likes from a user's perspective, and get_lists_by_id which gets the list itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides the HTTP endpoint and lists the parameters, which gives context on how to use the tool. However, it does not explicitly state when to use this tool versus alternatives (e.g., get_comments_by_id_likes or get_users_by_id_likes_by_type) or any conditions for when not to use it. The 'Args' section implies that these are the parameters, but no guidance on selection is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lists_popular_by_typeBRead-onlyIdempotent
Get popular lists.
GET /lists/popular/{type}
Args: type: List type filter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, non-destructive, and idempotent. The description adds valuable behavioral context: pagination defaults, clamping of limit values, and detailed watchnow enum-like values. This goes beyond the annotations and does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized as a clear list of arguments with the purpose front-loaded. However, it is verbose, repeating 'Query parameter.' for many entries and having inconsistent indentation in the watchnow section. It could be more concise without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 14 parameters and only 1 required, the description should clarify valid values for 'type', the format for filter parameters like years and ratings, and any interaction between filters. It does not, leaving many parameters ambiguous. The presence of an output schema covers return values, but the input space is underspecified 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It provides detailed semantics for 'limit' and 'watchnow', but many parameters (genres, years, ratings, etc.) are only labeled 'Query parameter.' with no format, allowed values, or examples. 'type' is vague ('List type filter'). This is partial compensation, hence a 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Get') and resource ('popular lists') with the endpoint path. It distinguishes the tool as a fetch for popular lists, but does not explicitly contrast with sibling tools like get_lists_trending_by_type or list_lists_popular. The name itself is self-explanatory, so this is a 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention trending vs. popular, or the relationship to list_lists_popular. There are no exclusions or conditions given, so an agent cannot determine when this is the correct choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_lists_trending_by_typeBRead-onlyIdempotent
Get trending lists.
GET /lists/trending/{type}
Args: type: List type filter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the bar for extra behavioral context is lower. The description adds genuinely useful behavior around pagination: default limits, endpoint maximums, clamping of high values, and behavior when omitted. The watchnow value enumeration also adds operational detail beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens efficiently with the purpose and endpoint, followed by an organized Args block. The watchnow section is detailed and useful, but the repeated 'Query parameter.' entries add bulk without information, making the description longer than its actual insight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 14 parameters, no schema descriptions, and many filter parameters, this description is not complete enough for reliable invocation. It never explains what values 'type' accepts, nor the syntax for dates, genres, ratings, runtimes, or countries. The output schema exists, but the missing input semantics are a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the full parameter-semantics burden. It provides meaningful detail for page, limit, extended, and watchnow, but the remaining ten parameters are dismissed as 'Query parameter' with no format, allowed values, or filtering behavior, leaving an agent unable to construct valid queries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Get trending lists' with the endpoint GET /lists/trending/{type}. The {type} path variable conveys that this is a type-filtered variant, though it does not explicitly name or distinguish itself from the sibling list_lists_trending.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as list_lists_trending, get_lists_popular_by_type, or list_lists_popular. An agent must infer the intended usage solely from the tool name and endpoint path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_idARead-onlyIdempotent
Get a movie.
GET /movies/{id}
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is clear. The description adds little behavioral context beyond the GET method and the id/extended parameters, but it does not contradict the annotations, and the read-only nature is consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and well structured: a one-line purpose, the endpoint, and an Args block. Every sentence earns its place, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple resource-fetch tool, the description is adequate, especially with an output schema and strong annotations present. The only notable gap is the under-specified 'extended' parameter, which could matter for an agent choosing how to invoke the tool, but it is optional and defaulted to null in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must carry the parameter documentation. It does add useful semantics: id is described as 'the id/slug of the resource' and extended as 'extended information to include in the response.' However, 'extended' remains vague with no accepted values or format guidance, so the compensation is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Get a movie,' a clear verb-plus-resource statement, and the explicit endpoint 'GET /movies/{id}' confirms the operation. This distinguishes it from the many sibling movie sub-resources, which are about ratings, aliases, lists, and similar, rather than the movie itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied by 'Get a movie' and the endpoint, but there is no explicit guidance about when to prefer this over alternative movie-related endpoints or list-level tools. No exclusions or alternative tool mentions are provided, so the agent must infer usage from the name and path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_aliasesBRead-onlyIdempotent
Get all movie aliases.
GET /movies/{id}/aliases
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds no behavioral detail beyond the endpoint path and parameter; it does not mention response behavior, pagination, or access requirements. It does not contradict the annotations, but it also does not enrich them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise and front-loaded. The purpose appears in the first sentence, and the endpoint plus Args section add necessary call details without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter, read-only endpoint with an output schema and safety annotations, the description is nearly complete. It gives the endpoint, the parameter semantics, and the purpose. It lacks only usage context and a concrete example, which are minor for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It minimally clarifies that 'id' accepts either an ID or slug, which the bare schema does not convey. However, 'the resource' is vague, and there is no example or format detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get all movie aliases.' It clearly identifies the operation and the target (a movie by ID/slug), and is distinguishable from the sibling get_shows_by_id_aliases by the explicit 'movie' scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as get_shows_by_id_aliases or other alias-related endpoints. There are no prerequisites, exclusions, or context cues beyond the name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_comments_by_sortBRead-onlyIdempotent
Get all movie comments.
GET /movies/{id}/comments/{sort}
Args: id: The id/slug of the resource. sort: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page, can be a number or the value all language: Filter comments to a 2 character language code
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| extended | No | ||
| language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to re-state safety. The description adds the path and parameter list but no additional behavioral context such as default pagination behavior or what 'extended' modifies. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose line, followed by a neat Args list. Every line has a specific role, and there is no extraneous wording. The only weak point is the low-value 'sort: Path parameter' entry, but overall it is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, and annotations cover safety, so the description does not need to explain return values or side effects. However, it leaves a significant gap around the `sort` parameter's accepted values and what `extended` actually includes, which an agent needs to invoke the tool correctly. For a read-only endpoint with pagination, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the full burden of explaining parameters. It provides some meaning for all six args, but 'sort: Path parameter' is tautological and does not specify allowed sort values (e.g., newest, oldest, top). 'extended: Extended information to include' is also vague. It is better than nothing but insufficient for critical parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get all movie comments' with a specific verb and resource, and the path 'GET /movies/{id}/comments/{sort}' makes it clear this is the movie-comments endpoint. It is distinguishable from sibling comment endpoints (e.g., shows, lists, users) by the explicit 'movie' scope, though it does not elaborate on the meaning of 'all' given pagination.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the name and resource ('movie comments'), but the description offers no explicit guidance on when to choose this tool over the many sibling comment endpoints, nor does it mention any exclusions or alternatives. An agent can infer basic usage but not the sort options or when other comment tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_lists_by_type_by_sortBRead-onlyIdempotent
Get lists containing this movie.
GET /movies/{id}/lists/{type}/{sort}
Args: id: The id/slug of the resource. sort: Path parameter. type: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| type | Yes | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and non-destructive behavior. The description adds useful runtime behavior about pagination: default limits, endpoint maximums, and clamping of higher limit values. This goes beyond annotations and helps an agent predict response pagination. It does not mention authentication or rate limits, but with the safety profile covered, this is a reasonable contribution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose sentence, followed by a parameter list. The endpoint line is useful but somewhat redundant with the tool name. The limit explanation is detailed but not excessive. Overall it is efficient and readable, though the parameter list itself could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters, three required, and zero schema descriptions, the description is not complete enough to invoke the tool reliably. It explains pagination but not the valid values for 'type' and 'sort', which are essential path parameters. The presence of an output schema does not mitigate the missing request-construction information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'limit' parameter in detail (defaults, maximums, clamping) and notes 'id' is an id/slug. However, the two required path parameters 'sort' and 'type' are only labeled as 'Path parameter' with no allowed values or meaning, and 'extended' is left as a vague placeholder. This leaves essential parameters semantically under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get lists containing this movie,' which names a specific verb and resource. It distinguishes the tool from similar siblings like get_shows_by_id_lists_by_type_by_sort by scoping it to movies. However, it does not explicitly contrast with any sibling or mention what 'type' and 'sort' mean, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description only says what it does and lists parameters; it does not mention when to choose it over list retrieval endpoints for shows or people, nor any exclusions or prerequisites. Usage is only implied by 'containing this movie.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_peopleARead-onlyIdempotent
Get all people for a movie.
GET /movies/{id}/people
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, side-effect-free read. The description adds the resource-level detail (returns people for a movie) and mentions the 'extended' parameter as optional, but does not disclose any rate limits, authentication requirements, or specifics about what 'extended' returns. With annotations covering 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise and well-structured. It leads with the purpose, then gives the HTTP endpoint, and then lists the arguments with terse but sufficient explanations. There is no fluff or redundant text; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool has an output schema (so return details are not needed), the description omits crucial context about the 'extended' parameter (what it expands) and does not mention pagination or auth requirements. Given the small number of parameters and the existence of an output schema, the description is adequate but not thorough. The ambiguity around 'extended' is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must explain the parameters. It does: 'id: The id/slug of the resource' and 'extended: Extended information to include in the response.' This gives basic meaning but is vague, especially for 'extended,' which could be any set of additional fields. It does not state valid values or that 'extended' is optional beyond the default null, though that is implied by the schema. The description adds value beyond the schema but leaves room for interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get all people for a movie,' which clearly states the verb (get), the resource (all people), and the scope (for a movie). It also provides the explicit HTTP endpoint, which removes any ambiguity. This distinguishes it from sibling tools like get_shows_by_id_people (people for shows) and get_people_by_id_movies (movies for a person), even without explicitly naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over alternatives. It only states that it retrieves people for a movie, which implies it's for movies rather than shows, but does not explicitly say 'use this for movies, not shows' or mention any alternative tools. There is no exclusionary or comparative language.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_ratingsARead-onlyIdempotent
Get movie ratings.
GET /movies/{id}/ratings
Args:
id: The id/slug of the resource.
extended: Use all to include ratings from supported external sources.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the operation is read-only, idempotent, and non-destructive, so the description does not need to restate that. It adds useful context that `extended=all` includes ratings from external sources, but it does not disclose other behavioral details such as default response shape or additional query behavior, though the output schema helps fill that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and includes only the endpoint plus the two parameters. Every line earns its place without unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only endpoint, the description plus annotations and output schema cover what an agent needs: the operation, the required resource identifier, and the one meaningful option for external ratings. It does not explain response values, but the output schema already exists to provide that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only provides types and defaults, but the description's Args section adds meaning: `id` is the resource id/slug and `extended` controls whether external ratings are included. This compensates well for the 0% schema description coverage, even if it does not enumerate every possible value for `extended`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Get movie ratings' and shows the exact endpoint GET /movies/{id}/ratings, making the verb and resource unmistakable. It is clear and specific, though it does not explicitly contrast itself with sibling tools like get_shows_by_id_ratings or get_users_by_id_ratings, relying on the resource in the name for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The tool's purpose is clear enough that an agent can infer when to use it—when movie ratings are needed. However, there is no explicit guidance about when not to use it or which alternative to prefer, so the usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_releases_by_countryARead-onlyIdempotent
Get all movie releases.
GET /movies/{id}/releases/{country}
Args: id: The id/slug of the resource. country: 2 character country code.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| country | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered and nothing in the description contradicts it. The description adds only the GET request shape and path, not deeper behavioral context like auth requirements, rate limits, or pagination, which is acceptable but not additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line purpose, the exact endpoint, and an Args list. Every element earns its place, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with a documented output schema, strong annotations, and only two described parameters, the description is largely complete. It lacks usage context or examples, but the endpoint, parameters, and nested-id/country scoping are clear enough to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden for parameter meaning. It usefully explains that id is 'the id/slug of the resource' and that country is a '2 character country code', going beyond the bare 'string' schema. It could be stronger with an example or explicit ISO country code standard, but it is sufficient for these two scalar parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Get all movie releases') and includes the exact endpoint 'GET /movies/{id}/releases/{country}', which clarifies the scope. It does not quite reach 5 because the plain-language summary does not explicitly say the releases are scoped to a single movie and country, leaving that to the endpoint/args.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus sibling tools such as get_movies_by_id_watchnow_by_country or get_movies_by_id_ratings. The description simply states what it fetches, with no context about prerequisites, alternatives, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_sentimentsCRead-onlyIdempotent
Get movie sentiments.
GET /movies/{id}/sentiments
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is known. The description adds nothing beyond 'Get movie sentiments' — no mention of what sentiment data is returned or controlled, so it contributes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise and front-loaded with the api verb and resource. The structure is clean, though it errs on the side of under-specification rather than genuine leanness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and a present output schema, the tool is simple enough, but the description is thin — it never explains what 'sentiments' means or what the response contains. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds one useful clarification — that id is 'the id/slug of the resource' — but offers nothing more, leaving the param only marginally better documented than the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource pair ('Get movie sentiments') and includes the endpoint path. It is distinguishable from siblings like get_shows_by_id_sentiments by the movie-specific resource, though it doesn't explicitly differentiate in prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites, no exclusions. An agent gets no help deciding between this and the analogous shows/shows-by-id sentiment endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_statsBRead-onlyIdempotent
Get movie stats.
GET /movies/{id}/stats
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is well covered. The description adds only the endpoint path and parameter note, with no extra behavioral context such as authentication or data freshness. This is adequate given the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, containing the purpose, endpoint, and a parameter explanation with zero filler. The structure is front-loaded with the core action and cleanly separates the argument documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and an output schema (not shown), so return format is presumably covered by that schema. However, 'stats' remains ambiguous, and no information is given about what statistics are included or any prerequisites. The description is adequate for basic invocation but lacks clarity on the data being fetched.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description explicitly states that 'id' is 'The id/slug of the resource.' This adds semantic meaning beyond the schema's bare type definition and clarifies the acceptable format for the identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb and resource explicitly ('Get movie stats'), but 'stats' is vague and does not specify what statistics are returned. There is a sibling get_shows_by_id_stats, so the resource distinction is present, but the meaning of 'stats' (e.g., ratings distribution, watch counts) is left unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus related siblings like get_movies_by_id_ratings, get_movies_by_id_watching, or get_shows_by_id_stats. No conditions, exclusions, or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_studiosARead-onlyIdempotent
Get movie studios.
GET /movies/{id}/studios
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is established. The description adds no behavioral context beyond repeating 'Get' and the GET endpoint; it does not mention pagination, auth, or any other runtime behavior. There is no contradiction, but also no added transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely compact: a one-line purpose, the endpoint, and a single parameter note. It front-loads the core meaning and contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read operation with output schema and strong annotations, this is nearly adequate. The remaining gap is that it gives no context about what a studio represents or any usage boundaries, though these are not critical for a basic GET.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only says the id is a string, and schema description coverage is 0%. The description compensates by stating that id is 'The id/slug of the resource', which adds the meaningful fact that slugs are accepted and ties the parameter to the movie resource.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get movie studios.' The endpoint 'GET /movies/{id}/studios' makes the target resource unambiguous, and the mention of 'movie' distinguishes it from the sibling get_shows_by_id_studios.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource name and endpoint: call this when you need the studios associated with a specific movie. However, there is no explicit statement about when to prefer this over alternatives, nor any mention of when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_translationsARead-onlyIdempotent
Get all movie translations.
GET /movies/{id}/translations
Args: id: The id/slug of the resource. language: Filter translations to a 2 character language code
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the description does not need to repeat that. It adds useful filter semantics for the language parameter, but does not disclose pagination or return-value behavior beyond what the output schema likely covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the primary purpose, and includes only the endpoint and parameter explanations. Every sentence earns its place with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only endpoint with an output schema and strong annotations, the description is nearly complete. It lacks an explicit note that language is optional and does not position this against sibling translation tools, but it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description fully compensates: it explains id as 'The id/slug of the resource' and language as a '2 character language code' filter. This adds meaningful usage detail that the bare schema types do not provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states exactly what the tool does: 'Get all movie translations' with a specific resource (movies) and endpoint. It is clearly distinguishable from sibling translation endpoints for shows and episodes because of the explicit movie resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like get_shows_by_id_translations or get_shows_by_id_seasons_by_season_translations. The resource is implied by the name, but the description does not state selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_videosBRead-onlyIdempotent
Get all videos.
GET /movies/{id}/videos
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the safety profile is covered. The description adds no further behavioral context such as pagination, media types, or response ordering. It essentially restates the GET action without enriching it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short elements: action summary, endpoint, and single parameter explanation. No filler or duplicated schema content. It is front-loaded and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one required string parameter, an output schema present, and annotations covering read-only/idempotent behavior, the core call contract is complete. The lack of substitution guidance and video-list specifics is partially mitigated by the endpoint and schema. It is sufficient for a simple GET resource tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description provides 'id: The id/slug of the resource', adding format semantics beyond the bare string type. It does not explicitly state that the id belongs to a movie, though the endpoint path makes this recoverable. For a single-param tool this is adequate, not rich.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Get') and resource ('all videos'), and the embedded endpoint clarifies that this is scoped to /movies/{id}/videos. This distinguishes it from show-video siblings such as get_shows_by_id_videos. It is clear, though terse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to call this tool instead of related video endpoints. It does not flag that show or episode video lookups should use get_shows_by_id_videos or the episode video siblings. Usage must be inferred entirely from the endpoint path and tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_watchingBRead-onlyIdempotent
Get users watching right now.
GET /movies/{id}/watching
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior; the description adds the 'right now' live-snapshot context. It does not mention auth, rate limits, or response shape, but the output schema and annotations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with purpose, and uses a clear Args block. The endpoint line is slightly redundant with the tool name but adds useful URL context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read endpoint with output schema and rich annotations, the definition is mostly adequate. It falls short on parameter detail and alternative routing, so an agent may not know exactly what to pass for extended or when to choose a sibling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the Args section must carry the parameter docs. It usefully notes id is an id/slug, but 'extended: Extended information to include in the response' is a near-tautology and gives no hint of valid values or effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a clear action ('Get users watching right now') and the endpoint path pins the resource to a specific movie. It doesn't explicitly name sibling alternatives, but the movies path separates it from shows/users watching endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose line and URL imply this is for retrieving current watchers of a given movie, but there is no explicit when-to-use guidance or mention of alternatives such as get_shows_by_id_watching or get_users_by_id_watching. An agent must infer the appropriate context from the endpoint name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_watchnow_by_countryCRead-onlyIdempotent
Get movie watch now sources.
GET /movies/{id}/watchnow/{country}
Args: id: The id/slug of the resource. country: 2 character country code. links: Query parameter. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| links | No | ||
| country | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, and non-destructive behavior. The description adds the HTTP GET endpoint and hints at query parameter usage, but does not disclose response shape, pagination, or authentication requirements. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short, but the Args block largely duplicates the schema. The endpoint path is already inferable from the tool nameements. Each parameter line does not earn its place, especially the meaningless links/extended entries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters and 0% schema coverage, this description is incomplete. It does not clarify what 'watch now sources' includes, what values are valid for links and extended, or how the country parameter interacts with the response. The output schema exists but is not shown, so the description cannot lean on it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries full responsibility. It usefully explains id ('id/slug of the resource') and country ('2 character country code'), but links and extended are merely repeated names with vacuous descriptions ('Query parameter', 'Extended information to include in the response').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Get movie watch now sources') and identifies the resource (movie). However, it does not differentiate from sibling tools like get_shows_by_id_watchnow_by_country or get_watchnow_sources_by_country_code; only the tool name makes the movie/country scope explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention that this is a per-movie, per-country lookup, nor does it compare with the many similar watchnow siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_by_id_watchnow_justwatch_links_by_countryBRead-onlyIdempotent
Get movie JustWatch links.
GET /movies/{id}/watchnow/justwatch_links/{country}
Args: country: Path parameter. id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| country | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered by structured metadata. The description adds the concrete endpoint shape and the fact that id is a slug, which is useful, but it does not disclose what the response represents or any edge conditions around country values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the core purpose in the first sentence and the endpoint immediately after. The Args section is compact, though 'Path parameter' is mostly redundant with the endpoint template and could be replaced with more valuable format details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple two-parameter GET with an output schema and read-only annotations, so much is already covered structurally. However, the description fails to explain what a JustWatch link is, how country should be formatted, or how this differs from the sibling watch-now endpoint, leaving the agent with incomplete selection and invocation information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it provides only minimal parameter information: country is a 'path parameter' and id is 'the id/slug of the resource.' The country parameter's expected format is unspecified, and no additional meaning is given beyond the schema's type and requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a clear action and resource: 'Get movie JustWatch links,' and the included endpoint pattern makes the exact scope (per-movie, per-country) explicit. It does not, however, explicitly distinguish this from the closely related sibling get_movies_by_id_watchnow_by_country, leaving some ambiguity about what 'JustWatch links' means versus general watch-now information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to choose this tool over alternatives, nor does it mention any related siblings such as get_movies_by_id_watchnow_by_country or the shows/episodes equivalents. An agent is left to infer from the name and endpoint alone. No exclusions, prerequisites, or context-specific use cases are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_collected_by_periodARead-onlyIdempotent
Get the most collected movies.
GET /movies/collected/{period}
Args: period: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| period | Yes | ||
| extended | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior. The description adds genuinely useful behavioral context beyond the annotations, especially the pagination behavior: defaults vary, low default limits, and higher limits are clamped rather than rejected. It also discloses the ignore_* filter semantics, which helps an agent understand how results may be narrowed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose. The Args list is orderly and each parameter has a brief line. The endpoint line repeats the tool name somewhat, but overall the description earns its length without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with 0% schema coverage, the description leaves critical gaps. The required period parameter lacks any guidance on accepted values, and extended is undefined. An agent could not confidently construct a correct call purely from this description. The output schema exists, so return format is covered, but input semantics are not complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists all seven parameters and gives meaningful details for page and limit, including clamping behavior. However, the required 'period' parameter is only described as 'Path parameter' with no valid values or format, and 'extended' is vague ('Extended information to include'), leaving important parameter semantics underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Get the most collected movies.' combined with the endpoint 'GET /movies/collected/{period}'. This makes the tool's purpose identifiable and distinguishes it from movie 'watched', 'favorited', or 'played' period endpoints, though it does not explicitly name any sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by 'most collected movies' and the period-based endpoint, but the description never explicitly states when to use this tool versus related endpoints like get_movies_watched_by_period or get_shows_collected_by_period. An agent can infer the use case, but there is no direct guidance or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_favorited_by_periodARead-onlyIdempotent
Get the most favorited movies.
GET /movies/favorited/{period}
Args: period: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| period | Yes | ||
| extended | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuine behavioral detail: pagination defaults vary by endpoint, limits are clamped rather than rejected, and omitting pagination applies a low default. This is beyond what the schema or annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-line purpose, the endpoint, and a compact parameter list. The pagination note is valuable and earns its place, though 'period: Path parameter' is tautological and the line break between retrieve and limit is a minor formatting flaw.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter endpoint, the output schema and annotations cover safety and return shape, and most parameters are described. However, the required period values and extended options remain undefined, so an agent cannot be fully confident about constructing a correct request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must carry the parameter documentation. It explains the flags and gives unusually specific pagination behavior for limit, but the required period parameter is only labeled 'Path parameter' and extended only says it adds information, leaving valid values unknown.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get the most favorited movies,' and the endpoint GET /movies/favorited/{period} reinforces the scope. This distinguishes it from sibling endpoints like get_movies_watched_by_period or get_movies_collected_by_period by the 'favorited' modifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to choose this tool over the many related by_period endpoints, nor any exclusions or alternative mentions. The purpose implies the general use case, but the description does not help an agent decide between this and get_movies_watched_by_period/list_movies_* siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_played_by_periodBRead-onlyIdempotent
Get the most played movies.
GET /movies/played/{period}
Args: period: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| period | Yes | ||
| extended | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as read-only, idempotent, and non-destructive. The description adds useful behavioral context by explaining pagination defaults, limit clamping, and the ignore filters, which goes beyond what the annotations and bare schema provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with a clear one-line summary and then uses compact bullet-style parameter details. The pagination paragraph is slightly verbose but conveys important clamping/default behavior, so the structure is efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The required period parameter is not given any concrete value domain, and extended information is undefined, so an agent cannot confidently construct a request. The output schema covers return structure, but the missing period semantics and lack of guidance about similar endpoints leave important gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All seven parameters are named with one-line explanations, which is valuable since the schema provides no parameter descriptions. However, 'period' is only described as a path parameter and 'extended' as 'extended information,' leaving the agent without concrete allowed values or meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'Get the most played movies.' The endpoint path narrows this to a period, which helps differentiate it from related sibling endpoints such as get_movies_collected_by_period and get_movies_watched_by_period, though it does not explicitly state those differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this endpoint versus the many similar sibling tools like get_movies_watched_by_period or get_movies_played_by_period's show counterpart. The intended use is only implied by the summary, and the meaning of 'played' versus 'watched' is not clarified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_streaming_by_periodCRead-onlyIdempotent
Get streaming movies.
GET /movies/streaming/{period}
Args: period: Path parameter. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| period | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral detail about pagination: omitted limits default low, and provided limits are clamped rather than rejected. It does not cover rate limits, auth requirements, or behavior for invalid filter values, but the annotation safety profile lowers the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a structured, endpoint-first parameter list, and most entries earn their place. It is not overly long for 17 parameters, but the repeated 'Query parameter' phrasing is filler and the `watchnow` block could be tightened without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has many parameters and no schema descriptions, so the free-text description must supply critical usage knowledge. It covers parameter names and a few values, but leaves the required `period` indeterminate and does not explain filter syntax for dates, genres, countries, ratings, or certifications. An agent would likely struggle to construct a valid first request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for parameter semantics. It names all 17 parameters and gives some useful details, especially for `watchnow` and `limit`. However, the required `period` parameter is only described as 'Path parameter', and most filters like `genres`, `years`, and `dates` lack formats or allowed value patterns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get streaming movies' and gives the endpoint path `GET /movies/streaming/{period}`, making the verb and resource clear. It distinguishes this from sibling endpoints like `get_movies_watched_by_period` by identifying 'streaming' as the resource category, though it does not define what 'streaming' or 'period' precisely mean.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool instead of the many sibling tools. The description only states what the endpoint does, not when an agent should select it over alternatives such as `get_shows_streaming_by_period` or `get_movies_watched_by_period`.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_updates_by_start_dateARead-onlyIdempotent
Get recently updated movies.
GET /movies/updates/{start_date}
Args: start_date: UTC date to start checking for updates. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| extended | No | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the read-only nature is covered. The description adds useful behavioral details about pagination: that omitting page/limit applies a low default (often 10) and that limit is capped at the endpoint maximum (often 250), with higher values clamped. This goes beyond the annotations and clarifies response volume behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with the purpose, endpoint, and parameter list. The pagination paragraph is somewhat verbose but contains valuable behavior. It is front-loaded with the core purpose, and the parameter details are logically placed. It is not overly long given the complexity, though it could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values need not be described. However, the description lacks clarity on the distinction from get_movies_updates_id_by_start_date (which likely returns IDs only), and 'extended' remains undefined. The pagination behavior is well covered, but the overall context is incomplete for an agent to choose this tool confidently among siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains start_date as a UTC date, and provides extensive pagination semantics for page and limit (defaults, capping). However, the 'extended' parameter is only described as 'Extended information to include in the response,' which is vague and does not specify what values are valid or what information it adds. Partial compensation, but not complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get recently updated movies.' and provides the endpoint GET /movies/updates/{start_date}. It is specific about the resource (movies) and action (get updates), distinguishing it from similar tools for shows and people (e.g., get_shows_updates_by_start_date, get_people_updates_by_start_date). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention the related get_movies_updates_id_by_start_date (which likely returns only IDs), nor does it explain the difference between this and the shows/people update endpoints. An agent receives no contextual direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movies_updates_id_by_start_dateBRead-onlyIdempotent
Get recently updated movie Trakt IDs.
GET /movies/updates/id/{start_date}
Args: start_date: UTC date to start checking for updates. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the description's job is to add context. It does describe pagination semantics—default limit of 10, maximum of 250, clamping behavior—which is beyond annotations. However, it lacks details about ordering, response format (beyond IDs), or any rate-limit implications, so it only partially transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, starting with the purpose, then endpoint, then args. It avoids fluff and presents each parameter with a brief explanation. The HTTP path is redundant but harmless. It is well-organized and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functional details (purpose, parameters, pagination) and the output schema exists, so return values are unnecessary. However, it omits the important distinction from sibling 'updates' endpoints (IDs only vs full data) and doesn't address edge cases like date parsing or rate limits. For a simple list endpoint, it's mostly complete but lacks selection context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the burden. It provides one-line explanations for start_date (UTC date), page (page number), and limit (number of items with clamping), adding meaning beyond the bare schema. Yet it doesn't specify the exact date format (e.g., YYYY-MM-DD) or default page behavior, so it's adequate but not thorough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the resource ('recently updated movie Trakt IDs'), which is specific enough to distinguish from the broader get_movies_updates_by_start_date tool. However, it doesn't explicitly contrast with siblings like get_shows_updates_id_by_start_date, leaving some differentiation to the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over alternatives. It doesn't mention that this returns only IDs and not full movie details, nor does it reference the sibling get_movies_updates_by_start_date for full updates. The description is purely functional and omits 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_movies_watched_by_periodARead-onlyIdempotent
Get the most watched movies.
GET /movies/watched/{period}
Args: period: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| period | Yes | ||
| extended | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, and non-destructive behavior. The description adds useful pagination behavior: low default limit (often 10), cap at endpoint maximum (often 250), and clamping rather than rejection. It also exposes the HTTP GET method, going beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence purpose and then a compact args list. The pagination note is somewhat verbose but provides necessary behavioral detail. No filler or repetitive content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema covers return shape and annotations cover safety. However, the description doesn't define valid period values, what extended includes, or how ignore flags interact with a 'watched' endpoint. For a 7-param tool with 0% schema coverage, these are meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must explain parameters. It gives a clear, detailed explanation for limit (defaults, maximums, clamping) and page, but period is only 'Path parameter' and the ignore_* flags simply restate their names. extended is vague ('Extended information to include'), so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with 'Get the most watched movies,' a specific verb+resource statement, and the endpoint path confirms 'movies/watched/{period}'. This clearly distinguishes it from sibling endpoints like get_movies_collected_by_period or get_movies_played_by_period because the resource and action are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative guidance is provided. The only usage signal is the name and endpoint, which imply this tool is for retrieving watched movie stats for a period. It does not mention when to prefer this over collected/played/favorited siblings, so usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notes_by_idCRead-onlyIdempotent
Get a note.
GET /notes/{id}
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, the description adds little beyond what is given. The 'GET' method and 'Get a note' largely repeat these annotations. It does not disclose any additional behavioral aspects such as response format (though an output schema exists) or potential quirks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise, with no filler. The purpose is stated upfront, and the parameter definition is clearly separated. Including the endpoint path is somewhat redundant but not harmful. It efficiently communicates essential information without excess.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET-by-ID with a single parameter and an output schema, the description is fairly complete. However, given the large set of sibling tools, including related note operations like get_notes_by_id_item and delete_notes_by_id, it lacks any differentiation or indication of when to use which. This could lead to incorrect tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It introduces that the 'id' parameter can be either an id or a slug, which adds meaning beyond the schema's bare 'Id' label. However, this is minimal; it does not explain how slugs are formatted or provide examples, leaving gaps in interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'a note', and includes the HTTP method and path. It effectively communicates the tool's function. However, it does not explicitly differentiate from the sibling get_notes_by_id_item, which could be confusing, though the tool name itself is fairly unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_notes_by_id_item, delete_notes_by_id, or even listing notes. There is no mention of prerequisites, authentication, or typical use cases. The description merely states the operation without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notes_by_id_itemBRead-onlyIdempotent
Get the attached item.
GET /notes/{id}/item
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the operation's safety profile is covered. The description adds no further behavioral detail, such as authentication needs, response shape, or edge cases, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: a one-line purpose statement, the endpoint, and the argument explanation. There is no filler, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only endpoint with an output schema, the description covers the basic request shape. However, the vague meaning of 'attached item' and the lack of any contextual or sibling differentiation make it less complete than it could be for an agent selecting among many similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description partially compensates by explaining that 'id' is 'The id/slug of the resource.' However, 'resource' is ambiguous and does not explicitly identify it as the note ID or slug, leaving some room for misinterpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get the attached item,' and the endpoint 'GET /notes/{id}/item' clarifies that this retrieves the item attached to a note. It is not a tautology, but the phrase 'attached item' is somewhat vague without explicitly saying it is the note's attached item.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, and does not distinguish it from similar sibling tools such as get_comments_by_id_item. Usage is only implied by the endpoint path and tool name, with no explicit context, 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_people_by_idARead-onlyIdempotent
Get a single person.
GET /people/{id}/
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior, so the safety bar is covered. The description adds a modest behavioral fact — id accepts a slug as well as an id — but does not mention 404 behavior or how a non-null extended value reshapes the response. Output schema covers return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact units — one-sentence purpose, endpoint, and a two-line arg list. The core function is front-loaded and the structure is scannable, with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only single-resource fetch with comprehensive annotations and an existing output schema, this is largely complete. The main gap is under-specified valid values for extended; otherwise an agent has what it needs to call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. The id line adds real value ('The id/slug of the resource'). The extended line ('Extended information to include in the response') is near-tautological and gives no valid value hints, so an agent cannot construct an informed value. Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get a single person') plus the HTTP endpoint (GET /people/{id}/). 'Person' is distinct from 'user' in this API, and the singular scope separates it from siblings like get_people_by_id_movies, get_people_by_id_shows, and get_people_by_id_lists_by_type_by_sort. An agent can tell exactly what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention that a person's filmography is available via get_people_by_id_movies/get_people_by_id_shows, or when the extended parameter is warranted. Usage is only implied by the name and endpoint, never stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_people_by_id_lists_by_type_by_sortBRead-onlyIdempotent
Get lists containing this person.
GET /people/{id}/lists/{type}/{sort}
Args: id: The id/slug of the resource. sort: Path parameter. type: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| type | Yes | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds specific pagination behavior about default limits and clamping, which is not in the annotations and helps the agent anticipate response size. However, it does not clarify the implications of openWorldHint or other potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, leading with the purpose and URL, then listing arguments. The pagination note is somewhat verbose but carries essential behavioral information. The Args list is minimal but the overall length is justified and well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters, 3 required, and an output schema. The description covers the purpose and pagination but omits critical semantics for sort and type, which are required for a correct call. Agents cannot determine valid values for these path parameters from the description, making the definition incomplete despite the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all parameters. It provides useful details for id, page, and limit, but sort and type are merely labeled 'Path parameter' without any explanation of valid values or meaning. 'Extended' is also vague. Required parameters remain underspecified, making correct invocation difficult.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get lists containing this person', which clearly states the action (Get) and resource (lists for a person). The URL template reinforces the target. This distinguishes it from sibling tools like get_people_by_id_movies or get_movies_by_id_lists_by_type_by_sort, though it does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description only states the resource, leaving the agent to infer that this is for fetching lists containing a person. There are no exclusions or mentions of when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_people_by_id_moviesCRead-onlyIdempotent
Get movie credits.
GET /people/{id}/movies
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. Beyond that, the description adds essentially nothing — there is no mention of pagination, the meaning of 'extended', the return format, or auth requirements. For a data-fetching tool with no output caveats, the description contributes little beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded, with the endpoint and args listed compactly. However, it is under-specified to the point of near-tautology for the args section, and the brevity comes at the cost of useful semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema and only 2 parameters, so the baseline is modest. But with 0% schema coverage, the description fails to explain the 'extended' parameter and does not distinguish the tool from get_people_by_id_shows, leaving real gaps for an agent deciding how to invoke it and which sibling to choose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not. 'id: The id/slug of the resource' is a near-tautology that adds no value over the schema schema property name, and 'extended: Extended information to include in the response' does not explain what values are accepted or what the extended information is. The agent cannot determine how to set 'extended' correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get movie credits') and the endpoint GET /people/{id}/movies makes the resource unambiguous. However, it does not differentiate this from the sibling tool get_people_by_id_shows, which is the obvious counterpart for show credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to choose this tool over alternatives. The closely-related sibling get_people_by_id_shows exists for show credits but is never mentioned, so an agent gets no direction on which one to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_people_by_id_showsBRead-onlyIdempotent
Get show credits.
GET /people/{id}/shows
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds no additional behavioral context such as scoping, pagination, authentication requirements, or response contents, so it provides no value beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very compact: a one-line summary, the endpoint, and argument definitions. Every line earns its place and the primary action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is not required. However, the optional extended parameter is underdefined and there is no usage context, making this minimally adequate for a simple 2-parameter GET tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that id is the 'id/slug of the resource', which is useful, but 'extended: Extended information to include in the response' is tautological and does not explain what extended values are accepted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get show credits' for a person. This clearly distinguishes the tool from siblings like get_people_by_id_movies and get_people_by_id, even though it does not name them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, such as get_people_by_id_movies or get_people_by_id. The agent must infer the intended use entirely from the name and terse description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_people_updates_by_start_dateBRead-onlyIdempotent
Get recently updated people.
GET /people/updates/{start_date}
Args: start_date: UTC date to start checking for updates. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| extended | No | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe, read-only, idempotent operation. The description adds useful behavioral context beyond those annotations: start_date is UTC-based, limit has endpoint-specific defaults and maximums, omitted pagination applies a low default, and higher limits are clamped rather than rejected. This gives the agent concrete expectations for pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise and front-loaded with the core purpose before listing arguments. The pagination explanation is somewhat verbose but provides genuinely useful clamping and default behavior. The format is scannable and does not repeat schema titles unnecessarily.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and rich annotations, the description does not need to explain return values or safety. It covers the endpoint, all parameters, and pagination quirks. Still, it lacks usage differentiation from siblings and leaves extended and date-format semantics underspecified, so it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It names all four parameters and adds some meaning, especially for limit and start_date. However, the extended parameter is only described as "Extended information to include in the response," which does not explain what values are accepted or what behavior it enables, and start_date lacks an explicit date format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a clear, specific verb and resource: "Get recently updated people," and includes the exact endpoint. It does not explicitly contrast itself with the similarly named sibling get_people_updates_id_by_start_date, so an agent must infer the difference between fetching full people objects versus IDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_people_updates_id_by_start_date or the movies/shows variants. It does not state when not to use it, what prerequisites exist, or what scenarios favor a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_people_updates_id_by_start_dateARead-onlyIdempotent
Get recently updated people Trakt IDs.
GET /people/updates/id/{start_date}
Args: start_date: UTC date to start checking for updates. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, the description discloses meaningful pagination behavior: default limits, endpoint-specific maximums, and clamping rather than rejecting high limit values. It also notes that start_date is a UTC date, adding useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the one-sentence purpose, followed by the endpoint and a structured Args block. The pagination note is somewhat detailed but earns its place because it conveys behavior not present in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich annotation set and an output schema present, the description covers operation, endpoint, parameter semantics, and pagination edge cases. The main gap is the lack of explicit routing to the sibling full-updates endpoint, but overall the agent can call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description compensates by explaining all three parameters: start_date as a UTC date, page as the page number, and limit with detailed defaults/maximums/clamping behavior. The start_date format is not fully specified, but the meaning is clearly conveyed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get recently updated people Trakt IDs.' The GET path further specifies the exact endpoint, and the 'Trakt IDs' phrasing distinguishes this from sibling get_people_updates_by_start_date and from the movies/shows variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement about when to choose this ID-only endpoint over the sibling get_people_updates_by_start_date, nor any mention of alternatives for full person updates. Usage is only implied by the endpoint path and the phrase 'Trakt IDs,' so the agent receives no direct selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_by_id_type_by_idARead-onlyIdempotent
Get ID lookup results.
GET /search/{id_type}/{id}
Args: id_type: External ID type to look up. id: External ID value. type: Optional media type filter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | No | ||
| limit | No | ||
| id_type | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover read-only/idempotent behavior. The description adds useful non-obvious behavior about pagination: default limits are often 10, maximums are often 250, and higher limits are clamped rather than rejected. This goes beyond what the schema or annotations reveal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line summary, the endpoint path, and a short args list. The pagination note is detailed but earn its place because it describes clamping behavior that an agent needs to predict results.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and annotations, the description does not need to explain return values or safety. It covers all parameters and important pagination behavior. The main gap is the lack of concrete allowed values for type, id_type, and extended, which would make the tool fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It gives one-line meanings for all six parameters, which is helpful, but it stops short of enumerating valid values for id_type, type, or extended. The descriptions are functional but not deeply informative.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies this as an ID lookup endpoint via the GET /search/{id_type}/{id} path, and explains that id_type is the external ID type and id is the external ID value. This is more specific than a tautology and likely distinguishable from sibling search tools, though it does not explicitly name a sibling to differentiate from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives like get_search_by_type or get_search_by_type_exact. The description implies this is for external ID lookups, but it does not state conditions, exclusions, or compare against sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_by_typeARead-onlyIdempotent
Get text query results.
GET /search/{type}
Args: type: Specify the type of results by sending a single value or a comma delimited string for multiple types. query: The search query to search all text based fields. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| query | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation as read-only, idempotent, and non-destructive, so no contradiction exists. The description adds meaningful behavioral detail beyond annotations by documenting the pagination behavior—low default limits, endpoint-specific maximums, and clamping rather than rejection—which helps the agent predict API behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose, then organized by endpoint and argument list. Every sentence adds value, especially the detailed pagination note, with no filler or repetition of schema defaults.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The pagination and query semantics are well covered, and the read-only annotations plus output schema reduce the need for return-value discussion. However, valid values for 'type' are not enumerated, it is not stated whether 'query' is required for a meaningful search, and 'extended' options are unspecified—gaps an agent would need to resolve before calling confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full explanatory burden, and it does so for all five parameters. It clarifies that type accepts comma-delimited values, defines query as searching all text fields, and explains limit clamping precisely; only 'extended' remains vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get text query results' and names the exact endpoint 'GET /search/{type}', which clearly identifies the action and resource. It does not explicitly contrast itself with sibling tools like get_search_by_type_exact or get_search_by_id_type_by_id, so a bit of differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parameter explanations state that query searches all text-based fields, so an agent can infer this is the general text search tool. However, there is no explicit 'use this when' guidance, no exclusions, and no mention of when the exact-match or ID-based search siblings would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_by_type_exactBRead-onlyIdempotent
Get exact text query results.
GET /search/{type}/exact
Args: type: Specify the type of results by sending a single value or a comma delimited string for multiple types. query: The search query to search all text based fields. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| query | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds pagination behavior: defaults (often 10) and clamping to maximum (often 250), which is not in annotations. However, it does not discuss authentication, rate limits, or the meaning of 'extended'. It adds some value beyond annotations but is not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a docstring with a clear opening line stating the purpose. Parameter explanations are listed in a readable format. It is not excessively long, though it duplicates parameter names that appear in the schema. The pagination note is verbose but informative. The structure is front-loaded with the purpose and flows logically.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the primary action and pagination specifics, and an output schema exists, so return values are documented. However, it does not clarify the 'exact' semantics or differentiate from the non-exact sibling search, which is crucial for correct tool selection. It also does not mention any authentication requirements. Given the tool's relative simplicity, the missing differentiation is the most significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does add useful semantics for 'type' (single or comma-delimited multiple types) and 'query' (searches all text fields). The 'limit' parameter gets detailed behavior about defaults and clamping. However, 'page' and 'extended' receive minimal elaboration beyond what the schema implies. Overall, it adds meaningful but incomplete parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get exact text query results', which clearly identifies the action (get) and resource (search results) with a specific qualifier ('exact'). This distinguishes it from the sibling get_search_by_type (without 'exact'), though it doesn't explicitly mention that distinction. The purpose is unambiguous and conveys the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that this is for exact matches, or when a broader search might be preferred. There are no conditions, prerequisites, or exclusions stated. An agent must infer usage from the name and the word 'exact'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_recent_by_id_global_by_typeARead-onlyIdempotent
Get trending search results.
GET /search/recent_by_id/global/{type}
Args: type: Specify the type of results by sending a single value or a comma delimited string for multiple types. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. query: The search query to search all text based fields. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| query | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint falsearena. The description adds meaningful behavior beyond that, including pagination defaults and caps, clamping of high limits (rather than rejecting), and the ability to pass comma-delimited type values. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient, front-loading the core purpose and then listing parameters compactly. The endpoint path is redundant with the name but clarifies the exact resource. The pagination notes are a bit verbose, but each sentence contributes useful operational detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only search endpoint with an output schema, the description covers purpose, parameters, and pagination behavior. However, it lacks any usage context against siblings, and the meaning of 'global' and 'recent_by_id' is not explained, which is relevant for correct selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries full responsibility for parameter meaning. It explains type (single or comma-delimited), page, limit (with default/max/clamping), query (all text fields), and extended. The 'extended' explanation is generic but still adds some semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get trending search results', which is a clear verb and resource. It identifies the endpoint path, but it does not differentiate this tool from siblings such as get_search_by_type or list_media_trending, so an agent may not know which one to pick based on the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this endpoint versus its many siblings (e.g., get_search_by_type, get_search_by_type_exact, list_movies_trending). It does not state what makes this the right choice or any exclusions, leaving the agent 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.
get_shows_by_idARead-onlyIdempotent
Get a single show.
GET /shows/{id}
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the GET method is consistent with those. The description adds little behavioral context beyond the endpoint and an 'extended' response toggle, so it does not meaningfully go beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and well-structured: a one-line purpose, the endpoint, and an Args list. Every line carries information, and nothing is repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read, the description is mostly sufficient, especially with an output schema and safety annotations available. The main gap is the unspecified semantics of 'extended' and the lack of guidance relative to the dozens of sibling show endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args section provides minimal descriptions for both parameters, clarifying that id is an id/slug. However, 'extended' remains vague—no valid values or formats are given—and schema description coverage is 0%, so the description only partially compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get a single show." plus the explicit GET /shows/{id} endpoint names a specific verb, resource, and scope. This distinguishes the base show retrieval from the many get_shows_by_id_* siblings (seasons, related, comments, etc.) without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: call it when you need one show identified by id/slug. It does not explicitly name alternative sibling tools for related data, so it lacks explicit exclusions, but the 'single show' framing is enough to route an agent in most cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_aliasesBRead-onlyIdempotent
Get all show aliases.
GET /shows/{id}/aliases
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is read-only, idempotent, open-world, and non-destructive, and the description's 'GET' aligns with that. The description adds little behavioral context beyond the endpoint, such as pagination or empty-result behavior, but for a simple read operation this is not a large gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short lines: purpose, endpoint, and the single argument. The endpoint is front-loaded and there is no filler or repetition of schema/annotation content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the one-parameter input, rich annotations, and presence of an output schema, the description is mostly adequate. It lacks usage guidance and any note about response behavior beyond the endpoint, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the parameter burden. It clarifies that 'id' means 'the id/slug of the resource,' which goes beyond the schema's bare string type, though calling the target a generic 'resource' is slightly vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Get all show aliases' and includes the exact endpoint, so an agent knows it retrieves aliases for a specific show. It does not explicitly contrast with close siblings like get_movies_by_id_aliases, but the show-scoped resource makes the purpose fairly unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no mention of alternatives or exclusions. The usage context is only inferable from the tool name and endpoint, not stated in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_certificationsARead-onlyIdempotent
Get all show certifications.
GET /shows/{id}/certifications
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe-read profile is covered structurally. The description adds only the 'all' scope and the GET endpoint, with no extra behavioral context such as result shape or content restrictions; it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal and front-loaded: one purpose sentence, the canonical GET path, and an Args block. No filler or repeated schema information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only endpoint with an output schema and rich annotations, the description gives enough to invoke it correctly. The main missing piece is how it relates to list_certifications_shows/get_certifications_by_type, but that is more a usage-guideline gap than an invocation blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates by explaining that 'id' is 'the id/slug of the resource,' adding format and referent beyond the bare string type in the schema. It could name the show explicitly, but the endpoint path makes that clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get all show certifications,' a clear verb+resource statement, and the embedded endpoint '/shows/{id}/certifications' pins it to a single show. It does not differentiate itself from sibling list_certifications_shows or get_certifications_by_type, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to call this endpoint versus the certification list/type siblings, and no exclusions or alternatives are given. The intended context (fetch certifications for one show by id/slug) is only implied by the endpoint path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_comments_by_sortBRead-onlyIdempotent
Get all show comments.
GET /shows/{id}/comments/{sort}
Args: id: The id/slug of the resource. sort: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page, can be a number or the value all language: Filter comments to a 2 character language code
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| extended | No | ||
| language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose read-only, idempotent, and non-destructive behavior, so the description only needs to add context beyond that. It adds the endpoint path and pagination/filter parameters, but doesn't explain the behavior of those parameters beyond their labels, nor what kinds of extended info are available.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and organized: a one-sentence summary, the endpoint path, and a simple Args block. It avoids excessive prose, though the GET path line partially duplicates resource data and could be integrated more tightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and safety annotations, the description leaves essential query semantics unresolved: valid values for sort and the scope of extended. An agent invoking this endpoint would need to guess at sort options or look outside the MCP definition. This makes the definition only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It does define every parameter, with useful detail for page, limit, and language. However, 'sort: Path parameter' and 'extended: Extended information to include in the response' are tautological or unhelpfully vague, leaving critical parameter meaning undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb+resource: 'Get all show comments' and includes the REST path GET /shows/{id}/comments/{sort}. This distinguishes the show-level comment endpoint from sibling movie/list/user comment endpoints, though it does not explicitly differentiate from season/episode comment endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to choose this endpoint versus get_movies_by_id_comments_by_sort, get_lists_by_id_comments_by_sort, or get_shows_by_id_seasons_by_season_comments_by_sort. It does not state any exclusions, prerequisites, 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.
get_shows_by_id_last_episodeARead-onlyIdempotent
Get last episode.
GET /shows/{id}/last_episode
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description adds the HTTP endpoint path, which is informative but not behavioral beyond what annotations convey. It does not describe pagination, response structure, or any additional side effects, but given the annotations and output schema, the bar is lower. No contradiction exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded. The purpose appears in the first sentence, followed by the endpoint and argument definitions. There is no redundancy or extraneous content. Every line contributes to the tool's usability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, return values need not be described. The tool is simple with two parameters and one required. The description covers the essential information: what it does and what parameters are needed. A minor gap is that 'extended' is not elaborated, and the meaning of 'last episode' (e.g., most recent by air date) is implied but not explicit. Overall, it is sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides brief explanations for both parameters: id is 'The id/slug of the resource' and extended is 'Extended information to include in the response.' This adds meaning beyond the schema's type-only definitions. While 'extended' is vague, it at least indicates its purpose, so the description adds value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get last episode.' which is a clear verb and resource. It is specific about the action and the resource (show's last episode). It is distinguishable from siblings by name, but the description itself does not explicitly differentiate from the similar get_shows_by_id_next_episode. The endpoint path is also given, reinforcing the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention the relationship to get_shows_by_id_next_episode or other show-related endpoints. An agent has no explicit context to decide between this and sibling tools. The name implies the purpose, but no usage context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_lists_by_type_by_sortARead-onlyIdempotent
Get lists containing this show.
GET /shows/{id}/lists/{type}/{sort}
Args: id: The id/slug of the resource. sort: Path parameter. type: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| type | Yes | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not repeat safety. It adds useful behavioral detail about pagination: default limits, clamping behavior, and the meaning of 'extended'. This goes beyond annotations and helps the agent understand response handling, though it does not explain the type/sort path parameters or return format beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: a one-line purpose, the endpoint path, and a bulleted parameter list. The pagination explanation is detailed but not bloated, and the description is front-loaded with the primary action. It earns a high score for clarity and organization, though it omits some essential parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description is incomplete for correct invocation. It fails to define valid values for 'type' and 'sort', which are required path parameters, and leaves 'extended' ambiguous. Without this information, an agent cannot reliably construct a correct request, especially given the 0% schema coverage for parameter descriptions. The tool is also complex (6 params, 3 required) but the description does not fully address that complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains 'id' as 'id/slug of the resource' and provides detailed semantics for 'limit' (defaults, clamping). However, 'sort' and 'type' are merely labeled 'Path parameter' with no allowed values or meaning, and 'extended' is vaguely described as 'Extended information to include in the response.' This partial coverage leaves critical parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get lists containing this show' uses a specific verb and resource, clearly indicating the tool fetches lists associated with a show. The name itself reinforces the resource, and there is no ambiguity about what the tool does. It distinguishes itself from similar list tools by explicitly focusing on shows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as get_shows_by_id_related or other list-specific endpoints. There is no mention of exclusions, prerequisites, or context that would help an agent choose this over similar list retrieval tools. The only implied usage is that it fetches lists for a show, but no explicit direction is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_next_episodeBRead-onlyIdempotent
Get next episode.
GET /shows/{id}/next_episode
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal read-only, idempotent, and non-destructive behavior. The description adds no behavioral nuance beyond the trivial get operation, such as what defines the 'next' episode, authentication requirements, or edge cases like a show with no next episode.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: a one-sentence purpose, the HTTP route, and the two parameters. There is no filler or repetition beyond what is structurally useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read operation with an output schema and safety annotations, this is close to adequate. However, it lacks the semantics of 'next episode' and any guidance about choosing this over get_shows_by_id_last_episode, leaving ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description carries the burden. It does add that id is an id/slug and that extended controls additional response information, but it leaves the acceptable values of extended unspecified and only weakly explains its effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get next episode." clearly identifies the operation and the route /shows/{id}/next_episode names the resource. It is clear enough to distinguish from most siblings, but it does not explicitly separate itself from get_shows_by_id_last_episode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to call this endpoint versus alternatives, especially the closely related get_shows_by_id_last_episode. The one-line description implies a use case but does not state prerequisites, exclusions, or when another tool is preferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_peopleBRead-onlyIdempotent
Get all people for a show.
GET /shows/{id}/people
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the read-only, idempotent, non-destructive nature. The description adds the endpoint and the note about resource id/slug, but it does not disclose response details, pagination, or any special behavior beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core purpose, and free of fluff. The endpoint line is redundant with the tool name but still contributes context; the extended param line is tautological, keeping this from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with annotations and an output schema, this is adequate: an agent knows the resource and can invoke it with just id. The main gap is that extended values are undefined and sibling scoping is not addressed, so the description is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter documentation burden. It usefully notes that id is an id/slug, but 'Extended information to include in the response' merely restates the parameter name and does not explain accepted values or behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get all people for a show" states a specific verb and resource, and the direction is clear: people for a show rather than shows for a person. However, it does not explicitly contrast with the season/episode-level people siblings, so it lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many similar sibling tools (movie people, season people, episode people, or a person's shows). The use case is only implied by the single sentence, with no conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_progress_collectionARead-onlyIdempotent
Get show collection progress.
GET /shows/{id}/progress/collection
Args: id: The id/slug of the resource. extended: Extended information to include in the response. hidden: Whether to include any hidden seasons specials: Whether to include special seasons as season 0. count_specials: Whether to count specials in the overall stats (only applies if specials are included). include_stats: Whether to include stats in the response
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| hidden | No | ||
| extended | No | ||
| specials | No | ||
| include_stats | No | ||
| count_specials | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds a small amount of behavioral context, such as count_specials only applying when specials are included, but does not disclose broader behavior like response shape or how hidden/specials interact with stats beyond the parameter list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with a one-line summary, followed by the endpoint and a clean parameter list. Each sentence is purposeful and there is no redundant prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent tool with an output schema, the description is mostly complete: it identifies the resource, endpoint, and all parameter meanings. The main gaps are lack of usage guidance and unspecified allowed values for extended, but the output schema handles return-value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It does explain all six parameters with meaningful phrases, including clarifying that id is the id/slug and that count_specials only applies if specials are included. The extended parameter remains vague ('Extended information to include'), but overall the description compensates well for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get show collection progress.' It also includes the endpoint, which clarifies the exact operation. However, it does not explicitly differentiate this from the similar sibling get_shows_by_id_progress_watched, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_shows_by_id_progress_watched or list_sync_progress_up_next. It simply states the operation and lists parameters, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_progress_watchedARead-onlyIdempotent
Get show watched progress.
GET /shows/{id}/progress/watched
Args: id: The id/slug of the resource. extended: Extended information to include in the response. hidden: Whether to include any hidden seasons specials: Whether to include special seasons as season 0. count_specials: Whether to count specials in the overall stats (only applies if specials are included). include_stats: Whether to include stats in the response
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| hidden | No | ||
| extended | No | ||
| specials | No | ||
| include_stats | No | ||
| count_specials | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds some request-option context via parameters like hidden, specials, and count_specials, but does not disclose additional behavioral traits beyond what the annotations and parameter semantics already convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well organized: a one-sentence summary, the endpoint, and a scannable Args list. Every line earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The combination of endpoint, parameter definitions, output schema, and safety annotations covers everything needed to invoke the tool. It lacks examples or notes on default behaviors for options like include_stats, but those are minor for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description carries the full parameter-semantics burden. It provides meaningful one-line meanings for all six parameters, including the count_specials caveat ('only applies if specials are included'). 'extended' remains vague, but the description compensates well overall.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get show watched progress' for GET /shows/{id}/progress/watched. It doesn't explicitly call out siblings like get_shows_by_id_progress_collection or list_sync_progress_watched, but the endpoint path and wording 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to select this tool rather than related tools such as list_sync_progress_watched or create_shows_by_id_progress_watched_reset. The description simply states what it does and defines parameters, leaving the decision 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_shows_by_id_ratingsBRead-onlyIdempotent
Get show ratings.
GET /shows/{id}/ratings
Args:
id: The id/slug of the resource.
extended: Use all to include ratings from supported external sources.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds limited context by explaining that extended='all' includes external source ratings, but it does not otherwise disclose additional behavioral traits or response characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and includes the endpoint, arguments, and parameter explanations. There is no fluff, and the key parameter guidance is front-loaded, though the endpoint line is somewhat redundant with the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with a simple two-parameter schema and an output schema already present, the description covers the essential semantics of a valid id and extended value. No auth details are needed given the annotations, and the description is sufficiently complete for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden for parameter meaning. It explains id as 'the id/slug of the resource' and extended as controlling inclusion of external ratings, which adds genuine meaning beyond the raw schema types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get show ratings,' which names a specific verb and resource. However, it does not explicitly differentiate this from sibling tools such as get_movies_by_id_ratings or get_shows_by_id_seasons_by_season_ratings, though the resource is somewhat clarified by the endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many rating-related siblings, and no exclusions or alternative tools are mentioned. The description gives only a minimal statement of what it does, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasonsCRead-onlyIdempotent
Get all seasons for a show.
GET /shows/{id}/seasons
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral detail beyond this – it does not mention pagination, the meaning of 'extended', or what data the response contains. The description is consistent with annotations but contributes little incremental transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and the core action is front-loaded. However, the endpoint line 'GET /shows/{id}/seasons' largely repeats information already encoded in the tool name and schema, adding marginal value for the space it occupies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with an output schema and annotations carrying the safety profile, the essentials are present. The main gap is the under-specified 'extended' parameter, which is the only optional behavior an agent would need clarified to make optimal calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for both parameters. It explains 'extended' only as 'Extended information to include in the response' without specifying valid values or what the extended fields are, and 'id' is merely labeled 'id/slug of the resource'. This is minimal compensation, leaving the agent guessing about the extended parameter's semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb-resource action: 'Get all seasons for a show.' This distinguishes it from get_shows_by_id_seasons_by_season, which fetches a single season. Purpose is unambiguous, though it does not explicitly name the sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention the related single-season tool (get_shows_by_id_seasons_by_season) or the extended parameter options. The description simply restates the endpoint without any usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_seasonARead-onlyIdempotent
Get all episodes for a single season.
GET /shows/{id}/seasons/{season}
Args: id: The id/slug of the resource. season: Season number extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, covering the safety profile. The description adds no further behavioral context such as pagination, rate limits, or authentication. It does not contradict annotations, so a neutral score is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: a one-line purpose, the endpoint, and a short arg list. No wasted words, front-loaded with the key action. It fits the tool's simplicity and is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a straightforward read tool with an output schema, the description covers the essentials: purpose, endpoint, and parameter meanings. However, it omits potential pagination or limit details for 'all episodes', and the 'extended' parameter remains ambiguous. These are minor gaps given the simple nature of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives brief definitions: id as 'id/slug of the resource', season as 'Season number', and extended as 'Extended information to include in the response'. The first two are clear, but 'extended' is vague and lacks valid values or format. This is adequate but minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get all episodes for a single season' with a clear verb, resource, and scope. It is immediately distinguishable from siblings like get_shows_by_id_seasons (which lists seasons) and get_shows_by_id_seasons_by_season_info (which gets season metadata). The endpoint is also shown, reinforcing the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. While the purpose implies it for retrieving episodes, it does not mention when not to use it or point to siblings. For a tool with many close siblings, this leaves selection ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_comments_by_sortBRead-onlyIdempotent
Get all season comments.
GET /shows/{id}/seasons/{season}/comments/{sort}
Args: id: The id/slug of the resource. season: Season number sort: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page, can be a number or the value all language: Filter comments to a 2 character language code
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| season | Yes | ||
| extended | No | ||
| language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds some context through the GET endpoint and filtering/pagination parameters, but does not disclose sort value semantics, pagination defaults, authentication needs, or rate-limit behavior. No contradiction exists between description and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line summary, the endpoint path, and a clean argument list. It is front-loaded and contains minimal filler, though 'sort: Path parameter' and 'Extended: Extended information' are somewhat low-value lines.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return values and annotations cover safety, but the required 'sort' parameter is not semantically defined, and no valid values are given. The description also gives no guidance on which sibling comment endpoint is appropriate. This leaves an agent likely to guess the meaning of sort and extended, which is a significant completeness gap for a required path parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It provides useful meaning for id, season, page, limit, and language, including that limit can be 'all.' However, 'sort: Path parameter' is essentially tautological and fails to explain valid sort values, and 'extended' is vague about what extended information is available. The compensation is partial rather than complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: 'Get all season comments.' The endpoint path confirms the scope. It does not explicitly differentiate from sibling tools like get_shows_by_id_comments_by_sort or episode-level comment tools, so it misses the clear sibling differentiation that would earn a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives. The description does not mention that this is for season-level comments as opposed to show-level, episode-level, list-level, or user-level comment endpoints, all of which appear among the sibling tools. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_episodes_by_episodeBRead-onlyIdempotent
Get a single episode for a show.
GET /shows/{id}/seasons/{season}/episodes/{episode}
Args: id: The id/slug of the resource. season: Season number episode: Episode number extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| episode | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is already clear. The description contributes the explicit endpoint pattern and the "single episode" scope, but it does not disclose details like response shaping beyond the "extended" flag. That is acceptable given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and logically structured: one-sentence purpose, the endpoint path, then a short args list. No unnecessary filler. It loses a point because the path and parameter list partly restate what the name and schema already provide.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only getter with a full output schema and safety annotations, the description covers the core call pattern and all parameters. The "extended" parameter is left underspecified, and there is no mention of response behavior or error cases, leaving slight ambiguity in an otherwise simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, and it does list each parameter. However, the explanations are thin: "id/slug of the resource" does not clarify the resource type, and "Extended information to include in the response" gives no possible values or format. This is only marginal help beyond the schema's titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Get a single episode for a show." This clearly identifies the operation and distinguishes it from season-level or list-level siblings. However, it does not explicitly compare against sibling tools such as the next/last episode getters, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The only context is the endpoint path, which implies the resource but not the selection criteria among the many episode-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_shows_by_id_seasons_by_season_episodes_by_episode_comments_by_sortBRead-onlyIdempotent
Get all episode comments.
GET /shows/{id}/seasons/{season}/episodes/{episode}/comments/{sort}
Args: id: The id/slug of the resource. season: Season number episode: Episode number sort: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page, can be a number or the value all language: Filter comments to a 2 character language code
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| season | Yes | ||
| episode | Yes | ||
| extended | No | ||
| language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. However, the description adds no behavioral context beyond the endpoint and a generic mention of 'extended information,' omitting details like pagination semantics 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, starting with a purpose sentence then listing arguments. The HTTP method and path are redundant given the tool name, but the structure is efficient and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the parameter descriptions are incomplete for a tool with eight parameters. The meaning of 'sort' and 'extended' is left to the agent to infer, and no pagination or filtering behavior is explained beyond the bare parameter names. This is insufficient for a complex endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The Args list covers all eight parameters, compensating for the 0% schema description coverage. However, 'sort' is described only as 'Path parameter' and 'extended' as 'Extended information to include,' which are too vague to guide correct usage. Other parameters like page, limit, and language are clearer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get all episode comments,' a clear verb and resource. The explicit HTTP path and path parameters make it unambiguous which endpoint this targets, distinguishing it from sibling comment tools for shows and seasons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like get_shows_by_id_comments_by_sort or get_shows_by_id_seasons_by_season_comments_by_sort. The description only states the function without clarifying scope or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_episodes_by_episode_lists_by_type_by_sortARead-onlyIdempotent
Get lists containing this episode.
GET /shows/{id}/seasons/{season}/episodes/{episode}/lists/{type}/{sort}
Args: id: The id/slug of the resource. season: Season number episode: Episode number sort: Path parameter. type: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| type | Yes | ||
| limit | No | ||
| season | Yes | ||
| episode | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a read-only, idempotent, non-destructive operation. The description adds useful behavioral context by explaining pagination defaults, maximums, and clamping behavior. It does not mention auth or rate limits, but the annotation profile and the presence of an output schema reduce the burden there.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The summary line is crisp and front-loaded, and the endpoint path is useful for orientation. The Args block is organized, and the pagination note is detailed but worthwhile. The sort and type entries are close to tautological, but overall the description avoids significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is functional for a read-only listing endpoint, especially with annotations covering safety and an output schema covering the response shape. However, the missing semantics for sort, type, and extended are meaningful gaps for an 8-parameter endpoint with 0% schema-description coverage and no enums. An agent would likely need external knowledge or trial and error to form valid requests.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter semantics. It does add real meaning for id, season, episode, page, and especially limit, but 'sort: Path parameter' and 'type: Path parameter' merely restate that they exist without saying what values are valid. 'extended: Extended information to include in the response' is also too vague to help an agent construct a correct request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear and specific statement: 'Get lists containing this episode.' The full endpoint path reinforces exactly which resource is being accessed, distinguishing it from sibling tools that fetch lists for shows, seasons, movies, or people. This is a specific verb-plus-resource statement with no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving lists that include a particular episode, but it never explicitly says when to choose it over sibling tools like get_shows_by_id_lists_by_type_by_sort or get_shows_by_id_seasons_by_season_lists_by_type_by_sort. The route path conveys the scope, but there is no direct usage guidance or exclusionary note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_episodes_by_episode_peopleARead-onlyIdempotent
Get all people for an episode.
GET /shows/{id}/seasons/{season}/episodes/{episode}/people
Args: id: The id/slug of the resource. season: Season number episode: Episode number extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| episode | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description does not need to repeat those. It adds a minimal explanation of the 'extended' parameter as 'Extended information to include in the response,' which gives some behavioral context, but it does not disclose response format, pagination, or what extended values are valid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the core purpose in the first line, then listing the endpoint and parameters in a clean, structured format. Every sentence earns its place with no redundancy, making it easy for an agent to scan and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all required parameters and the optional one, and since an output schema exists, return values need not be explained. It is sufficient for a simple GET request, though the 'extended' parameter could use more detail about accepted values. Overall, it provides the essential information needed to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the full burden for parameter explanations. It provides brief one-liners for each parameter: 'id/slug', 'Season number', 'Episode number', and 'Extended information to include in the response.' These are adequate but vague—especially 'extended'—and do not specify allowed values or formats beyond the basic schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all people for an episode' and gives the full endpoint, which unambiguously specifies the resource and scope. It naturally distinguishes itself from sibling tools like get_shows_by_id_people (people for a show) and get_shows_by_id_seasons_by_season_people (people for a season) by targeting a specific episode.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives like the show-level or season-level people endpoints. It does not mention exclusions or selection criteria, leaving the agent to infer usage 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_shows_by_id_seasons_by_season_episodes_by_episode_ratingsARead-onlyIdempotent
Get episode ratings.
GET /shows/{id}/seasons/{season}/episodes/{episode}/ratings
Args:
id: The id/slug of the resource.
season: Season number
episode: Episode number
extended: Use all to include ratings from supported external sources.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| episode | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context by explaining that extended='all' includes ratings from external sources, but it does not disclose much beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: one-line summary, exact endpoint path, and a short Args section. There is no filler or redundant repetition of the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only endpoint with an output schema and strong read-only annotations, the description is nearly complete for correct invocation. It defines all parameters and the key extended option; a minor gap is not spelling out all possible extended values or explicitly routing to alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the Args block is important. It adds real meaning for id ('id/slug') and extended ('Use all to include ratings from external sources'), though the season and episode descriptions mostly restate their obvious numeric types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource statement, 'Get episode ratings,' and the endpoint path makes the exact scope clear. This distinguishes it from sibling rating endpoints at the show or season level, such as get_shows_by_id_ratings or get_shows_by_id_seasons_by_season_ratings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended usage is implied by the phrase 'episode ratings' and the URL path, so an agent can infer when to use it. However, there is no explicit guidance about when to choose this over show-level or season-level rating endpoints, nor any mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_episodes_by_episode_statsBRead-onlyIdempotent
Get episode stats.
GET /shows/{id}/seasons/{season}/episodes/{episode}/stats
Args: id: The id/slug of the resource. season: Season number episode: Episode number
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| episode | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is well covered. The description adds no additional behavioral context such as auth needs, rate limits, or data scope, but it is consistent with the annotations and does not mislead.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose, followed by the endpoint and argument list. It contains no filler, though the Args section mostly restates what the schema already shows with minimal added value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only path-parameter operation, the output schema and annotations cover return values and safety. However, the meaning of 'stats' and the identity of the id resource are left implicit, so the agent must infer important context from the endpoint path and tool name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the burden of explaining parameters. It provides one-line descriptions for all three args, noting that id is an 'id/slug' and season/episode are numbers, but 'id/slug of the resource' is ambiguous about which resource, and the season/episode descriptions are largely tautological.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get episode stats', a clear verb+resource statement, and the endpoint path shows the exact resource hierarchy. However, it does not differentiate itself from sibling stat/rating endpoints such as get_shows_by_id_seasons_by_season_stats or get_shows_by_id_stats, so the agent must rely on the name for disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description only states the endpoint and arguments, with no 'use this when' or 'not for' statements, leaving selection entirely to inference 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_shows_by_id_seasons_by_season_episodes_by_episode_translationsARead-onlyIdempotent
Get all episode translations.
GET /shows/{id}/seasons/{season}/episodes/{episode}/translations
Args: id: The id/slug of the resource. season: Season number episode: Episode number language: Filter translations to a 2 character language code
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| episode | Yes | ||
| language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context such as pagination, authentication, or response details, which is acceptable for a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one sentence, the endpoint URL, and a bulleted Args list. No filler or repetition. All lines contribute useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only endpoint with annotations covering safety and an output schema present, the description fully equips an agent to invoke it correctly. Parameter explanations are sufficient, and no critical usage detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains each parameter meaningfully: id is the resource id/slug, season and episode are numbers, and language filters to a 2-character code. This goes beyond the schema's type-only definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get all episode translations' – a specific verb and resource. The endpoint path in the description further disambiguates it from sibling tools like get_shows_by_id_translations or get_shows_by_id_seasons_by_season_translations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives are mentioned. However, the endpoint pattern and sibling naming make it inferable that this is for episode-level translations. Guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_episodes_by_episode_videosBRead-onlyIdempotent
Get all videos.
GET /shows/{id}/seasons/{season}/episodes/{episode}/videos
Args: id: The id/slug of the resource. season: Season number episode: Episode number
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| episode | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already convey. It does not mention pagination, response contents, auth requirements, or any special behavior. Given readOnlyHint, idempotentHint, and destructiveHint are already present, the description contributes nothing extra beyond restating the HTTP GET operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured, leading with the core statement 'Get all videos,' then showing the endpoint and a short args list. There is no redundant text, and the structure makes the parameters easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema and comprehensive annotations lowers the burden on the description. Still, the description lacks usage differentiation from related video endpoints and provides minimal behavioral detail. For a simple read operation with documented parameters and output, 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.
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 define the parameters. It does list all three with brief definitions: id as 'id/slug of the resource', season as 'Season number', and episode as 'Episode number'. This adds basic meaning beyond the schema, but it lacks detail such as expected formats, ranges, or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get all videos' and then gives the full endpoint path with show id, season, and episode, which precisely scopes the operation to episode-level videos. This clearly distinguishes it from sibling tools like get_shows_by_id_videos and get_shows_by_id_seasons_by_season_videos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of show-level or season-level video endpoints, nor any prerequisites or exclusions. The endpoint path implies the usage, but the description never explicitly addresses tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_episodes_by_episode_watchingBRead-onlyIdempotent
Get users watching right now.
GET /shows/{id}/seasons/{season}/episodes/{episode}/watching
Args: id: The id/slug of the resource. season: Season number episode: Episode number extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| episode | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare `readOnlyHint: true`, `openWorldHint: true`, `idempotentHint: true`, and `destructiveHint: false`. The description adds only the real-time flavor of 'watching right now' and the HTTP GET method; it does not discuss authentication, response shape, or limits. With annotations covering the safety profile, the description contributes modest extra context, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: one purpose sentence, the endpoint, and a short Args block. No filler or repetition; structure is scannable. It earns a high score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering the non-destructive, idempotent behavior, the description covers the endpoint and all required parameters well enough to invoke the tool. The main gaps are the ambiguous `extended` parameter and lack of sibling differentiation, but these do not prevent correct invocation. Overall it is reasonably complete for this simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It gives short definitions for `id` (id/slug), `season`, `episode`, and `extended`, which is more than the schema alone provides. However, 'Extended information to include in the response' is vague, and no valid values or examples are given, so semantics are only partially clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb+resource statement: 'Get users watching right now,' and the inline endpoint path scopes it to a specific episode (`/shows/{id}/seasons/{season}/episodes/{episode}/watching`). It is clear but does not explicitly distinguish itself from the nearby watching endpoints (e.g., show-level or season-level), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, prerequisites, or exclusions. It never mentions alternatives like `get_shows_by_id_watching` or `get_shows_by_id_seasons_by_season_watching`, leaving the agent to infer from the path. This is effectively no guidance beyond the obvious endpoint semantics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_episodes_by_episode_watchnow_by_countryCRead-onlyIdempotent
Get episode watch now sources.
GET /shows/{id}/seasons/{season}/episodes/{episode}/watchnow/{country}
Args: id: The id/slug of the resource. country: 2 character country code. season: Season number episode: Episode number links: Query parameter. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| links | No | ||
| season | Yes | ||
| country | Yes | ||
| episode | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered outside the description. The description adds no behavioral context beyond 'Get' and the endpoint path—there is no mention of what the response contains, whether results vary by country, or how optional fields affect behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-ordered: a purpose sentence, the HTTP path, then an args block. It is easy to scan and front-loaded with the main operation, though some arg lines add little beyond the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters, zero schema descriptions, and close sibling endpoints, the definition is incomplete for confident tool selection and configuration. The optional 'links' and 'extended' parameters are under-specified, and no guidance is given for choosing this over related watch-now endpoints. An output schema may cover return values, but the calling context remains under-described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does list all six parameters. However, the explanations are thin: 'links: Query parameter' is tautological, 'extended' is vague, and 'season'/'episode' just restate the parameter names. This only partially compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line 'Get episode watch now sources' names a specific verb and resource, making the operation immediately understandable. The endpoint template reinforces the exact scope (episode-level watch-now data for a country), though it does not explicitly call out differences from sibling tools like get_episodes_by_id_watchnow_by_country.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many related watch-now and episode endpoints, nor any conditions or prerequisites. The path template shows how the endpoint is structured, but not why an agent should select it over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_infoBRead-onlyIdempotent
Get single seasons for a show.
GET /shows/{id}/seasons/{season}/info
Args: id: The id/slug of the resource. season: Season number extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds little behavioral context beyond the endpoint and parameter list; it does not mention response behavior, pagination, or extended-information effects, but it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with a one-line summary followed by the HTTP endpoint and argument list. No filler or repetition is present, though the plural 'seasons' in the summary is slightly imprecise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET with an output schema and safety annotations, the description is largely sufficient. Gaps include no explicit differentiation from nearby season-related tools and no detail on allowed values for 'extended', but these are minor given the endpoint clarity and structured schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It provides brief meanings for id ('id/slug of the resource'), season ('Season number'), and extended ('Extended information to include in the response'), but the extended description is vague and does not explain possible values or formatting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: get a single season for a show, reinforced by the explicit endpoint GET /shows/{id}/seasons/{season}/info. It is generally distinguishable from sibling endpoints like get_shows_by_id_seasons_by_season, but the phrase 'single seasons' is slightly awkward and does not explicitly say this returns season information rather than episode lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus alternatives such as get_shows_by_id_seasons_by_season or get_shows_by_id_seasons. The endpoint path implies it is for detailed season info, but the description never states conditions, exclusions, or preferred alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_lists_by_type_by_sortBRead-onlyIdempotent
Get lists containing this season.
GET /shows/{id}/seasons/{season}/lists/{type}/{sort}
Args: id: The id/slug of the resource. season: Season number sort: Path parameter. type: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| type | Yes | ||
| limit | No | ||
| season | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds behavioral context about pagination: default limits vary, a low default is applied when omitted, and higher limits are clamped rather than rejected. This is useful beyond the annotations, though no auth or rate-limit details are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loads the core purpose. The parameter list is necessary because the schema lacks descriptions, and the pagination note is specific and useful, though somewhat generic across endpoints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the high complexity (7 parameters, 4 path parameters, no enums), the description is incomplete. The undefined 'type' and 'sort' values are essential for calling the tool correctly, and no guidance distinguishes this from sibling list endpoints. The output schema and annotations cover some gaps, but not enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameter descriptions (0% coverage), so the description must compensate. It provides meaningful detail for id, season, page, and limit, but sort and type are merely described as 'Path parameter,' which gives no semantic value. Without enumerations or explanation of allowed values, the most critical path parameters remain undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get lists containing this season.' The endpoint path further clarifies it is season-scoped. It does not explicitly contrast this with sibling tools like get_shows_by_id_lists_by_type_by_sort, but the season-specific scope is clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case: retrieve lists that contain a particular season. However, it provides no explicit guidance on when to choose this over alternative sibling list endpoints (e.g., show-level or episode-level list endpoints), and no exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_peopleBRead-onlyIdempotent
Get all people for a season.
GET /shows/{id}/seasons/{season}/people
Args: id: The id/slug of the resource. season: Season number extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds that it returns 'all people' for a season, which is useful but does not disclose pagination, response shape, or any side effects. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with a clear one-sentence purpose, followed by the endpoint and a structured Args list. It avoids filler and each section serves a purpose, though the endpoint line partially duplicates the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET with an output schema and safety annotations, the description covers the basics: what it does, the endpoint, and parameter meanings. It lacks guidance on selecting this tool among similar people-related endpoints and leaves 'extended' underspecified, which prevents full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides brief but meaningful explanations for id, season, and extended, though 'extended' remains vague and does not specify valid values or behavior. This is adequate but not rich enough to earn a higher score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get all people for a season.' The endpoint path makes the scope explicit. It does not explicitly differentiate from sibling tools like get_shows_by_id_people, but the season qualifier provides enough distinction for a clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as get_shows_by_id_people or get_shows_by_id_seasons_by_season_episodes_by_episode_people. There are no stated conditions, exclusions, or use-case context beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_ratingsARead-onlyIdempotent
Get season ratings.
GET /shows/{id}/seasons/{season}/ratings
Args:
id: The id/slug of the resource.
season: Season number
extended: Use all to include ratings from supported external sources.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile with readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds a small behavioral note about the extended parameter ('use all to include ratings from supported external sources'), but it does not disclose return format, pagination, or any other 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: a one-line purpose, the exact endpoint, and an args list. Every element earns its place, with no filler. The endpoint line is redundant with the tool name but serves as a precise reference for the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only GET with three parameters, strong annotations, and an output schema, the description is largely sufficient. It documents the endpoint and every parameter. The main gap is the lack of sibling differentiation and usage context, which is a minor omission given the self-explanatory name and path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It provides explanations for all three parameters: id as 'id/slug of the resource', season as 'season number', and extended with the 'all' behavior. This adds value beyond bare names/types, though the id and season descriptions are terse and could be more explicit about the show context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get season ratings' and includes the exact HTTP path, making the resource unambiguous. However, it does not explicitly distinguish itself from sibling rating endpoints like show-level or episode-level ratings; the distinction relies on the path/name rather than stated purpose differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as get_shows_by_id_ratings or get_shows_by_id_seasons_by_season_episodes_by_episode_ratings. The description simply restates the operation and parameters, so the agent must infer usage context from the tool name and endpoint path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_statsCRead-onlyIdempotent
Get season stats.
GET /shows/{id}/seasons/{season}/stats
Args: id: The id/slug of the resource. season: Season number
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. However, the description adds no further behavioral context—it does not mention authentication requirements, rate limits, or what kind of statistics are returned. The endpoint is redundant with the tool name and adds no behavioral detail beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, front-loaded with the main purpose and then the endpoint and args. It wastes no words, though the args section partly duplicates the schema and could be trimmed. Still, it is appropriately sized for a minimal tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema reduces the need to describe return values, but the description does not explain what 'stats' specifically encompass (e.g., ratings, play counts, sentiment) or how they differ from other stats endpoints like get_shows_by_id_stats. This leaves an agent uncertain when choosing between closely related season endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains that 'id' is 'The id/slug of the resource' (useful) and 'season' is 'Season number' (redundant with the integer type). It doesn't clarify range, zero-based vs one-based numbering, or other format details, but it does provide some meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'season stats', which is specific enough to distinguish from adjacent endpoints like season info or ratings. Including the endpoint path reinforces the purpose, though it does not explicitly name any sibling tool to differentiate against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_shows_by_id_stats or get_shows_by_id_seasons_by_season_info. The endpoint path implies it returns statistics, but there is no explicit context about when season stats are needed vs other season-related data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_translationsARead-onlyIdempotent
Get all season translations.
GET /shows/{id}/seasons/{season}/translations
Args: id: The id/slug of the resource. season: Season number language: Filter translations to a 2 character language code
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is well covered. The description adds only the basic retrieval/filtering behavior (returns season translations, optional language filter), which is consistent with the annotations but does not disclose substantial additional behavioral context such as pagination or ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with a clear summary, and follows with an endpoint and a compact Args block. Every line earns its place 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema, strong annotations, only three flat parameters, and a self-explanatory endpoint path, the description is complete enough for an agent to invoke the tool correctly. Return values are covered by the output schema, so the description does not need to explain them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does document all three parameters. It explains id as an id/slug, season as a season number, and language as a 2-character language filter, adding meaning beyond the bare schema types and titles. It could be slightly more explicit that language is optional, but the schema already provides that default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object, 'Get all season translations,' and the endpoint path clarifies that the resource is a show's season translations. It is clear, though it does not explicitly differentiate itself from sibling translation tools such as show-level or episode-level translations; that distinction must be inferred from the path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus sibling tools like get_shows_by_id_translations or get_shows_by_id_seasons_by_season_episodes_by_episode_translations. The endpoint implies the scope, but there are no explicit alternative conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_videosBRead-onlyIdempotent
Get all videos.
GET /shows/{id}/seasons/{season}/videos
Args: id: The id/slug of the resource. season: Season number
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already disclose a read-only, idempotent, non-destructive operation, and the description does not contradict them. It adds only the 'all videos' scope and the endpoint line, with no extra context about pagination or filtering, but the annotation safety profile makes this acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and scannable: a one-line summary, the endpoint template, and an Args list. Some information is redundant with the tool name and path, but there is no filler and the structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter GET with an output schema and read-only annotations, the information given is largely sufficient to construct a correct request. The missing piece is guidance on how this endpoint relates to the many sibling video endpoints, but that is more a usage-guidance issue than a completeness issue for making the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the parameter burden falls on the description, yet it offers only generic notes: 'The id/slug of the resource' and 'Season number'. It does not clarify that id is the show id or provide any constraint details, so the endpoint path is doing most of the disambiguation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: 'Get all videos' followed by the endpoint 'GET /shows/{id}/seasons/{season}/videos', which pins down the resource scope. It does not explicitly compare itself with the sibling show-level or episode-level video endpoints, so differentiation is only via the path and name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to choose this endpoint over related video or list endpoints, and no mention of exclusions or alternatives. The only hint is the REST path itself, so the agent must infer selection from naming conventions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_watchingCRead-onlyIdempotent
Get users watching right now.
GET /shows/{id}/seasons/{season}/watching
Args: id: The id/slug of the resource. season: Season number extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows it's a safe read. The description adds little behavioral detail beyond the endpoint itself. It doesn't mention whether the response includes user profiles, pagination, authentication requirements, or any rate limits. With annotations covering safety, a modest amount of additional context would be expected, but the description is mostly just a rephrasing of the endpoint name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with the main purpose front-loaded in the first sentence. The endpoint and argument list are clearly separated. No unnecessary words. However, the argument descriptions could be more detailed without harming conciseness, so it's not perfect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool, the output schema exists, and annotations cover safety, the description is mostly adequate. However, it lacks usage guidance and any behavioral context beyond the endpoint. It would benefit from a note on when to use this over sibling watching endpoints. This is a minor gap for a read-only tool, but it leaves the agent to infer usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning. It provides terse descriptions: 'id: The id/slug of the resource' (vague, doesn't specify it's the show's id), 'season: Season number' (clear), and 'extended: Extended information to include in the response' (unhelpful). These are minimal and do not adequately 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get users watching right now' with the specific endpoint for a show's season. It identifies the resource (shows) and the action (get watching users), making the purpose understandable. However, it does not explicitly contrast with sibling tools like get_shows_by_id_watching or get_shows_by_id_seasons_by_season_episodes_by_episode_watching, so it's not fully distinguished from alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus other watching-related tools. It does not mention the difference between season-level, show-level, or episode-level watching, nor does it suggest when this endpoint is appropriate. This is a significant gap given the many sibling tools with similar names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_seasons_by_season_watchnow_justwatch_links_by_countryCRead-onlyIdempotent
Get season JustWatch links.
GET /shows/{id}/seasons/{season}/watchnow/justwatch_links/{country}
Args: season: Path parameter. country: Path parameter. id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| season | Yes | ||
| country | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the description does not need to repeat that this is a safe read operation. However, the description adds no behavioral context beyond the word 'Get' and the path structure. It does not explain what the links contain, how country values are formatted, or any response-related behavior. It neither contradicts nor meaningfully supplements the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action, which is good. However, the Args section mostly duplicates the input schema, and 'Path parameter' adds no real information. The endpoint line is useful but the structure is otherwise minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three required path parameters and no schema parameter descriptions, the description is too sparse. It fails to explain what values season and country expect, how links are returned, or why this differs from sibling watchnow/justwatch link tools. The presence of an output schema helps with return values, but the input side remains under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It gives only 'season: Path parameter', 'country: Path parameter', and 'id: The id/slug of the resource.' The id explanation adds a small amount of value, but season and country are merely labeled as path parameters with no format, examples, or allowed values. This is not enough to compensate for the complete absence of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get season JustWatch links.' This clearly identifies what the tool does and how it differs from the closely related show-level and movie-level JustWatch link tools in the sibling list. It could earn a 5 by explicitly naming the alternative, but the core purpose is still unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool over alternatives, such as the show-level 'justwatch_links_by_country' or the episode-level watchnow tools. It simply restates the endpoint and lists path parameters. There are no exclusion criteria, no context, and no mention of when this specific tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_sentimentsARead-onlyIdempotent
Get show sentiments.
GET /shows/{id}/sentiments
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds only the endpoint shape and resource identifier, with no extra behavioral context such as aggregation behavior, auth requirements, or response semantics. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line summary, the exact HTTP endpoint, and a clear argument definition. It has no filler and front-loads the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with annotations and an output schema, the description provides the essential operational details: operation, path, and id semantics. It does not explain what the sentiments data contains, but the output schema can cover the return shape, so the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining the id parameter. It states that id is 'The id/slug of the resource', which adds meaning beyond the bare schema title 'Id' and clarifies that slugs are accepted. It could include an example, but for a single parameter this is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get show sentiments' — a specific verb, resource, and data type — reinforced by the endpoint GET /shows/{id}/sentiments. It is clear, though it does not explicitly differentiate itself from sibling tools like get_movies_by_id_sentiments or other show-data endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for retrieving sentiment data for a show by its id or slug. However, it gives no explicit guidance on when to use it over related endpoints such as get_shows_by_id_ratings or get_shows_by_id_stats.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_statsCRead-onlyIdempotent
Get show stats.
GET /shows/{id}/stats
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), and the description is consistent with a read-only operation. However, the description adds no behavioral context beyond what annotations provide — no mention of auth needs, rate limits, or what 'stats' entail — so it neither enhances nor contradicts the annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five short lines with no wasted words; the core statement 'Get show stats.' is front-loaded, followed by the endpoint and a single parameter explanation. The brevity is efficient, though the terseness contributes to the ambiguity about what 'stats' means.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one param, rich annotations, output schema present), so minimal description is acceptable, and the output schema can communicate return-value shape. However, the description is incomplete on semantics — it never defines what 'stats' contain or how this differs from ratings, sentiment, and progress endpoints, leaving a real gap for an agent deciding between siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does: 'id: The id/slug of the resource' clarifies that the parameter accepts an id or slug rather than a bare identifier, and the endpoint path indicates it refers to a show. However, the reference to 'the resource' is generic and doesn't elaborate on format or constraints, so compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb and resource ('Get show stats') but 'stats' is undefined, making the purpose vague among many siblings like get_shows_by_id_ratings and get_shows_by_id_sentiments. The HTTP path 'GET /shows/{id}/stats' adds some specificity, but the description largely restates the tool name without clarifying what statistics are returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus its numerous siblings. With tools like get_shows_by_id_ratings, get_shows_by_id_progress_watched, get_shows_by_id_sentiments, and get_shows_by_id_seasons_by_season_stats all nearby, the agent receives no criteria for selecting this endpoint over those alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_studiosCRead-onlyIdempotent
Get show studios.
GET /shows/{id}/studios
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint path and the fact that the id can be an id or slug, which is useful. It does not describe response shape or pagination, but the output schema exists and annotations carry the behavioral burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the core purpose. The endpoint path and Args section are useful and not redundant with the schema. It earns its place, though the 'Args' formatting is slightly redundant with the input schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only single-parameter tool with an output schema and strong annotations, the description is mostly adequate. The main gap is that it doesn't clarify what a 'studio' is or how this relates to the show resource, which could cause an agent to confuse it with other show sub-resources.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does state that id is 'The id/slug of the resource,' which adds the slug alternative beyond the schema's bare 'Id' title. However, it doesn't clarify what resource type the id refers to (show id vs. studio id) or provide examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Get show studios' and includes the endpoint path, which clearly identifies the resource and operation. However, it doesn't explain what 'studios' means in this context (e.g., production companies associated with a show) or distinguish it from the many sibling get_shows_by_id_* tools beyond the name itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives like get_shows_by_id, get_shows_by_id_people, or get_movies_by_id_studios. The endpoint path implies it takes a show id, but there is no explicit context about use cases or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_translationsARead-onlyIdempotent
Get all show translations.
GET /shows/{id}/translations
Args: id: The id/slug of the resource. language: Filter translations to a 2 character language code
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| language | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no further behavioral details (e.g., error handling, auth requirements) but does not contradict annotations. It only mentions the language filter, which is more parameter semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is succinct: a one-line purpose, the HTTP endpoint, and two parameter definitions. It is front-loaded with the purpose and uses a clean, structured format with no redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only GET with two parameters and an output schema, the description covers the essential parameters and resource. It doesn't discuss pagination or error responses, but those are likely in the output schema and annotations. It is reasonably complete for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains id as 'the id/slug of the resource' and language as a '2 character language code', adding meaningful context beyond the bare schema types. This adequately covers both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all show translations', a specific verb and resource. The name and endpoint clarify it's for a show, distinguishing it from similar translation endpoints for seasons or episodes. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternative translation endpoints (e.g., season or episode translations). The description provides no context about selection criteria or exclusions, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_videosCRead-onlyIdempotent
Get all videos.
GET /shows/{id}/videos
Args: id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the description does not need to restate safety. However, it adds no behavioral context beyond the endpoint, such as pagination, sorting, size limits, or that it returns video metadata rather than files. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded with 'Get all videos,' but it is too sparse. It includes the endpoint as a code line, which is helpful, yet there is no logical structure beyond that. It is not bloated, but it lacks necessary details to be considered well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool complexity (a simple GET with one param) and that an output schema exists, the description need not detail return values. However, it fails to clarify what 'all videos' means, any default ordering or pagination, and does not explicitly tie the 'resource' to a show. The agent must rely on the name and endpoint to infer context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero coverage for parameter descriptions, so the description compensates by explaining 'id' as 'The id/slug of the resource.' This adds meaningful context (allowing slug input) beyond the bare schema type. For a single parameter, this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get all videos' which is a clear verb+resource, but it is generic and does not explicitly mention the resource type (show) except through the endpoint path. It fails to distinguish this from sibling tools like get_movies_by_id_videos or get_episodes_by_id_videos, which are similarly named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any mention of which resource types (shows) it applies to. The description does not state any exclusions or conditions for selection, leaving the agent to infer from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_watchingCRead-onlyIdempotent
Get users watching right now.
GET /shows/{id}/watching
Args: id: The id/slug of the resource. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the read-only safety profile is covered. The description adds no behavioral nuance beyond the endpoint—nothing about time windows, pagination, or response semantics—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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is optimally concise: a one-line purpose, the endpoint, and a compact argument list. Every sentence carries information and the structure is easy to scan, with the main purpose front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read operation with annotations and an output schema present, the baseline information is mostly adequate. However, it lacks usage context relative to the large sibling set and does not clarify the 'extended' parameter, leaving a notable gap for an agent deciding between similar watching endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the burden falls on the description. It adds minimal value: 'id: The id/slug of the resource' is helpful, but 'extended: Extended information to include in the response' is essentially a restatement of the parameter name and gives no concrete guidance about accepted values or what extended info is returned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get users watching right now,' backed by the explicit endpoint 'GET /shows/{id}/watching.' This makes clear it returns users currently watching a given show, and the endpoint distinguishes it from sibling tools like get_movies_by_id_watching, though it does not explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_users_by_id_watching or get_movies_by_id_watching. The description only states the endpoint and arguments, leaving the agent to infer the appropriate context from the resource path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_watchnow_by_countryBRead-onlyIdempotent
Get show watch now sources.
GET /shows/{id}/watchnow/{country}
Args: id: The id/slug of the resource. country: 2 character country code. links: Query parameter. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| links | No | ||
| country | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-mutating operation. The description adds the GET endpoint path, which is a useful behavioral detail not in the annotations. However, it doesn't disclose what the response contains (e.g., streaming providers) or any rate limits, but with annotations covering the safety profile, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the one-liner purpose, followed by the endpoint path. The Args block is redundant with the schema and adds little value, but the overall length is appropriate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 params, 2 required) and the presence of an output schema, the description is minimally adequate. However, it lacks details on the meaning of 'links' and 'extended' parameters, and doesn't mention how this differs from the JustWatch-specific sibling tool, which could lead to incorrect selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only repeats the parameter names ('id', 'country', 'links', 'extended') without adding meaning. It does not explain what 'links' as a query parameter does or what 'extended' information might be included. Since the schema gives only types and titles, the description does not compensate for the lack of parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear purpose ('Get show watch now sources') and specifies the resource (show) and operation (retrieve watch now data for a country). It is reasonably specific, though it doesn't explicitly differentiate from closely related siblings like 'get_shows_by_id_watchnow_justwatch_links_by_country' or the movie counterpart, but the name and description provide sufficient clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. It does not mention that for JustWatch links one should use the sibling tool 'get_shows_by_id_watchnow_justwatch_links_by_country', nor does it describe any prerequisites (e.g., requiring authentication or country code validation). The usage context is implied by the tool name and description, but not clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_by_id_watchnow_justwatch_links_by_countryCRead-onlyIdempotent
Get show JustWatch links.
GET /shows/{id}/watchnow/justwatch_links/{country}
Args: country: Path parameter. id: The id/slug of the resource.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| country | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description adds little behavioral context beyond restating the GET endpoint. It does not explain what the links contain, whether external redirection is involved, or any access constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with no filler. The main purpose appears in the first sentence, followed by the useful endpoint path and minimal arg clarifications.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with an output schema, the description is mostly adequate, but it omits country format details and does not distinguish this endpoint from similar watchnow/JustWatch siblings. Given the 0% schema coverage and rich sibling context, a bit more would make it complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only says country is a path parameter and id is the id/slug of the resource. It does not explain expected country code format, provide examples, or clarify how id/slug values can be resolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get show JustWatch links,' which names a specific verb and resource. It is clear enough about what the tool returns, though it does not explicitly contrast with the closely related sibling get_shows_by_id_watchnow_by_country or the movie variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of related watchnow/JustWatch endpoints. The description only restates the endpoint and args, leaving the agent to infer usage from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_collected_by_periodARead-onlyIdempotent
Get the most collected shows.
GET /shows/collected/{period}
Args: period: Path parameter. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| period | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context: pagination clamping behavior, default limits, and a detailed breakdown of watchnow values. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a concise purpose statement, followed by a parameter list. The list is long but necessary given 17 parameters; the watchnow explanation is somewhat verbose and unformatted but remains readable. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter endpoint, the description leaves critical gaps: valid period values, accepted formats for filter parameters (genres, years, ratings, etc.), and possible values for 'extended' are absent. An agent could not reliably construct a correct request without external knowledge. Output schema exists but does not aid request construction.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the lack of parameter documentation. It lists all 17 parameters and gives clear semantics for watchnow, limit, and the ignore_* flags, but most parameters are only labeled 'Query parameter' without explaining format or allowed values (e.g., genres, years, period). Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get the most collected shows,' a specific verb+resource that clearly states the action and output. The endpoint path 'GET /shows/collected/{period}' further clarifies the resource and distinguishes it from sibling period-based endpoints for favorited, played, and watched shows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives like get_shows_favorited_by_period or get_movies_collected_by_period. The intended usage is only implied by the name and one-line summary; no exclusions or alternative routing are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_favorited_by_periodBRead-onlyIdempotent
Get the most favorited shows.
GET /shows/favorited/{period}
Args: period: Path parameter. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| period | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description need not repeat safety properties. It adds useful behavioral details such as the GET endpoint, pagination defaults/clamping, and watchnow value semantics, but does not describe sort order or response behavior beyond 'most favorited'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The Args list is structured and free of overt fluff, and the summary line is concise. However, many entries merely restate 'Query parameter,' adding length without semantic value, and the watchnow block is verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return shape and annotations cover safety/idempotency, while the description adds pagination and filter details. The missing period value semantics and lack of sibling differentiation are real gaps, but the tool is callable for straightforward uses with the information provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It gives real detail for watchnow, limit, and ignore_* flags, but the required 'period' parameter is only described as 'Path parameter' with no accepted values, and date/genre/rating/country formats are left entirely to inference from their names. This is insufficient for 17 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Get the most favorited shows' states a specific verb and resource, and the endpoint path clarifies that results are scoped by a period. It does not explicitly distinguish this from closely related sibling period tools like collected/played/streaming/watched, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use the tool—when favorited shows for a period are needed—and the parameter list suggests filtering use cases. However, there are no explicit exclusions or guidance about when to prefer an alternative sibling tool, so usage guidance remains only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_played_by_periodCRead-onlyIdempotent
Get the most played shows.
GET /shows/played/{period}
Args: period: Path parameter. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| period | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: pagination clamping behavior ('higher values are clamped rather than rejected') and the varying default limit by 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first line and endpoint are efficient, but the body is a long parameter dump where roughly half the entries ('Query parameter') add no information. Indentation is inconsistent (two-space vs four-space) and the list is not front-loaded by importance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and safety annotations present, the description's job narrows, but for a 17-parameter tool it still omits critical calling information: valid values for the required period parameter, the meaning/format of extended, and the expected syntax of the filter parameters. An agent cannot confidently construct a correct call without external documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema property descriptions are absent (0% coverage), so the description must compensate. It does so thoroughly for watchnow (seven documented values) and limit (defaults/maximums/clamping). However, eight parameters (genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, certifications) are dismissed as 'Query parameter' with zero added meaning, and the required period parameter gets only 'Path parameter' with no accepted values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with 'Get the most played shows,' a specific verb+resource pair, reinforced by the GET /shows/played/{period} endpoint. This distinguishes it from sibling period tools (watched/collected/favorited/streaming) by naming the 'played' metric, though no sibling is explicitly named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to select this tool over siblings like get_shows_watched_by_period or get_movies_played_by_period. The description jumps straight into the parameter list with no context, preconditions, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_streaming_by_periodBRead-onlyIdempotent
Get streaming shows.
GET /shows/streaming/{period}
Args: period: Path parameter. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| period | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish the tool as read-only, idempotent, and non-destructive, and the description is consistent with that. The description adds useful behavioral context beyond annotations: detailed pagination clamping behavior, default limits, and the full set of watchnow values with their meanings. This is meaningful transparency information an agent could not derive from the schema alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and endpoint, and the parameter list is organized logically. However, repeated 'Query parameter' lines add little value, the watchnow block has inconsistent indentation and a grammar issue ('subscriptions_all' streaming), and the overall text is longer than necessary for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the output schema and annotations, the description leaves critical gaps for a 17-parameter endpoint: it does not define what 'period' means, what result set is returned, how filters like genres/ratings/date ranges should be formatted, or how watchnow interacts with countries and period. Given the large sibling set of period-based show endpoints, an agent cannot confidently call this tool correctly without external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds real semantic value for some parameters, especially watchnow (all seven allowed values explained) and limit (defaults, maximums, clamping behavior). However, with 0% schema description coverage, many parameters are only labeled 'Query parameter' with no syntax or format guidance, and period is only called 'Path parameter' without valid values. The compensation is partial at best.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Get streaming shows' and includes the full endpoint path GET /shows/streaming/{period}, so the specific resource and action are identifiable. It does not, however, explain what 'streaming' means in this context or how it differs from sibling period-based endpoints like get_shows_watched_by_period or get_shows_played_by_period, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention conditions, exclusions, or sibling tools such as get_movies_streaming_by_period or other get_shows_*_by_period endpoints. An agent is left to infer intent entirely from the name and endpoint path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_updates_by_start_dateARead-onlyIdempotent
Get recently updated shows.
GET /shows/updates/{start_date}
Args: start_date: UTC date to start checking for updates. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| extended | No | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond that: pagination defaults are low, limits are capped and clamped rather than rejected, and start_date is interpreted as UTC. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well structured: a one-line summary, the endpoint, then parameter explanations and a useful pagination note. It is front-loaded and every section serves a purpose, though the endpoint line is somewhat redundant with the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the required start_date and the pagination behavior in detail, and the output schema plus annotations handle return values and safety. Missing context includes what 'updates' means, what 'extended' actually accepts, and how this tool relates to get_shows_updates_id_by_start_date.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does provide meaningful semantics for start_date, page, and limit, including clamping behavior. However, 'extended: Extended information to include in the response' is vague and does not explain accepted values or what extra data will be returned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('recently updated shows'), and includes the endpoint path, making the primary purpose clear. However, it does not explicitly distinguish itself from the sibling tool get_shows_updates_id_by_start_date, which presumably returns only IDs rather than full show data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: use this when you need recently updated shows starting from a UTC date. The description provides operational guidance on pagination defaults, but it does not state when to prefer this tool over alternatives such as get_shows_updates_id_by_start_date or the movies/people update variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_updates_id_by_start_dateARead-onlyIdempotent
Get recently updated show Trakt IDs.
GET /shows/updates/id/{start_date}
Args: start_date: UTC date to start checking for updates. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation as read-only, idempotent, and non-destructive. The description adds valuable behavioral context beyond annotations by explaining pagination defaults, endpoint maximums, and that limit values are clamped rather than rejected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the primary purpose. Each sentence earns its place: the endpoint path, the parameter list, and the pagination behavior note are all relevant without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET endpoint with an output schema, the description covers the endpoint, all parameters, and key behavioral details. A minor gap is that it does not specify the exact date format expected for start_date beyond 'UTC date.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for parameter meaning. It clearly documents start_date as a UTC date, page as the page number, and limit with default behavior, maximum capping, and clamping behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get recently updated show Trakt IDs,' which states a specific verb, resource, and output type. This clearly distinguishes it from sibling tools that return full update objects or IDs for other media types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear usage context: call this endpoint with a UTC start_date to retrieve recently updated show IDs. It does not explicitly name alternatives or exclusions, but the ID-focused wording implies when this variant should be chosen over the full-updates sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shows_watched_by_periodCRead-onlyIdempotent
Get the most watched shows.
GET /shows/watched/{period}
Args: period: Path parameter. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| period | Yes | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the safe read nature is covered. The description adds useful behavioral context beyond the annotations by explaining pagination behavior (default limit often 10, clamped to 250) and detailing the watchnow filter options. It does not mention auth requirements or return data shape, but with annotations and an output schema those gaps are less severe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably lean; it opens with the one-sentence purpose and then lists the endpoint and parameters. The watchnow section is verbose but informative. No redundant fluff is present. It could be more compact by trimming generic labels, but overall it is well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The required parameter `period` is not given any valid values or format, which is a critical omission—an agent cannot call the tool correctly without that information. Many other filter parameters lack formats or examples. While an output schema exists, the description still does not explain the meaning of date ranges, string encoding, or extended info options, leaving significant ambiguity for a tool with 17 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description carries the full burden of explaining 17 parameters. It provides detail for watchnow (with enumerated values) and limit (default/clamping), but most other parameters are merely restated as 'Query parameter' with no format, allowed values, or examples. For instance, 'period' is merely labeled
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get the most watched shows' with the endpoint GET /shows/watched/{period}. This is clear and immediately says what it returns, but it does not explicitly distinguish itself from sibling tools like get_shows_played_by_period or get_movies_watched_by_period; it relies on the tool name and path for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no comparison with siblings, and no mention of prerequisites. For instance, it does not say that this is for aggregated global watched stats versus a user's own watched history. The description simply lists parameters and does not explain which scenario this tool is the right choice for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_smart_lists_by_list_idCRead-onlyIdempotent
Get smart list.
GET /smart-lists/{list_id}
Args: list_id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds only the HTTP method and endpoint, providing no additional behavioral context such as authentication needs, rate limits, or the difference from user-scoped smart lists. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly compact and front-loaded with the action, endpoint, and argument. There is no filler or redundancy, though it sacrifices some useful detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and an output schema, but the description provides no context to distinguish it from similar siblings such as the user-specific smart list getter or the smart list items getter. An agent would have difficulty choosing this tool correctly without additional guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only restates 'list_id: Path parameter', which just mirrors the schema's property name and location. It adds no value about format, constraints, or example values, so it fails to compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and resource 'smart list', and the endpoint 'GET /smart-lists/{list_id}' clarifies the operation. It does not explicitly differentiate from the sibling tool 'get_users_by_id_smart_lists_by_list_id', but the purpose is unambiguous enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives like 'get_users_by_id_smart_lists_by_list_id' or 'get_smart_lists_by_list_id_items'. No context is provided for selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_smart_lists_by_list_id_itemsCRead-onlyIdempotent
Get smart list items.
GET /smart-lists/{list_id}/items
Args: list_id: Path parameter. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| list_id | Yes | ||
| ratings | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered elsewhere. The description adds some useful parameter behavior, especially the allowed watchnow values and the 'all' option for limit, but it does not disclose auth requirements, pagination behavior, or response shape—though the latter is mitigated by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a purpose line, endpoint, and an Args list, making it easy to scan. However, the repeated 'Query parameter' lines add little value and make the description longer than necessary, while the lengthy watchnow explanation, though useful, is embedded inconsistently with the other parameter entries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 14 parameters, only one required, and 0% schema description coverage, the description leaves significant gaps. It does not explain how filter parameters combine, what value formats are expected for genres/years/ratings/countries, or how this endpoint relates to smart-list creation and ownership, so an agent would struggle to construct a correct request beyond the most basic one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the schema's lack of semantic detail. It adds meaningful detail for watchnow, limit, page, and the ignore flags, but repeats 'Query parameter' for genres, subgenres, years, ratings, runtimes, countries, and certifications, providing no format, allowed values, or examples for these key filter parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get smart list items' and includes the endpoint 'GET /smart-lists/{list_id}/items', making the verb and resource clear. It does not explicitly differentiate itself from sibling list-item endpoints like get_lists_by_id_items or get_users_by_id_smart_lists_by_list_id, but the 'smart list' framing is still specific enough to convey the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as get_lists_by_id_items, get_users_by_id_smart_lists_by_list_id, or the various list-item-by-type endpoints. The description only states the operation and lists parameters, leaving the agent to infer usage context from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sync_collection_by_typeDRead-onlyIdempotent
Get collection.
GET /sync/collection/{type}
Args: type: Sync media type filter. extended: Extended information to include in the response. available_on: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| extended | No | ||
| available_on | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description does not contradict them. However, the description provides no additional behavioral context beyond the endpoint: it does not explain what data is returned, whether extended adds fields, or the meaning of available_on. The limit description is actually a generic note that may apply endpoint-wide, but it is the only behavioral hint given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively short but contains filler: the endpoint URL is redundant given the tool name, and the generic pagination note is verbose. It is structured clearly with 'Args:' but could be more concise by cutting the endpoint line. The front-loaded 'Get collection' is not informative enough.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, an output schema, and zero schema coverage, the description is far from complete. It fails to define the 'sync collection' concept, the valid types, the meaning of extended, or the available_on parameter's format. The output schema exists, so return values aren't the issue, but parameter semantics and usage are severely under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, but it only names the parameters with minimal glosses like 'Sync media type filter' and 'Extended information to include in the response.' It does not explain accepted values for type or extended, nor how available_on should be formatted. It does provide some detail on pagination defaults, but that is not enough given no schema descriptions exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description title and first line 'Get collection' are vague; the tool is named get_sync_collection_by_type but the description does not specify what a 'sync collection' is or how it differs from related tools like list_sync_collection_movies or get_users_by_id_collection_by_type. It lists the parameters but the purpose remains ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus siblings. The description merely restates the endpoint and parameter list, with no mention of alternatives, use cases, or exclusions. The agent is left to infer that this tool is for retrieving synced media by type, but it is not distinguished from similar collection retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sync_favorites_by_type_by_sort_by_by_sort_howBRead-onlyIdempotent
Get favorites.
GET /sync/favorites/{type}/{sort_by}/{sort_how}
Args: type: Sync media type filter. sort_by: Sort by a specific property. sort_how: Sort direction. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| sort_by | Yes | ||
| extended | No | ||
| sort_how | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive profile; the description adds genuine behavioral detail by explaining pagination defaults, endpoint caps, and clamping behavior. This is useful context beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and logically ordered: purpose, endpoint, then parameters with the most detailed guidance on pagination. No redundant filler, though some parameter lines are thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The endpoint path and pagination behavior are helpful, and the output schema covers return values, but a caller is left without accepted values for type/sort_by/sort_how and no indication of which sibling scenario this belongs to. For a 6-parameter endpoint with no enums, this is a significant completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must carry the parameter documentation. It provides a label for every parameter and more detailed pagination semantics, but leaves type, sort_by, and sort_how without concrete accepted values, so the added meaning is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Get favorites') and gives the full endpoint path, making the target unambiguous. However, it does not distinguish this from sibling tools like get_users_by_id_favorites_by_type_by_sort_by_by_sort_how, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to prefer this tool over the many sibling favorites/list tools. The description only names the operation and parameters, leaving the selection decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sync_history_by_type_by_idBRead-onlyIdempotent
Get watched history.
GET /sync/history/{type}/{id}
Args: type: Sync media type filter. id: Trakt ID for a specific item. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. start_at: Start date for the range. Must be formatted as "YYYY-MM-DD". end_at: End date for the range. Must be formatted as "YYYY-MM-DD".
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| end_at | No | ||
| extended | No | ||
| start_at | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful pagination behavior (default limit often 10, capped at 250) and date format requirements, adding value beyond annotations. However, it does not describe response structure or potential errors, but the output schema exists, so the bar is lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured as a one-line summary followed by a list of parameter explanations. It front-loads the core purpose and then provides necessary parameter details. However, the parameter list is somewhat verbose, and some entries like 'extended' are vague, leaving room for more concise explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately complex with 7 parameters and an output schema. The description covers parameter semantics and pagination, but lacks guidance on what 'watched history' specifically includes (e.g., does it include movies, episodes, or all?) and how it differs from other history endpoints. Given the output schema exists, it is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions (0% coverage), but the description compensates by explaining 'type', 'id', 'extended', 'page', 'limit', 'start_at', and 'end_at' with meaningful details such as date format and pagination behavior. This is crucial given the complete lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get watched history.' and includes the endpoint path, which clearly indicates it retrieves watched history for a specific type and ID. However, it does not differentiate from other sync history tools like get_sync_watched_by_type or get_users_by_id_history, so purpose is clear but sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not specify when to use this tool versus alternatives like get_sync_watched_by_type or get_users_by_id_history. It only lists parameters, leaving the agent to infer the use case. No guidance on when not to use it is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sync_playback_by_typeBRead-onlyIdempotent
Get playback progress.
GET /sync/playback/{type}
Args: type: Sync media type filter. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. start_at: Start date for the range. Must be formatted as "YYYY-MM-DD". end_at: End date for the range. Must be formatted as "YYYY-MM-DD".
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| years | No | ||
| end_at | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| start_at | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior, and the description avoids contradicting them. It adds useful runtime details: GET method, pagination defaults with clamping rather than rejection, required date formats, and the semantics of watchnow streaming filters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The endpoint and Args layout are scannable and front-loaded with 'Get playback progress.' However, nearly half of the parameter lines are empty filler ('...: Query parameter.'), and the watchnow/limit explanations, while useful, add length. A tighter list with real semantics for every parameter would earn a higher score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the output schema and annotations cover return values and safety, the description is not complete enough for a 16-parameter tool with no schema descriptions: it lacks valid values for the required type, options for extended, filter formats, and any usage differentiation. An agent could not confidently construct a correct call from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must define parameters, but it only meaningfully describes watchnow, page, limit, start_at, and end_at. The required type parameter is merely 'Sync media type filter' with no valid values; extended is undefined; and nine filters are dismissed as 'Query parameter,' leaving the agent unable to correctly construct many calls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and resource: 'Get playback progress,' and the endpoint GET /sync/playback/{type} confirms it returns sync playback data filtered by media type. It does not explicitly contrast with siblings like get_sync_watched_by_type or get_sync_collection_by_type, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over the many sync/list siblings, no mention of prerequisites such as authentication, and no exclusions. The watchnow text is value-level guidance for one parameter, not tool-level usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sync_ratings_by_type_by_ratingCRead-onlyIdempotent
Get ratings.
GET /sync/ratings/{type}/{rating}
Args: type: Sync media type filter. rating: Rating filter from 1 to 10. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| rating | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful pagination details (default limit, clamping behavior) that are not in annotations, but it omits other behavioral aspects like authentication 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively compact but opens with the redundant phrase 'Get ratings.' which adds no value. The argument list is structured but not front-loaded with the most critical differentiators. It is not overly verbose, but the efficiency is undermined by the vague opening and lack of context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 params, output schema) and the existence of many sibling rating tools, the description fails to explain what makes this endpoint distinct or how to correctly use it. It does not clarify the meaning of 'sync,' does not mention that it likely returns a user's synced ratings, and does not distinguish it from user-specific rating endpoints. The pagination details are useful but not sufficient for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides a range for 'rating' (1-10) and explains limit clamping, but 'type' is only described as 'Sync media type filter' without enumerating possible values, and 'extended' is left vague. 'page' is merely described as 'the page number to retrieve,' which adds little beyond the schema. The compensation is incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get ratings' which is vague and does not specify whose ratings (user-specific vs sync), what 'sync' refers to, or how it differs from similar tools like get_users_by_id_ratings_by_type_by_rating. The resource is identified only by the endpoint path, but the purpose remains ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternative rating endpoints. It does not mention that this is for a user's synced ratings from external services, nor does it differentiate from user-specific ratings. The agent must 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.
get_sync_watched_by_typeCRead-onlyIdempotent
Get watched.
GET /sync/watched/{type}
Args: type: Sync media type filter. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and idempotent, so the description does not need to repeat that. However, it adds no behavioral context beyond the endpoint path, such as whether this returns the current user's personal watched items, whether authentication is required, or how the 'extended' flag affects the response. The description is essentially a skeleton of the API call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very brief and front-loads the one-line purpose, followed by endpoint and arguments. There is no fluff or redundant restating of structured fields; it is appropriately scoped for a tool with only two parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the large sibling set and the ambiguity around 'type' and 'extended', the description is not complete enough. It omits important routing vs alternatives, media type values, the scope of watched (current user vs all), and the meaning of 'extended'. Although an output schema exists, an agent could still call this tool with an invalid 'type' value or misinterpret the response source.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides placeholders ('Sync media type filter', 'Extended information to include in the response') but these are vague: allowed type values are not given, and 'extended' does not clarify what extra fields or booleans are accepted. This falls short of what an agent needs for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb and resource ('Get watched') and identifies the HTTP path /sync/watched/{type}, which provides a basic sense of what it returns. However, 'Get watched' is a minimal restatement of the tool name and does not distinguish this from sibling tools like get_sync_watchlist_by_type or get_users_by_id_watched_by_type, nor does it explain what 'watched' 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives such as get_users_by_id_watched_by_type or get_users_syncs_by_type. The description simply relays the endpoint and arguments, leaving the agent to infer the appropriate use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sync_watchlist_by_type_by_sort_by_by_sort_howCRead-onlyIdempotent
Get watchlist.
GET /sync/watchlist/{type}/{sort_by}/{sort_how}
Args: type: Sync media type filter. sort_by: Sort by a specific property. sort_how: Sort direction. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No | ||
| sort_by | Yes | ||
| extended | No | ||
| sort_how | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral detail about pagination, including default limits and clamping behavior. However, it does not mention other aspects like response format or potential errors, which is acceptable given the annotation coverage. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and includes the endpoint URL and a parameter list. It is not overly verbose, but the parameter descriptions are terse and lack detail. The structure is acceptable, but it could be better organized with examples or formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has 6 parameters with no schema descriptions, the description is incomplete. It does not provide valid values, examples, or clarification of what 'sync' means in this context. The presence of an output schema reduces the need to explain return values, but the parameter semantics are critical and insufficient. The description also fails to differentiate among the many sibling watchlist tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions are entirely absent (0% coverage), so the description must compensate. It gives one-line explanations: 'type' as 'Sync media type filter' without enumerating valid values; 'sort_by' as 'Sort by a specific property' without listing possible properties; 'sort_how' as 'Sort direction' without stating allowed directions (e.g., asc/desc). 'extended' is undefined. This is too vague for an agent to know what values to supply, especially for required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get watchlist.' However, it is ambiguous which watchlist this refers to, as sibling tools like get_users_by_id_watchlist_by_type_by_sort_by_by_sort_how also fetch watchlists. The URL path '/sync/watchlist/{type}/{sort_by}/{sort_how}' clarifies the sync scope, but the description does not explicitly distinguish it from user watchlists, so it is only partially clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention that this is for the authenticated user's sync watchlist, nor does it note any conditions or differences from sibling tools like get_sync_collection_by_type or get_users_by_id_watchlist_by_type_by_sort_by_by_sort_how. The description provides no usage 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_idARead-onlyIdempotent
Get user profile.
GET /users/{id}/
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the useful detail that 'id' can be 'me' for the authenticated user, but it does not elaborate on response format or error conditions. With annotations carrying the safety burden, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, front-loading the purpose ('Get user profile') followed by the endpoint and parameter explanations. No unnecessary words or sentences. It is efficiently structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with an output schema and safety annotations, the description covers the essential information: purpose, endpoint, and parameter meanings. It lacks usage differentiation from siblings and detail on 'extended', but these are minor for a basic profile fetch. The presence of an output schema means return format does not need to be described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains 'id' well (slug or 'me'), but 'extended' is only vaguely described as 'Extended information to include in the response' without specifying what that information is or allowed values. This is a partial explanation that leaves ambiguity for the 'extended' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get user profile' and provides the exact endpoint GET /users/{id}/. This is specific and distinguishes it from the many sibling tools that fetch sub-resources like lists, ratings, or watchlists. The resource and verb are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many sibling get_users_by_id_* tools. It does not mention that this is for the base profile only, or that other tools should be used for specific sub-resources. The agent is left to infer that from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_by_id_by_type_activitiesCRead-onlyIdempotent
Get social activity.
GET /users/{id}/{type}/activities
Args: id: The slug that identifies the user, or "me" for the authenticated user. type: Path parameter. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds useful behavioral detail about pagination (default low limits and clamping higher values to endpoint maximums), but it does not disclose what 'social activity' actually returns or any endpoint-specific limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and repetitive, with many 'Query parameter.' lines adding no value. It is somewhat organized by parameter names, but a substantial portion of the text does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter tool with 0% schema coverage, the description is incomplete: it does not enumerate valid type values, date formats, extended options, or multi-value query syntax. The output schema may cover return values, but the parameter documentation gap remains significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning, but many entries are tautological ('genres: Query parameter.', 'years: Query parameter.'). Only id, watchnow, ignore_*, page, and limit receive meaningful explanations, while type, extended, genres, ratings, dates, runtimes, countries, and certifications are left under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Get social activity' and includes the endpoint path GET /users/{id}/{type}/activities, giving a specific verb and resource. However, it does not explain what 'type' refers to or explicitly distinguish this from other user activity endpoints like history or ratings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus sibling tools such as get_users_by_id_history or get_users_by_id_ratings. The description only lists parameters and the endpoint path, leaving the agent to infer the use case from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_by_id_collection_by_typeARead-onlyIdempotent
Get collection.
GET /users/{id}/collection/{type}
Args: id: The slug that identifies the user, or "me" for the authenticated user. type: User media type filter. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only and idempotent, so the description only needs to add non-obvious behavior. It does: 'id' may be 'me', 'watchnow' values are enumerated, and the limit default/clamping behavior is described clearly. No statement contradicts the annotations, though 'extended' is left vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The endpoint line and argument list are well organized, and the pagination/watchnow details are useful. However, repeated 'Query parameter.' lines add noise, and the 'subscriptions_all' line has a grammar slip, so the description is not as tight as it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter endpoint with 0% schema coverage, the description provides enough to make a basic id/type call, but advanced filtering is underspecified because filter parameter formats and allowed type values are missing. Output schema and annotations reduce the burden somewhat, but the description is not fully complete for advanced invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It adds real semantics for id, watchnow, page, and limit, but nine parameters such as genres, years, ratings, and countries are only labeled 'Query parameter' with no format, allowed values, or examples. Type and extended also remain underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get collection' and gives the exact endpoint 'GET /users/{id}/collection/{type}', so the verb, resource, and path pattern are identifiable. It is clear, but it does not explicitly differentiate this from sibling collection endpoints such as get_sync_collection_by_type or describe what the returned collection contains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the endpoint and the id/type parameters: an agent can infer this fetches a user's collection filtered by media type. However, there is no explicit when-to-use guidance, no mention of alternatives, and no exclusions relative to the many sibling list/sync/collection tools.
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_comments_by_comment_type_by_typeBRead-onlyIdempotent
Get comments.
GET /users/{id}/comments/{comment_type}/{type}
Args: id: The slug that identifies the user, or "me" for the authenticated user. comment_type: Path parameter. type: Path parameter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. include_replies: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| extended | No | ||
| comment_type | Yes | ||
| include_replies | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses useful behavioral details beyond the annotations, most notably the pagination semantics (defaults, cap, clamping) and the special 'me' value for id. Since the annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, these additions are meaningful and align with the annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured and front-loads the purpose, but it contains low-information filler like 'Path parameter' and 'Query parameter' that could be omitted. The pagination explanation is thorough but a bit lengthy. Overall, it is reasonably organized but not optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three required parameters, comment_type and type are essentially unexplained, which is a significant gap. The meaning of 'extended' is vagueaving an agent unsure what values to pass or what additional data it returns. While an output schema exists)Skip, the missing definitions of core parameters make this incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning for several parameters: id ('slug or me'), extended ('Extended information to include'), and page/limit (detailed pagination behavior). However, comment_type and type are described only as 'Path parameter' and include_replies as 'Query parameter', which adds no semantic value beyond the schema. Since the schema has no descriptions, the description partially compensates but leaves key parameters under-explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get comments' and provides the full endpoint path, making the verb and resource unambiguous. However, it does not explain what comment_type and type actually mean, nor does it distinguish this from the many sibling tools that also retrieve comments (e.g., get_users_by_id_comments_by_sort). Still, it is more than a tautology and points clearly to a specific resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description simply lists the endpoint and parameters, without any mention of when this variant is preferred over other comment-fetching endpoints, such as get_comments_recent_by_comment_type_by_type or get_users_by_id_lists_by_list_id_comments_by_sort.
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_favorites_by_type_by_sort_by_by_sort_howARead-onlyIdempotent
Get favorites.
GET /users/{id}/favorites/{type}/{sort_by}/{sort_how}
Args: id: The slug that identifies the user, or "me" for the authenticated user. type: Favorites media type filter. sort_by: Sort by a specific property. sort_how: Sort direction. extended: Extended information to include in the response. sort_by_query: The field to sort by sort_how_query: The direction to sort in page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| sort_by | Yes | ||
| extended | No | ||
| sort_how | Yes | ||
| sort_by_query | No | ||
| sort_how_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only, idempotent, non-destructive, and open-world. The description adds useful behavioral context beyond those flags: 'me' resolves to the authenticated user, and pagination defaults/clamping behavior is specified, which materially affects how the response is assembled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: one-sentence summary, endpoint line, then a clean Args list. No filler sentences are present, and the pagination explanation is the only expanded detail, where it earns the extra space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all parameters and the endpoint, and the output schema can handle return-value details. It still leaves important invocation details unspecified: the acceptable values for type/sort_by/extended, and the relationship between sort_by/sort_how and sort_by_query/sort_how_query, which is not apparent from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries full responsibility for all 9 parameters and lists each one. However, several entries are too generic to be actionable: 'type' and 'sort_by' give no allowed values, and sort_by_query/sort_how_query merely restate the path sort semantics without explaining how they relate to the path parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get favorites.' and the concrete endpoint GET /users/{id}/favorites/{type}/{sort_by}/{sort_how}, making the verb, resource, and path variables clear. It does not explicitly distinguish this from sibling favorites tools such as get_users_by_id_favorites_media_by_sort or get_users_by_id_favorites_comments_by_sort, but the path structure communicates the intended resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to choose this tool over the many sibling favorites/list tools, and no when-to-use or when-not-to-use statement. The endpoint and argument list imply a usage context, but the description leaves the agent to infer it from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_by_id_favorites_comments_by_sortBRead-onlyIdempotent
Get all favorites comments.
GET /users/{id}/favorites/comments/{sort}
Args: id: The slug that identifies the user, or "me" for the authenticated user. sort: Path parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description only needs to add context. It adds pagination default and clamping behavior, but doesn't disclose what 'sort' values are allowed or what shape the response takes. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the action, and the Args section is generally useful. The only waste is the uninformative 'sort: Path parameter' line, but overall it is tightly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return type is covered, but the description leaves the required sort parameter semantically undefined and gives no guidance on comment types or scoping. Pagination defaults are well covered; the main gap is the missing sort semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives useful semantics for id ('me' support), page, and limit, but sort is only described as 'Path parameter,' which repeats the schema without adding valid values or meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a concrete verb and resource ('Get all favorites comments') and the endpoint path clarifies it targets a specific user's favorites comments. It doesn't explicitly contrast with sibling comment endpoints, but the user/favorites scoping is evident from the path and name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this endpoint over alternatives like get_users_by_id_watchlist_comments_by_sort or get_lists_by_id_comments_by_sort. The context is only implicit in the path, so an agent gets no explicit selection criteria or exclusions.
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_favorites_media_by_sortCRead-onlyIdempotent
Get favorite media.
GET /users/{id}/favorites/media/{sort}
Args: id: The slug that identifies the user, or "me" for the authenticated user. sort: Path parameter. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| sort_by | No | ||
| extended | No | ||
| sort_how | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, which are beneficial. The description adds pagination behavior details (default and max limits, clamping) and mentions 'extended' and sorting parameters, but does not disclose response format or potential edge cases. It doesn't contradict annotations, but it's minimally transparent beyond the pagination note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise for a tool with many parameters. It front-loads the action and endpoint, then lists parameters in a structured format. However, it includes redundant phrases like 'sort: Path parameter' that add no value, and the pagination note is a bit long. It's acceptable but could be more efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 7 parameters, an output schema exists (has output schema: true) which may cover return values, but the description does not explain the purpose of each parameter beyond trivial labels, especially 'extended', 'sort_by', and 'sort_how'. It doesn't clarify the 'sort' path parameter's possible values. With schema coverage 0%, the description leaves significant gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. The description lists parameters but provides minimal semantics: 'id' is clearly explained as slug or 'me'; 'sort' is only 'Path parameter'; 'extended' is not explained (what extended information?); 'sort_by', 'sort_how', 'page', 'limit' have trivial descriptions. Pagination details are helpful but incomplete. With 7 parameters and 0% schema coverage, this is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get favorite media' which clearly identifies the resource (favorite media of a user) and the action (GET). It distinguishes from siblings like get_users_by_id_favorites_movies_by_sort and get_users_by_id_favorites_shows_by_sort by having a 'sort' path parameter, but doesn't explicitly explain that 'media' may encompass all types. The purpose is clear but lacks specificity on what 'media' includes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an endpoint URL and parameter list but no guidance on when to use this tool versus siblings like get_users_by_id_favorites_movies_by_sort or get_users_by_id_favorites_shows_by_sort. It doesn't explain the difference between 'media' and specific types (movies/shows) or when 'sort' 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.
get_users_by_id_favorites_movies_by_sortCRead-onlyIdempotent
Get favorite movies.
GET /users/{id}/favorites/movies/{sort}
Args: id: The slug that identifies the user, or "me" for the authenticated user. sort: Path parameter. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| sort_by | No | ||
| extended | No | ||
| sort_how | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and no destructive action, so the safety profile is covered. The description adds useful behavioral context about pagination defaults and clamping (e.g., low default limit, clamping to max), which is beyond the annotations but not comprehensive. It does not describe response details or side effects, but those are not expected for a read-only call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description includes a code block for the endpoint and a bulleted list of args, which is structured and scannable. However, it is somewhat verbose, especially the pagination paragraph, and repeats the endpoint pattern in the name. It is not maximally concise, though it is not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, no schema descriptions, and no enums, this description leaves critical gaps: it does not specify valid values for 'sort', allowed fields for 'sort_by'/'sort_how', or what 'extended' includes. An agent would struggle to call this correctly without external knowledge. The pagination details are thorough, but other parameters are too vague for a 0%-coverage schema, making the overall context insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source for parameter meaning. It provides explanations for all 7 parameters, notably clarifying 'id' with the 'me' option and giving detailed pagination behavior for 'limit'. However, 'sort', 'sort_by', 'sort_how', and 'extended' are only vaguely described (e.g., 'Path parameter', 'The field to sort by'), leaving value constraints and allowed options unspecified. It adds some value but does not fully compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get favorite movies' and provides the endpoint pattern, making the verb and resource explicit. The name itself implies movies, but there is no explicit differentiation from siblings like get_users_by_id_favorites_shows_by_sort or get_users_by_id_favorites_media_by_sort, so it's clear but not distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as get_users_by_id_favorites_shows_by_sort or get_users_by_id_watchlist_movies_by_sort. No context is given about prerequisites, exclusions, or trade-offs, leaving the agent to infer 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.
get_users_by_id_favorites_shows_by_sortBRead-onlyIdempotent
Get favorite shows.
GET /users/{id}/favorites/shows/{sort}
Args: id: The slug that identifies the user, or "me" for the authenticated user. sort: Path parameter. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| sort_by | No | ||
| extended | No | ||
| sort_how | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover read-only, idempotent, and non-destructive behavior. The description adds meaningful pagination behavior, including default limits, endpoint maximums, and clamping of high values. It also explains the special 'me' value for the id parameter, going beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core purpose. The endpoint line and Args list are logically organized, and the limit explanation, while detailed, provides genuinely useful behavior not present in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With seven parameters, no schema descriptions, and no enum constraints, the description is incomplete for correct invocation. The missing semantics for sort, sort_by, sort_how, and extended create significant gaps that an agent cannot resolve from the provided information alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries full responsibility for parameter semantics. While id and limit receive useful detail, required parameters like sort are only described as 'Path parameter,' and sort_by, sort_how, and extended lack concrete allowed values or options. An agent would still be uncertain how to fill these correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get favorite shows' with a clear verb and resource, and the endpoint template reinforces the scope. It is easy to identify this as a read operation for a user's favorite shows, though it does not explicitly distinguish itself from closely related siblings like the movies or media variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to choose this tool over alternatives such as get_users_by_id_favorites_by_type_by_sort_by_by_sort_how or get_users_by_id_favorites_movies_by_sort. The endpoint is shown, but there is no explicit context, exclusion, 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_users_by_id_followersARead-onlyIdempotent
Get followers.
GET /users/{id}/followers
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds some context by clarifying that id can be the slug or 'me' for the authenticated user, which implies authentication requirements. It does not cover pagination, rate limits, or response caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a one-line summary, the endpoint, and a terse args block. There is no wasted text, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only follower fetch with an output schema and rich annotations, the description is largely sufficient. It covers both parameters and the meaningful 'me' special case. Minor gaps such as pagination behavior and the exact shape of extended information are not critical given the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the main source of parameter meaning. It usefully explains that id is a slug and supports 'me' for the authenticated user. The 'extended' parameter explanation is vague, only saying it includes extended information, without detailing what values or formats are expected.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get followers' plus the exact GET endpoint. This is clearly distinct from sibling tools like get_users_by_id_following, since it targets followers rather than followed users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The imperative 'Get followers' implies the intended use case, but there is no explicit guidance about when to choose this over related sibling tools such as get_users_by_id_following or get_users_by_id_friends. No alternatives or exclusions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_by_id_followingBRead-onlyIdempotent
Get following.
GET /users/{id}/following
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only, idempotent, and non-destructive, so the description need not restate safety. The description adds useful context like the special 'me' value for id, but otherwise discloses no further behavioral traits such as pagination, sorting, or response composition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and scannable: the endpoint is front-loaded and the arguments are listed cleanly. There is minimal filler, though 'Get following' plus the endpoint is slightly redundant with the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list with an output schema, the call mechanics are present: endpoint, required id, and optional extended. It lacks a plain-language statement of what following actually returns and does not explain how to populate extended, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by explaining id as a user slug with the special value 'me' for the authenticated user. However, extended is only described as 'Extended information to include in the response,' which leaves what values to pass or what extra fields appear unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the operation as 'Get following' and gives the exact endpoint GET /users/{id}/following, clearly identifying verb and resource. It does not explicitly say this returns the users the given user follows (as opposed to followers), so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus related relationship tools such as get_users_by_id_followers or get_users_by_id_friends. The endpoint and name imply the use case, but there are no explicit context signals or exclusions.
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_friendsBRead-onlyIdempotent
Get friends.
GET /users/{id}/friends
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about the special 'me' value for the id parameter and that extended controls response detail, but does not disclose pagination or return structure. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Terse and front-loaded with the endpoint line, followed by parameter explanations. Efficient with no wasted words, though the brevity borders on under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return structure is covered. The description covers the endpoint and both parameters at a basic level. However, it omits what 'friends' means in this domain (contrasting with followers/following) and any pagination behavior, which are relevant for an agent deciding whether this is the right call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It does explain id ('slug that identifies the user, or me') and extended ('Extended information to include in the response'), which is some added value. However, 'Extended information' is vague—it does not say what extended information means or how to request it, leaving the string|null parameter semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource ('Get friends') and documents the endpoint GET /users/{id}/friends. It is distinguishable from siblings by the explicit 'friends' resource, though it does not explicitly contrast with the closely related followers/following tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives. With siblings like get_users_by_id_followers and get_users_by_id_following present, the description fails to clarify what distinguishes 'friends' from 'followers' or 'following', leaving the agent to infer the difference.
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_historyBRead-onlyIdempotent
Get watched history.
GET /users/{id}/history/
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. start_at: Start date for the range. Must be formatted as "YYYY-MM-DD". end_at: End date for the range. Must be formatted as "YYYY-MM-DD". page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| end_at | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| start_at | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context beyond the annotations: the GET method, the 'me' alias for the authenticated user, date formatting requirements, the watchnow value set, and detailed pagination clamping behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and endpoint, then organized as a clear argument list. The watchnow enum is verbose but valuable. Some placeholder entries like 'Query parameter.' are terse but not wasteful, and the overall structure is scannable without filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter endpoint with an output schema and read-only annotations, the description reasonably covers auth, watchnow values, date formats, and pagination. However, it leaves the format/semantics of most filter parameters undocumented and does not mention sorting or how this endpoint relates to more specific history variants, so it is not fully complete for an agent trying to use all capabilities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does provide substantive semantics for id, extended, watchnow, start_at, end_at, page, and limit, including exact watchnow values and pagination rules. However, many parameters such as genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, and certifications are only labeled 'Query parameter.' with no value format or allowed syntax, leaving significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get watched history,' a specific verb and resource, and also gives the exact endpoint 'GET /users/{id}/history/'. It clearly identifies what the tool does, though it does not explicitly distinguish itself from sibling history endpoints like get_users_by_id_history_by_type_by_item_id or get_users_by_id_history_movies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to use this tool versus the many sibling history endpoints. There is no mention that this fetches all watched history while other tools filter by type or item, and no explicit when-not-to-use instructions. An agent would have to infer the intended usage from the endpoint name.
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_history_by_type_by_item_idARead-onlyIdempotent
Get watched history.
GET /users/{id}/history/{type}/{item_id}
Args: id: The slug that identifies the user, or "me" for the authenticated user. item_id: Path parameter. type: History media type filter. extended: Extended information to include in the response. start_at: Start date for the range. Must be formatted as "YYYY-MM-DD". end_at: End date for the range. Must be formatted as "YYYY-MM-DD". page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| end_at | No | ||
| item_id | Yes | ||
| extended | No | ||
| start_at | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark this as read-only, idempotent, and non-destructive. The description adds useful behavior beyond that, including date formatting requirements and concrete pagination semantics such as low defaults, endpoint caps, and clamping rather than rejection. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with a one-line purpose followed by an organized Args list. The endpoint line is somewhat redundant with the tool name, and 'item_id: Path parameter' adds little, but the overall structure is efficient and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover safety, so the remaining gaps are semantic. The description does not state that this returns history for a specific item or explain what values 'type' may take. A brief clarifying sentence would make the tool self-contained and remove ambiguity among sibling history endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema property descriptions are absent, so the Args section carries the full burden. It covers all 8 parameters, with strong guidance for id, start_at, end_at, page, and limit. However, item_id is only labeled 'Path parameter' and type is vaguely called a 'History media type filter', leaving required values underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific operation, 'Get watched history', and then lists the REST path, which identifies the resource and scope clearly. It does not explicitly distinguish itself from sibling history endpoints such as get_users_by_id_history or the type-specific variants, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no direct statement about when to use this endpoint instead of the many sibling history tools. The path and the 'type'/'item_id' arguments imply item-scoped history, but the description never says this or names alternatives, leaving the selection decision 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_users_by_id_history_episodesCRead-onlyIdempotent
Get episode watched history.
GET /users/{id}/history/episodes
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. start_at: Start date for the range. Must be formatted as "YYYY-MM-DD". end_at: End date for the range. Must be formatted as "YYYY-MM-DD". page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| end_at | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| start_at | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation read-only and idempotent. The description adds a bit of behavioral detail on pagination (default limits, clamping) and date range formatting, but does not disclose response behavior, filtering semantics, or any authentication requirements; mostly it lists parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with a clear summary and endpoint, and the parameter list is organized. However, it is longer than necessary, with repeated non-descriptive 'Query parameter.' lines and a verbose watchnow block that could be condensed; every line does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and strong annotation hints, this is a 16-parameter endpoint with no schema-level descriptions. The description is incomplete for correct invocation: most filter parameters have no format or allowed values, and 'extended' is left undefined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the parameter documentation burden. It gives real semantics for id ('me' support), watchnow (enumerated values), start_at/end_at (format), and page/limit, but leaves most filters (genres, subgenres, years, ratings, runtimes, countries, certifications, start_date, end_date, extended) with no meaning beyond 'Query parameter.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Get episode watched history' names a clear verb and resource, and the endpoint line pins the exact operation. It does not explicitly contrast with closely related sibling tools like get_users_by_id_history_episodes_by_item_id or get_users_by_id_history_movies, so it stops short of full differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to choose this tool over alternatives such as get_users_by_id_history, get_users_by_id_history_episodes_by_item_id, or the movies/shows variants. The description is essentially an argument reference rather than a usage decision aid.
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_history_episodes_by_item_idBRead-onlyIdempotent
Get history for an episode.
GET /users/{id}/history/episodes/{item_id}
Args: id: The slug that identifies the user, or "me" for the authenticated user. item_id: Path parameter. extended: Extended information to include in the response. start_at: Start date for the range. Must be formatted as "YYYY-MM-DD". end_at: End date for the range. Must be formatted as "YYYY-MM-DD". page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| end_at | No | ||
| item_id | Yes | ||
| extended | No | ||
| start_at | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds useful behavioral details about pagination (defaults, clamping) and date format requirements, which go beyond the annotations. However, it does not describe the response format or any rate limits, and the description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a clear opening line and a compact parameter list. It is efficient, with no fluff or redundant content. The parameter explanations are appropriately brief, though some could be more informative. Overall, it is well-organized and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers parameter details, date formats, and pagination behavior, which is sufficient for a straightforward GET endpoint. An output schema exists, so return values need not be explained. However, it does not clarify when to use this tool versus closely related siblings, and some parameter semantics (item_id, extended) remain incomplete. Given the tool's simplicity and existing annotations, this is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It provides explanations for most parameters: id (slug or 'me'), start_at/end_at (with date format), page, and limit (with pagination behavior). However, item_id is only labeled as 'Path parameter,' adding no semantic value, and 'extended' is vague. The description partially compensates for the missing schema but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get history for an episode,' which clearly identifies the verb and resource. It does not explicitly contrast with sibling history tools like get_users_by_id_history or get_users_by_id_history_episodes, but the specific resource is unambiguous and the tool name itself is descriptive. No explicit differentiation is given, so not a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the many sibling history tools (e.g., get_users_by_id_history, get_users_by_id_history_episodes). It only lists parameters and gives no context about when this specific endpoint is appropriate or when an alternative should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_by_id_history_moviesARead-onlyIdempotent
Get movie watched history.
GET /users/{id}/history/movies
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. start_at: Start date for the range. Must be formatted as "YYYY-MM-DD". end_at: End date for the range. Must be formatted as "YYYY-MM-DD". page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| end_at | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| start_at | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, but the description adds valuable behavioral details: pagination defaults and clamping ('a low default limit is applied (often 10)... higher values are clamped rather than rejected'), date format requirements ('Must be formatted as "YYYY-MM-DD"'), and the full set of watchnow value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The Args list is organized and front-loads the core statement, but six parameters redundantly repeat 'Query parameter' without adding informationable, consuming space that could be compressed. The watchnow enumeration is lengthy yet necessary. Overall it is somewhat verbose but structurally acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 16 parameters and no schema descriptions, the description leaves several filtering parameters (genres, ratings, countries, certifications) undefined. It does cover critical behaviors like pagination clamping, date formatting, id semantics, and watchnow values, and an output schema exists, so return values need not be described. Still, the underdocumented filters create gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description bears full responsibility for parameter meaning. It significantly compensates by explaining id (slug or 'me'), watchnow (all allowed values listed), start_at/end_at format, and page/limit defaults and caps. However, several filter parameters (genres, subgenres, years, ratings, etc.) are only labeled 'Query parameter' with no additional format or usage guidance, limiting the compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get movie watched history,' which states a specific verb (Get) and resource (movie watched history), clearly separating it from sibling history tools like get_users_by_id_history_episodes or get_users_by_id_history_shows. The endpoint path reinforces the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool vs. alternatives such as get_users_by_id_history_shows or get_users_by_id_history_episodes. The only differentiation is embedded in the tool name/endpoint; the description does not mention any exclusions, alternatives, or context-based selection criteria.
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_history_movies_by_item_idARead-onlyIdempotent
Get history for a movie.
GET /users/{id}/history/movies/{item_id}
Args: id: The slug that identifies the user, or "me" for the authenticated user. item_id: Path parameter. extended: Extended information to include in the response. start_at: Start date for the range. Must be formatted as "YYYY-MM-DD". end_at: End date for the range. Must be formatted as "YYYY-MM-DD". page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| end_at | No | ||
| item_id | Yes | ||
| extended | No | ||
| start_at | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds concrete behavioral details beyond that: pagination behavior (default limits, clamping of limit values), date format requirements for start_at and end_at, and the meaning of the 'id' parameter (slug or 'me'). This enriches what an agent needs to know without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-line purpose, the endpoint URL, then a clear argument list. It is appropriately sized given the need to document parameters, and the key purpose is front-loaded. The limit explanation is verbose but useful, not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, an output schema, and no schema descriptions, the description covers purpose, parameters, and important behavioral details (pagination, date format). It doesn't explain the response structure, but that's provided by the output schema. It lacks usage guidance, which is a separate dimension, but for calling correctly it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the full burden. It explains id, start/end date format, limit clamping, and clarifies item_id as a path parameter. 'extended' is vague and lacks possible values, and 'page' is only minimally described, but overall it compensates well for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get history for a movie', which is a clear verb+resource. It doesn't explicitly say 'for a specific movie by item_id' or differentiate from sibling tools like get_users_by_id_history_movies, but the tool name itself is highly specific. The purpose is unambiguous enough for an agent to understand it retrieves history for one movie.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get_users_by_id_history_movies (plural) or get_users_by_id_history. There is no mention of conditions or exclusions, leaving the agent to infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_by_id_history_showsBRead-onlyIdempotent
Get show watched history.
GET /users/{id}/history/shows
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. start_at: Start date for the range. Must be formatted as "YYYY-MM-DD". end_at: End date for the range. Must be formatted as "YYYY-MM-DD". page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| end_at | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| start_at | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context beyond that: 'me' as a valid id, YYYY-MM-DD date formatting, pagination defaults, and the clamping behavior for limit. These are genuine operational details an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The summary line is front-loaded and the arg list is organized. However, the repeated 'Query parameter' lines waste space and the watchnow explanation is verbose. It is not poorly structured, but it does not make every sentence earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 16 parameters, no schema-level descriptions, and a large sibling family, the description is incomplete. It covers pagination and date formats well, but leaves most filter parameters undefined and offers no tool-selection context. An agent could call the endpoint with valid schema types yet still pass incorrectly formatted filter values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It provides real meaning for id, watchnow, start_at, end_at, page, and limit. However, nine parameters (genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, certifications) are dismissed as 'Query parameter,' adding no semantic value. This is partially compensating but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get show watched history,' which clearly states the verb and resource. It identifies the endpoint and the subject (user show history), but it does not distinguish this from sibling tools like get_users_by_id_history_shows_by_item_id or get_users_by_id_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The parameter notes explain how to format some values, but the description never states the intended use case, exclusions, or why an agent should choose this over get_users_by_id_history, get_users_by_id_history_movies, or the item-specific variants.
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_history_shows_by_item_idBRead-onlyIdempotent
Get history for a show.
GET /users/{id}/history/shows/{item_id}
Args: id: The slug that identifies the user, or "me" for the authenticated user. item_id: Path parameter. extended: Extended information to include in the response. start_at: Start date for the range. Must be formatted as "YYYY-MM-DD". end_at: End date for the range. Must be formatted as "YYYY-MM-DD". page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| end_at | No | ||
| item_id | Yes | ||
| extended | No | ||
| start_at | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation read-only, idempotent, and non-destructive, so the safety profile is covered. The description adds useful behavioral details beyond annotations: date format requirements, the special 'me' value for id, and pagination clamping/default behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well organized with a one-line purpose, the endpoint, then a parameter list. It avoids unnecessary prose, though the pagination note is somewhat generic and could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the output schema and annotations covering return shape and safety, the description is incomplete for correct invocation: the required item_id parameter lacks semantic guidance, and extended has no accepted values or format. It also fails to distinguish this endpoint from closely related history endpoints in the sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it leaves key parameters underspecified. id, start_at, end_at, page, and limit receive meaningful semantics, but item_id is only called 'Path parameter' without explaining what identifies the show, and extended is vaguely defined as 'Extended information to include in the response.'
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear action and resource: 'Get history for a show,' which is further grounded by the explicit endpoint path. It is distinguishable from broad history endpoints like get_users_by_id_history, though it does not explicitly contrast itself with closely related siblings such as get_users_by_id_history_shows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided. The description does not mention when this endpoint is preferable to get_users_by_id_history_shows, get_users_by_id_history_by_type_by_item_id, or other sibling history tools, nor does it state any exclusions or prerequisites beyond basic parameters.
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_likes_by_typeBRead-onlyIdempotent
Get likes.
GET /users/{id}/likes/{type}
Args: id: The slug that identifies the user, or "me" for the authenticated user. type: User media type filter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the useful detail that 'id' can be 'me' for the authenticated user and that 'limit' accepts the value 'all', which are behavioral specifics beyond schema types. However, it doesn't disclose pagination behavior, ordering, or response structure, though the output schema partially covers the latter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, with the endpoint line followed by a bullet list of args. Every sentence earns its place, and the core purpose is front-loaded. It doesn't waste space, even if it could be slightly more explanatory in one or two places.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values don't need to be explained. The essential args are listedcl, but the description fails to enumerate valid 'type' values or explain what 'extended' can be. Since the schema offers no enums, an agent must guess these, which is a notable gap. However, for a simple read-only fetch with clear path, it's mostly adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions (0% coverage), so the description's param explanations carry full weight. It defines each of the five parameters: id as slug or 'me', type as a media type filter, extended as extra info, page as page number, limit as items per page with a special 'all' value. This goes beyond the bare schema types, though it leaves possible enum values for type/extended to outside knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get likes' and the concrete endpoint GET /users/{id}/likes/{type}, which states a specific verb and resource. It doesn't explicitly contrast with sibling tools like get_users_by_id_lists_by_list_id_likes, but the scope is unambiguous enough for an agent to know what resource it operates on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. It only gives the endpoint and args. An agent is left to infer that this is the tool for retrieving likes, with no help on when it is preferred over other like-related endpoints.
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_listsARead-onlyIdempotent
Get a user's personal lists.
GET /users/{id}/lists
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond the annotations: the special 'me' value for the authenticated user and the detailed pagination semantics (low default limit, clamping to endpoint maximum rather than rejecting).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact: a one-sentence purpose, the endpoint signature, and a tight args list. The key purpose and pagination nuances are presented cleanly without filler. It is appropriately sized for a 4-parameter read endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately complex paginated endpoint with an output schema present (so return values need no explanation), the description covers purpose, the 'me' identifier, and pagination behavior adequately. The main gap is lack of explicit differentiation from sibling list endpoints, but the inline endpoint path mitigates this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate — and it does, addressing all four parameters: id with the 'me' special value, page semantics, limit with default/clamping behavior, and extended as response enrichment. The parameter notes are terse but meaningful, especially the pagination details that the empty schema titles cannot convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: "Get a user's personal lists." The qualifier 'personal' helps distinguish this from the sibling get_users_by_id_lists_collaborations, though no sibling is named explicitly. The inline REST endpoint GET /users/{id}/lists reinforces the resource and scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over alternatives like get_users_by_id_lists_collaborations or get_users_by_id_lists_by_list_id. The 'personal lists' phrasing implies scope but does not state exclusions or selection criteria. Pagination guidance is present but addresses 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.
get_users_by_id_lists_by_list_idARead-onlyIdempotent
Get personal list.
GET /users/{id}/lists/{list_id}/
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| list_id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe read-only, idempotent operation, and the description does not contradict them. It adds useful context that id can be 'me' for the authenticated user and that extended enriches the response, though it omits deeper behavioral details like rate limits or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action, then organized into an Args block. Minor filler exists ('list_id: Path parameter' adds little), but overall it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with read-only annotations and an output schema present, the required parameters id and list_id are documented well enough to invoke the tool. The only notable gap is the vague optional extended parameter, but it can be omitted because it defaults to null.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must document the parameters, and it addresses all three. id is well explained ('slug' or 'me'), but list_id is only called a path parameter and extended merely says 'Extended information to include' without enumerating possible values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line 'Get personal list' names a clear action and resource, and the endpoint /users/{id}/lists/{list_id}/ shows it retrieves one specific list. It doesn't explicitly call out sibling tools, but the singular 'personal list' and the path parameters distinguish it from list-collection endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it should be used when an agent has a user id and list id and wants that user's personal list. However, it never names alternatives such as get_users_by_id_lists or get_lists_by_id, nor does it state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_by_id_lists_by_list_id_comments_by_sortCRead-onlyIdempotent
Get all list comments.
GET /users/{id}/lists/{list_id}/comments/{sort}
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. sort: Path parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnly, idempotent, and non-destructive behavior. The description adds useful pagination behavior (default limits, clamping to maximums), which goes beyond annotations. However, it doesn't mention auth requirements or sort option behavior, so it adds some but not rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: a one-line summary, the endpoint, then a short args list. It front-loads the purpose and keeps the content tight, though 'list_id: Path parameter' and 'sort: Path parameter' add little value beyond restating the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and safety annotations, the description leaves a critical gap: the required 'sort' path parameter has no allowed values or format, and 'list_id' is not explained. An agent cannot reliably construct a valid request without external knowledge. Pagination details are helpful, but the missing parameter semantics undermine completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, but it only meaningfully explains id ('slug... or me') and limit (defaults/maximums/clamping). 'list_id' and 'sort' are dismissed as 'Path parameter' with no semantic content, and 'page' gets only a minimal label. The required 'sort' parameter is left completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get all list comments' and includes the full endpoint path, which clearly identifies the resource: comments on a specific user's list. It is not a tautology and is more specific than several comment-related siblings, though it doesn't explicitly name a sibling to differentiate from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as get_lists_by_id_comments_by_sort or get_users_by_id_watchlist_comments_by_sort. The description is purely a GET endpoint summary with parameter listings; there is no mention of prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_by_id_lists_by_list_id_items_by_type_by_sort_by_by_sort_howBRead-onlyIdempotent
Get items on a personal list.
GET /users/{id}/lists/{list_id}/items/{type}/{sort_by}/{sort_how}
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. type: List item type filter. sort_by: Sort by a specific property. sort_how: Sort direction. extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| list_id | Yes | ||
| ratings | No | ||
| sort_by | Yes | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | Yes | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, which fully cover the safety and non-mutating nature of the operation. The description adds some behavioral context by listing parameter purposes, but does not describe response structure, pagination details, or potential edge cases. The description does not contradict the annotations, and the annotations carry the main behavioral burden, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and lists many parameters in a bullet-like format, which is helpful for scanning, but it is not efficiently structured. It includes endpoint placeholders and argument definitions that are partial and inconsistent (e.g., some parameters have one-line descriptions, others are simply 'Query parameter'). The front-loading is good (purpose first), but the bulk of the text is a repetitive parameter list that could be condensed or enriched with more value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (21 parameters, no schema descriptions) and the presence of an output schema, the description covers the basic purpose and some parameter details but leaves many gaps. It does not explain the response format beyond the output schema, which is present, and does not clarify filtering semantics or interaction between parameters. It is sufficient for an agent to call the tool with basic usage, but not comprehensive enough for full correct usage in all cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, meaning each parameter has only a title and type with no description. The tool description compensates only minimally: it adds meaningful semantics to 'id' (explains slug and 'me'), 'watchnow' (elaborates on many possible values), and gives brief one-line definitions for several others, but many parameters (e.g., 'genres', 'subgenres', 'years', 'sort_by', 'sort_how') lack detailed explanations of expected formats or allowed values. With 21 parameters and no schema descriptions, the description should do much more to explain each parameter's purpose and constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns items from a personal list and provides the full endpoint path, which indicates the verb and resource. It distinguishes itself by the specific list ID and item type filters, though the massive list of parameters and numerous similar sibling tools make it less immediately distinct. The meaning is clear enough for an agent to understand the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides moderate usage guidance: it explains the 'id' parameter semantics and gives detailed acceptable values for 'watchnow'. However, it does not explicitly state when to choose this tool over siblings like 'get_lists_by_id_items_by_type_by_sort_by_by_sort_how' or other list item tools. The guidance is implicit and limited to parameter values rather than strategic use cases.
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_lists_by_list_id_items_movieCRead-onlyIdempotent
Get movie list items.
GET /users/{id}/lists/{list_id}/items/movie
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| list_id | Yes | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds the GET method and parameter roles but does not disclose pagination defaults, rate limits, or response specifics beyond the output schema. It adds some context but not substantial behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a list, which is readable, but many entries are redundant (e.g., 'Query parameter.') and add little value. The opening sentence is concise, but the parameter list could be tightened. It is not overly long but includes filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return format is covered. The description covers all parameters but lacks depth for many, doesn't mention authentication, and doesn't explain when to use this over sibling tools. It is adequate for a read-only retrieval but leaves gaps for an agent to interpret correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It explains 'watchnow' thoroughly and gives minimal hints for others, but many are just 'Query parameter.' without format or value guidance (e.g., years, ratings, genres). This is insufficient for a 20-parameter tool where the schema offers no help.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches movie list items, and the URL specifies the user and list context. It distinguishes from siblings like 'get_users_by_id_lists_by_list_id_items_show' by mentioning 'movie', though it doesn't explicitly name alternatives or contrast with them. The purpose is clear but not highly detailed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like 'get_lists_by_id_items_movie' or the show/episode variants. The description does not mention exclusions, prerequisites, or context cues for selection. An agent would have to infer usage from the name and URL alone.
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_lists_by_list_id_items_movie_showCRead-onlyIdempotent
Get media list items.
GET /users/{id}/lists/{list_id}/items/movie,show
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| list_id | Yes | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is consistent with annotations (readOnlyHint, idempotentHint, destructiveHint false) and adds no contradictions. However, it provides minimal behavioral context beyond 'Get media list items' and the parameter list; it doesn't describe pagination behavior, response size, or that it returns both movies and shows. Annotations cover the safety profile, so this is acceptable but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as a docstring with a one-line summary, endpoint, and parameter list. It is not overly verbose, but many lines are just 'Query parameter' without additional detail, which is not earning their place. The front-loading is acceptable, but the bulk is a repetitive list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 20 parameters and 0% schema coverage, the description should explain each parameter's semantics sufficiently for correct invocation. Many parameters lack any meaningful description (just 'Query parameter'), leaving the agent without guidance on format or allowed values. An output schema exists, so return values are not a gap, but the input parameter explanations are incomplete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description is the sole source of parameter meaning. It explains a few parameters well (e.g., id with 'me' shortcut, watchnow with detailed streaming options), but many are merely labeled 'Query parameter' with no format or allowed values (e.g., years, genres, runtimes). This partial coverage provides some value but leaves significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get media list items' and includes the full endpoint URL with 'movie,show', making the verb, resource, and scope clear. It doesn't explicitly contrast with sibling tools like get_users_by_id_lists_by_list_id_items_movie or _show, but the name and URL are sufficiently explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of when to choose this over the movie-only or show-only variants, nor any exclusions or prerequisites. An agent would have to infer usage from the tool name and URL.
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_lists_by_list_id_items_movie_show_season_episodeARead-onlyIdempotent
Get all list items.
GET /users/{id}/lists/{list_id}/items/movie,show,season,episode
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| list_id | Yes | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is known. The description adds some behavioral context by documenting many filtering, sorting, pagination, and watchnow options, which suggests the response can vary a lot with these parameters. It does not mention default sort order, response format, or pagination behavior details beyond page/limit, but because annotations cover the readonly/idempotent nature, a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a long bullet list of 20 parameters, several of which are terse ('genres: Query parameter.', 'start_date: Query parameter.'). The first line is a strong front-loaded summary, and the parameter list is easy to scan, but the repeated 'Query parameter' boilerplate for seven parameters wastes space without adding information. It could be condensed while preserving the useful watchnow and ignore_* explanations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and annotations cover the read-only/idempotent behavior, the description covers the major decision factors: user identity, list identifier, media types, extended info, sorting, filtering, streaming filters, watched/collected filters, and pagination. It is complete enough for an agent to make a correct call. It could be improved by naming sibling tools for comparison, but none of the essential facts for invoking the tool are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden of explaining all 20 parameters. It provides a meaningful one-line explanation for every parameter, including the special 'me' value for id, the watchnow enums, and the limit='all' option. While a few descriptions are minimal ('sort_by: The field to sort by'), most add value beyond the raw names and types in the schema. It does not fully compensate for the complete lack of schema descriptions, but it goes a long way.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Get all list items' and includes the full endpoint path 'GET /users/{id}/lists/{list_id}/items/movie,show,season,episode', which clearly identifies the resource and scope (retrieving list items of four media types). It does not explicitly contrast with sibling tools like get_lists_by_id_items_movie_show_episode_season or the by_type variant, but the endpoint and parameter list make the purpose evident. It loses a point because the title and description do not differentiate it from close siblings that also retrieve list items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parameter descriptions give some usage hints, such as using 'me' for the authenticated user and explaining the watchnow values and limit='all'. However, there is no explicit guidance on when to choose this tool over its siblings, such as get_users_by_id_lists_by_list_id_items_by_type_by_sort_by_sort_how or get_lists_by_id_items_movie_show_episode_season. The context is implied by the endpoint path and media type list, but no alternatives are named.
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_lists_by_list_id_items_showCRead-onlyIdempotent
Get show list items.
GET /users/{id}/lists/{list_id}/items/show
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| list_id | Yes | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as read-only, idempotent, and non-destructive, and the description does not contradict them. It adds some behavioral context around pagination, ignore flags, and watchnow filter values, but it does not cover auth needs, defaults, or response behavior. No annotation contradiction found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose and endpoint are front-loaded and each parameter is listed on its own line, which is organized. However, repeated 'Query parameter' stubs add little value and the watchnow block is overly detailed relative to the vagueness of other parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter endpoint with 0% schema description coverage, the definition should provide far more: possible values for sort_by, sort_how, and extended, filter formats, and explicit differentiation from sibling list-item endpoints. The output schema covers return shape, but input semantics and selection criteria remain incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It usefully explains id ('me'), watchnow values, ignore_* flags, page, and limit, but many parameters such as genres, subgenres, years, ratings, dates, runtimes, countries, and certifications are only labeled 'Query parameter' with no format, allowed values, or interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get show list items' and restates the full GET path, so an agent can identify the operation and resource. It is specific enough to suggest this is the show-items variant, but it never explicitly contrasts sibling tools such as get_lists_by_id_items_show or get_users_by_id_lists_by_list_id_items_by_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this endpoint versus its many siblings, such as the movie variant or the by_type/sort variant. The only usage signal is the endpoint path and name; there are no stated exclusions, alternatives, or contextual conditions.
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_lists_by_list_id_likesARead-onlyIdempotent
Get all users who liked a list.
GET /users/{id}/lists/{list_id}/likes
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds helpful pagination behavior (default limits, clamping) and clarifies that 'me' is accepted, which goes beyond the schema. However, it does not disclose whether authentication is required or whether only public likes are returned, which would be valuable given openWorldHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the main purpose, and includes the endpoint for quick reference. The pagination paragraph is a bit long but contains necessary behavioral detail that would otherwise be missing. Every sentence serves a purpose, so it earns a 4 rather than 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with an output schema and safety annotations, the description provides enough detail to invoke the call correctly: all parameters are covered, pagination behavior is explained, and the 'me' special value is documented. It does not describe response structure, but the output schema covers that. Missing auth requirements or visibility constraints are minor given the endpoint's typical GET semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains id (slug or 'me'), page, and limit with concrete details on defaults and clamping. The only weak point is list_id, which is merely called 'Path parameter' without stating what it identifies, though the endpoint path and tool name make it inferable. Overall, it adds substantial meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get all users who liked a list,' which is a specific verb+resource statement that unambiguously identifies the operation. The endpoint path further disambiguates it from other like-related endpoints such as get_lists_by_id_likes or get_users_by_id_likes_by_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its purpose statement and parameter list, but it does not explicitly contrast with alternative tools. There is no explicit 'use this when' or exclusion of other like-related endpoints. The context is clear but no alternatives are mentioned, so it drops to the implied-usage tier.
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_lists_collaborationsARead-onlyIdempotent
Get all lists a user can collaborate on.
GET /users/{id}/lists/collaborations
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint path and the semantic that it returns collaboration lists, but does not disclose additional behavioral traits such as pagination, permissions, or what 'extended' affects beyond a generic response detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with no filler. The one-line purpose, endpoint path, and short Args list are all directly useful and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list endpoint with an output schema, the description sufficiently covers the two parameters and the resource. It lacks explicit guidance on alternatives and response filtering, but the output schema and annotations compensate for most missing operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain id meaningfully as 'the slug that identifies the user, or "me" for the authenticated user,' and extended as 'Extended information to include in the response.' The id explanation is strong, though extended remains vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Get all lists a user can collaborate on.' This clearly distinguishes the tool from siblings like get_users_by_id_lists by narrowing the resource to collaboration lists, not just all user lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by defining what the tool returns, but it does not explicitly state when to prefer this tool over alternatives or mention exclusions. No sibling differentiation is provided, so an agent must infer context from the tool name and the generic phrase.
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_mir_by_year_by_monthCRead-onlyIdempotent
Get month in review.
GET /users/{id}/mir/{year}/{month}
Args: id: The slug that identifies the user, or "me" for the authenticated user. year: Path parameter. month: Path parameter. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| year | Yes | ||
| month | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false. The description adds no behavioral context beyond that, such as auth needs, response shape implications, or what 'extended' changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the purpose, followed by an explicit endpoint and args. Some lines, like 'year: Path parameter,' add little value, but overall it is appropriately compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and safe read annotations present, the description does not need to explain return values or safety. However, it leaves gaps around what a 'month in review' includes and what 'extended' actually returns, making it minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden for parameter meaning. It explains 'id' well (slug or 'me') and vaguely mentions extended, but 'year' and 'month' are only labeled as path parameters, adding no real semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and resource: 'Get month in review' for a user, year, and month. It is specific enough to identify the tool's purpose, but does not explicitly differentiate it from the closely related sibling get_users_by_id_yir_by_year.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives or any exclusions. It only restates the endpoint and parameters, leaving the agent to infer the use case from the name and route.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_by_id_notes_by_typeBRead-onlyIdempotent
Get notes.
GET /users/{id}/notes/{type}
Args: id: The slug that identifies the user, or "me" for the authenticated user. type: User media type filter. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, openWorld, and non-destructive behavior. The description adds genuinely non-obvious API behavior: the id accepts the special value 'me', default pagination limits are low, and supplied limits are clamped rather than rejected. This enriches the agent's model beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lean: a one-sentence purpose, the endpoint, and a tight argument list. The extra pagination note is a bit long and endpoint-specific, but it earns its place because it documents clamping and defaults not present anywhere else.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The endpoint, argument list, pagination defaults, and annotations answer many operational questions, and an output schema exists for return values. The main gaps are the ambiguous type/extended values and no direct relationship to sibling note endpoints, so the agent still cannot confidently construct every request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must supply all parameter meaning. It gives useful semantics for id ('me' support) and limit (clamping behavior), but 'type' and 'extended' remain vague ('User media type filter' and 'Extended information...') without possible values or formats, which is uncertain for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get notes' and gives the exact endpoint GET /users/{id}/notes/{type}, making the verb and resource clear. It does not explicitly differentiate it from siblings like get_notes_by_id or get_notes_by_id_item, so some sibling confusion remains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or indication when to prefer this over alternative notes or user-scoped endpoints. It only describes the parameters and endpoint, leaving the choice 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_users_by_id_ratingsBRead-onlyIdempotent
Get all ratings.
GET /users/{id}/ratings/
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is established. The description adds useful pagination behavior: defaults are low, limits are capped, and higher values are clamped rather than rejected. Still, it does not clarify open-world response behavior or what 'extended' actually changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the endpoint, followed by clear arg definitions. The pagination explanation is somewhat verbose but earns its place by adding behavioral nuance. No redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description is mostly adequate for invocation. However, it misses guidance on choosing among the many ratings sibling tools and leaves 'extended' underspecified. An agent could call this tool correctly but may not know when it is the right choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no property descriptions, so the description carries the full burden. It explains id as a slug or 'me', page and limit with concrete default/clamping behavior, and extended as 'extended information to include'—though the last one remains vague. Overall, this is substantially more meaning than the bare schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a GET operation on a specific resource ('/users/{id}/ratings/') and says it retrieves ratings. However, 'Get all ratings' is terse and does not differentiate this from the many ratings-related siblings such as get_users_by_id_ratings_movies, get_users_by_id_ratings_shows, and get_users_by_id_ratings_by_type_by_rating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given for when to use this tool versus the sibling rating endpoints, nor when a more specific endpoint should be preferred. The description explains mechanics like pagination but not the selection context. The agent is left to infer that 'all ratings' means the unfiltered set.
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_ratings_by_type_by_ratingARead-onlyIdempotent
Get ratings.
GET /users/{id}/ratings/{type}/{rating}
Args: id: The slug that identifies the user, or "me" for the authenticated user. type: Rated media type filter. rating: Rating filter from 1 to 10. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| rating | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful behavior beyond the annotations: pagination defaults, endpoint-specific maximums, clamping behavior, and the 'me' alias for id. It does not fully explain extended info semantics, but the output schema covers the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably sized and front-loaded with the endpoint and a compact argument list. The pagination paragraph is somewhat generic but still informative and relevant. No unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters, 0% schema description coverage, and a rich set of sibling rating endpoints, the description is minimally sufficient but has notable gaps: type and extended values are unexplained, and no guidance is given for choosing this endpoint over siblings like get_users_by_id_ratings or get_sync_ratings_by_type_by_rating. Annotations and output schema reduce the burden, but the description alone is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It covers every parameter with at least some meaning: id supports 'me', rating is 1-10, page/limit have detailed defaults and clamping. However, type and extended remain vague ('Rated media type filter', 'Extended information to include in the response') with no valid value hints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb/resource: "Get ratings" and provides the endpoint template GET /users/{id}/ratings/{type}/{rating}. It conveys a specific filtered ratings resource, but does not explicitly distinguish it from sibling tools like get_users_by_id_ratings or the ratings_movies/shows/episodes variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the parameter descriptions (type as a media type filter, rating as a 1-10 filter), so an agent can infer this endpoint is for retrieving a user's ratings filtered by type and rating. However, there is no explicit when-to-use guidance, no exclusion of alternatives, and no mention of how this relates to the broader get_users_by_id_ratings endpoint.
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_ratings_episodesARead-onlyIdempotent
Get episode ratings.
GET /users/{id}/ratings/episodes
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral detail beyond the annotations: it specifies the HTTP GET method, explains pagination defaults and clamping behavior, and clarifies that id can be 'me'. The read-only, idempotent, and non-destructive annotations already cover the safety profile, so the description adds meaningful but not exhaustive context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action and endpoint, followed by a compact Args block. It avoids fluff, though the extended parameter explanation could be more precise without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only ratings retrieval endpoint, the description covers the essential invocation details: endpoint, id semantics, pagination behavior, and extended info. The output schema handles return-value documentation, so the missing usage alternatives and extended values are the main completeness gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides meaning for all four parameters, especially id ('slug or me') and page/limit (with defaults and clamping). However, 'extended: Extended information to include in the response' is vague and does not enumerate valid values, which is a notable gap given the schema has no parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get episode ratings' and provides the exact endpoint. It identifies the resource (episode ratings for a user) but does not explicitly contrast with sibling tools like get_users_by_id_ratings_movies or get_users_by_id_ratings_shows; the resource name is specific enough to infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternative ratings endpoints. The endpoint and args imply the context, but no explicit when-to-use, exclusions, 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.
get_users_by_id_ratings_moviesARead-onlyIdempotent
Get movie ratings.
GET /users/{id}/ratings/movies
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool readOnly, idempotent, and non-destructive; the description adds meaningful behavior beyond that by documenting pagination defaults, clamping of limit values, and the authenticated-user 'me' option. This context helps an agent anticipate response-volume behavior without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the core purpose, and every sentence adds operational value. 'page - The page number to retrieve' is somewhat redundant with its name, but the overall structure is clean and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only endpoint with an output schema and rich pagination notes, the description covers id addressing, pagination clamps, and endpoint routing. It would be more complete with explicit extended-information options and a pointer to sibling rating endpoints, but nothing essential to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, yet the Args section independently explains all four parameters, including id's slug/'me' semantics and limit clamping. The only weakness is 'extended', which is described generically as 'extended information' with no actual option values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get movie ratings' and gives the full GET /users/{id}/ratings/movies endpoint, so the action and resource are clear. It does not explicitly differentiate this from sibling endpoints like get_users_by_id_ratings_shows or get_users_by_id_ratings, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that id can be a slug or 'me', and it gives useful pagination behavior, which tells an agent how to call the endpoint. However, it never states when to choose this tool over related rating endpoints or mentions alternatives, so the when-to-use guidance is only implied.
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_ratings_showsARead-onlyIdempotent
Get show ratings.
GET /users/{id}/ratings/shows
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds valuable pagination semantics: default limits of ~10, endpoint maximums ~250, and clamping behavior for high limits. It also clarifies the id parameter accepts a slug or 'me' for the authenticated user, which is useful context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the operation, followed by endpoint and an Args list. It is organized and mostly efficient; the limit explanation is a bit long but provides necessary pagination detail. No redundant filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering the safety profile, the description covers all four parameters and gives pagination edge cases. It does not explicitly differentiate from sibling ratings endpoints, but the 'shows' resource is clear from the name and opening line. Overall sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden. It explains id as a slug or 'me', page as a page number, and limit with detailed default/cap/clamp behavior. The extended parameter is only described generically as 'Extended information to include in the response,' which is somewhat vague, preventing a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with 'Get show ratings,' a specific verb and resource. It clearly indicates this tool retrieves a user's ratings for shows, which distinguishes it from sibling rating tools for movies/episodes. However, it does not explicitly name alternatives or scope boundaries, so 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternatives are provided. The description simply states the operation and parameters, leaving the agent to infer from the tool name and sibling context. There is no mention of when to prefer this over get_users_by_id_ratings or get_users_by_id_ratings_movies.
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_smart_listsBRead-onlyIdempotent
Get a user's smart lists.
GET /users/{id}/smart-lists
Args: id: The slug that identifies the user, or "me" for the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, and the description does not contradict them. Apart from restating the GET endpoint, it discloses no additional behavior such as pagination, authentication requirements, or what is returned beyond the resource name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sections with no filler, and the key meaning is front-loaded. The endpoint line is slightly redundant with the tool name but adds exact URL context at negligible cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only GET whose output schema exists and whose safety profile is covered by annotations, the description is sufficient for a competent agent to call it. It lacks sibling guidance and pagination details, but those are not required to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a bare string named id with no description (0% coverage). The description compensates by explaining that id is a user slug and that 'me' refers to the authenticated user, which is essential invocation information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a concrete verb and resource ('Get a user's smart lists'), and the plural resource distinguishes it from single-list siblings such as get_users_by_id_smart_lists_by_list_id. It does not explicitly state that it returns all smart lists for the user, but the intent is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no conditions for when this tool should be called or how it relates to get_smart_lists_by_list_id or create/update/delete smart-list tools. The only usage-like info is the id fallback to 'me', which is about parameter selection 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.
get_users_by_id_smart_lists_by_list_idCRead-onlyIdempotent
Get smart list.
GET /users/{id}/smart-lists/{list_id}/
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish a read-only, idempotent, non-destructive operation, and the description adds no behavioral context beyond that. It does not mention authentication needs, ownership requirements, or response behavior, so it contributes nothing beyond the structured 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core purpose, but the 'list_id: Path parameter' line is tautological and does not earn its place. The endpoint line is useful but partially redundant with the tool name and argument list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read operation with an output schema and rich annotations, the description is minimally adequate. However, it does not clarify the distinction from get_smart_lists_by_list_id or explain the list_id parameter format, leaving an agent potentially unable to select the correct sibling or supply a valid list_id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It meaningfully explains that id is a user slug or 'me', but list_id is only described as 'Path parameter', which adds no real semantic value. Partial compensation for one of two parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get smart list' with the endpoint GET /users/{id}/smart-lists/{list_id}/. It is clear about what the tool retrieves, though it does not explicitly distinguish itself from closely related siblings like get_smart_lists_by_list_id or get_users_by_id_smart_lists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as get_smart_lists_by_list_id or get_users_by_id_smart_lists. The id argument implies a user-scoped lookup, but there are no explicit conditions, 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.
get_users_by_id_statsCRead-onlyIdempotent
Get stats.
GET /users/{id}/stats
Args: id: The slug that identifies the user, or "me" for the authenticated user.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the 'me' special value for the id parameter, which is a useful behavioral detail. However, it does not disclose what data is returned, whether stats are aggregated, or any rate-limit/auth expectations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the core verb and endpoint. The Args section is minimal but useful. It loses a point because 'Get stats' is vague and the endpoint line is redundant with the tool name, but there is no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stats endpoint with an output schema present, the description should clarify what stats are being retrieved. The tool name and endpoint imply user stats, but the description never says what kind of stats (e.g., ratings, watch time, followers). An agent cannot tell whether this returns counts, distributions, or time series, and the sibling list includes many similar stats tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain the id parameter meaningfully: 'The slug that identifies the user, or "me" for the authenticated user.' This adds real value beyond the bare schema property. With only one parameter, this is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Get stats' and includes the endpoint path, but it does not specify what kind of stats (e.g., user profile stats, activity counts, ratings breakdown) or what resource the stats pertain to beyond the user id. It is barely more than a restatement of the tool name and endpoint, and it does not distinguish it from the many other get_*_stats sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_movies_by_id_stats, get_shows_by_id_stats, or get_users_by_id_ratings. The only usage hint is the id parameter semantics ('me' for authenticated user), which is a parameter detail rather than a usage guideline.
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_watched_by_typeBRead-onlyIdempotent
Get watched.
GET /users/{id}/watched/{type}
Args: id: The slug that identifies the user, or "me" for the authenticated user. type: Watched media type filter. extended: Extended information to include in the response. hidden: Whether to include any hidden seasons specials: Whether to include special seasons as season 0. count_specials: Whether to count specials in the overall stats (only applies if specials are included).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| type | Yes | ||
| hidden | No | ||
| extended | No | ||
| specials | No | ||
| count_specials | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds the endpoint path and parameter meanings, but it does not disclose response format, pagination, or any rate limit considerations. Since annotations cover safety, this is acceptable but not outstanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the endpoint path, which is useful for identifying the operation. The parameters are listed with short comments, making it easy to skim. However, it could be slightly more structured by grouping parameters by required vs optional.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description is somewhat sufficient. However, it does not elaborate on the return value format or edge cases like hidden seasons vs specials. An agent may need to infer specifics from the parameter names, but the output schema helps fill gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must fully explain each parameter. The description provides brief comments for id, type, extended, hidden, specials, and count_specials, but the explanations are minimal and lack detail on valid values or expected formats. For instance, 'type' is described only as 'Watched media type filter', without listing possible options like 'movies' or 'shows'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool fetches 'watched' items for a user with a type filterais get_users_by_id_watched_by_type, it conveys the primary action and resource clearly. However, it lacks a detailed explanation of the response structure and how it differs from related tools like get_users_by_id_watched_movies or get_users_by_id_watched_shows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use for retrieving watched media types for a user, but it does not explicitly state when to prefer this over siblings such as get_users_by_id_watched_movies or get_users_by_id_watched_shows. The 'type' parameter provides a hint about filtering, but no clear guidance on alternatives or exclusions is given.
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_watched_moviesBRead-onlyIdempotent
Get watched movies.
GET /users/{id}/watched/movies
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description does not need to restate safety. It adds useful behavioral detail about pagination defaults and limit clamping, but leaves 'extended' as merely 'Query parameter' without explaining what behavior it affects. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the purpose, and organized into an Args list. It avoids excessive prose, though the 'extended: Query parameter' line is a filler and the endpoint path somewhat duplicates the tool name. Overall it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema reduces the need to describe return values. The description gives a useful id convention and pagination behavior, but it omits what values 'extended' accepts and provides no orientation about how this endpoint relates to the many watched/history/watchlist sibling tools. Sufficient for a basic call, but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must carry parameter meaning. It provides real semantics for id (slug or 'me'), page (page number), and limit (items per page with default/max behavior), but 'extended: Query parameter' adds no substantive meaning. The description partially compensates for the schema's silence but not fully.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get watched movies' for a user, and the endpoint clarifies it targets /users/{id}/watched/movies. It is not a tautology and conveys the core purpose, though it does not explicitly distinguish itself from sibling endpoints like history_movies or watched_by_type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to choose this tool over alternatives such as get_users_by_id_history_movies, get_users_by_id_watched_by_type, or get_users_by_id_watchlist_movies. The only usage hint is that id may be 'me' for the authenticated user, which 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.
get_users_by_id_watched_showsBRead-onlyIdempotent
Get watched shows.
GET /users/{id}/watched/shows
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. specials: Whether to include special seasons as season 0. season_numbers: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No | ||
| extended | No | ||
| specials | No | ||
| season_numbers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral detail about pagination: low default limits, endpoint maximums, and clamping of high values. This goes beyond the annotations and helps the agent understand API expectations. It stops short of discussing error cases or authentication, but that is less critical given the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The structure is clean: a one-line purpose, the endpoint, then a bulleted parameter list. The purpose is front-loaded and the pagination explanation is well-worded. However, the 'Query parameter.' placeholders for extended and season_numbers are redundant filler that could be removed without loss, slightly detracting from conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a clear output schema, safe read-only annotations, and a short parameter list, so the description doesn't need to explain return values. It does explain pagination and specials, but the absence of any detail for extended and season_numbers leaves real calling gaps. An agent would likely guess or omit these parameters, which could lead to unexpected responses in cases where they matter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description carries the full burden for explaining parameters. It does well for id, page, limit, and specials, but 'extended' and 'season_numbers' are dismissively labeled 'Query parameter.'—offering no more information than the schema itself. This leaves the agent without the value ranges or formats needed to correctly invoke those parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get watched shows,' which clearly identifies the resource and action. The endpoint path and required 'id' parameter make it evident this returns a specific user's watched shows, distinguishing it from movie- or type-based siblings. It could be slightly more explicit about the user scoping, but the name and path carry that meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like get_users_by_id_watched_by_type or get_users_by_id_watched_movies. The description lacks any mention of use cases, exclusions, or recommended conditions for selection, leaving the agent to infer the tool's scope from its name alone.
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_watchingCRead-onlyIdempotent
Get watching.
GET /users/{id}/watching
Args: id: The slug that identifies the user, or "me" for the authenticated user. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds only the HTTP method and path, which are consistent but not additional behavioral disclosure such as what is returned, whether it reflects live state, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured, with the endpoint first and arguments clearly listed. There is no fluff, though the opening 'Get watching' is too terse to be maximally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and safety annotations, the description is incomplete for selection and invocation because it never defines the resource being retrieved or how it differs from the many watching/watchlist siblings. An agent cannot reliably know what 'watching' means or when this endpoint is the right choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It does explain id well ('slug that identifies the user, or "me" for the authenticated user'), but extended is only restated as 'Extended information to include in the response', which adds little concrete meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Get watching' and shows the endpoint GET /users/{id}/watching, but it never explains what 'watching' means as a resource (e.g., media the user is currently watching). It is vague enough that an agent could confuse it with watchlist or watching-history endpoints among the many siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus related siblings like get_shows_by_id_watching, get_movies_by_id_watching, or get_users_by_id_watchlist_by_type_by_sort_by_by_sort_how. The description only lists arguments, with no context for selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_by_id_watchlist_by_type_by_sort_by_by_sort_howBRead-onlyIdempotent
Get watchlist.
GET /users/{id}/watchlist/{type}/{sort_by}/{sort_how}
Args: id: The slug that identifies the user, or "me" for the authenticated user. type: Watchlist media type filter. sort_by: Sort by a specific property. sort_how: Sort direction. extended: Extended information to include in the response. sort_by_query: The field to sort by sort_how_query: The direction to sort in page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. hide: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| hide | No | ||
| page | No | ||
| type | Yes | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| sort_by | Yes | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | Yes | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| sort_by_query | No | ||
| certifications | No | ||
| sort_how_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this read-only, idempotent, non-destructive, and open-world, so the description doesn't need to re-state those. The description adds useful behavioral detail about pagination (low default, cap clamping, per-endpoint limits) and enumerates the accepted watchnow values. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated, especially the repeated 'Query parameter.' lines, which add no information. The useful pagination and watchnow details are buried after a long parameter dump. Makers structure could front-load the key behavior and condense filler, but currently each token is not earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 20 params, 0% schema descriptions, many unknown valid values for type, sort_by, sort_how, extended, and the filter fields, this description is incomplete. Even though an output schema exists, it leaves an agent guessing about accepted formats, how filters combine, and which query vs path params to use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 0%, so the description carries the full parameter-semantics burden. Some parameters are given meaningful semantics ('id' has 'me', watchnow lists accepted values, pagination has behavior), but many others are dismissed as 'Query parameter.' with no actual meaning. Bodies provides better than a bare schema but does not adequately document a 20-parameter, 4-required tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get watchlist') and shows the exact endpoint path. However, it does not clarify how this generic watchlist tool differs from the several watchlist-related siblings such as get_users_by_id_watchlist_movies_by_sort or get_sync_watchlist_by_type_by_sort_by_by_sort_how.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance or comparison with alternatives. The description does not tell an agent when to choose this tool over the many watchlist-oriented sibling tools, nor does it explain the relationship between the path parameters and the duplicate query parameters sort_by_query/sort_how_query.
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_watchlist_comments_by_sortARead-onlyIdempotent
Get all watchlist comments.
GET /users/{id}/watchlist/comments/{sort}
Args: id: The slug that identifies the user, or "me" for the authenticated user. sort: Path parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| sort | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds meaningful behavioral context beyond annotations by documenting the HTTP method and pagination behavior, including low default limits and clamped maximums. It does not cover auth or sort value behavior, but this is acceptable given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the purpose, followed by the endpoint and a clean argument list. The pagination explanation is slightly verbose and generic, but it provides useful operational detail without excessive fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only paginated endpoint with an output schema, the description covers the key elements: endpoint, user id semantics, pagination, and safety profile. The main gap is the required 'sort' parameter lacking valid options, which an agent would need to guess. This prevents the definition from being fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well for most parameters: it explains that 'id' accepts a slug or 'me', 'page' is a page number, and 'limit' has endpoint-specific defaults and clamping. However, 'sort' is only restated as 'Path parameter' without listing acceptable values, leaving a required parameter under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Get all watchlist comments') and provides the exact endpoint path, making the resource unambiguous. It does not explicitly differentiate itself from sibling comment-list endpoints such as get_users_by_id_favorites_comments_by_sort, but the endpoint and name are specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives, no excluded cases, and no reference to sibling tools. The intended usage is only implied by the endpoint path and tool name, which is insufficient given the large number of similar comment and sorting endpoints.
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_watchlist_movies_by_sortBRead-onlyIdempotent
Get movie watchlist.
GET /users/{id}/watchlist/movies/{sort}
Args: id: The slug that identifies the user, or "me" for the authenticated user. sort: Path parameter. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. hide: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| hide | No | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so there is no contradiction. The description adds value beyond those annotations by explaining pagination behavior (default low limits, capping/clamping at maximums), the authenticated-user form 'me' for id, and the meaning of watchnow streaming filters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line summary is front-loaded and the Args layout is organized, which helps for an 18-parameter tool. However, roughly a third of the entries are repetitive, uninformative 'Query parameter' lines, and the watchnow block is visually ragged, so the description is functional but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and read-only annotations, the description is incomplete for the required sort parameter (no acceptable values), the extended flag, sort_by/sort_how, and most filters. For such a parameter-heavy endpoint, a caller still lacks essential information needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description has to carry parameter meaning, but it only does so for a few parameters (id, limit, watchnow). Most filter parameters are merely labeled 'Query parameter' with no format, allowed values, or semantics, and the required sort parameter is only described as 'Path parameter.' This is not enough for an agent to construct valid filter or sort values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line 'Get movie watchlist.' states a clear verb and resource, and the endpoint URL pinpoints the exact scope: a user's movie watchlist with a sort path. It doesn't explicitly call out the sibling watchlist endpoints, but the 'movie' qualifier and URL are enough to distinguish it from show or mixed watchlist tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this tool over siblings such as get_users_by_id_watchlist_shows_by_sort, get_users_by_id_watchlist_movie_show_by_sort, or the favorites-watchlist variants. The description only lists the parameters; it never states exclusions, prerequisites, or alternative tools.
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_watchlist_movie_show_by_sortCRead-onlyIdempotent
Get media watchlist.
GET /users/{id}/watchlist/movie,show/{sort}
Args: id: The slug that identifies the user, or "me" for the authenticated user. sort: Path parameter. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. hide: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| hide | No | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds some behavioral detail in the 'limit' parameter (pagination defaults and clamping) and 'watchnow' values, but it doesn't describe the overall operation beyond fetching a watchlist. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a parameter list with a minimal opening line. It's structured with line breaks and readable, but it is long and not front-loaded with the key behavioral summary. The opening is short, but the list consumes most of the text, making it less concise than ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 18 parameters and an output schema present, the description is incomplete. It fails to explain the meaning or usage of several parameters, and the 'sort' parameter (required) is only described as 'Path parameter.' without any guidance. The description does not clarify what the response contains, though the output schema may cover that, but the many undocumented parameters leave gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. Some parameters like id, sort, extended, sort_by, sort_how, page, limit, and watchnow have meaningful explanations. However, many others (genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, certifications, hide) are merely labeled 'Query parameter.' with no further detail, leaving the agent without guidance on valid values or formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get media watchlist' gives a clear verb and resource, but it is vague about scope – it doesn't explicitly state it covers both movies and shows, though the tool name suggests that. It doesn't differentiate from sibling tools like get_users_by_id_watchlist_movies_by_sort or get_users_by_id_watchlist_shows_by_sort, so an agent might not know which one to choose without inspecting the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many sibling watchlist tools. No mention of conditions, alternatives, or exclusions. The description simply states what it does without context on selection.
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_watchlist_shows_by_sortBRead-onlyIdempotent
Get show watchlist.
GET /users/{id}/watchlist/shows/{sort}
Args: id: The slug that identifies the user, or "me" for the authenticated user. sort: Path parameter. extended: Extended information to include in the response. sort_by: The field to sort by sort_how: The direction to sort in page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. hide: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| hide | No | ||
| page | No | ||
| sort | Yes | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive safety profile, so the bar is lower. The description adds genuine behavioral context: the endpoint path, the special 'me' value for id, the pagination clamping behavior ('higher values are clamped rather than rejected'), and the semantics of the watchnow values. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded ('Get show watchlist') and the Args list is consistently organized. However, the phrase 'Query parameter.' is repeated 11 times, adding filler that doesn't earn its place. The verbose watchnow and limit entries are justified, but the overall description contains notable redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 18-parameter tool with zero schema descriptions, the description leaves major gaps: the required sort parameter has no documented allowed values, and filter parameters (genres, years, ratings, countries, certifications, date ranges, runtimes) have no format or combination guidance. The output schema covers return values, but an agent cannot reliably construct a valid call for most parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 0% schema description coverage, the description must compensate, but for 15 of 18 parameters it adds only 'Query parameter.' or 'Path parameter.' — no real semantics. Required params id and sort receive uneven treatment: id gets the useful 'slug or me' clarification, while sort only gets 'Path parameter.' with no allowed values. Only id, limit, and watchnow get meaningful elaboration, which is insufficient for an 18-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource, 'Get show watchlist', which clearly identifies a read operation for a user's show watchlist. The name and description together distinguish it from movie-specific and combined movie/show watchlist siblings, though the description itself doesn't explicitly name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_users_by_id_watchlist_movies_by_sort, get_users_by_id_watchlist_movie_show_by_sort, or the generic get_users_by_id_watchlist_by_type_by_sort_by_by_sort_how. The only differentiation is implied by the word 'shows' in the name; there are no exclusions or selection criteria stated.
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_yir_by_yearCRead-onlyIdempotent
Get year in review.
GET /users/{id}/yir/{year}
Args: id: The slug that identifies the user, or "me" for the authenticated user. year: Path parameter. extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| year | Yes | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate read-only, idempotent, open-world, and non-destructive. The description adds little behavioral context beyond the endpoint path; it does not describe pagination, rate limits, or any constraints. However, because annotations already provide the safety profile, the description doesn't contradict them, but it doesn't enrich them either.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose, but it's mostly a restatement of the endpoint. The parameter list is redundant with the schema. It could be more concise by dropping the restatement of the path and the vague parameter descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a year-in-review tool with an output schema, the description lacks details about what the review includes, any constraints (e.g., only for authenticated user?), and how 'extended' affects the response. The output schema exists but is not shown to the agent, so the description should provide more context about the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source for parameter meaning. It explains 'id' as user slug or 'me', but 'year' and 'extended' are only mentioned generically ('Path parameter', 'Extended information to include in the response') without providing expected values or formats. The 'extended' parameter is vague, and the description does not compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool is clearly 'Get year in review', and the path pattern indicates a specific resource (user's year-in-review for a given year). However, it does not distinguish itself from the sibling 'get_users_by_id_mir_by_year_by_month' (month in review) beyond the obvious path difference, and it does not explain what 'year in review' contains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only says what tool does ('Get year in review') but provides no guidance on when to use it versus alternatives. There is no mention of alternative tools like 'get_users_by_id_mir_by_year_by_month' or when not to use this tool. An agent has to infer usage purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_saved_filters_by_sectionBRead-onlyIdempotent
Get saved filters.
GET /users/saved_filters/{section}
Args: section: Path parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| section | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety with readOnlyHint, idempotentHint, and destructiveHint=false. The description adds useful behavioral detail about pagination defaults, endpoint caps, and clamping behavior, which goes beyond the structured annotations and helps the agent understand how the endpoint will behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core statement, followed by the endpoint and parameter details. The pagination text is slightly generic with 'often 10' and 'often 250,' but it is still concise and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity GET tool with an output schema, so return-value documentation is not needed. The endpoint, pagination behavior, and parameter list are covered, but the lack of valid section values and any context about saved filters leaves a meaningful gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains page and limit clearly, including defaults and clamping, but the required section parameter is only described as 'Path parameter,' adding no semantic meaning about valid values or what a section represents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the operation as retrieving saved filters, reinforced by the GET endpoint and the required section path parameter. It is understandable and distinct from the create/delete saved-filters siblings, though it does not explicitly call out that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as create_users_saved_filters or delete_users_saved_filters_by_id. It implies a read operation through the GET verb, but leaves 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_users_settings_plex_servers_by_server_idBRead-onlyIdempotent
Get Plex server accounts and libraries.
GET /users/settings/plex/servers/{server_id}
Args: server_id: The Plex server machine identifier.
| Name | Required | Description | Default |
|---|---|---|---|
| server_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds no additional behavioral context—it doesn't mention authentication, rate limits, or what happens if the server_id is invalid. It is consistent with the read-only annotation, but contributes no extra transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a purpose statement, the endpoint, and a single argument line. It is front-loaded with the core action and avoids filler. Including the HTTP path is useful for developers, though slightly redundant with the tool name. Overall, it is efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter) and the presence of an output schema, the description is minimally adequate. It explains what the tool returns at a high level (accounts and libraries) but omits context like prerequisites (e.g., the server must be connected) or error behavior. For a simple GET with annotations, this is acceptable but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only provides the property title 'Server Id' with no description. The description text adds 'server_id: The Plex server machine identifier,' which clarifies the meaning beyond the bare title. This is helpful but minimal; it doesn't explain how to obtain the identifier or its format. Since schema coverage is 0%, this description partially compensates, but not richly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Get Plex server accounts and libraries.' It names a specific resource (Plex server accounts/libraries) and the verb 'Get' is precise. The endpoint path with {server_id} clarifies it targets a single server, distinguishing it from siblings like list_users_settings_plex_servers, though it doesn't explicitly name that alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: you call this when you have a specific server_id to retrieve its accounts and libraries. However, it provides no explicit guidance on when to use this versus listing all servers (list_users_settings_plex_servers) or any alternatives. The usage is implied by the parameter but not explicitly contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_syncs_by_idBRead-onlyIdempotent
Get a data sync.
GET /users/syncs/{id}
Args: id: The numeric sync id, scoped to the authenticated user. A numeric segment hits a single sync; a non-numeric segment is the filtered list.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, indicating a safe read operation. The description adds minimal behavioral context beyond the path and scoping: it explains that a numeric segment hits a single sync and a non-numeric segment is the filtered list, but this is more about routing than behavior. No mention of response details or side effects, but given the strong 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the core purpose in the first sentence and supporting detail in the second. The path and arguments are clearly formatted with labels. A few words could be trimmed, but it is effectively front-loaded with essential info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter tool with an output schema present, the description is reasonably complete. The key missing piece is a clearer explanation of the filtered list behavior (non-numeric segment) and how this tool relates to siblings. But since the output schema exists, return format details are not needed in the description. It's adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the burden. It does explain that id is a numeric sync id scoped to the authenticated user and differentiates numeric vs non-numeric segments, which adds value beyond the bare integer type. However, it does not fully clarify the semantics of the non-numeric case (what filtered list exactly?), leaving ambiguity. This is insufficient given the complete lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a data sync.' with the specific resource (sync) and verb (get). It distinguishes from siblings like list_users_syncs by indicating it retrieves a single sync by ID, though it doesn't explicitly name sibling alternatives. The HTTP path and argument scoping add clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides the path and argument scoping ('scoped to the authenticated user') but gives no guidance on when to use this tool versus others like get_users_syncs_by_type or list_users_syncs. No exclusions or alternative tool mentions. Usage context is only implied by the tool's purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_syncs_by_id_pausedARead-onlyIdempotent
Get paused sync items.
GET /users/syncs/{id}/paused
Args: id: The numeric sync id, scoped to the authenticated user. A numeric segment hits a single sync; a non-numeric segment is the filtered list. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the description correctly avoids restating those. It adds useful behavioral details: id is scoped to the authenticated user, pagination defaults (often 10) and maximums (often 250) with clamping rather than rejection. These go beyond what annotations provide and help the agent understand response limits and id resolution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line summary, the HTTP path, and a list of parameters with explanations. The pagination details are slightly verbose but necessary for correct invocation. No fluff or repetition; it earns its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only paginated endpoint with an output schema, the description covers the essential invocation details: id semantics, pagination behavior, and auth scoping. It doesn't explain what a 'paused sync item' means, but that is domain-specific and unlikely to be ambiguous given the endpoint. The description is sufficient for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage, so the description must carry the semantic load. It explains the id parameter thoroughly (numeric vs non-numeric segments, scoping), and provides pagination semantics (page number, limit defaults, clamping). This adds significant meaning beyond the raw schema types and defaults, though page is only trivially described as 'The page number to retrieve'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get paused sync items' with a clear verb and resource, and the endpoint path is included. It differentiates from siblings like get_users_syncs_by_id_skipped through the 'paused' qualifier, though it doesn't explicitly contrast with them. The purpose is specific and unambiguous, though it could be slightly more detailed about what constitutes a 'paused sync item'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternative sync endpoints (e.g., get_users_syncs_by_id, get_users_syncs_by_id_skipped). It lacks any 'when to use' or 'when not to use' context, leaving the agent to infer from the name alone. The id semantics note ('numeric vs non-numeric') is about parameter behavior, not selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_users_syncs_by_id_skippedARead-onlyIdempotent
Get skipped sync items.
GET /users/syncs/{id}/skipped
Args: id: The numeric sync id, scoped to the authenticated user. A numeric segment hits a single sync; a non-numeric segment is the filtered list. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| page | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral context: id is scoped to the authenticated user, the id segment has different matching behavior, and pagination defaults/caps are explained. This goes beyond what annotations provide, though it stops short of describing the response shape or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the core purpose. The endpoint and argument explanations are relevant. The pagination sentence is slightly dense but informative, and no part feels redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a solid output schema and strong annotations, the description provides enough parameter and behavior detail to invoke the tool correctly. It covers pagination, auth scoping, and id semantics. The main gap is the absence of explicit usage guidance and the mildly irrelevant non-numeric segment remark.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It covers id, page, and limit with useful context: id's numeric behavior and user scoping, page meaning, and limit defaults/capping. The 'non-numeric segment' note is somewhat confusing given id is typed as integer, which prevents a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource: 'Get skipped sync items.' This identifies the tool's purpose precisely. However, it does not explicitly differentiate it from sibling tools like get_users_syncs_by_id or get_users_syncs_by_id_paused, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the resource name but gives no explicit guidance about when to choose this tool over alternatives. No sibling comparisons, exclusions, or contextual triggers are provided. The pagination notes are useful but do 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.
get_users_syncs_by_typeARead-onlyIdempotent
Get data syncs by type.
GET /users/syncs/{type}
Args:
type: Filter syncs by the app that created them. An unknown type returns 404 rather than silently returning everything.
page: The page number to retrieve
limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| type | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish a safe read-only, idempotent operation, so the description adds value by disclosing two non-obvious behaviors: unknown types return 404 rather than empty results, and limit values are clamped rather than rejected. This is useful behavioral context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is compact and well-structured: a one-line purpose, the HTTP path, then each argument. No filler or redundant restatement of schema types.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with the annotations and output schema, the description covers the key invocation concerns: required filter, failure mode, and pagination behavior. It stops short of enumerating valid type values or routing among sibling sync endpoints, but the definition is otherwise complete enough for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the burden and does document all three parameters: type as app filter, page as page number, and limit with default/capping behavior. It could be more endpoint-specific about exact limits, but it 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action and resource, 'Get data syncs by type,' and reinforces it with the GET /users/syncs/{type} path. The type argument is further clarified as filtering by the creating app, which separates this from the broader sync-list siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear that type is required and that an unknown type yields 404, but it never explicitly says when to prefer this tool over list_users_syncs or the by-id sync tools. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_watchnow_sources_by_country_codeCRead-onlyIdempotent
Get watch now sources by country.
GET /watchnow/sources/{countryCode}
Args: country_code: Path parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| country_code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context beyond the endpoint template—no mention of country code format, response behavior, pagination, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main purpose, and the endpoint line provides concrete routing context. The Args section is somewhat redundant with the schema, but overall there is no significant waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with an output schema and strong annotations, the description is nearly sufficient. The main gaps are the missing country code format/example and the lack of guidance distinguishing it from similar sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to explain country_code. It only restates that it is a path parameter, which is already visible in the endpoint template, and gives no format, example values, or accepted country-code standard.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('watch now sources') with the scope 'by country,' and includes the exact endpoint. It is not a tautology. However, it does not explicitly differentiate from sibling endpoints such as list_watchnow_sources or get_movies_by_id_watchnow_by_country, so it earns 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus list_watchnow_sources or the per-title watchnow-by-country endpoints. The sibling list contains many overlapping watchnow tools, and the description provides no selection criteria, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_certifications_moviesBRead-onlyIdempotent
Get movie certifications.
GET /certifications/movies
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safe, read-only nature is covered. The description adds the endpoint path, which confirms the retrieval action but provides no additional behavioral context such as response format or pagination. Given the annotations, the description adds minimal value beyond what's 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence followed by the endpoint. It's front-loaded with the action and resource, and the endpoint provides a direct reference. It's not overly verbose, though the endpoint might be considered redundant but adds clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only tool with an output schema, the description is relatively complete. The agent knows what the tool does and that it's safe. However, there's no mention of what the output represents (e.g., a list of certification ratings) beyond the schema, and no context on the availability or regional variations, which could be relevant in a media database context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, and the schema has no propertiesaint to document. The description doesn't need to explain parameters, and the baseline of 4 applies because there are no parameters to clarify. Thus, the description is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get movie certifications' with a clear verb and resource, and the accompanying endpoint clarifies the action. It doesn't explicitly differentiate from the sibling tool list_certifications_shows, but the resource is specific enough that an agent can distinguish the two.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_certifications_shows or get_certifications_by_type. The context of use (e.g., to retrieve certification ratings for movies) is implied but not explicitly stated, and there are no exclusions or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_certifications_showsARead-onlyIdempotent
Get show certifications.
GET /certifications/shows
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds only the endpoint path and no additional behavioral context such as what the returned certification list contains or whether it is a global list. This is adequate for a zero-parameter read operation but does not exceed the annotation baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is minimal and front-loaded: one direct sentence stating the operation, followed by the endpoint. There is no redundant or extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only endpoint with an output schema and strong annotations, the description is nearly complete. It only lacks explicit routing away from related certification tools, but an agent can invoke the tool correctly with the information provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description correctly adds no parameter information because none is needed; there is nothing for the schema or description to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: 'Get show certifications.' The endpoint path 'GET /certifications/shows' reinforces the scope. This also distinguishes the tool from sibling list_certifications_movies by clearly targeting shows rather than movies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this tool over alternatives such as list_certifications_movies or get_certifications_by_type. The only implied usage is that it retrieves show certifications, but no explicit 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_lists_popularBRead-onlyIdempotent
Get popular lists.
GET /lists/popular
Args: extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as read-only, open-world, idempotent, and non-destructive. The description adds useful behavioral detail on pagination: defaults vary, low default of ~10, and limits are clamped at ~250 rather than rejected. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose and endpoint are front-loaded and the parameter list is organized. However, repeated 'Query parameter' entries add noise, and the watchnow block has formatting/syntax inconsistencies that could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters, 0% schema coverage, and no alternative guidance, the description is not complete enough. Filter formats, date formats, and how parameters combine are left undefined, leaving an agent to guess at correct invocation despite the output schema and read-only annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden for parameter meaning. It gives meaningful detail for limit, page, and watchnow, but eight parameters are dismissed as merely 'Query parameter,' leaving their expected formats and values unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear action and resource: 'Get popular lists' plus the endpoint GET /lists/popular. It does not explicitly differentiate from nearby siblings like get_lists_popular_by_type or list_lists_trending, so it loses the top point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this tool over alternatives; siblings like list_lists_trending and get_lists_popular_by_type are never mentioned. The name and endpoint imply the use case, but the description provides no explicit context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lists_trendingCRead-onlyIdempotent
Get trending lists.
GET /lists/trending
Args: extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful pagination behavior (defaults, clamping) and watchnow value semantics, which go beyond the schema. However, it doesn't describe response shape or any rate-limit/auth context, so it's adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is mostly a parameter list with some useful detail, but it's repetitive ('Query parameter' repeated 9 times) and not front-loaded with a clear summary. The watchnow block is verbose and could be condensed. It's structured but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 optional parameters, an output schema, and read-only annotations, the description covers pagination and watchnow semantics but leaves most filter parameters undefined. For a simple trending-lists endpoint this is borderline adequate, but the lack of any guidance on filter formats or response contents is a clear gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain 'limit' pagination behavior and enumerates watchnow options, which is valuable. But most parameters (genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, certifications) are just labeled 'Query parameter' with no format, allowed values, or semantics — leaving the agent to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Get trending lists' and includes the endpoint path, which clearly identifies the resource and action. However, it doesn't distinguish this from the sibling 'list_lists_popular' or 'get_lists_trending_by_type' — an agent could confuse which trending-lists variant to use. The verb 'Get' plus resource is clear, but sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like list_lists_popular or get_lists_trending_by_type. It only lists parameters and the endpoint. There is no context about typical use cases, exclusions, or when a sibling would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_media_anticipatedBRead-onlyIdempotent
Get anticipated media.
GET /media/anticipated
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral detail about pagination (defaults, clamping) which is useful, but otherwise does not disclose additional behaviors like result ordering or filtering semantics beyond what the parameters suggest. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, starts with a clear one-line purpose, and lists parameters in an organized format. The repeated 'Query parameter' entries are slightly redundant but do not bloat the text significantly. The extended watchnow explanation is verbose but valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the output schema covering returns, the description lacks overall context: it never defines what 'anticipated' means, states whether both movies and shows are included, or explains how this tool relates to the movie/show-specific siblings. An agent is left without enough information to confidently choose this tool in an ambiguous situation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for parameters. It provides meaningful detail for watchnow (enum-like values) and limit (defaults/capping), but most other parameters are only labeled 'Query parameter,' adding no insight beyond their names. Since many names are self-explanatory, this is adequate but not thorough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get anticipated media,' a clear verb+resource statement that is not tautological. It conveys the core function but does not explicitly differentiate from sibling tools like list_movies_anticipated or list_shows_anticipated, relying on the name 'media' to imply both.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description only lists parameters and the endpoint, providing no conditions, exclusions, or references to sibling tools. An agent would have to infer that general media listings differ from movie/show-specific ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_media_popularBRead-onlyIdempotent
Get popular media.
GET /media/popular
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral value beyond that: pagination defaults vary by endpoint, low default limit (~10) is applied when omitted, high limits are clamped rather than rejected, and the watchnow parameter's eight distinct value semantics are spelled out. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The structure is organized — endpoint prefix followed by an Args block — and the pagination detail is valuable. But the nine identical 'Query parameter.' lines are filler that adds no information, and the watchnow block has awkward grammar ('subscriptions_all streaming on') and inconsistent indentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter tool with zero schema descriptions, the definition leaves significant gaps: no differentiation from sibling popular/trending list tools, no value formats for filters (e.g., how years or rating ranges are encoded), and nine parameters without any semantic meaning. The output schema covers return values, but input semantics remain incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden. It does richly document watchnow (all value options) and limit (clamping behavior), and minimally explains page, extended, and the three ignore_* flags. However, nine parameters (genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, certifications) receive only the tautological label 'Query parameter.' with no format, meaning, or accepted value syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Get popular media' with the endpoint GET /media/popular — a clear verb plus resource. It is distinguishable from list_movies_popular and list_shows_popular by the combined media scope implied in the name and endpoint, but it does not explicitly say it returns both movies and shows, nor how it differs from list_media_trending or list_media_anticipated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus its siblings (list_movies_popular, list_shows_popular, list_media_trending, list_media_anticipated). An agent must infer the selection criteria from naming conventions alone, which is risky given how many overlapping list tools exist in the sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_media_trendingBRead-onlyIdempotent
Get trending media.
GET /media/trending
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds genuinely useful behavioral context beyond annotations, such as pagination defaults varying, limits being clamped rather than rejected, and watchnow having specific streaming-scope semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized as an Args list and front-loads the purpose and endpoint. However, repeated 'Query parameter.' lines add noise, and the watchnow section is long yet necessary; overall it is reasonably structured but contains several low-value lines.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A zero-argument call is adequately supported by 'Get trending media.' and the endpoint, and the output schema covers return values. However, filter-rich calls are not fully usable because most filter parameters lack formats and valid values, and there is no guidance distinguishing this from popular, anticipated, or media-type-specific siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only partially does. watchnow, page, limit, and the ignore_* flags get meaningful explanations, while genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, and certifications are dismissed as 'Query parameter.' with no value formats, syntax, or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get trending media.' and specifies the endpoint GET /media/trending, so the action and resource are clear. It does not explicitly distinguish this from nearby siblings like list_media_popular or list_movies_trending/list_shows_trending, leaving the agent to infer the media-vs-movies/shows distinction from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus sibling tools such as list_media_popular, list_media_anticipated, list_movies_trending, or list_shows_trending. The description only provides parameter-level usage details like watchnow values and pagination behavior, not tool-selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_movies_anticipatedBRead-onlyIdempotent
Get the most anticipated movies.
GET /movies/anticipated
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds valuable runtime behavior around pagination: it explains default limits, endpoint maximums, and clamping behavior for the `limit` parameter. It also details acceptable values for `watchnow`, which goes beyond the schema's bare type. Annotations already declare readOnlyHint and idempotentHint, and the description does not contradict them; this additional context merits a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a purpose statement, endpoint, and an args list. It avoids fluff and presents the most important info (endpoint and pagination) early. The watchnow options are verbose but necessary for unambiguous values. Inconsistent indentation and the redundant 'Query parameter' tags are minor concerns, so a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values are covered elsewhere. However, the description leaves ambiguous how to format filter parameters and doesn't clarify the distinction between anticipated and popular/trending. For a simple GET list with many optional, loosely-described filters, it's adequate but not comprehensive – thus a 3.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description carries the burden of explaining 16 parameters. It gives genuine semantics for `watchnow`, `limit`, `page`, and the three `ignore_*` flags, but the majority of filter parameters (genres, subgenres, years, ratings, dates, runtimes, countries, certifications) are only labeled 'Query parameter' – a placeholder, not an explanation. This partial coverage is not enough for a 16-parameter endpoint, so a 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get the most anticipated movies,' clearly identifying the verb and resource. It includes the endpoint path, but does not explicitly contrast with sibling tools such as list_media_anticipated or list_shows_anticipated. Despite that, the purpose is unambiguously about anticipated movies, so this is a 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to choose this tool over the many sibling list tools (e.g., list_movies_popular, list_movies_hot, list_media_anticipated). The description only repeats the endpoint and parameter definitions. An agent is left to infer the distinction, so this scores 2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_movies_boxofficeARead-onlyIdempotent
Get the weekend box office.
GET /movies/boxoffice
Args: extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint, and the 'Get' wording is consistent with them. The description adds no behavioral detail beyond the weekend scope, but the safety profile is already covered by the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the core action; the endpoint line and args line add minimal supporting context. It is not bloated, though the args line is somewhat redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with one optional parameter, an output schema, and strong annotations, this is nearly complete: an agent can correctly call it with no arguments. The only notable gap is the lack of guidance on the 'extended' parameter values, which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter explanation. Saying 'extended: Extended information to include in the response' mostly restates the parameter name and gives no concrete allowed values, leaving an agent unable to know what strings are valid.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line 'Get the weekend box office' pairs a specific verb with a clear resource, and the endpoint 'GET /movies/boxoffice' confirms it. This cleanly distinguishes the tool from siblings like list_movies_trending or list_movies_hot without requiring schema inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear context: it is for weekend box-office data, so an agent can infer when to choose it over the many list_movies_* alternatives. It does not, however, provide explicit when-not-to-use guidance or name an alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_movies_hotCRead-onlyIdempotent
Get hot movies.
GET /movies/hot
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to restate safety. It does add some behavioral context beyond the schema: it explains pagination defaults and clamping for 'limit', and it gives detailed semantics for 'watchnow'. However, it omits other behavior such as rate limits, result ordering, or what 'hot' means, so it adds only marginal context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and repetitive: it lists 16 parameters and repeats 'Query parameter.' for at least 8 of them. It does not front-load the most important details; instead it buries useful info like pagination in a long list. It could be condensed significantly without losing value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 16 parameters, no required ones, and an output schema, the description leaves many gaps. The meaning of 'hot' is undefined, many parameters have no semantic description, and there is no guidance on how to combine filters or when this tool is appropriate. The presence of an output schema doesn't offset the lack of parameter and selection context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must carry the burden. While 'watchnow' and 'limit' receive meaningful explanations, most other parameters are merely listed as 'Query parameter.' with no information about format, allowed values, or semantics. This is insufficient for an agent to construct correct queries without external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Get hot movies' and explicitly gives the endpoint 'GET /movies/hot'. However, it does not differentiate from sibling tools like list_movies_popular or list_movies_trending; the term 'hot' is left ambiguous without defining what makes a movie 'hot' versus 'popular' or 'trending'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus its siblings. The description provides no context about scenarios where 'hot' is preferred over 'popular' or 'trending', nor any exclusions. An agent would have to guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_movies_popularBRead-onlyIdempotent
Get popular movies.
GET /movies/popular
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds useful behavioral context beyond those: the concrete endpoint path and detailed pagination behavior including low default limits, endpoint maximums, and clamping of over-limit values. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized as a readable parameter list with the endpoint front-loaded. However, the watchnow section is verbose and inconsistently formatted, and repeated 'Query parameter' lines add length without information. It is adequate but not especially crisp.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 16 parameters and no schema-level descriptions, this definition is incomplete. It covers watchnow and pagination well, but leaves filter parameter formats, extended value options, and differentiation from sibling popular/trending/hot list tools undefined. The output schema and annotations cover some gaps, but not enough for reliable invocation of the filtering parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It provides real semantics for watchnow, limit, page, and the ignore_* flags, but eight parameters (genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, certifications) are dismissed as 'Query parameter', adding no meaning beyond the schema property names. An agent cannot determine valid filter formats or value syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action and resource: 'Get popular movies' and the endpoint GET /movies/popular. However, it does not distinguish itself from closely related siblings like list_movies_trending, list_movies_hot, or list_movies_anticipated, so an agent must rely on the name alone to select among them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. The description only says 'Get popular movies', with no mention of how popular differs from trending, hot, anticipated, or boxoffice, and no exclusions or preference conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_movies_trendingBRead-onlyIdempotent
Get trending movies.
GET /movies/trending
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description does not contradict them. It adds contextual behavior beyond annotations by explaining pagination defaults and clamping ("Defaults and maximums vary by endpoint... higher values are clamped rather than rejected") and detailing watchnow value semantics. This is useful behavioral context on top of the structured hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with a one-sentence summary and the endpoint, then systematically lists each argument. The length is justified by 16 parameters, and each bullet is short. There is minor verbosity/inconsistent wording, such as "Use "subscriptions_all" streaming..." missing the word 'for', but overall it is organized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter endpoint with an output schema, the description covers all parameters and includes pagination behavior, but it leaves meaningful gaps: valid values for 'extended' are unspecified, filter formats (dates, years, ratings, genres) are not explained, and the notion of 'trending' is undefined. Because an output schema exists, the missing return-value details are less critical, but the filter semantics are still incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of parameter documentation. It does name every parameter and gives real meaning to page, limit, watchnow, extended, and the ignore_* flags. However, nine parameters (genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, certifications) receive only the unhelpful annotation "Query parameter.", leaving their formats and allowed values undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: "Get trending movies." and reinforces it with the HTTP endpoint "GET /movies/trending". This distinguishes it from sibling list endpoints like list_movies_popular or list_shows_trending by the 'movies' + 'trending' scope, though it does not explicitly contrast those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over list_movies_hot, list_movies_popular, list_movies_boxoffice, or list_media_trending. The only usage cue is the tool name and the one-line summary, which merely implies a trending-movies use case. No exclusion or alternative-selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_networksBRead-onlyIdempotent
Get networks.
GET /networks
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, open-world, non-destructive behavior. The description adds only the endpoint line and no further behavioral context such as authentication expectations, pagination, or result scope, so it earns limited credit beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, with no filler; the first line states the action and the second line gives the exact endpoint. It is appropriately sized for a zero-parameter read-only tool, though it sacrifices detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only endpoint, the definition is mostly complete: output schema covers return shape and annotations cover safety. However, it leaves the domain meaning of 'networks' unstated and gives no selection context, so an agent may not know when this is the appropriate tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero properties, so there is no parameter meaning to add. With 100% schema coverage and no parameters, the description cannot be penalized for missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact action and resource ('Get networks') and gives the raw endpoint ('GET /networks'). It is unambiguous enough to distinguish from the many list_* siblings because there is no other networks-specific tool, though it does not elaborate on what a 'network' is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to call this tool versus alternatives or what kind of task it supports. The description simply restates the action; 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_oauth_authorizeCRead-onlyIdempotent
Authorize Application.
GET /oauth/authorize
Args: response_type: Query parameter. client_id: Query parameter. redirect_uri: Query parameter. state: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | ||
| client_id | No | ||
| redirect_uri | No | ||
| response_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds only the HTTP method and a bare parameter list, with no behavioral insight beyond annotations — notably missing that an OAuth authorize endpoint typically redirects the user to a consent/login page and produces no direct JSON result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and free of fluff, which is good, but its Args block largely duplicates the input schema's property names, adding only the trivial 'Query parameter' label. It is compact rather than genuinely informative; the front-loaded 'Authorize Application.' line is too vague to anchor the rest.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although complexity is low (4 optional string params, output schema present, rich annotations), the description omits the essential context of where this endpoint sits in the OAuth lifecycle and how it relates to the authentication sibling tools. An agent cannot determine whether this is a browser-redirect step, a device-code step, or a token exchange, leaving a significant completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for parameter meaning, but it only repeats each name with 'Query parameter.' — e.g., response_type, client_id, redirect_uri, and state are standard OAuth concepts whose values (like response_type=code and state as CSRF protection) are never explained. This is barely more informative than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource and verb: 'Authorize Application' on 'GET /oauth/authorize'. However, it never explains what authorizing actually accomplishes (e.g., initiating the OAuth authorization-code flow, redirecting a user), and the name's 'list' prefix conflicts conceptually with the authorize action. It is distinguishable as an OAuth endpoint but not clearly differentiated from siblings like start_authentication or create_oauth_token.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided at all. The description does not say when to call this tool versus the many closely related authentication siblings (start_authentication, finish_authentication, create_oauth_token, create_oauth_device_code), nor does it describe where this step fits in an OAuth flow. An agent has no basis for choosing this tool over its alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recommendations_moviesBRead-onlyIdempotent
Get movie recommendations.
GET /recommendations/movies/
Args: extended: Extended information to include in the response. limit: Limit the number of results. watch_window: The watch window in days for the recommendations. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| watch_window | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds detail about filtering behavior (ignore_watched, ignore_collected, watchnow, etc.) but does not disclose pagination, default limits, ordering, or response shape. The added context is useful but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core action and endpoint. The parameter list is concise, but the repetitive 'Query parameter.' entries add little value. The watchnow block is verbose but necessary because it documents valid enum-like values.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with an output schema and strong annotations, the description covers the endpoint and key parameters. It is incomplete on value formats for dates, years, genres, ratings, runtimes, countries, and certifications, and it does not clarify limit behavior or extended values. An agent would still face uncertainty when constructing arguments.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden for 16 parameters. The watchnow parameter is thoroughly explained with valid values, and the ignore_* booleans are self-explanatory. However, genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, and certifications are only labeled 'Query parameter', adding minimal semantic value beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get movie recommendations' and states the endpoint GET /recommendations/movies/. This clearly identifies the resource and distinguishes it from list_recommendations_shows by name. It could be stronger if it explicitly contrasted with the shows sibling, but the verb+resource is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly covers usage by listing all parameters and giving detailed guidance for watchnow values. It does not explicitly state when to prefer this tool over list_recommendations_shows or other browsing endpoints, nor does it state when not to use it. The intended use is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_recommendations_showsBRead-onlyIdempotent
Get show recommendations.
GET /recommendations/shows/
Args: extended: Extended information to include in the response. limit: Limit the number of results. watch_window: The watch window in days for the recommendations. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| watch_window | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the operation is read-only, idempotent, non-destructive, and open-world. The description adds some operational context, such as the endpoint path and the meaning of the watchnow parameter values, but it does not mention authentication needs, pagination behavior, default limits, or the fact that these are likely personalized recommendations based on user activity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured as an endpoint line followed by an argument list, making it scannable. However, the repeated 'Query parameter.' boilerplate is noise, and the watchnow explanation is verbose though useful. It is acceptable but not tightly written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter tool with no schema-level parameter descriptions, the description is not complete enough to ensure correct calls. It lacks expected formats for filters like years, genres, ratings, and dates, does not explain what extended can contain, and does not clarify how this endpoint differs from social or popular/trending list endpoints. The output schema reduces the need to document return values, but the input side is still under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must carry the full semantic burden, but it only provides meaningful detail for a few parameters. Nine parameters are described as merely 'Query parameter,' which adds no real value beyond their names, and even extended is left vague. Only watchnow receives sufficiently specific guidance about allowed values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Get show recommendations' with the endpoint GET /recommendations/shows/. It is clear this is about show recommendations, but it does not distinguish itself from the sibling list_social_recommendations_shows, which also targets show recommendations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for fetching show recommendations, so an agent can infer a basic use case. However, it gives no explicit guidance about when to prefer this tool over alternatives like list_recommendations_movies or list_social_recommendations_shows, and no conditions are provided for 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.
list_shows_anticipatedBRead-onlyIdempotent
Get the most anticipated shows.
GET /shows/anticipated
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context about pagination defaults and clamping behavior for the limit parameter, which goes beyond the schema. However, it doesn't describe the response format or any other behavioral traits like sorting or default ordering.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and endpoint, which is good. The watchnow parameter explanation is verbose and could be more concise, and the repeated 'Query parameter' labels for eight parameters add noise without adding value. It's reasonably structured but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 16 parameters, no required parameters, and an output schema present, the description covers the core purpose and pagination behavior but leaves many filter parameters underspecified. The watchnow values are well documented, but the generic 'Query parameter' labels for genres, subgenres, years, ratings, dates, runtimes, countries, and certifications mean an agent would need external knowledge to use them correctly. The output schema exists, so return values don't need explanation, but the filter semantics are incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden of explaining parameters. It provides meaningful explanations for extended, watchnow, page, limit, and the ignore_* flags, with detailed value options for watchnow. However, many parameters (genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, certifications) are only labeled 'Query parameter' with no format or value guidance, leaving significant gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get the most anticipated shows' and includes the endpoint path 'GET /shows/anticipated', which clearly identifies the resource and operation. It distinguishes itself from sibling tools like list_movies_anticipated and list_media_anticipated by specifying 'shows', 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the endpoint path and the list of filter parameters, but it does not explicitly state when to use this tool versus alternatives like list_shows_popular, list_shows_trending, or list_shows_hot. The watchnow parameter has detailed value guidance, which helps with one specific usage aspect, but overall the when-to-use context is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_shows_hotBRead-onlyIdempotent
Get hot shows.
GET /shows/hot
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish read-only, idempotent, non-destructive behavior. The description adds some behavioral context, such as pagination defaults and clamping, but does not explain the ranking semantics of 'hot' or other runtime 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized as a compact argument list and front-loads the core purpose in a single sentence. The repeated 'Query parameter' placeholders and the verbose watchnow block add some bulk, but the structure is serviceable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter endpoint with no schema descriptions, the definition covers parameter names and a few key behaviors but leaves most filter formats unspecified. The output schema and annotations cover return shape and safety, so the missing value formats are the main completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter documentation. It provides genuinely useful semantics for watchnow (enumerated values) and limit (defaults and clamping), but the majority of filter parameters are dismissed as 'Query parameter' with no format or value guidance, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States that the tool returns hot shows and gives the exact endpoint (GET /shows/hot), so the verb and resource are clear. However, it does not explain how 'hot' differs from sibling list endpoints such as list_shows_popular, list_shows_trending, or list_shows_anticipated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to choose this endpoint over the many sibling list endpoints (popular, trending, anticipated). The description only names the action and parameters, leaving selection 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_shows_popularBRead-onlyIdempotent
Get popular shows.
GET /shows/popular
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already communicate read-only, idempotent, and non-destructive behavior. The description adds useful behavioral context beyond annotations, such as pagination defaults, the maximum limit cap, the fact that higher values are clamped rather than rejected, and the meaning of the watchnow values. It does not mention auth requirements or error behavior, but those are less critical given the strong annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose and endpoint, and the parameter list is organized in a readable bullet format. However, many lines such as 'genres: Query parameter.' add no informational value and bloat the text. It could be more concise while actually explaining the meaningful parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 16 optional parameters and zero schema coverage, the description is not complete enough for correct advanced use. An agent can safely make an empty call, but it cannot construct proper filter queries for genres, years, dates, ratings, runtimes, countries, or certifications without external knowledge. The presence of an output schema helps for return values, but the request-side filter semantics remain under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions for any of the 16 parameters, so the description is the only source of semantic information. It gives real meaning only to watchnow, page, and limit; the remaining parameters are merely labeled 'Query parameter.' with no format, examples, or accepted syntax. This is a significant gap for filter parameters like genres, years, ratings, dates, runtimes, and certifications.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get popular shows' and includes the concrete endpoint GET /shows/popular, making the operation and resource clear. However, it does not explicitly differentiate itself from closely named siblings like list_shows_trending or list_shows_hot, so the agent must rely on the 'popular' distinction in the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as list_shows_trending, list_shows_anticipated, list_movies_popular, or list_media_popular. It lists parameters but gives no context about which combinations are intended or when an agent should prefer a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_shows_trendingARead-onlyIdempotent
Get trending shows.
GET /shows/trending
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and idempotentHint=true, and the description aligns by describing a read operation. The description adds behavior details like pagination defaults ('Defaults and maximums vary by endpoint...') and the watchnow parameter's various modes, which are beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and repetitive, listing every parameter in a mixed format: some have full explanations, others just say 'Query parameter'. The useful info about watchnow and pagination is buried amidst the parameter list. It could be more concise and front-load the most important behavioral details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with many optional filters, the description explains key behaviors (watchnow modes, pagination limits) and the endpoint is clear. However, it lacks guidance on how filters interact or which filters are typically used together. Given the output schema exists, return values are covered, but the description is not fully complete for an agent to know exactly how to construct effective requests.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides detailed semantics for the watchnow parameter and the limit/pagination behavior. For other parameters (genres, years, etc.), it only says 'Query parameter', which adds no value beyond the schema. With 16 parameters and 0% schema coverage, the description partially compensates but many parameters remain underdocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get trending shows' and includes the endpoint 'GET /shows/trending', distinguishing it from sibling tools like list_shows_popular or list_shows_hot. The verb 'Get' and resource 'trending shows' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus other list tools like list_media_trending or list_shows_popular. However, the tool name and endpoints imply it is for trending shows, and the description provides filter options for how to narrow results. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_social_recommendations_moviesBRead-onlyIdempotent
Get social movie recommendations.
GET /social_recommendations/movies/
Args: extended: Extended information to include in the response. limit: Limit the number of results. watch_window: The watch window in days for the recommendations. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| extended | No | ||
| watch_window | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the HTTP method (GET) and some behavioral context via the parameter names (e.g., ignored items, watch window), but does not disclose pagination, response format, or authorization requirements. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-organized: a one-line purpose, the endpoint, then a list of arguments. No filler or repetition. Every line carries useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six parameters fully described and an output schema present, the tool is functionally callable. However, it lacks contextual information about what 'social' recommendations are, how this endpoint differs from non-social recommendations, or any usage caveats. An agent could easily mistake it for the general recommendations endpoint without more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does. Each of the six parameters receives a concise, meaningful explanation: 'extended: Extended information to include in the response', 'limit: Limit the number of results', 'watch_window: The watch window in days for the recommendations', and the three ignore flags are self-explanatory. The meaning of 'extended' remains vague, but others are clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get social movie recommendations' – a clear verb and resource. It distinguishes from non-social recommendation endpoints like list_recommendations_movies via the word 'social', but does not explicitly contrast with the sibling list_social_recommendations_shows. Still, the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to choose this tool over alternatives such as list_recommendations_movies or list_social_recommendations_shows. The description only states what it does and lists parameters, leaving the selection decision entirely to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_social_recommendations_showsBRead-onlyIdempotent
Get social show recommendations.
GET /social_recommendations/shows/
Args: extended: Extended information to include in the response. limit: Limit the number of results. watch_window: The watch window in days for the recommendations. ignore_watched: Ignore watched items. ignore_collected: Ignore collected items. ignore_watchlisted: Ignore watchlisted items.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| extended | No | ||
| watch_window | No | ||
| ignore_watched | No | ||
| ignore_collected | No | ||
| ignore_watchlisted | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds only the GET endpoint, which is consistent but does not disclose additional behavioral context such as authentication needs, rate limits, pagination behavior, or what 'extended' entails. This is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a clear one-line purpose, the endpoint, then a tidy parameter list. There is no filler or redundancy, and each line earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus annotations give a minimum viable picture: a read-only list operation, all parameters explained, and an output schema present. However, it lacks context about how 'social' recommendations differ from regular recommendations and provides no routing guidance among similar sibling tools, leaving a notable gap for an agent deciding between them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden of explaining parameters. It defines all six parameters with meaningful one-line descriptions, including that watch_window is in days and what each ignore flag filters. Some definitions remain vague ('extended'), but overall it compensates well for the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('social show recommendations'), making the basic purpose clear. However, it does not explain what 'social' means or how this differs from sibling tools like list_recommendations_shows or list_social_recommendations_movies, so it relies partly on the tool name for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as list_recommendations_shows or list_social_recommendations_movies. There are no exclusions, prerequisites, or contextual hints about the intended use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_collection_episodesCRead-onlyIdempotent
Get episode collection.
GET /sync/collection/episodes
Args: extended: Extended information to include in the response. available_on: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| extended | No | ||
| available_on | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already convey readOnlyHint, idempotentHint, and destructiveHint=false, and the description is consistent with them. However, the description adds no behavioral context beyond that, such as authentication needs, rate limits, response size implications, or payload characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core purpose with 'Get episode collection.' The endpoint and argument list are easy to scan, though the 'available_on: Query parameter' line is essentially filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list endpoint with an output schema and annotations, the description is close to adequate: it lists all parameters and pagination behavior. The main gaps are lack of sibling differentiation, undefined 'available_on' semantics, and no note about the full-versus-minimal episode collection variants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry parameter meaning. It does so for page and limit, including useful clamping/default behavior, and vaguely for extended. 'available_on: Query parameter' adds no semantic value beyond the property name, so compensation is only partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb-resource pair, 'Get episode collection,' and lists the exact endpoint. It is understandable on its own, but it does not differentiate this from the closely related sibling list_sync_collection_minimal_episodes or clarify that this is the authenticated user's sync collection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance is provided. The description does not say when to choose this over list_sync_collection_minimal_episodes, list_sync_collection_media, or other collection endpoints, nor does it state any context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_collection_mediaBRead-onlyIdempotent
Get media collection.
GET /sync/collection/media
Args: extended: Extended information to include in the response. available_on: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| extended | No | ||
| available_on | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, but the description adds valuable behavioral details: pagination defaults (low default limit of 10), capping at endpoint maximum (250), and clamping rather than rejection. This goes beyond the annotations to inform the agent about response size behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with the endpoint first, then a clean bullet-style list of parameters. It is concise and front-loaded with the purpose, keeping each parameter explanation short. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a list tool with four parameters and many sibling tools. The description fails to clarify that this returns all media types (vs. type-specific siblings) or whether it includes episodes etc. It also doesn't mention the output schema's structure or any filters beyond the vague available_on. The agent could easily confuse it with list_sync_collection_movies or list_sync_collection_episodes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It does explain 'page' and 'limit' clearly, and gives a vague 'Extended information' for extended. However, 'available_on' is merely described as 'Query parameter.' which adds no meaning beyond its name. Thus partial coverage with one unhelpful description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get media collection' which is a verb+resource, but 'media collection' is vague and doesn't specify that it covers all media types (movies, shows, episodes) or how it differs from siblings like list_sync_collection_movies. It is not a tautology but lacks precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus the many type-specific siblings (list_sync_collection_movies, list_sync_collection_shows, etc.). The description does not mention alternatives or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_collection_minimal_episodesCRead-onlyIdempotent
Get minimal episode collection.
GET /sync/collection/minimal/episodes
Args: available_on: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| available_on | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint path and the available_on query parameter, but does not disclose what fields are included in a 'minimal' episode, whether pagination applies, or what the response shape is. With annotations covering the read-only behavior, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main action, but it includes the raw endpoint path and an Args section that merely restates the schema. The endpoint line is redundant with the tool name and the Args section duplicates the input schema. It is concise but not efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with an output schema and read-only annotations, the description is incomplete. It does not explain what 'minimal' means, what the available_on filter does, or how this endpoint relates to the many sibling sync-collection tools. An agent would need to inspect the output schema and guess at the semantics of available_on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented available_on parameter. It only says 'Query parameter' with no explanation of format, allowed values, or meaning. The parameter name is self-explanatory to a degree, but the description adds no value beyond the schema's property name and type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Get minimal episode collection' and includes the endpoint path, which identifies the resource and verb. However, it does not explain what 'minimal' means or how this differs from sibling tools like list_sync_collection_episodes, list_sync_collection_minimal_movies, and list_sync_collection_minimal_shows. The name and endpoint carry most of the meaning; the description adds little beyond restating them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The sibling list includes list_sync_collection_episodes, list_sync_collection_minimal_movies, and list_sync_collection_minimal_shows, but the description never distinguishes this tool from them. The only usage hint is the endpoint path, which is not enough to route an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_collection_minimal_moviesCRead-onlyIdempotent
Get minimal movie collection.
GET /sync/collection/minimal/movies
Args: available_on: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| available_on | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide the safety profile (read-only, idempotent, non-destructive). The description adds only 'minimal' and the endpoint, both largely reflected in the tool name, and does not disclose pagination, field omissions, authentication, or output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is short and front-loaded, and there is no filler. However, the endpoint line repeats the tool name and the Args line repeats schema information, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with an output schema, much of the safety and return context is covered elsewhere. Yet the description leaves 'minimal' undefined and does not say how available_on should be formatted or when to prefer this over list_sync_collection_movies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is documented in the schema as optional string 'available_on'; the description merely restates it as a 'Query parameter' without explaining accepted values or meaning. With 0% schema description coverage, this fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb and resource: it retrieves the minimal movie collection. It does not, however, define what 'minimal' means or explicitly distinguish itself from the sibling list_sync_collection_movies, so it is 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given; the description never mentions alternatives, exclusions, or the relationship to list_sync_collection_movies or full collection endpoints. The agent must infer the intended use from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_collection_minimal_showsCRead-onlyIdempotent
Get minimal show collection.
GET /sync/collection/minimal/shows
Args: available_on: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| available_on | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior. The description adds no incremental behavioral context—no mention of return shape, pagination, authentication, or rate limits—so it contributes nothing beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: it gives the purpose, the HTTP endpoint, and the parameter list in a single tight structure with no redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the presence of an output schema, and strong annotations, the description is minimally sufficient. However, the unexplained available_on parameter and the lack of any differentiation from similar sync collection tools make it incomplete for an agent to confidently select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only labels available_on as a 'Query parameter' without explaining its meaning, allowed values, or format. This provides negligible value over the schema's own property name, type, and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('minimal show collection'), clearly identifying the operation. However, it does not explain what 'minimal' means or differentiate it from the similar sibling list_sync_collection_shows, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The sibling tools list_sync_collection_shows, list_sync_collection_minimal_episodes, and list_sync_collection_minimal_movies exist, but the description gives no criteria for choosing this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_collection_moviesBRead-onlyIdempotent
Get movie collection.
GET /sync/collection/movies
Args: extended: Extended information to include in the response. available_on: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| extended | No | ||
| available_on | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context about pagination: low default limits near 10, endpoint maximums near 250, and clamping of higher limit values rather than rejection. This goes beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately compact and front-loads the main purpose. The Args section is neatly structured, and the pagination note, while somewhat boilerplate, is concise and relevant. No sentences are wasted, though the endpoint line could arguably be merged with the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core operation and pagination behavior, and the output schema plus read-only annotations reduce what is missing. However, it does not explain valid values for extended or available_on, and it lacks any mention of authentication or relationship to sibling sync-collection endpoints. This is adequate for a simple GET list but has clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It meaningfully explains page and limit, including default/cap behavior. However, 'extended: Extended information to include in the response' is vague, and 'available_on: Query parameter' is essentially a tautology that adds no semantic value. Half the parameters remain opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Get' and the resource 'movie collection', and the endpoint GET /sync/collection/movies makes the scope concrete. It is distinguishable from sibling tools like list_sync_collection_shows or list_sync_collection_minimal_movies primarily by the explicit movie-collection resource, though it does not explain what 'collection' means in this sync context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as list_sync_collection_media, list_sync_collection_minimal_movies, or get_sync_collection_by_type. The intended use is only implied by the name and endpoint, with no exclusions, prerequisites, or comparison to related sync collection tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_collection_showsCRead-onlyIdempotent
Get show collection.
GET /sync/collection/shows
Args: extended: Extended information to include in the response. available_on: Query parameter.
| Name | Required | Description | Default |
|---|---|---|---|
| extended | No | ||
| available_on | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the description adds little behavioral context beyond the endpoint. It does not disclose pagination, filtering semantics, auth needs, or response characteristics, and 'Query parameter' is not a behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short, front-loaded, and well-structured with the endpoint followed by Args. It is genuinely concise, though the parameter descriptions are too sparse to be fully informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool sits in a large sibling cluster and has two optional parameters that are not explained well enough to use correctly. With no usage context and no parameter value guidance, the definition is not complete for an agent, even though an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented parameters. It only restates 'extended' as generic extra info and labels 'available_on' as a query parameter without giving allowed values or formats, which is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a concrete verb and resource ('Get show collection') and gives the exact endpoint. It is clear at a glance, though it does not explicitly differentiate this from sibling collection tools like list_sync_collection_movies or list_sync_collection_minimal_shows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to call this tool versus alternatives. The sibling list contains several closely related sync-collection endpoints, and the description offers no context, exclusions, or prerequisites to help an agent choose between them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_last_activitiesCRead-onlyIdempotent
Get last activity.
GET /sync/last_activities
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructiveHint, so the description's job is to add context. It does not add any behavioral details such as pagination, time range, or data scope—it repeats the endpoint and says nothing beyond 'get last activity'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief with no filler words, and the endpoint is front-loaded. However, it is so sparse that it reads as an under-specified stub rather than a well-structured, information-dense description. The length is appropriate for a no-param tool, but the content is not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though the tool has no parameters and an output schema exists, the description fails to clarify the meaning of 'last activity' in this API's context galleries. It does not mention who the activities belong to, what kind of activities are included, or how this endpoint differs from closely related sync endpoints, leaving the agent to infer or call the wrong tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description carries no parameter-documentation burden. The input schema trivially covers 100% of parameters, and the baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Get last activity', which identifies a verb and a resource but leaves the resource undefined—it does not explain whose activity, what kind of activity, or what 'last' means. The endpoint string is redundant with the tool name and does not clarify semantics. It cannot be distinguished from siblings like get_sync_history_by_type_by_id on the basis of the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus the many other sync and activity-related endpoints. No alternatives are mentioned, and no context is given for when a user or agent should call this specific endpoint instead of list_sync_history or similar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_playback_moviesBRead-onlyIdempotent
Get movie playback progress.
GET /sync/playback/movies
Args: extended: Extended information to include in the response. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. start_at: Start date for the range. Must be formatted as "YYYY-MM-DD". end_at: End date for the range. Must be formatted as "YYYY-MM-DD".
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| end_at | No | ||
| genres | No | ||
| ratings | No | ||
| end_date | No | ||
| extended | No | ||
| runtimes | No | ||
| start_at | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds useful context about pagination behavior (defaults, maximums, clamping) and date formatting requirements, which goes beyond the schema. However, it doesn't disclose what the response contains or whether the endpoint requires authentication, though the output schema exists to cover return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and endpoint, and the parameter list is organized. However, it is verbose: the 'watchnow' parameter explanation is a long block of repetitive text that could be condensed, and the 'Query parameter' placeholders for nine parameters add bulk without value. It earns a middle score for being structured but not tightly written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 15 optional parameters, an output schema, and annotations covering safety, the description covers the essential purpose and some parameter semantics. But it leaves significant gaps: no guidance on how to combine filters, no explanation of what 'extended' actually returns, and no mention of authentication requirements. For a complex list endpoint, this is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does add meaning for several parameters: 'extended' is explained with a list of valid values, 'watchnow' has detailed value explanations, and 'start_at'/'end_at' have format requirements. However, many parameters (genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, certifications) are only labeled 'Query parameter' with no additional semantics, leaving the agent to guess their format or allowed values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Get movie playback progress' and includes the endpoint 'GET /sync/playback/movies', which clearly identifies the resource and action. It distinguishes itself from siblings like list_sync_collection_movies and get_sync_playback_by_type by focusing specifically on movie playback progress, though it doesn't explicitly name a sibling alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides the endpoint and parameter usage details, implying when to use it (to retrieve movie playback progress). However, it does not explicitly state when to use this tool versus alternatives like get_sync_playback_by_type or list_sync_progress_watched, nor does it mention 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_sync_progress_up_nextBRead-onlyIdempotent
Get up next.
GET /sync/progress/up_next
Args:
extended: Extended information to include in the response.
page: The page number to retrieve
limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
sort_by: The field to sort by
sort_how: The direction to sort in
include_stats: Whether to include stats in the response
lifetime_stats: When true, progress.completed and progress.stats reflect lifetime totals across all watches of the show. When false (default), they reflect the current watching session — i.e. counters reset by /shows/:id/progress/watched/reset.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| sort_by | No | ||
| extended | No | ||
| sort_how | No | ||
| include_stats | No | ||
| lifetime_stats | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, openWorld, and non-destructive behavior. The description adds genuinely useful behavioral context beyond that: pagination defaults vary by endpoint, limits are clamped rather than rejected, and `lifetime_stats` changes whether counters reflect lifetime totals or the current session, including a reference to the reset endpoint. This exceeds what annotations alone provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a short purpose line, the HTTP endpoint, and an `Args` list where each parameter has its own line. It front-loads the operation and avoids filler, though the phrase 'Get up next.' is minimal and the Args list is mostly one-liners.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description documents all 7 optional parameters and includes an output schema is present, but it omits important context: what an 'up next' item actually is, what the response contains, and how this tool differs from the sibling `list_sync_progress_up_next_nitro` and `list_sync_progress_watched`. An agent is left without enough information to reliably pick this tool among sync-progress alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is the only source of parameter meaning. It gives at least a one-line explanation for every parameter, and adds significant operational detail for `limit` (defaults, clamping) and `lifetime_stats` (session vs lifetime semantics). However, `extended`, `sort_by`, and `sort_how` remain surface-level with no allowed values or format hints, so it is not perfect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get up next." plus the endpoint `GET /sync/progress/up_next` clearly states a read operation for a resource named 'up next', but it never defines what 'up next' means or distinguishes it from siblings like `list_sync_progress_up_next_nitro` and `list_sync_progress_watched`. It is not a tautology, but the purpose is shallow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as `list_sync_progress_up_next_nitro` or `list_sync_progress_watched`. There are no exclusion criteria, prerequisites, or selection heuristics, leaving the agent to infer usage entirely from the endpoint path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_progress_up_next_nitroBRead-onlyIdempotent
Get up next nitro.
GET /sync/progress/up_next_nitro
Args: page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected. watchnow: Use "favorites" for streaming on a favorite service of the user. Use "any" for streaming on any service in the user's country. Use "any_all" for streaming on any service in all countries. Use "free" for streaming for free in the user's country. Use "free_all" for streaming for free in all countries. Use "subscriptions" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country. Use "subscriptions_all" streaming on any subscription service in all countries genres: Query parameter. subgenres: Query parameter. years: Query parameter. ratings: Query parameter. start_date: Query parameter. end_date: Query parameter. runtimes: Query parameter. countries: Query parameter. certifications: Query parameter. sort_by: The field to sort by sort_how: The direction to sort in intent: To get shows a user is just starting, continuing, completed, or all shows.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| years | No | ||
| genres | No | ||
| intent | No | ||
| ratings | No | ||
| sort_by | No | ||
| end_date | No | ||
| runtimes | No | ||
| sort_how | No | ||
| watchnow | No | ||
| countries | No | ||
| subgenres | No | ||
| start_date | No | ||
| certifications | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the endpoint path and documents pagination clamping behavior ('higher values are clamped rather than rejected'), which is useful behavioral context beyond the schema. However, it doesn't disclose what the response contains or whether the endpoint requires authentication, though the annotations carry most of the safety burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is mostly a parameter list with the endpoint path at the top. The watchnow section is verbose but informative. The 'Query parameter' boilerplate for eight parameters is repetitive and wastes space without adding value. The structure is functional but not front-loaded with a clear one-sentence purpose; it starts with the vague 'Get up next nitro.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 15 optional parameters, an output schema, and read-only annotations, the description covers pagination and watchnow semantics but leaves the core meaning of 'up next nitro' unexplained. An agent would struggle to know what this endpoint returns or when to choose it over list_sync_progress_up_next. The output schema exists, so return values are partially covered, but the missing purpose and usage context are significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does add meaning for several parameters: page and limit get pagination semantics, watchnow gets a detailed list of allowed values, and intent gets a brief explanation. However, many parameters (genres, subgenres, years, ratings, start_date, end_date, runtimes, countries, certifications, sort_by, sort_how) are only labeled 'Query parameter' or 'The field to sort by', which adds little beyond the schema's property names. The watchnow documentation is genuinely helpful, but the rest is thin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says 'Get up next nitro' and includes the endpoint path, which identifies the resource. However, it doesn't explain what 'up next nitro' means, what the returned items represent, or how it differs from the sibling list_sync_progress_up_next. The verb 'Get' is clear, but the resource is opaque and the sibling differentiation is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention list_sync_progress_up_next or any other sibling, nor does it state the intended use case (e.g., retrieving a user's up-next queue with filtering). The parameter list implies filtering and sorting, but no explicit when-to-use guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_sync_progress_watchedBRead-onlyIdempotent
Get watched progress.
GET /sync/progress/watched
Args:
extended: Extended information to include in the response.
page: The page number to retrieve
limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
sort_by: The field to sort by
sort_how: The direction to sort in
lifetime_stats: When true, progress.completed and progress.stats reflect lifetime totals across all watches of the show. When false (default), they reflect the current watching session — i.e. counters reset by /shows/:id/progress/watched/reset.
hide_completed: Query parameter.
hide_not_completed: Query parameter.
only_rewatching: When true, restrict the list to shows the user is currently rewatching (i.e. those with an active progress.reset_at).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| sort_by | No | ||
| extended | No | ||
| sort_how | No | ||
| hide_completed | No | ||
| lifetime_stats | No | ||
| only_rewatching | No | ||
| hide_not_completed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent. The description adds useful behavioral details beyond annotations: pagination clamping behavior, the lifetime_stats reset semantics, and the only_rewatching filter tied to progress.reset_at. This gives the agent meaningful expectations about how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized as a clear endpoint plus argument list, and the front-loading is good. However, several lines add little value ('hide_completed: Query parameter.') and sort_by/sort_how are nearly tautological, so not every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and all parameters listed, the description is mostly usable for invocation. Still, it omits usage context versus sibling progress/collection tools, does not specify acceptable values for extended/sort_by/sort_how, and leaves the exact meaning of 'watched progress' implicit. This is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must carry the parameter burden. It covers all 9 parameters and gives substantive context for limit, lifetime_stats, and only_rewatching. However, hide_completed and hide_not_completed are dismissed as 'Query parameter,' and extended/sort_by are described generically, leaving some semantic gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Get watched progress' with the endpoint GET /sync/progress/watched. This clearly identifies what the tool does, though it does little to differentiate it from related progress tools like list_sync_progress_up_next or get_shows_by_id_progress_watched.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention that this is for listing the current user's watched progress, nor does it distinguish itself from siblings such as list_sync_progress_up_next or get_sync_watched_by_type. The agent must infer usage from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_teamBRead-onlyIdempotent
Get team members.
GET /team/
Args: extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description is consistent with these annotations and adds nothing contradictory, but it also adds no extra behavioral context such as pagination, rate limits, or what the response includes. Minimal value beyond annotations; a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, the HTTP endpoint is included, and the parameter note is compact. No wasted words; efficient structure. Slightly more room for behavioral detail, but nothing here is fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter, read-only tool with an existing output schema and annotations covering safety, the definition is mostly complete. The main gap is the vague 'extended' semantics; otherwise an agent can call it correctly. A solid 3.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains 'extended' as 'Extended information to include in the response,' which adds meaning beyond the bare schema field, but stays vague—it does not enumerate what kind of extended info is available. Adequate but thin compensation for a single undocumented parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get team members') and provides the HTTP endpoint (GET /team/). No sibling tool targets 'team' members, so it is naturally distinguished from the extensive list of user/list/media siblings merely by its stated subject.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, no context about whose team is returned, and no note about authentication/prerequisites. With ~200 siblings, there is no exclusions or routing signal to help an agent decide correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_users_blockedBRead-onlyIdempotent
Get blocked users.
GET /users/blocked
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds no extra behavioral context beyond stating the resource; it does not mention pagination, response format, or that it operates on the authenticated user's block list. With annotations covering read-only, the description adds minimal value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short lines. There is no fluff, and it front-loads the core purpose ('Get blocked users') before the endpoint. This is appropriately terse for a zero-parameter list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description omits a crucial contextual detail: whose blocked users are listed. Without stating 'the current authenticated user's blocked users,' an agent may misinterpret the scope. While the output schema exists, the description does not clarify the relationship to sibling block/unblock tools or the lack of a user ID parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters in the schema (100% coverage), so there is nothing for the description to add about parameter meaning. Baseline 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.
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 blocked users.' It identifies the core operation and the HTTP endpoint. However, it does not differentiate from sibling tools like get_users_by_id_followers or get_users_by_id_following, though the name and endpoint make the resource explicit enough for a 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, no examples, and no mention of authentication requirements. The agent is left to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_users_reactions_commentsCRead-onlyIdempotent
Get comment reactions.
GET /users/reactions/comments
Args: extended: Extended information to include in the response. page: The page number to retrieve limit: The number of items per page, can be a number or the value all
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | ||
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is clear. However, the description adds little behavioral context; it does not describe what the response contains, any pagination defaults, or any other side effects. It only restates the endpoint and parameter names.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loads the purpose, and lists parameters in a clean format. It is well-structured with minimal fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple GET with optional params, the description is incomplete because it does not clarify the scope (whose reactions) or provide any usage context. It relies on the name to infer the user's reactions, but the description itself is ambiguous. The presence of an output schema partially compensates for return-value explanation, but the core purpose is under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides basic explanations for all three parameters, which is helpful given the schema has no descriptions. However, the explanations are terse and lack depth; for example, 'extended' is vague, and no details on allowed values or defaults are given beyond 'all' for limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get comment reactions' which is a verb and resource, but it is vague and does not specify the scope (e.g., current user's reactions) or differentiate from siblings like get_comments_by_id_reactions which also retrieves comment reactions for a specific comment. The name is more descriptive than the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It merely states the endpoint and parameters without any context on when it is appropriate, such as retrieving the current user's reactions across comments. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_users_requestsCRead-onlyIdempotent
Get follow requests.
GET /users/requests/
Args: extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and 'Get' confirms a safe read operation. The description adds little behavioral nuance beyond that, such as whether all requests or only pending requests are returned, but output schema and annotations cover much of this burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loaded with the resource, and has no fluff. It is appropriately short for a simple GET tool, though the argument explanation is so terse that it does not add much practical value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite low complexity and strong annotations, the description fails to resolve ambiguity with the sibling list_users_requests_following. The vague 'extended' parameter and absence of any usage context make the definition incomplete for reliable tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'extended' is described only as 'Extended information to include in the response,' which is too vague to be actionable. With 0% schema description coverage and no enums, the agent still has no idea what values are valid or what extended information actually means.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get follow requests' with the endpoint GET /users/requests/. It is clear about what the tool returns, but it does not explicitly differentiate it from the similar sibling list_users_requests_following.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. Siblings like list_users_requests_following and create/delete_users_requests_by_id exist, but the description gives no selection criteria or context about whether this lists incoming, pending, or outgoing requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_users_requests_followingCRead-onlyIdempotent
Get pending following requests.
GET /users/requests/following
Args: extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description does not need to restate read safety. It adds the 'pending' state of the returned data but does not disclose whether authentication is required, whether the requests are incoming or outgoing, or how the extension parameter changes the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded with the main action, followed by a useful endpoint. The Args line adds only generic information and does not earn its place as strongly, but there is no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only tool with an output schema, the description could be minimal, but it leaves important context ambiguous: whose following requests are returned, whether they are pending incoming or outgoing requests, and what 'extended' actually controls. This makes it incomplete for reliable selection among closely related user-request tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. 'extended: Extended information to include in the response' is the only explanation, and it is vague enough to apply to any parameter; it does not define accepted values, formats, or the effect on the response.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses a specific verb and resource: 'Get pending following requests' and the endpoint path. It clearly identifies the action and object, though it does not explicitly distinguish this from sibling tools like list_users_requests or get_users_by_id_following.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to prefer this tool over related tools, no mention of scoping to the current user, and no alternatives or exclusions. The only hint is the word 'pending,' which is too weak to route an agent among the many request/following siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_users_settingsCRead-onlyIdempotent
Retrieve settings.
GET /users/settings
Args: extended: Extended information to include in the response.
| Name | Required | Description | Default |
|---|---|---|---|
| extended | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, and the description adds no behavioral context beyond repeating a GET operation. It does not mention whether extended changes response shape, what default behavior occurs, or any auth/rate-limit considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tightly structured and front-loaded: a one-line purpose, the endpoint, and the parameter. It is concise without padding, though the parameter line could be more informative without hurting conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read operation with a rich output schema and safety annotations, this is minimally viable: the endpoint and parameter are present, and the parameter is optional. However, the missing scope ('current user'), unclear extended values, and lack of sibling differentiation leave gaps an agent would have to resolve elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for the undocumented 'extended' parameter, but it only says 'Extended information to include in the response,' which is nearly tautological. It does not say what values are valid, how the parameter affects the response, or whether it expects a boolean-like flag, list of fields, or other format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb+resource ('Retrieve settings') and adds the explicit endpoint 'GET /users/settings', making the basic operation unambiguous. It does not explicitly say these are the current authenticated user's settings, and it does not contrast with sibling tools like list_users_settings_plex or update_users_settings, so it is not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool versus sibling settings-related tools, no mention of prerequisites or authentication context, and no exclusions. The agent is given only the operation and endpoint, not the conditions that select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_users_settings_plexBRead-onlyIdempotent
Get Plex settings.
GET /users/settings/plex/
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds only the endpoint path (GET /users/settings/plex/), which is not a behavioral trait, and does not disclose any additional behavior such as authentication requirements, what data is returned, or how it relates to Plex connection state. It adds no meaningful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with 'Get Plex settings.' front-loaded and the endpoint path on a second line. There is no fluff, and the structure is readable. However, the endpoint line is somewhat redundant with the tool's name and adds little value, slightly reducing the 'every sentence earns its place' criterion.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple 0-parameter GET with an output schema and safety annotations, the description is minimally sufficient. However, it lacks any guidance on what 'Plex settings' encompasses or how it differs from closely related tools like list_users_settings_plex_servers. An agent could be unsure whether this returns the same data as update_users_settings_plex modifies, so a bit more context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description cannot add parameter-level meaning. Baseline for 0 params is 4, and there is no ambiguity or missing parameter documentation to penalize. The empty input schema is fully covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Get Plex settings.' This is clear and distinct from siblings like list_users_settings_plex_servers (Plex servers) and list_users_settings (general settings), though it does not explicitly mention scope like 'current user's' or differentiate from related Plex endpoints. It is clear but leaves some sibling differentiation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as list_users_settings_plex_servers, update_users_settings_plex, or list_users_settings. There are no conditions, exclusions, or references to sibling tools. The description simply states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_users_settings_plex_serversARead-onlyIdempotent
Get Plex servers.
GET /users/settings/plex/servers
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this tool read-only, idempotent, and non-destructive, which covers the safety profile. The description adds the exact HTTP endpoint but does not disclose additional behavioral details such as whether the result is sorted, paginated, or requires specific authentication. It does not contradict the annotations, so a mid-range score is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a one-line summary plus the exact REST path. No filler or redundancy; every token adds value. The endpoint line is useful because it grounds the operation in a concrete URI.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters, an output schema, and annotations that establish its safe read-only behavior, the description is largely complete. It could briefly note that this returns all Plex servers, but the name and endpoint already convey the plural scope, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parametersainer, so there is no parameter semantics to document. Per the baseline rule for 0-param tools, a score of 4 is appropriate; the description's mention of the resource is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get') and resource ('Plex servers'), which clearly identifies the operation. It does not explicitly contrast itself with the sibling get_users_settings_plex_servers_by_server_id, but the plural 'servers' and the endpoint path disambiguate it as a list-all operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied from the description: call this to retrieve the list of Plex servers. However, there is no explicit guidance about when to use this versus the singular get_users_settings_plex_servers_by_server_id or other Plex-settings endpoints, so an agent must infer the distinction from naming and the endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_users_syncsBRead-onlyIdempotent
Get data syncs.
GET /users/syncs/
Args: page: The page number to retrieve limit: The number of items per page. Defaults and maximums vary by endpoint. When pagination parameters are omitted, a low default limit is applied (often 10). When a limit is provided, it is capped at the endpoint maximum (often 250); higher values are clamped rather than rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds useful pagination behavior, particularly the low default limit and the clamping of values above the endpoint maximum, which is not expressed in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose, followed by a structured Args section. The repeated endpoint in the second line is somewhat redundant but does not add significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list endpoint with optional pagination, the description covers the main call behavior and limit semantics, and an output schema exists so return details are not required. However, it does not clarify what a 'data sync' is, whether this is scoped to the current user, or when to use sibling get_users_syncs_by_type instead.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for parameters. It explains both page and limit, and goes beyond the schema by describing default limits and the clamping behavior for high limit values. It does not specify page start or default page, but otherwise compensates well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action 'Get data syncs' and the HTTP endpoint GET /users/syncs/, making the resource and operation clear. However, it does not distinguish itself from the related sibling get_users_syncs_by_type, which also retrieves syncs but in a more specific way.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives such as get_users_syncs_by_type or get_users_syncs_by_id. The description only explains the basic endpoint and parameters, 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.
list_watchnow_sourcesBRead-onlyIdempotent
Get watch now sources.
GET /watchnow/sources
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior. The description adds only the endpoint path and adds no behavioral context beyond what annotations already provide. There is no contradiction, but also no added transparency value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, which is good. The endpoint line 'GET /watchnow/sources' is mildly redundant with the tool name but does add the explicit HTTP method and route. It is concise with no meaningful filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity, no parameters, rich annotations, and presence of an output schema, the description is largely complete for invoking the tool. The only gap is the missing distinction from the country-specific sibling, which prevents a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema description coverage is 100%, so the baseline of 4 applies. The description does not need to explain parameters because there are none. No additional semantic information is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a verb and resource: 'Get watch now sources.' It is unambiguous about what the tool does. However, it does not differentiate this from the sibling get_watchnow_sources_by_country_code, so an agent must infer that this is the unfiltered or general variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of the country-specific sibling or any conditions that would select one over the other. The description gives no context for routing the agent's choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_younify_connectionsBRead-onlyIdempotent
Get streaming connections.
GET /younify/connections
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive behavior; the description adds only the GET endpoint. It does not disclose authentication needs, pagination, or any side-effect context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short lines: a human-readable summary and the exact HTTP endpoint. No filler, no repetition of schema information, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only list with an output schema and strong annotations, the definition is nearly complete. It only lacks a brief note on whether authentication or prior connection setup is required to use this endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description correctly omits parameter details because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('Get') and the resource ('streaming connections'), and the embedded HTTP route 'GET /younify/connections' removes ambiguity. It does not explicitly contrast with siblings like create_younify_connect, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool versus alternatives such as list_users_syncs, list_users_settings_plex, or create_younify_connect. The description is purely definitional and provides no context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_authenticationAIdempotent
Begin signing in to Trakt.
Returns a short code and a URL. Open the URL, enter the code, then call finish_authentication. Only needed for the endpoints that act on an account: sync, users/me, checkin, scrobble, recommendations and lists you own.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds behavioral context beyond annotations: it returns a short code and URL, and requires user interaction (opening the URL and entering the code). It also enumerates the endpoints that require authentication, which is useful context. Since annotations cover the safety profile, the description's added flow details earn a 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two sentences plus a list of endpoints. The purpose is front-loaded ('Begin signing in to Trakt'), followed by return value and instructions, then the scope of usage. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has zero parameters and an output schema (which presumably describes the return values), the description covers all necessary context: what it does, what it returns, what to do next, and when it's needed. It also lists the affected endpoints, leaving no ambiguity about when to invoke it. The description is complete for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is trivially 100%. The description doesn't need to explain any parameters, and it doesn't. The baseline for no parameters is 4, which is appropriate here since the description adds no parameter-specific semantics (and none are needed).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Begin signing in to Trakt.' It specifies the action (begin signing in) and the resource (Trakt), and differentiates from siblings like finish_authentication and clear_authentication by describing the initial step of the authentication flow. It also explains what it returns (a short code and a URL) and what to do with them, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool: 'Only needed for the endpoints that act on an account: sync, users/me, checkin, scrobble, recommendations and lists you own.' It also instructs the next step ('then call finish_authentication'), giving a clear usage context. It implies that for non-account endpoints, this tool is not required, which is sufficient differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_comments_by_idAIdempotent
Update a comment or reply.
PUT /comments/{id}/
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so the safety profile is covered. The description adds little behavioral detail beyond the fact that this is an update, and it does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, then endpoint, then arguments. Every line serves a purpose, with no filler or redundant explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema, annotations, and the pointer to GET/schema cover many details. However, the body object is open-ended and no update-specific fields or partial-update semantics are described, so the agent must discover critical information through additional calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, but the description adds meaning by clarifying that id accepts a slug and that body is an opaque request payload whose fields should be discovered via the matching GET or /schema endpoint. It provides a discovery strategy rather than concrete field definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action and target: 'Update a comment or reply' with the PUT endpoint. It is specific enough to distinguish the operation from many siblings, though it does not explicitly contrast it with create/delete comment tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (to update an existing comment/reply) and gives preparatory guidance to read the matching GET or /schema endpoint first. It does not explicitly discuss when not to use it or mention alternatives like create_comments_by_id_replies or delete_comments_by_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_notes_by_idAIdempotent
Update a note.
PUT /notes/{id}
Args: id: The id/slug of the resource. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, and the description's 'Update' aligns with these. It adds the PUT method and points to GET/schema for discovering fields, which is useful, but it does not disclose side effects, partial vs full replacement, or other behavioral nuances. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line action, the endpoint, and concise argument definitions. The payload-discovery instruction earns its place and nothing extraneous is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering the safety profile and an output schema present, the description provides enough context for a correct call: it identifies the resource, explains the id parameter, and tells the agent how to determine expected body fields. The main gap is lack of detail on partial versus full update semantics, but openWorldHint and the schema pointer mitigate this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only types and additionalProperties=true, so schema coverage is effectively 0%. The description compensates by explaining that id is the id/slug of the resource and that body is the request payload whose fields should be discovered via the GET or /schema endpoint. This is meaningful added semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Update a note' and gives the HTTP method/path, clearly identifying the operation and resource. The verb distinguishes it from sibling tools like create_notes and delete_notes_by_id, though it is somewhat close to 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.
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 such as create_notes or delete_notes_by_id. The only instruction, to read the matching GET or /schema endpoint first, is about constructing the request body, not about choosing this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sync_favoritesBIdempotent
Update favorites.
PUT /sync/favorites
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Consistent with annotations: readOnlyHint=false matches the update verb, idempotentHint=true aligns with PUT semantics, and destructiveHint=false is compatible. The description adds the HTTP method and the field-discovery precondition, which is useful context beyond annotations. It does not, however, disclose whether the call replaces or merges existing favorites, a meaningful mutation behavior left unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with purpose and endpoint before parameter guidance. There is no fluff, and the discovery instruction earns its place. Minor redundancy between 'Update favorites' and 'PUT /sync/favorites' (verb vs. method) but negligible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for an open-world body given the output schema covers return values and annotations cover the safety profile. The description supplies the key missing piece (how to learn the body fields). Real gaps remain: no indication of replace-vs-merge semantics for a collection-level PUT, and no differentiation from the item-level sibling update_sync_favorites_by_list_item_id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single body param is an open-world object with additionalProperties=true. The description compensates meaningfully by labeling body as the request payload and directing the agent to the matching GET or /schema endpoint to discover expected fields. For an open-world body this is the right and sufficient guidance, though it names no concrete example fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Update favorites') plus the concrete endpoint (PUT /sync/favorites), so an agent knows this mutates the favorites resource. However, it does not distinguish itself from nearby siblings such as update_sync_favorites_by_list_item_id (item-level update) or create_sync_favorites, leaving the exact scope inferred from the name 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains only a prerequisite hint ('Read the matching GET or the /schema endpoint first'), which tells the agent what to inspect before calling, but gives no when-to-use vs. when-not-to-use guidance. It never explains when to choose this over update_sync_favorites_by_list_item_id, create_sync_favorites, or create_sync_favorites_reorder.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sync_favorites_by_list_item_idBIdempotent
Update a favorite item.
PUT /sync/favorites/{list_item_id}
Args: list_item_id: List item ID. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| list_item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds the behavioral hint that the body fields are resource-defined and must be discovered via GET or /schema, which is not covered by annotations. However, it does not disclose additional traits such as whether updates are partial or full replacements, authentication requirements, or side effects. It is consistent with annotations and adds minor context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and well-structured: a one-line purpose, the endpoint, and a short Args list. Each part contributes meaning, and the critical instruction about discovering the schema is included without fluff. It is slightly longer than the minimal two-sentence ideal but remains efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the open body object and existing annotations, the description provides the essential guidance to discover the body schema. It is adequate for calling the tool if the agent follows the GET/schema step. However, it does not clarify when to choose this tool over update_sync_favorites, whether updates are partial or full, or what a favorite item represents in this domain. Output schema exists, so return values need not be described, but selection context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It explains that body is a 'Request payload' and directs the agent to read GET or /schema to learn expected fields, which is valuable for an open object with additionalProperties. For list_item_id, it only restates 'List item ID', adding little beyond the parameter name. Overall, it provides partial compensation but does not deeply define either parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update a favorite item' and provides the endpoint PUT /sync/favorites/{list_item_id}. This identifies a specific verb, resource, and target (a favorite item identified by list_item_id). It does not explicitly contrast with the sibling update_sync_favorites, but the by_list_item_id suffix and endpoint make the scope clear enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers a procedural prerequisite: 'Read the matching GET or the /schema endpoint first to see the fields this resource expects.' This tells the agent how to discover the body schema before calling. However, it does not provide explicit guidance on when to use this tool versus alternatives like update_sync_favorites or update_sync_watchlist_by_list_item_id. Usage is implied rather than explicitly compared with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sync_watchlistCIdempotent
Update watchlist.
PUT /sync/watchlist
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and destructiveHint=false, but the description adds little beyond that. It does mention reading the matching GET or /schema endpoint first, which gives some context about the required workflow, but lacks details on potential side effects, response behavior, or required authentication. With annotations covering some aspects, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences and an endpoint line. It front-loads the core purpose, then provides a necessary instruction. No redundant content, but the brevity leaves gaps in semantics and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a nested object body parameter and no output schema (though context signals show output schema exists, it is not provided here), the description does not explain the request structure beyond pointing to external resources. It lacks guidance on the full lifecycle (e.g., prerequisites, response handling) and does not compensate for the generic schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has only one 'body' parameter with 'additionalProperties: true' and no further structure, so schema coverage is 0%. The description says 'Request payload' and tells to read the GET or /schema endpoint to see fields, which is a pointer but not a substitute for documenting the parameter structure. Given high coverage need, the description insufficiently compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Update') and resource ('watchlist'), and identifies the endpoint ('PUT /sync/watchlist'), which clearly indicates the target. However, it doesn't explicitly distinguish from sibling tools like 'update_sync_watchlist_by_list_item_id' or 'create_sync_watchlist', but the resource and verb are specific enough for a clear purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not state when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It instructs to read the GET or /schema endpoint first, which implies a workflow but does not provide explicit guidance on when to use this specific update operation relative to others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_sync_watchlist_by_list_item_idCIdempotent
Update a watchlist item.
PUT /sync/watchlist/{list_item_id}
Args: list_item_id: List item ID. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| list_item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read, non-destructive, idempotent mutation, so the description adds little beyond the word 'Update' and the HTTP method PUT. It does not disclose side effects, authorization needs, or what happens when the item does not exist, which would be useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the core purpose, and structured with a clear endpoint line and labeled args. Every sentence contributes useful information, though the title is absent and the opening sentence is slightly redundant with the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter update with an open-world request body and an output schema, the description provides enough to get started by pointing to GET and /schema for field discovery. It lacks guidance on tool selection and does not explain whether the body is a full replacement or partial update, but the annotations and output schema cover some of the missing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description partially compensates by naming both parameters and directing the agent to the matching GET or /schema endpoint to discover expected body fields. However, 'List item ID' and 'Request payload' add limited semantic value over the schema's own names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Update) and the resource (a watchlist item), and the endpoint path with {list_item_id} makes the targeted scope evident. It is distinguishable from related siblings like update_sync_favorites_by_list_item_id and update_sync_watchlist by naming the watchlist item specifically, though it does not explicitly call out those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance about when to choose this tool over sibling tools such as update_sync_favorites_by_list_item_id or update_sync_watchlist. It does advise reading the matching GET or /schema endpoint first, but that is request-preparation guidance, not tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_users_avatarAIdempotent
Update avatar.
PUT /users/avatar
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a non-read-only, non-destructive, idempotent operation, so the description does not need to restate that. It adds the behavioral hint that the body fields must be discovered via a GET or schema endpoint, but it does not disclose authentication requirements, side effects, or response behavior beyond what annotations and the output schema cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the purpose appears in the first two words, followed by the HTTP method/path and a single useful parameter note. There is no repetitive or filler content; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the body schema is intentionally open (additionalProperties: true, openWorldHint: true) and an output schema exists, the description adequately points the agent to the correct discovery mechanism before calling. The main shortfall is the vague 'matching GET' reference, which relies on the agent inferring the correct GET endpoint from the URL path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides no property details for the body beyond additionalProperties: true, so the description must compensate. The line 'Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects' gives the body real meaning: it is the resource representation whose fields are defined externally. It could be stronger by naming the exact matching GET endpoint, but it provides actionable guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ('Update avatar') and cites the HTTP endpoint (PUT /users/avatar), so an agent knows what action is being performed. It does not explicitly differentiate from similar-looking sibling tools such as update_users_set_cover, but 'avatar' is a distinct enough resource to avoid major ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical usage context: read the matching GET or /schema endpoint first to learn the expected fields. However, it does not say when to prefer this tool over alternatives or describe exclusions, leaving some inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_users_by_id_lists_by_list_idBIdempotent
Update personal list.
PUT /users/{id}/lists/{list_id}/
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnly=false and idempotent=true, and the description does not contradict them. It adds the pointer to read the matching GET or /schema endpoint to discover expected fields, which is useful, but it does not disclose details such as whether the update replaces the list or only changes provided fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, readable, and front-loaded with the action and resource. The 'list_id: Path parameter' line is low-value, but overall every other part earns its place and there is no unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple enough that the endpoint, argument list, and body discovery instruction are mostly adequate, especially with output schema and annotations present. The main gaps are the unexplained list_id, a lack of alternatives/scope exclusions, and open questions about update semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description partially compensates: 'id' is explained as a user slug with 'me' support, and 'body' is given a discovery instruction. However, 'list_id' is only described as 'Path parameter,' which adds no meaning beyond the schema, and the body's actual fields are left to an external endpoint.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update personal list' names a specific action (update) and a specific resource (personal list), and the PUT endpoint makes the resource unambiguous. It doesn't explicitly distinguish updating list metadata from updating its items or a smart list, but the endpoint path and resource name carry that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to choose this tool over alternative update paths or when not to use it. Sibling tools like update_users_by_id_lists_by_list_id_items_by_list_item_id and update_users_by_id_smart_lists_by_list_id are not mentioned, so the agent must infer scope from names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_users_by_id_lists_by_list_id_items_by_list_item_idAIdempotent
Update a list item.
PUT /users/{id}/lists/{list_id}/items/{list_item_id}
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. list_item_id: List item ID. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| list_id | Yes | ||
| list_item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds useful context that the body is open-ended and that expected fields must be discovered via GET or /schema, but it does not disclose side effects, permissions, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sections deliver the purpose, HTTP method/path, and parameter semantics with no fluff. Every sentence earns its place, and the body-discovery note is valuable given the open-world schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an update operation with an output schema present, the description covers all parameters, the special 'me' value, and how to discover body fields. It omits auth or error behavior, but annotations already cover the core write/idempotent/non-destructive profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description's arg list carries the burden. It explains that id accepts a slug or 'me', identifies path parameters, and clarifies that body is a payload whose fields are resource-specific, with details intentionally deferred to GET/schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States 'Update a list item' with a specific verb and resource, and the full HTTP path clarifies exactly which user's list item is targeted. The name/path distinguishes it from sibling update_users_by_id_lists_by_list_id (list-level update) and from create/delete list-item tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, such as the sibling list-level update or item create/delete tools. The only directional advice is to read the matching GET or /schema endpoint before supplying the body, which addresses 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.
update_users_by_id_smart_lists_by_list_idBIdempotent
Update smart list.
PUT /users/{id}/smart-lists/{list_id}/
Args: id: The slug that identifies the user, or "me" for the authenticated user. list_id: Path parameter. body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| body | Yes | ||
| list_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is a write operation (readOnlyHint=false), idempotent, and non-destructive. The description adds no behavioral context beyond 'Update', such as side effects, permission requirements, or what happens on success, so it contributes little beyond the structured metadata. There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the one-line purpose followed by the endpoint and a brief parameter breakdown. Every line contributes useful information, though a sentence about usage or alternatives would improve completeness without bloating it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the three parameters, output schema availability, and annotations, the description is minimally sufficient for constructing a request and points to external schema resources for body fields. It lacks explicit behavioral/usage context and does not distinguish from sibling update endpoints, leaving some gaps for an agent deciding when and how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the schema only provides type/title for each parameter. The description compensates by explaining that 'id' is a user slug or 'me', that 'list_id' is a path parameter, and that 'body' is the request payload whose fields should be discovered via GET or /schema. This adds meaningful semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action 'Update smart list' and provides the full PUT endpoint, clearly identifying the resource as a user's smart list identified by id and list_id. It does not explicitly differentiate itself from sibling update tools beyond the resource type, but the resource and verb are specific enough to understand what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to update an existing smart list and advises reading the matching GET or /schema endpoint to discover expected fields. It does not explicitly state when to use this tool versus alternatives or provide exclusion conditions, so usage guidance is mostly implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_users_set_coverBIdempotent
Update cover image.
PUT /users/set_cover
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that the operation is non-read-only, idempotent, non-destructive, and open-world; the description adds no extra behavioral context beyond that. It does not disclose whether the existing cover is replaced, what permissions are needed, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally compact: a one-line purpose, the endpoint, and a short Args entry. The key information is front-loaded and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The pointer to the matching GET or /schema endpoint is essential for an open-world opaque body and is present. However, the description does not identify which sibling GET tool matches, and it omits prerequisites, auth requirements, and the effect on the existing cover, making it adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single body parameter is an opaque object with additionalProperties true and 0% schema coverage. The description compensates by labeling it as the 'Request payload' and directing the agent to the matching GET or /schema endpoint to discover expected fields, which is appropriate for an open-world body.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line 'Update cover image' states a concrete action and resource, and the PUT endpoint is given explicitly. It is distinguishable from siblings like update_users_avatar by naming 'cover image', though it does not clarify whose cover 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its use case by stating the action, and it gives a workflow hint to read the matching GET or /schema endpoint first. However, it does not state when to prefer this tool over other update tools or provide any exclusion/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_users_settingsBIdempotent
Update settings.
PUT /users/settings
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already reveal this is a mutating, idempotent, open-world operation, and the description is consistent with those. It adds a small behavioral clue: the body fields are resource-defined and must be discovered via GET/schema. No contradiction, but no deeper disclosure of auth or effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, front-loaded lines: action, endpoint, and the one critical instruction. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema and annotations cover response shape and safety, and the description provides a discovery strategy for the open-world body. However, it omits whether this applies to the authenticated user's own settings, and it fails to point to the specific GET sibling (list_users_settings) or to contrast with update_users_settings_plex, leaving some ambiguity in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the only parameter is a generic object with additionalProperties:true, so the description carries the burden. It does more than restate the schema: it identifies body as the request payload and instructs the agent to fetch the expected fields from the GET or /schema endpoint, giving a concrete strategy for constructing a valid call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the operation ('Update settings') and the resource path (PUT /users/settings), so an agent can tell this is about modifying user settings. It does not list which settings or scope them to the authenticated user, and it does not differentiate from sibling update_* tools, but the endpoint provides enough basic clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over alternatives. The only directive is to read the 'matching GET' or /schema endpoint first, but it does not name list_users_settings or any alternative, and it gives no exclusions or conditions. With many sibling update_* tools, an agent is left to guess.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_users_settings_plexBIdempotent
Update Plex settings.
PUT /users/settings/plex/
Args: body: Request payload. Read the matching GET or the /schema endpoint first to see the fields this resource expects.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey that this is not read-only, is idempotent, is non-destructive, and is open-world. The description adds essentially no behavioral context beyond 'Update', which simply mirrors readOnlyHint=false. It does not explain whether the request replaces or merges settings, what prerequisites exist, or what side effects may occur. No annotation contradiction is present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the action and endpoint, and contains no filler. The single Args note earns its place by pointing the agent to the schema source before constructing the body.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is workable for an open-world update with an output schema and one free-form body parameter, especially because it directs the agent to schema discovery. However, it leaves gaps: it does not clarify whether this is a full replacement or partial update, what 'Plex settings' encompasses, or how this tool relates to Plex connect/sync siblings. These gaps make it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines body as an object with additionalProperties true and has 0% field coverage. The description compensates by labeling body as the request payload and explicitly telling the agent to discover expected fields via the matching GET or /schema endpoint, which is valuable for an open-ended body. It still does not enumerate actual fields, but it gives a concrete discovery path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the operation ('Update Plex settings') and gives the exact HTTP method and path, so an agent can tell what resource is being acted on. However, it does not differentiate from sibling Plex-related tools such as create_users_settings_plex_connect or update_users_settings, so it stops short of a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool instead of alternatives like update_users_settings, create_users_settings_plex_connect, or delete_users_settings_plex_connect. The only instruction is to read the matching GET or /schema endpoint first, which is a prerequisite rather than a usage guideline.
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.
338 tool updates
v1.0.0- First observed
clear_authentication - First observed
create_checkin - First observed
create_comments - First observed
create_comments_by_id_like - First observed
create_comments_by_id_reactions_by_reaction_type - First observed
create_comments_by_id_replies - First observed
create_comments_by_id_report - First observed
create_episodes_by_id_report - First observed
create_lists_by_id_like - First observed
create_lists_by_id_report - First observed
create_movies_by_id_refresh - First observed
create_movies_by_id_refresh_justwatch - First observed
create_movies_by_id_report - First observed
create_notes - First observed
create_oauth_device_code - First observed
create_oauth_device_token - First observed
create_oauth_revoke - First observed
create_oauth_token - First observed
create_people_by_id_refresh - First observed
create_people_by_id_report - First observed
create_scrobble_pause - First observed
create_scrobble_start - First observed
create_scrobble_stop - First observed
create_search_recent - First observed
create_search_recent_remove - First observed
create_seasons_by_id_report - First observed
create_shows_by_id_progress_watched_reset - First observed
create_shows_by_id_refresh - First observed
create_shows_by_id_refresh_justwatch - First observed
create_shows_by_id_report - First observed
create_shows_by_id_seasons_by_season_episodes_by_episode_report - First observed
create_shows_by_id_seasons_by_season_report - First observed
create_sync_collection - First observed
create_sync_collection_remove - First observed
create_sync_favorites - First observed
create_sync_favorites_remove - First observed
create_sync_favorites_reorder - First observed
create_sync_history - First observed
create_sync_history_remove - First observed
create_sync_ratings - First observed
create_sync_ratings_remove - First observed
create_sync_watchlist - First observed
create_sync_watchlist_remove - First observed
create_sync_watchlist_reorder - First observed
create_users_by_id_block - First observed
create_users_by_id_follow - First observed
create_users_by_id_lists - First observed
create_users_by_id_lists_by_list_id_items - First observed
create_users_by_id_lists_by_list_id_items_remove - First observed
create_users_by_id_lists_by_list_id_items_reorder - First observed
create_users_by_id_lists_by_list_id_like - First observed
create_users_by_id_lists_by_list_id_reorder - First observed
create_users_by_id_lists_by_list_id_report - First observed
create_users_by_id_lists_reorder - First observed
create_users_by_id_report - First observed
create_users_by_id_smart_lists - First observed
create_users_hidden_by_section - First observed
create_users_hidden_by_section_remove - First observed
create_users_hidden_calendar_remove - First observed
create_users_hidden_progress_watched_remove - First observed
create_users_requests_by_id - First observed
create_users_saved_filters - First observed
create_users_settings_plex_connect - First observed
create_users_settings_plex_sync - First observed
create_younify_connect - First observed
create_younify_users_refresh_by_service_id - First observed
create_younify_users_refresh_by_service_id_by_all_data - First observed
delete_checkin - First observed
delete_comments_by_id - First observed
delete_comments_by_id_like - First observed
delete_comments_by_id_reactions_by_reaction_type - First observed
delete_lists_by_id_like - First observed
delete_notes_by_id - First observed
delete_recommendations_movies_by_id - First observed
delete_recommendations_shows_by_id - First observed
delete_shows_by_id_progress_watched_reset - First observed
delete_sync_playback_by_id - First observed
delete_users_by_id_block - First observed
delete_users_by_id_follow - First observed
delete_users_by_id_lists_by_list_id - First observed
delete_users_by_id_lists_by_list_id_like - First observed
delete_users_by_id_smart_lists_by_list_id - First observed
delete_users_requests_by_id - First observed
delete_users_saved_filters_by_id - First observed
delete_users_settings_plex_connect - First observed
delete_users_syncs_by_id - First observed
delete_younify_users_services_by_service_id - First observed
finish_authentication - First observed
get_authentication_status - First observed
get_calendars_by_target_dvd_by_start_date_by_days - First observed
get_calendars_by_target_media_by_start_date_by_days - First observed
get_calendars_by_target_movies_by_start_date_by_days - First observed
get_calendars_by_target_shows_by_start_date_by_days - First observed
get_calendars_by_target_shows_finales_by_start_date_by_days - First observed
get_calendars_by_target_shows_new_by_start_date_by_days - First observed
get_calendars_by_target_shows_premieres_by_start_date_by_days - First observed
get_calendars_by_target_streaming_by_start_date_by_days - First observed
get_calendars_releases_hot_by_start_date_by_days - First observed
get_calendars_releases_hot_finales_by_start_date_by_days - First observed
get_calendars_releases_hot_new_by_start_date_by_days - First observed
get_calendars_releases_hot_premieres_by_start_date_by_days - First observed
get_certifications_by_type - First observed
get_comments_by_id - First observed
get_comments_by_id_item - First observed
get_comments_by_id_likes - First observed
get_comments_by_id_reactions - First observed
get_comments_by_id_reactions_summary - First observed
get_comments_by_id_replies - First observed
get_comments_recent_by_comment_type_by_type - First observed
get_comments_trending_by_comment_type_by_type - First observed
get_comments_updates_by_comment_type_by_type - First observed
get_countries_by_type - First observed
get_episodes_by_id_watchnow_by_country - First observed
get_genres_by_type - First observed
get_languages_by_type - First observed
get_lists_by_id - First observed
get_lists_by_id_comments_by_sort - First observed
get_lists_by_id_items_by_type_by_sort_by_by_sort_how - First observed
get_lists_by_id_items_movie - First observed
get_lists_by_id_items_movie_show - First observed
get_lists_by_id_items_movie_show_episode_season - First observed
get_lists_by_id_items_show - First observed
get_lists_by_id_likes - First observed
get_lists_popular_by_type - First observed
get_lists_trending_by_type - First observed
get_movies_by_id - First observed
get_movies_by_id_aliases - First observed
get_movies_by_id_comments_by_sort - First observed
get_movies_by_id_lists_by_type_by_sort - First observed
get_movies_by_id_people - First observed
get_movies_by_id_ratings - First observed
get_movies_by_id_related - First observed
get_movies_by_id_releases_by_country - First observed
get_movies_by_id_sentiments - First observed
get_movies_by_id_stats - First observed
get_movies_by_id_studios - First observed
get_movies_by_id_translations - First observed
get_movies_by_id_videos - First observed
get_movies_by_id_watching - First observed
get_movies_by_id_watchnow_by_country - First observed
get_movies_by_id_watchnow_justwatch_links_by_country - First observed
get_movies_collected_by_period - First observed
get_movies_favorited_by_period - First observed
get_movies_played_by_period - First observed
get_movies_streaming_by_period - First observed
get_movies_updates_by_start_date - First observed
get_movies_updates_id_by_start_date - First observed
get_movies_watched_by_period - First observed
get_notes_by_id - First observed
get_notes_by_id_item - First observed
get_people_by_id - First observed
get_people_by_id_lists_by_type_by_sort - First observed
get_people_by_id_movies - First observed
get_people_by_id_shows - First observed
get_people_updates_by_start_date - First observed
get_people_updates_id_by_start_date - First observed
get_search_by_id_type_by_id - First observed
get_search_by_type - First observed
get_search_by_type_exact - First observed
get_search_recent_by_id_global_by_type - First observed
get_shows_by_id - First observed
get_shows_by_id_aliases - First observed
get_shows_by_id_certifications - First observed
get_shows_by_id_comments_by_sort - First observed
get_shows_by_id_last_episode - First observed
get_shows_by_id_lists_by_type_by_sort - First observed
get_shows_by_id_next_episode - First observed
get_shows_by_id_people - First observed
get_shows_by_id_progress_collection - First observed
get_shows_by_id_progress_watched - First observed
get_shows_by_id_ratings - First observed
get_shows_by_id_related - First observed
get_shows_by_id_seasons - First observed
get_shows_by_id_seasons_by_season - First observed
get_shows_by_id_seasons_by_season_comments_by_sort - First observed
get_shows_by_id_seasons_by_season_episodes_by_episode - First observed
get_shows_by_id_seasons_by_season_episodes_by_episode_comments_by_sort - First observed
get_shows_by_id_seasons_by_season_episodes_by_episode_lists_by_type_by_sort - First observed
get_shows_by_id_seasons_by_season_episodes_by_episode_people - First observed
get_shows_by_id_seasons_by_season_episodes_by_episode_ratings - First observed
get_shows_by_id_seasons_by_season_episodes_by_episode_stats - First observed
get_shows_by_id_seasons_by_season_episodes_by_episode_translations - First observed
get_shows_by_id_seasons_by_season_episodes_by_episode_videos - First observed
get_shows_by_id_seasons_by_season_episodes_by_episode_watching - First observed
get_shows_by_id_seasons_by_season_episodes_by_episode_watchnow_by_country - First observed
get_shows_by_id_seasons_by_season_info - First observed
get_shows_by_id_seasons_by_season_lists_by_type_by_sort - First observed
get_shows_by_id_seasons_by_season_people - First observed
get_shows_by_id_seasons_by_season_ratings - First observed
get_shows_by_id_seasons_by_season_stats - First observed
get_shows_by_id_seasons_by_season_translations - First observed
get_shows_by_id_seasons_by_season_videos - First observed
get_shows_by_id_seasons_by_season_watching - First observed
get_shows_by_id_seasons_by_season_watchnow_justwatch_links_by_country - First observed
get_shows_by_id_sentiments - First observed
get_shows_by_id_stats - First observed
get_shows_by_id_studios - First observed
get_shows_by_id_translations - First observed
get_shows_by_id_videos - First observed
get_shows_by_id_watching - First observed
get_shows_by_id_watchnow_by_country - First observed
get_shows_by_id_watchnow_justwatch_links_by_country - First observed
get_shows_collected_by_period - First observed
get_shows_favorited_by_period - First observed
get_shows_played_by_period - First observed
get_shows_streaming_by_period - First observed
get_shows_updates_by_start_date - First observed
get_shows_updates_id_by_start_date - First observed
get_shows_watched_by_period - First observed
get_smart_lists_by_list_id - First observed
get_smart_lists_by_list_id_items - First observed
get_sync_collection_by_type - First observed
get_sync_favorites_by_type_by_sort_by_by_sort_how - First observed
get_sync_history_by_type_by_id - First observed
get_sync_playback_by_type - First observed
get_sync_ratings_by_type_by_rating - First observed
get_sync_watched_by_type - First observed
get_sync_watchlist_by_type_by_sort_by_by_sort_how - First observed
get_users_by_id - First observed
get_users_by_id_by_type_activities - First observed
get_users_by_id_collection_by_type - First observed
get_users_by_id_comments_by_comment_type_by_type - First observed
get_users_by_id_favorites_by_type_by_sort_by_by_sort_how - First observed
get_users_by_id_favorites_comments_by_sort - First observed
get_users_by_id_favorites_media_by_sort - First observed
get_users_by_id_favorites_movies_by_sort - First observed
get_users_by_id_favorites_shows_by_sort - First observed
get_users_by_id_followers - First observed
get_users_by_id_following - First observed
get_users_by_id_friends - First observed
get_users_by_id_history - First observed
get_users_by_id_history_by_type_by_item_id - First observed
get_users_by_id_history_episodes - First observed
get_users_by_id_history_episodes_by_item_id - First observed
get_users_by_id_history_movies - First observed
get_users_by_id_history_movies_by_item_id - First observed
get_users_by_id_history_shows - First observed
get_users_by_id_history_shows_by_item_id - First observed
get_users_by_id_likes_by_type - First observed
get_users_by_id_lists - First observed
get_users_by_id_lists_by_list_id - First observed
get_users_by_id_lists_by_list_id_comments_by_sort - First observed
get_users_by_id_lists_by_list_id_items_by_type_by_sort_by_by_sort_how - First observed
get_users_by_id_lists_by_list_id_items_movie - First observed
get_users_by_id_lists_by_list_id_items_movie_show - First observed
get_users_by_id_lists_by_list_id_items_movie_show_season_episode - First observed
get_users_by_id_lists_by_list_id_items_show - First observed
get_users_by_id_lists_by_list_id_likes - First observed
get_users_by_id_lists_collaborations - First observed
get_users_by_id_mir_by_year_by_month - First observed
get_users_by_id_notes_by_type - First observed
get_users_by_id_ratings - First observed
get_users_by_id_ratings_by_type_by_rating - First observed
get_users_by_id_ratings_episodes - First observed
get_users_by_id_ratings_movies - First observed
get_users_by_id_ratings_shows - First observed
get_users_by_id_smart_lists - First observed
get_users_by_id_smart_lists_by_list_id - First observed
get_users_by_id_stats - First observed
get_users_by_id_watched_by_type - First observed
get_users_by_id_watched_movies - First observed
get_users_by_id_watched_shows - First observed
get_users_by_id_watching - First observed
get_users_by_id_watchlist_by_type_by_sort_by_by_sort_how - First observed
get_users_by_id_watchlist_comments_by_sort - First observed
get_users_by_id_watchlist_movie_show_by_sort - First observed
get_users_by_id_watchlist_movies_by_sort - First observed
get_users_by_id_watchlist_shows_by_sort - First observed
get_users_by_id_yir_by_year - First observed
get_users_hidden_by_section - First observed
get_users_saved_filters_by_section - First observed
get_users_settings_plex_servers_by_server_id - First observed
get_users_syncs_by_id - First observed
get_users_syncs_by_id_paused - First observed
get_users_syncs_by_id_skipped - First observed
get_users_syncs_by_type - First observed
get_watchnow_sources_by_country_code - First observed
list_certifications_movies - First observed
list_certifications_shows - First observed
list_lists_popular - First observed
list_lists_trending - First observed
list_media_anticipated - First observed
list_media_popular - First observed
list_media_trending - First observed
list_movies_anticipated - First observed
list_movies_boxoffice - First observed
list_movies_hot - First observed
list_movies_popular - First observed
list_movies_trending - First observed
list_networks - First observed
list_oauth_authorize - First observed
list_recommendations_movies - First observed
list_recommendations_shows - First observed
list_shows_anticipated - First observed
list_shows_hot - First observed
list_shows_popular - First observed
list_shows_trending - First observed
list_social_recommendations_movies - First observed
list_social_recommendations_shows - First observed
list_sync_collection_episodes - First observed
list_sync_collection_media - First observed
list_sync_collection_minimal_episodes - First observed
list_sync_collection_minimal_movies - First observed
list_sync_collection_minimal_shows - First observed
list_sync_collection_movies - First observed
list_sync_collection_shows - First observed
list_sync_last_activities - First observed
list_sync_playback_movies - First observed
list_sync_progress_up_next - First observed
list_sync_progress_up_next_nitro - First observed
list_sync_progress_watched - First observed
list_team - First observed
list_users_blocked - First observed
list_users_hidden_dropped - First observed
list_users_hidden_progress_watched - First observed
list_users_reactions_comments - First observed
list_users_requests - First observed
list_users_requests_following - First observed
list_users_settings - First observed
list_users_settings_plex - First observed
list_users_settings_plex_servers - First observed
list_users_syncs - First observed
list_watchnow_sources - First observed
list_younify_connections - First observed
start_authentication - First observed
update_comments_by_id - First observed
update_notes_by_id - First observed
update_sync_favorites - First observed
update_sync_favorites_by_list_item_id - First observed
update_sync_watchlist - First observed
update_sync_watchlist_by_list_item_id - First observed
update_users_avatar - First observed
update_users_by_id_lists_by_list_id - First observed
update_users_by_id_lists_by_list_id_items_by_list_item_id - First observed
update_users_by_id_smart_lists_by_list_id - First observed
update_users_set_cover - First observed
update_users_settings - First observed
update_users_settings_plex
TDQS
Scored across 338 tools
With 338 tools, many are near-duplicates differing only by path context (e.g., get_users_by_id_lists_by_list_id_items_movie vs get_lists_by_id_items_movie, list_certifications_movies vs get_certifications_by_type). The minimal descriptions ('Get items on a list') repeat across variants, making it nearly impossible to select the correct tool confidently.
Names follow a path-derived snake_case pattern, but the verb prefix is inconsistent (get_ vs list_ for similar retrieval operations) and many names are malformed or awkward (e.g., get_users_by_id_lists_by_list_id_items_by_type_by_sort_by_by_sort_how contains 'by_by'). The pattern is not predictable enough to aid an agent.
338 tools is an extreme over-exposure of the API surface. Even for a comprehensive API like Trakt, this is far beyond the manageable range and would overwhelm any agent. The scope should be split into multiple focused servers or drastically curated.
The tool set covers a remarkably broad portion of the Trakt API, including CRUD for lists, comments, sync, users, media metadata, search, calendars, and more. Most resources have corresponding get/create/update/delete operations, so obvious dead ends are rare.
Maintenance
Related MCP Connectors
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
Connect Claude to your Intervals.icu watch data for fitness, workout review, and plan writing.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables MCP-compatible AI agents to interact with Trakt.tv, including search, movies, TV shows, and user account features like watchlist and history.-
- AlicenseAqualityAmaintenanceEnables reading and writing your Cronometer food diary from Claude.ai and Claude Code, including food entries, notes, biometrics, exercises, and fasts.407 npmMIT
- AlicenseCqualityAmaintenanceEnables full control of Sonarr from Claude.ai and Claude Code by exposing all 234 v3 API operations as tools for managing media libraries.2348 npmMIT
- AlicenseBqualityAmaintenanceEnables 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.170MIT