Skip to main content
Glama

ytptube MCP Server

A local stdio Model Context Protocol server that lets an MCP client inspect and, when explicitly enabled, manage a self-hosted ytptube HTTP API.

What is this?

This server gives an AI assistant a focused interface to your ytptube instance without putting API credentials in prompts or source control. It can inspect downloads, history, tasks, presets, logs, and service configuration. Changes are disabled by default and are rejected locally before the server makes a network request.

Ask your MCP client things such as:

  • "Is my ytptube instance reachable?"

  • "What is downloading right now?"

  • "Show the latest completed downloads."

  • "Inspect this video URL before I add it."

  • "What scheduled tasks are configured?"

  • "List my download presets."

When you deliberately enable write access, it can also add downloads, manage the queue and history, update tasks and presets, and generate metadata.

Related MCP server: metube-mcp

Features

  • Safe by defaultYTPTUBE_ALLOW_MUTATIONS=false blocks every state-changing request before it reaches ytptube.

  • Focused API access — inspect health, configuration, queue/history, archive entries, scheduled tasks, presets, and recent logs.

  • Validated inputs — download and task URLs must use HTTP or HTTPS; write tools reject raw yt-dlp CLI strings.

  • Credential-aware — authentication is optional, but the username and password must be configured together and sensitive API results are redacted.

  • Small deployment surface — standard input/output transport and a configured ytptube HTTP API; no file browser, shell access, notifications, task/preset deletion, or SSE.

Quick start

Prerequisites

  • Node.js ^20.19.0 or >=22.12.0.

  • A reachable self-hosted ytptube HTTP API.

  • An MCP-compatible client, such as Codex or Claude Desktop.

Install from npm

npm install --global ytptube-mcp

This makes the ytptube-mcp command available on your PATH. Configure the server through your MCP client's environment, as shown below.

Install from source

git clone https://github.com/Snuffy2/ytptube-mcp.git
cd ytptube-mcp
npm ci
cp .env.example .env
# Edit .env and set YTPTUBE_BASE_URL.
npm run build

The build produces dist/index.js. Re-run npm run build after changing the TypeScript source.

At startup, the built server reads the .env file from the checkout that contains dist/index.js, even when an MCP client starts it from another directory. Explicit environment variables take precedence over .env.

Configure your MCP client

For an npm installation, use the ytptube-mcp command and keep values specific to your ytptube instance in its environment configuration:

[mcp_servers.ytptube]
command = "ytptube-mcp"

[mcp_servers.ytptube.env]
YTPTUBE_BASE_URL = "https://media.example.net/ytptube"
YTPTUBE_ALLOW_MUTATIONS = "false"
# Set these two together only when the API requires authentication.
# YTPTUBE_USERNAME = "your-user"
# YTPTUBE_PASSWORD = "your-password"

For a source checkout, run its built server with Node. Replace the placeholder with the absolute path to your checkout:

[mcp_servers.ytptube]
command = "node"
args = ["/absolute/path/to/ytptube-mcp/dist/index.js"]

The checkout's .env file supplies its configuration. Do not commit actual credentials or store them in shared shell history.

Environment variables

Variable

Required

Description

YTPTUBE_BASE_URL

Yes

Root URL of the ytptube API, including any reverse-proxy path prefix.

YTPTUBE_USERNAME and YTPTUBE_PASSWORD

Together, if needed

Optional HTTP API credentials. Providing only one is a configuration error.

YTPTUBE_AUTH_MODE

No

basic (default) sends HTTP Basic authentication; apikey uses the API fallback query parameter.

YTPTUBE_TIMEOUT_MS

No

Request timeout from 100 through 300000 milliseconds; defaults to 30000.

YTPTUBE_ALLOW_MUTATIONS

No

Exact string true enables state-changing tools. Defaults to false.

Safety and write access

The server is read-only by default. With YTPTUBE_ALLOW_MUTATIONS=false, a request such as ytptube_add_downloads returns MUTATIONS_DISABLED locally and sends no request to ytptube. Read-only inspection tools remain available.

Set the value to the exact string true only for a session that must change state, then restart the server/client so it receives the new setting. Return it to false when you are done.

YTPTUBE_ALLOW_MUTATIONS=true

The gate covers download additions/retries, queue controls, history and archive changes, task and preset changes, and metadata generation. Clearing history does not remove media unless the request explicitly asks for it.

Available Tools

Every tool name begins with ytptube_. Tools marked Yes in the Mutating column require YTPTUBE_ALLOW_MUTATIONS=true; otherwise the server rejects the request before contacting ytptube.

Health and Inspection Tools

Tool

Description

Mutating

ytptube_ping

Check whether the configured ytptube API is reachable.

No

ytptube_get_system_configuration

Read system configuration with sensitive fields redacted.

No

ytptube_get_ytdlp_options

Read the active yt-dlp option configuration.

No

ytptube_validate_cli_options

Parse and validate yt-dlp CLI options without starting a download.

No

ytptube_inspect_url

Inspect URL metadata without adding it to the download queue.

No

ytptube_list_logs

Read recent application logs when file logging is enabled.

No

ytptube_live_queue

Read current in-memory queue progress and counts.

No

Queue and History Tools

Tool

Description

Mutating

ytptube_list_history

List a paginated queue or completed-history page.

No

ytptube_get_history_item

Read one queue or history item by ID.

No

ytptube_add_downloads

Add one or more URLs to the download queue.

Yes

ytptube_retry_history_item

Requeue a history item using only its saved download-request fields.

Yes

ytptube_queue_control

Start, pause, force-start, reorder, or cancel queued downloads.

Yes

ytptube_clear_history

Delete selected queue/history records; media deletion is opt-in.

Yes

Archive and Metadata Tools

Tool

Description

Mutating

ytptube_list_archive

List archive entries for a preset, optionally filtered by archive IDs.

No

ytptube_set_history_archive

Archive or unarchive a history item using its configured archive file.

Yes

ytptube_generate_task_metadata

Generate task metadata, NFO, and image sidecar files.

Yes

ytptube_generate_history_nfo

Generate an NFO sidecar for a completed history item.

Yes

Task Tools

Tool

Description

Mutating

ytptube_list_tasks

List scheduled tasks with pagination.

No

ytptube_get_task

Read a scheduled task by numeric ID.

No

ytptube_inspect_task_url

Preview task handling and items for a URL without queuing downloads.

No

ytptube_create_tasks

Create one or more scheduled tasks.

Yes

ytptube_patch_task

Partially update a scheduled task.

Yes

ytptube_update_task

Replace a scheduled task using the API PUT contract.

Yes

Preset Tools

Tool

Description

Mutating

ytptube_list_presets

List download presets with pagination and sorting.

No

ytptube_get_preset

Read a download preset by numeric ID.

No

ytptube_create_preset

Create a download preset.

Yes

ytptube_patch_preset

Partially update a non-default download preset.

Yes

ytptube_update_preset

Replace a non-default download preset using the API PUT contract.

Yes

Important limits

  • Task URL inspection is a preview; ytptube does not offer a scheduled-task "run now" endpoint.

  • Global yt-dlp options are read-only through this server.

  • Write tools do not accept raw yt-dlp CLI strings. The validation tool only parses and validates a string; it never starts a download.

  • Download extras accepts only ignore_conditions, a non-empty array of condition names. Use "*" to ignore all conditions.

  • Per-download authentication and settings belong in presets. Task create and update inputs reject arbitrary configuration and cookies.

Development

Install prek to run the repository's quality hooks or refresh its hooks with the dependency-update script.

# Install dependencies, type-check, test, and build.
./scripts/test.sh

# Run the repository quality hooks.
prek run --all-files

prek is the repository's only linter and formatter. It checks repository files, GitHub Actions syntax, formatting, and TypeScript types.

Troubleshooting

The server says YTPTUBE_BASE_URL is required. Set a valid HTTP or HTTPS base URL in the MCP client environment or .env, including any proxy prefix.

Authentication fails. Confirm the URL is correct for your proxy and that both YTPTUBE_USERNAME and YTPTUBE_PASSWORD are set. Use basic unless your ytptube API/proxy specifically requires the apikey fallback.

A mutation is unavailable. Confirm it is really required, set YTPTUBE_ALLOW_MUTATIONS=true, restart the MCP client/server, perform the operation, and then disable mutations again.

A tool returns redacted values. This is intentional: the server protects credentials and sensitive values when it formats API results and errors.

Contributing

Please open an issue before starting a large change. Keep the stdio transport, the ytptube HTTP API boundary, and the read-only default intact. Run the local test script and prek before opening a pull request.

License

This project is licensed under the MIT License.

Available Tools

28 tools
ytptube_add_downloadsB

Add one or more URLs to the download queue.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYes

TDQS

B3/5.0
Behavior3/5

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

Annotations already convey readOnlyHint=false, idempotentHint=false, and destructiveHint=false, indicating a mutating, non-idempotent action. The description adds no additional behavioral context such as side effects, rate limits, or queue behavior, but it is consistent with the annotations. Score 3.

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

Conciseness5/5

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

The description is a single sentence of nine words, with the key verb and object placed first. It contains no superfluous content or repetition of schema details. Score 5.

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

Completeness2/5

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

Despite the tool's relatively complex input schema (single object vs array, numerous optional fields), the description provides only a surface-level summary and does not address usage scenarios, field meanings, or expected behavior. Given no output schema and no field descriptions, the agent lacks sufficient guidance to correctly construct a valid request for anything beyond a simple URL addition. Score 2.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only says 'one or more URLs,' which offers minimal interpretation of the required 'items' parameter. It omits any explanation of the many optional settings (folder, preset, cookies, template, auto_start, extras) that appear in the schema, leaving significant semantic gaps. Score 2.

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

Purpose4/5

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

The description clearly states a specific action ('Add') and resource ('URLs to the download queue'), giving a direct indication of the tool's core function. However, it does not distinguish from sibling tools like ytptube_create_tasks or ytptube_queue_control, so its uniqueness isn't established. Score 4.

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

Usage Guidelines2/5

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

There is no mention of when to use this tool versus alternatives such as create_tasks or update_task. No exclusions, prerequisites, or context indicating which scenarios call for this tool over others are provided. Score 2.

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

ytptube_clear_historyA
Destructive

Delete queue/history records selected by IDs or a status filter; media deletion is opt-in.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNo
typeYes
statusNo
delete_mediaNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already state destructiveHint=true, but the description adds valuable context by clarifying that media deletion is opt-in and that records can be selected by IDs or a status filter. This goes beyond the annotations by explaining what can be destroyed.

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

Conciseness5/5

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

The description is a single, well-structured sentence with a front-loaded verb ('Delete') and no redundant information. Every word contributes to understanding the tool's function.

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

Completeness3/5

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

The description covers core selection methods and media deletion behavior, but it omits that 'type' is required, the possibility of bulk deletion when using a status filter, and the irreversibility of the delete action. Given this is a destructive tool with no output schema, more warnings and parameter context would improve completeness.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It mentions IDs, status filter, and opt-in media deletion, but it does not explain the required 'type' enum (queue vs done) or the format/available values for 'status'. The description adds some meaning but leaves key parameter semantics unclear.

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

Purpose5/5

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

The description uses the specific verb 'Delete' and identifies the resource as 'queue/history records', with clear selection criteria (IDs or status filter). This distinguishes it from siblings like ytptube_list_history and ytptube_retry_history_item.

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

Usage Guidelines4/5

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

The description clearly implies when to use this tool: when you need to remove queue/history records by IDs or status. It does not explicitly name alternatives or exclusions, but the context is sufficiently clear for a deletion tool.

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

ytptube_create_presetC

Create a download preset.

ParametersJSON Schema
NameRequiredDescriptionDefault
presetYes

TDQS

C2.7/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds no behavioral details beyond the fact that it creates a preset, such as whether it overwrites existing presets, requires authentication, or has side effects. It does not contradict the annotations, but it also does not enhance them.

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

Conciseness4/5

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

The description is a single concise sentence with no fluff, front-loading the core action and resource. However, it is so brief that it sacrifices necessary detail, though that is more of a completeness issue than a conciseness issue.

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

Completeness1/5

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

Given the nested input schema with multiple properties and no output schema, the description is severely inadequate. It does not explain the purpose of presets, how they are used in downloads, or what the effects of creation are. The agent is left without sufficient context to correctly invoke the tool.

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

Parameters1/5

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

The input schema has zero description coverage for the 'preset' object and its properties (name, folder, cookies, template, description). The description 'Create a download preset' provides no parameter-level meaning, leaving the agent with no additional guidance on what fields are expected or how they are used.

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

Purpose5/5

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

The description 'Create a download preset' clearly states the action (create) and the resource (a download preset). It distinguishes itself from sibling tools like list_presets, get_preset, patch_preset, and update_preset by using the specific verb 'create'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as patch_preset or update_preset. It does not mention any prerequisites, scenarios, or exclusions, 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.

ytptube_create_tasksC

Create one or more scheduled tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
tasksYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already indicate readOnlyHint=false, and the description's 'Create' aligns with that. However, the description adds no behavioral context about persistence, validation, side effects, or idempotency, which is significant given no 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.

Conciseness4/5

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

The description is a single concise sentence with no redundant words and effectively front-loads the action. However, its brevity borders on under-specification, though it remains structurally sound for a simple action.

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

Completeness1/5

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

The tool accepts a complex nested object/array with nine fields, no output schema, and minimal annotations. A one-sentence description is grossly inadequate; it does not mention required fields, defaults, or what constitutes a valid scheduled task.

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

Parameters1/5

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

Schema description coverage is 0%, and the description offers no explanation of the nine properties inside the 'tasks' parameter (url, timer, folder, preset, etc.). The phrase 'one or more' hints at the union type but does not clarify field meaning.

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

Purpose4/5

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

The description clearly states the core action ('Create') and resource ('scheduled tasks'), which is a specific verb+resource combination. It distinguishes from read/list tools but not from other creation tools like add_downloads or create_preset.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as add_downloads or generate_task_metadata. The description is purely declarative and offers no contextual triggers or exclusions.

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

ytptube_generate_history_nfoC
Destructive

Generate an NFO sidecar for a completed history item.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
typeNotv
overwriteNo

TDQS

C2.9/5.0
Behavior2/5

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

The description does not add behavioral context beyond the annotations. Annotations indicate destructiveHint=true and readOnlyHint=false, but the description fails to explain what makes it destructive (e.g., overwriting existing NFO files) or any side effects. It adds no new safety information.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that directly states the action and target. There is zero fluff or redundant information, making it extremely concise.

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

Completeness2/5

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

With three parameters, annotations, and no output schema, the description is too sparse to be complete. It does not explain the return behavior, the meaning of 'NFO sidecar,' or how parameters affect the operation, leaving significant gaps for the agent.

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

Parameters1/5

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

Schema description coverage is 0%, yet the description does not mention any parameters (id, type, overwrite). It fails to compensate for the schema's lack of descriptions, leaving the agent without guidance on how to populate these fields.

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

Purpose5/5

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

The description clearly states the tool's function: generating an NFO sidecar for a completed history item. The verb 'generate' is specific, and the resource 'NFO sidecar for a completed history item' distinguishes it from sibling tools like generate_task_metadata or get_history_item.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives. It only mentions 'completed history item,' which implies a prerequisite but does not explicitly state exclusions or provide context for choosing this over other history-related tools.

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

ytptube_generate_task_metadataB

Generate task metadata, NFO, and image sidecar files.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already mark the tool as not read-only and not destructive, so the description is not solely responsible for safety disclosure. The description adds that it generates NFO and image sidecar files, which implies file-writing behavior. However, it does not clarify whether existing files are overwritten, what exactly constitutes 'task metadata,' or whether the task record is mutated, so transparency is only partially improved.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded and free of unnecessary words. Every word contributes to the core message: 'Generate' plus the object types. It is appropriately sized for the tool's simplicity and does not waste tokens.

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

Completeness3/5

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

Given the tool has one parameter, no output schema, and minimal annotations, the description provides a basic understanding of the tool's purpose. However, it lacks details about the expected behavior, return values, side effects, and the meaning of the 'id' parameter. The description is minimally viable but leaves significant gaps for an agent to safely invoke the tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for explaining the 'id' parameter. The description only mentions 'task' context, suggesting that 'id' refers to a task ID, but this is not explicit. No parameter details, format, or examples are given, leaving the agent to guess the exact meaning and role of the sole parameter.

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

Purpose4/5

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

The description uses a specific verb 'Generate' and specifies the resource: 'task metadata, NFO, and image sidecar files.' This clearly indicates the tool produces metadata files for a task, and it is distinct from siblings like ytptube_generate_history_nfo, which focuses on history items. However, it does not explicitly mention the 'id' parameter, which slightly reduces clarity.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as ytptube_generate_history_nfo. The description does not state any prerequisites, exclusions, or scenarios where this tool is preferred. Usage must be inferred entirely from the tool name and the phrase 'task metadata,' leaving the agent without clear decision support.

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

ytptube_get_history_itemB
Read-onlyIdempotent

Read one queue or history item by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description only repeats the read-only nature without adding any behavioral context such as return behavior, error handling, or side effects, providing no additional 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.

Conciseness5/5

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

The description is a single, concise sentence that front-loads the action ('Read') and includes the essential resource and parameter reference. No wasted words, perfectly sized for the tool's simplicity.

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

Completeness3/5

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

The tool is simple with one parameter and strong annotations, but the absence of an output schema and any mention of return value or error conditions leaves ambiguity. Agents may not know whether the tool returns the full item or just a confirmation, limiting completeness.

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

Parameters3/5

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

The description confirms that the 'id' parameter is the ID of a queue or history item, adding minimal semantics beyond the schema's bare type definition. With 0% schema description coverage, this is somewhat helpful but does not fully 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.

Purpose5/5

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

The description uses the specific verb 'Read' and identifies the resource as 'one queue or history item' accessed 'by ID'. This clearly distinguishes it from sibling list/retry tools like ytptube_list_history or ytptube_retry_history_item.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It does not mention selection criteria, prerequisites, or contexts where other tools would be more appropriate, leaving agents to infer usage solely 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.

ytptube_get_presetA
Read-onlyIdempotent

Read a download preset by numeric ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the context that it reads a specific preset but doesn't disclose any additional behaviors such as error handling or return format.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It conveys the essential information efficiently.

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

Completeness3/5

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

The tool is simple (1 parameter), and annotations are rich, but the description doesn't specify the return value or any error behavior. For a getter with no output schema, this leaves some ambiguity about what the agent can expect.

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

Parameters3/5

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

With 0% schema coverage in the description, the phrase 'by numeric ID' directly maps the id parameter to the preset identifier, but it doesn't add much beyond the schema's integer type. It confirms the ID's purpose but lacks further detail like validation or related constraints.

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

Purpose5/5

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

The description clearly states a specific verb ('Read') and resource ('download preset') with the scope ('by numeric ID'). This distinguishes it from sibling preset tools like create_preset, patch_preset, and list_presets.

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

Usage Guidelines3/5

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

The description implies usage when you have a numeric preset ID and need to fetch that preset, but it provides no explicit guidance about when to prefer this over list_presets or other alternatives. There are no exclusions or prerequisites mentioned.

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

ytptube_get_system_configurationA
Read-onlyIdempotent

Read YTPTube system configuration. Sensitive fields are recursively redacted.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds meaningful behavioral context by noting that 'Sensitive fields are recursively redacted,' which is not captured in the annotations.

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

Conciseness5/5

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

The description is two short sentences, front-loaded with the primary action. Every word earns its place, with no redundancy or unnecessary detail.

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

Completeness5/5

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

For a parameterless, read-only tool with no output schema, the description is complete. It covers the core action and the key behavioral nuance (redaction), making it fully sufficient for an agent to select and invoke correctly.

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

Parameters4/5

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

The tool has zero parameters, so there is no parameter information needed in the description. Baseline of 4 is appropriate since nothing is missing.

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

Purpose5/5

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

The description states exactly what the tool does: 'Read YTPTube system configuration.' This is a specific verb (read) and resource (system configuration), clearly distinguishing it from sibling tools like get_ytdlp_options or get_preset.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It only implies usage through the verb 'read' but gives no context, prerequisites, or exclusions.

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

ytptube_get_taskA
Read-onlyIdempotent

Read a scheduled task by numeric ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds no additional behavioral context beyond what annotations provide (e.g., what happens if the ID is not found, response format, or rate limits). 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. Every word earns its place, stating exactly what the tool does.

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

Completeness4/5

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

Despite being terse, the description is sufficient for a simple read operation with rich annotations. The lack of an output schema means return values need not be detailed, and the single parameter is self-explanatory in context. It does not cover error behavior, but that is not essential for basic usage.

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

Parameters3/5

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

With 0% schema description coverage, the description must compensate for the parameter's meaning. Saying 'by numeric ID' clarifies that the 'id' parameter is the task's identifier, which aligns with the tool name. However, it adds little beyond the integer type already in the schema and does not explain bounds or edge cases.

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

Purpose5/5

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

The description 'Read a scheduled task by numeric ID' uses a specific verb ('Read'), identifies the resource ('scheduled task'), and specifies the lookup method ('by numeric ID'). This clearly distinguishes it from sibling getters like get_history_item and list_tasks.

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

Usage Guidelines3/5

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

The description implies usage for retrieving a single task when its numeric ID is known, but it does not explicitly mention alternatives such as ytptube_list_tasks for browsing or ytptube_patch_task for modifications. No when-to-use or when-not-to-use guidance is provided beyond the basic read action.

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

ytptube_get_ytdlp_optionsA
Read-onlyIdempotent

Read the active yt-dlp option configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds the word 'active' to indicate it reads the current effective configuration, but doesn't disclose what the returned data looks like or any edge cases. It provides a minimal amount of additional 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.

Conciseness5/5

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

A single, unambiguous sentence: 'Read the active yt-dlp option configuration.' No wasted words, front-loaded with the action verb, and easy to parse.

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

Completeness4/5

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

For a zero-parameter read-only getter, the description is adequately complete given the safe annotations. It could be improved by mentioning the output format or what 'option configuration' includes, but the simplicity of the tool lowers the burden. No output schema exists, so a brief hint about the return value would add value, but it's not critical.

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

Parameters4/5

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

The tool has zero parameters, so there is nothing to document. The schema fully covers this with an empty properties object. The description doesn't need to add parameter details, and the baseline of 4 fits.

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

Purpose4/5

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

The description clearly states the tool reads the active yt-dlp option configuration. It identifies the specific resource (yt-dlp options) and the action (read), which is sufficient to grasp the basic purpose. It doesn't explicitly distinguish itself from related siblings like get_system_configuration, but the name and description 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.

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as validate_cli_options or get_system_configuration. There is no mention of context, prerequisites, or scenarios where this tool is preferred.

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

ytptube_inspect_task_urlA
Read-onlyIdempotent

Preview the task handler and items for a URL; this only calls /api/tasks/inspect and never queues downloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
presetNo
handlerNo
static_onlyNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by specifying the exact endpoint (/api/tasks/inspect) and the scope (task handler and items). It reinforces the non-mutating behavior without contradicting annotations, though it does not disclose details about response shape or potential errors.

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

Conciseness5/5

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

The description is a single sentence that front-loads the core purpose ('Preview the task handler and items for a URL') and adds a key constraint ('never queues downloads'). Every word earns its place; no fluff or redundancy.

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

Completeness3/5

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

Given the tool has 4 parameters and no output schema, the description provides minimal context: it explains the overall purpose and the no-queueing guarantee but omits parameter semantics and return value details. Annotations fill the safety profile, but the 0% schema coverage means the description fails to fully compensate for the missing parameter documentation.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain any parameters beyond the URL. Preset, handler, and static_only are left completely undocumented, leaving the agent with no guidance on how to use them. The description's mention of 'a URL' only covers the required url parameter.

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

Purpose5/5

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

The description clearly states the tool's function: 'Preview the task handler and items for a URL.' This is a specific verb (preview) and resource (task handler/items). It also differentiates from siblings by noting it calls /api/tasks/inspect and never queues downloads, distinguishing it from tools like add_downloads or create_tasks.

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

Usage Guidelines4/5

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

The description provides clear usage context by stating 'this only calls /api/tasks/inspect and never queues downloads,' implying it is for safe, side-effect-free inspection. This acts as a when-not-to-use guide (not for queueing), but does not explicitly name alternative tools like add_downloads or inspect_url, so it stops short of full 5.

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

ytptube_inspect_urlA
Read-onlyIdempotent

Inspect URL metadata without adding it to the download queue.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
forceNo
presetNo
entriesNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which strongly covers safety. The description adds 'without adding it to the download queue' but this is largely redundant with readOnlyHint. It doesn't disclose additional behaviors like rate limits, return format, or special cases.

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

Conciseness5/5

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

The description is a single clear sentence front-loaded with the key action and constraint. Every word earns its place, and it is not padded with fluff. It is concise without being under-specified for its core purpose.

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

Completeness2/5

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

With four parameters and no output schema, the description is too sparse to be contextually complete. It explains the core action but does not clarify parameter semantics, what metadata is returned, or any caveats about force/preset/entries. While annotations cover safety, the lack of param and output details leaves gaps.

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

Parameters1/5

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

The description provides zero information about the four parameters (url, force, preset, entries). Schema description coverage is 0%, so the description must compensate, and it fails completely. The agent is left to guess the meaning and semantics of force, preset, and entries from names alone.

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

Purpose5/5

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

The description uses a specific verb ('Inspect') and resource ('URL metadata') and clearly distinguishes the tool from siblings like ytptube_add_downloads and ytptube_create_tasks by explicitly stating it does not add to the download queue. This fully clarifies the tool's unique scope.

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

Usage Guidelines4/5

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

The phrase 'without adding it to the download queue' implies when to use this tool: when you want metadata only and no queue mutation. However, it does not explicitly name alternative tools (e.g., ytptube_inspect_task_url) or provide exclusionary guidance, so it's not a full 5.

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

ytptube_list_archiveA
Read-onlyIdempotent

List archive entries for a preset, optionally filtered by archive IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNo
presetYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds the optional filtering behavior by archive IDs, which is useful, but does not disclose other behavioral aspects such as pagination or output format. It does not contradict the annotations.

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with the main action. It contains no redundant words or filler, earning a top score for efficiency.

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

Completeness4/5

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

Given the simplicity of the tool (2 params, no output schema), the description covers the core behavior and parameter roles. However, it lacks details about return values or potential pagination/ordering, which would be helpful for an agent to fully anticipate the response.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It explains that 'ids' is an optional filter for archive IDs and that the operation is scoped to a 'preset'. However, it does not define the expected values or meaning of 'preset' beyond the name, nor does it clarify the format of archive IDs.

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

Purpose5/5

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

The description clearly identifies the action ('List'), the resource ('archive entries'), and the scope ('for a preset'), with an optional filter by 'archive IDs'. This distinguishes it from sibling list tools like list_history or list_tasks, which target different resources.

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

Usage Guidelines3/5

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

The description implies the tool is used to list archive entries for a preset, but provides no explicit guidance on when to use it over alternatives, nor any exclusions. It does not mention when one would choose this over other list tools.

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

ytptube_list_historyC
Read-onlyIdempotent

List a paginated queue or completed-history page.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
typeYes
orderNo
statusNo
per_pageNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, giving the agent a safe read-only baseline. The description adds only 'paginated', which is already evident from the page and per_page parameters, so no additional behavioral context is disclosed.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasteful wording. However, its brevity sacrifices useful information, so it is concise but somewhat under-specified.

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

Completeness2/5

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

Without an output schema, the description does not clarify return values, pagination defaults, or the relationship to sibling tools. The tool has 5 parameters and no param descriptions, so the description leaves significant gaps for an agent to infer behavior.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain parameter meanings beyond implying 'queue' and 'completed-history' for the type field. The other parameters (page, order, status, per_page) are left entirely undocumented, making it hard for an agent to use them correctly.

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

Purpose4/5

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

The description clearly states a list operation for queue or completed-history pages via the 'type' parameter. However, it does not differentiate from sibling list tools like ytptube_live_queue or ytptube_list_archive, which could also list queue-like data.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as ytptube_live_queue or ytptube_get_history_item. The description only states what the tool does, not the context or selection criteria.

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

ytptube_list_logsA
Read-onlyIdempotent

Read recent YTPTube application logs (when file logging is enabled).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds context about 'recent' logs and the condition 'when file logging is enabled', which is useful behavioral information beyond the annotations, but does not cover 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.

Conciseness5/5

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

The description is a single, front-loaded sentence with no superfluous words. Every phrase ('recent', 'when file logging is enabled') contributes meaningful context.

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

Completeness4/5

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

Given the tool's simplicity (2 optional parameters, no output schema) and strong annotations, the description is mostly complete. However, it does not describe the response format or note that the tool might return empty if file logging is disabled, though the condition is mentioned. The parameter semantics gap reduces completeness slightly.

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

Parameters2/5

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

Input schema has 0% description coverage, and the description does not explain the 'limit' and 'offset' parameters. The parameter names are somewhat self-explanatory, but no semantics are provided, leaving the agent to guess.

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

Purpose5/5

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

The description uses the specific verb 'read' and clearly identifies the resource as 'YTPTube application logs', with the scope 'recent'. This clearly distinguishes it from sibling tools, which focus on history, tasks, presets, etc.

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

Usage Guidelines3/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It only implies usage for reading logs, and mentions a condition (file logging enabled), but does not explain when NOT to use it or mention any alternative tools.

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

ytptube_list_presetsB
Read-onlyIdempotent

List download presets with pagination and sorting.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
sortNo
orderNo
per_pageNo
exclude_defaultsNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering the safety profile. The description adds that the tool supports pagination and sorting, which is behaviorally relevant but minimally detailed; it does not disclose defaults, response structure, or how exclude_defaults behaves. This is adequate given annotation coverage but not rich.

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

Conciseness5/5

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

The description is a single short sentence that is front-loaded with the core purpose. Every word contributes, with no filler or redundancy, achieving high efficiency.

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

Completeness2/5

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

Despite having 5 optional parameters and no output schema, the description is minimal. It does not explain the meaning of exclude_defaults, any default pagination/sorting behavior, or what the response contains. The rich annotations mitigate safety concerns but not the lack of parameter and result context, leaving the tool incompletely specified.

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

Parameters2/5

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

With 0% schema description coverage and 5 parameters, the description must compensate. It mentions pagination and sorting (tying to page, per_page, sort, order), but does not explain exclude_defaults or any parameter specifics, leaving the agent to infer from names alone. This is insufficient for a full understanding.

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

Purpose5/5

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

The description clearly identifies the action ('List') and resource ('download presets'), and mentions pagination and sorting. It distinguishes itself from sibling tools like ytptube_get_preset (single retrieval) and other list tools by focusing on presets.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as ytptube_get_preset for retrieving a specific preset or ytptube_list_archive/logs/history/tasks for other resource lists. The tool name and sibling list make this somewhat implicit, but the description does not explicitly state 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.

ytptube_list_tasksA
Read-onlyIdempotent

List scheduled tasks with pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
per_pageNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the agent knows this is a safe read operation. The description adds the pagination behavior, which is useful, but it does not disclose details about ordering, default values, or the exact nature of what 'scheduled tasks' means beyond the name. No contradiction with annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the core action and key feature (pagination) without any redundancy. Every word earns its place.

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

Completeness3/5

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

Given the low complexity (read-only list with two optional params) and strong annotations, the description is adequate but not comprehensive. It lacks explicit mention of what fields are returned, ordering, or any caveats about open world behavior, but these are partially covered by annotations and the simplicity of the tool.

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

Parameters2/5

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

With schema description coverage at 0%, the description must compensate, but it only says 'with pagination'. While the parameter names 'page' and 'per_page' are self-explanatory, the description adds no details about how they work together, defaults, or edge cases. This is minimal compensation for the lack of schema descriptions.

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

Purpose5/5

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

The description 'List scheduled tasks with pagination' uses a specific verb ('List') and a clear resource ('scheduled tasks'), which distinguishes it from sibling tools like list_history, list_archive, and live_queue. The addition of pagination further clarifies the tool's mode of operation.

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

Usage Guidelines3/5

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

The description implies the obvious use case of enumerating scheduled tasks, but it does not explicitly state when to use this tool versus alternatives such as list_history or list_archive. No exclusion criteria or alternative tool names are provided, so the 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.

ytptube_live_queueC
Read-onlyIdempotent

Read current in-memory queue progress and counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description is not required to restate safety. It adds the 'in-memory' context which is useful, but does not explain return format or behavior beyond the basic read. This aligns with the baseline for annotation-covered tools.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the action and resource. Every word earns its place, with no fluff or redundancy.

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

Completeness3/5

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

Given the simple read-only nature and rich annotations, the description covers the core purpose. However, the unexplained 'limit' parameter and lack of any output details make it not fully complete. It is adequate but has clear gaps.

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

Parameters1/5

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

The schema has one parameter 'limit' with no description (0% coverage), and the description fails to mention it at all. Since the description must compensate for missing schema documentation and does not, the agent has no insight into what 'limit' controls in relation to 'progress and counts'.

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

Purpose4/5

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

The description clearly identifies the tool as a read operation for 'current in-memory queue progress and counts' with a specific verb and resource. However, it does not explicitly differentiate between sibling tools like queue_control, so it lacks the explicit distinction found in top-tier examples.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as queue_control or list_tasks. It merely states what it does without any contextual 'use this when' or 'instead of' clarifications.

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

ytptube_patch_presetA

Partially update a non-default download preset.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
changesYes

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already indicate a non-read-only, non-destructive operation. The description adds that it is a partial update (only specified fields change) and that default presets cannot be patched, which is useful behavioral context. However, it does not disclose error behavior for invalid IDs or attempting to patch a default preset.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the verb and resource. It contains zero wasted words and is appropriately sized for its purpose.

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

Completeness2/5

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

For a tool with a nested 'changes' object, no output schema, and no mention of failure modes or prerequisites beyond 'non-default', the description is too minimal. It lacks details about what happens on success/failure, whether a default preset causes an error, and how the 'changes' object should be structured, leaving the agent to infer from the schema alone.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It does not explain that 'id' identifies the preset or that 'changes' contains the subset of fields to update. While property names are self-explanatory, the description adds no value beyond the schema, leaving the nested 'changes' object's semantics underspecified.

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

Purpose5/5

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

The description clearly identifies the action (partial update), the resource (download preset), and a key constraint (non-default). This distinguishes it from siblings like update_preset and create_preset, which would be full updates or creation.

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

Usage Guidelines3/5

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

The description implies usage for partial modifications of existing non-default presets but does not explicitly state when to use this tool versus update_preset or create_preset. It mentions the non-default constraint but offers no exclusions or alternative tool references.

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

ytptube_patch_taskB

Partially update a scheduled task.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
changesYes

TDQS

B3/5.0
Behavior3/5

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

The description adds the behavioral context of a partial update, implying only specified fields in 'changes' are modified. This goes beyond the plain 'update' verb and aligns with the readOnlyHint=false annotation. However, no additional behavioral traits (e.g., side effects, validation rules, or whether changes are reversible) 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.

Conciseness5/5

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

The description is a single concise sentence with no redundancy. Every word adds value, and the key differentiator 'partially' is front-loaded before the resource. It is appropriately sized for the tool's simple purpose.

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

Completeness2/5

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

The description is inadequate for a tool with a nested changes object and no output schema. It fails to explain how partial updates behave, whether the 'id' is required, or what constraints apply to the changes. Given the complexity of the input schema, the description should provide more context beyond the bare statement.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not compensate by explaining the 'id' and 'changes' parameters. The 'partial' keyword gives some semantic hint about the 'changes' object, but the description relies entirely on the schema structure. Given the low coverage, this is insufficient.

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

Purpose4/5

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

The description clearly states the tool updates a scheduled task, with 'partially' indicating it is a patch operation rather than a full replacement. This distinguishes it from the sibling tool 'ytptube_update_task' which likely performs a full update. However, it does not explicitly name the alternative, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like 'ytptube_update_task' or 'ytptube_create_tasks'. The description does not mention prerequisites, appropriate contexts, or exclusions, leaving the agent without decision-making support.

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

ytptube_pingA
Read-onlyIdempotent

Check whether the configured YTPTube API is reachable.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive, covering the safety profile. The description adds the behavioral focus on reachability, but does not disclose details such as timeout behavior, exit codes, or whether the tool returns a boolean or throws errors. Given the annotations, this is adequate but not rich.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It immediately conveys the tool's purpose without redundancy.

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

Completeness5/5

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

For a simple health-check tool with no parameters and comprehensive annotations, the description is complete. It tells the agent exactly what the tool does. The absence of an output schema is acceptable because the reachability check likely returns a boolean or simple status, which is implied by 'reachable.'

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

Parameters4/5

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

The tool has zero parameters, and the schema coverage is 100% (empty schema). Per calibration baseline, zero params earn a 4. The description does not need to elaborate on parameters since none exist.

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

Purpose5/5

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

The description clearly states the tool's purpose: checking whether the configured YTPTube API is reachable. The verb 'check' and resource 'configured YTPTube API' are specific and unambiguous, distinguishing it from sibling tools like list, get, and update operations.

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

Usage Guidelines4/5

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

The description implies a clear use case: verifying connectivity to the YTPTube API before or alongside other operations. It does not explicitly mention alternatives, but no sibling tool directly overlaps with this health-check function, so the context is sufficient.

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

ytptube_queue_controlB
Destructive

Start, pause, force-start, reorder, or cancel queued downloads.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYes
actionYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true, and the description only restates action names that appear in the input schema. It does not disclose behavioral details beyond the annotations, such as the side effects of cancellation, force-start semantics, or whether reordering is permanent.

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

Conciseness5/5

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

The description is a single, action-packed sentence that front-loads all key behaviors. Every word earns its place, achieving maximum conciseness without unnecessary filler.

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

Completeness2/5

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

Given the tool's mutating nature and lack of output schema, the description is too sparse. It does not explain return behavior, side effects, prerequisites, or how the ids map to queue entries. This is inadequate for an agent to safely use the tool correctly without additional lookup.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain parameter meaning. While the action enum values are self-explanatory, the 'ids' parameter is ambiguous; the description does not clarify what type of IDs are expected (e.g., task IDs, queue item IDs). No additional context is provided for the actions beyond the enum names.

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

Purpose5/5

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

The description clearly lists the specific actions (start, pause, force-start, reorder, cancel) and identifies the target resource as 'queued downloads'. It distinguishes itself from sibling tools by focusing on queue manipulation rather than listing or adding downloads.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives. The description implies use for controlling queued downloads, but does not mention exclusions or point to related tools like live_queue or add_downloads for other scenarios.

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

ytptube_retry_history_itemB

Read a history item and requeue only saved download-request fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false (may mutate) and destructiveHint=false (not destructive). The description adds the nuance that only saved download-request fields are requeued, which is useful context beyond the annotations. However, it does not disclose side effects such as whether the history item's status changes, whether a new task is created, or rate limits.

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

Conciseness4/5

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

The description is a single sentence that conveys the core action without unnecessary words. It is appropriately sized for the tool's simplicity, though it could be slightly clearer about the 'requeue' concept.

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

Completeness2/5

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

Given there is no output schema, the description should explain what the caller can expect in return (e.g., the new task, a confirmation, or an error). It also omits details about side effects, prerequisites, and error conditions. For a mutation tool with a single parameter, this is a notable gap.

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

Parameters2/5

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

The input schema shows one required parameter 'id' but provides no description. The tool description also does not explain what 'id' refers to, leaving it to inference from the tool name. With schema coverage at 0% and only a type/range definition, the description fails to compensate for the missing parameter meaning.

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

Purpose4/5

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

The description specifies a concrete action: 'Read a history item and requeue only saved download-request fields.' This clearly identifies the verb (read/requeue) and resource (history item), distinguishing it from siblings like get_history_item (which likely only reads) and add_downloads (which adds new downloads). However, the meaning of 'requeue' is not fully elaborated, so it's not completely unambiguous.

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

Usage Guidelines3/5

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

The description implies usage for retrying or resubmitting a history item, but it does not explicitly state when to use this tool versus alternatives like get_history_item or add_downloads. There are no clear 'when' or 'when not' conditions, so the guidance is only implied by 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.

ytptube_set_history_archiveA
Destructive

Archive or unarchive a history item using its configured archive file.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
archivedYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, covering the mutation aspect. The description adds a small detail about the 'configured archive file', which provides some context beyond the annotations. However, it does not elaborate on side effects or failure modes.

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

Conciseness5/5

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

A single, front-loaded sentence with no filler. It clearly states the action and target, making it highly concise and well-structured.

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

Completeness4/5

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

The tool has a simple schema and annotations that cover the destructive/read-only aspects. The description provides core behavior but lacks context about prerequisites (e.g., what happens if the archive file is not configured) and specific consequences. For a simple toggle, it is mostly complete.

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

Parameters3/5

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

The description implies that 'archived' boolean controls archive vs unarchive, giving semantic meaning to the parameter. Schema coverage is 0%, so the description must compensate, but with only two params (id and archived), the meaning is derivable even if not explicitly mapped.

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

Purpose5/5

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

The description uses a specific verb 'Archive or unarchive' and a clear resource 'history item', plus a method 'using its configured archive file'. This distinguishes it from siblings like ytptube_list_archive (which lists archives) and ytptube_get_history_item (which retrieves items).

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

Usage Guidelines3/5

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

The description implies usage by stating the action (archive/unarchive a history item), but it does not explicitly mention when to use it versus alternatives, nor does it note exclusions. There is no reference to other history tools, but the intended context is reasonably clear.

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

ytptube_update_presetB

Replace a non-default download preset using the API PUT contract.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
presetYes

TDQS

B3.4/5.0
Behavior3/5

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

While annotations already indicate this is a mutation (readOnlyHint=false) and non-idempotent, the description adds context that only non-default presets can be replaced and that it follows a PUT contract. However, it does not disclose potential side effects (e.g., impact on existing downloads) or other behavioral details, so the added value is modest.

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

Conciseness4/5

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

The description is a single, front-loaded sentence that is efficient and free of filler. It earns its place by stating the core action and a key constraint, though a bit more detail could be added without losing conciseness.

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

Completeness2/5

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

For a tool with a nested object parameter and no output schema, the description is too sparse. It does not explain the expected response, any side effects, or how the 'preset' object should be structured beyond what the schema fields imply. This leaves important gaps for an agent to safely invoke the tool.

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

Parameters2/5

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

Schema description coverage is 0%, and the description provides no parameter details beyond what the schema already exposes. It does not explain the meaning of 'preset' fields like folder, cookies, or template, leaving the agent to guess based on field names. This falls short of compensating for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the tool replaces a non-default download preset, using the verb 'Replace' and specifying the resource and a key constraint (non-default). It distinguishes itself from siblings like create_preset and patch_preset by implying full PUT replacement semantics.

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

Usage Guidelines3/5

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

Usage context is implied through 'Replace' and 'PUT contract', suggesting full updates rather than partial patches, but it does not explicitly state when to use this tool versus patch_preset or create_preset. No clear exclusions or alternative guidance is provided, so the agent must infer the appropriate usage from the wording.

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

ytptube_update_taskB

Replace a scheduled task using the API PUT contract.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
taskYes

TDQS

B3.1/5.0
Behavior3/5

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

The description adds a thin layer of behavioral context by mentioning 'API PUT contract', implying a full resource replacement (as opposed to a partial patch). However, it does not disclose consequences of omitted fields, whether the response returns the updated task, or any permission requirements. Annotations already indicate it's a write operation (readOnlyHint: false) and not destructive (destructiveHint: false), so the description adds only marginal value beyond the structured data.

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

Conciseness5/5

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

The description is a single, tightly worded sentence that conveys the core action, resource, and HTTP method without any wasteful words. It is perfectly concise for the information it provides, though that information is limited.

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

Completeness2/5

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

The tool deals with a nested object containing 10 properties and has no output schema, yet the description offers no information about return values, default behavior for missing fields, or interaction with other task-related tools. This is a significant gap for an update operation that could have side effects on task configuration.

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

Parameters1/5

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

The description gives no explanation of the parameters 'id' and 'task' or the nested object's properties. With schema description coverage at 0%, the description carries the full burden of explaining parameter semantics, and it fails to do so. The agent must rely entirely on the raw schema, which lacks any property descriptions.

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

Purpose5/5

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

The description clearly states the action ('Replace') and the resource ('a scheduled task'), and it mentions the HTTP PUT contract, which distinguishes it from the sibling tool ytptube_patch_task (which likely performs a partial update). This gives the agent a specific verb and resource with clear differentiation from alternatives.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus alternatives like ytptube_patch_task or ytptube_create_tasks. The 'PUT contract' hint implies full replacement, but the description does not state when to choose this over a PATCH or create operation, nor any prerequisites or exclusions.

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

ytptube_validate_cli_optionsA
Read-onlyIdempotent

Parse and validate yt-dlp CLI options without starting a download.

ParametersJSON Schema
NameRequiredDescriptionDefault
argsYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description's 'without starting a download' largely restates this instead of adding new behavioral context such as error handling, return format, or side-effect details beyond the annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It efficiently conveys the core purpose and a key behavioral constraint, making every word count.

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

Completeness2/5

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

Despite the rich annotations and simple one-parameter schema, the description is incomplete for safe invocation. It does not explain the required args syntax nor describe what the tool returns after validation, and the lack of an output schema means the description should cover that gap but does not.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate, but it only says 'yt-dlp CLI options,' which is a broad indication of content. It does not explain the expected format of the args string (e.g., raw command line, argument list, quoting, or delimiters), leaving significant ambiguity for a single required parameter.

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

Purpose5/5

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

The description uses the specific action verbs 'Parse and validate' and identifies the resource as 'yt-dlp CLI options,' which clearly states what the tool does. The qualifier 'without starting a download' distinguishes it from sibling tools like ytptube_add_downloads and ytptube_get_ytdlp_options.

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

Usage Guidelines3/5

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

The description implies use as a safe pre-flight validation step ('without starting a download') but does not explicitly state when to use it versus alternatives. No sibling tools are referenced, so the usage context is only implied, not clearly delimited.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 28 tool updatesv0.1.2
    • First observedytptube_add_downloads
    • First observedytptube_clear_history
    • First observedytptube_create_preset
    • First observedytptube_create_tasks
    • First observedytptube_generate_history_nfo
    • First observedytptube_generate_task_metadata
    • First observedytptube_get_history_item
    • First observedytptube_get_preset
    • First observedytptube_get_system_configuration
    • First observedytptube_get_task
    • First observedytptube_get_ytdlp_options
    • First observedytptube_inspect_task_url
    • First observedytptube_inspect_url
    • First observedytptube_list_archive
    • First observedytptube_list_history
    • First observedytptube_list_logs
    • First observedytptube_list_presets
    • First observedytptube_list_tasks
    • First observedytptube_live_queue
    • First observedytptube_patch_preset
    • First observedytptube_patch_task
    • First observedytptube_ping
    • First observedytptube_queue_control
    • First observedytptube_retry_history_item
    • First observedytptube_set_history_archive
    • First observedytptube_update_preset
    • First observedytptube_update_task
    • First observedytptube_validate_cli_options

TDQS

B3.2/5.0

Scored across 28 tools

Disambiguation5/5

Every tool has a distinct purpose: reading vs writing, history vs tasks vs presets vs system state. Even the patch/update pairs are clearly differentiated by partial vs full replacement.

Naming Consistency5/5

All tools use the 'ytptube_' prefix followed by a verb_noun pattern (e.g., list_tasks, create_preset, validate_cli_options). Minor deviations like 'live_queue' are still readable and do not break the overall consistency.

Tool Count2/5

With 28 tools, the server exceeds the 25-tool threshold for 'too many'. While each tool covers a distinct API operation, the sheer number makes the surface area heavy and harder to navigate.

Completeness3/5

Core download lifecycle and task/preset management are covered, but obvious gaps exist: there is no delete operation for tasks or presets, and system configuration and yt-dlp options are read-only with no set/update functionality.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers