Skip to main content
Glama

yt-dlp-mcp-server

The production-grade MCP server for yt-dlp — inspect, plan, download, postprocess media URLs for AI agents

npm version License: MIT Node.js Version TypeScript

28 typed tools. YouTube/youtu.be aware. Plan before write. Safe execution. Full yt-dlp option truth.

MCP server pre-release: v0.2.0 is ready for early users, but pin versions in production while the public release process stabilizes.

Quick StartToolsUsage ExamplesSafety ModelDocker


Why This One

Most yt-dlp MCP servers are thin wrappers around 5–10 commands. This is a control plane for agents:

Other servers

This server

Tool count

~10

28 typed tools

Plan before write

No

ytdlp_plan_download explains paths, deps, risks

Full option truth

Hardcoded flags

323 options from upstream yt_dlp.options.create_parser()

Postprocessing

Basic audio extract

Remux, recode, embed assets, split/remove chapters, SponsorBlock

Archive management

None

Inspect archive entries, check exact entries, plan archive-safe downloads

Safe execution

Shell strings

argv arrays, shell: false, managed output roots, redaction

Raw escape hatch

Always on

Expert mode, gated behind env flag

Docker

None

Bundled yt-dlp, ffmpeg, ffprobe, Deno


Related MCP server: MCP YouTube-DLP

Quick Start

Step 1 — Install media tools

OS

Commands

Windows

winget install -e --id OpenJS.NodeJS.LTSwinget install -e --id yt-dlp.yt-dlp

macOS

brew install node yt-dlp ffmpeg

Ubuntu/Debian

Install Node.js >=22.13 from NodeSource or nodejs.orgsudo apt install -y ffmpeg pipx && pipx install yt-dlp

Windows: yt-dlp.yt-dlp installs Deno and yt-dlp.FFmpeg as winget dependencies. Restart PowerShell after install so the new command aliases are on PATH.

Step 2 — Add to your MCP client

{
  "mcpServers": {
    "yt-dlp": {
      "command": "npx",
      "args": ["-y", "yt-dlp-mcp-server@latest"],
      "env": {
        "YTDLP_MCP_OUTPUT_ROOT": "/Users/YOUR_USER/Downloads/yt-dlp-mcp"
      }
    }
  }
}

Windows: use "command": "npx.cmd" instead of "npx".

For Codex Desktop on Windows, use the TOML example in Client Setup instead of this JSON shape.

Step 3 — Verify

Ask your AI assistant: "Check the yt-dlp environment" — it will call ytdlp_check_environment and report which tools are found.


Client Setup

Use the config from Step 2 above.

Config file locations:

  • Claude Desktop macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Claude Desktop Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Cursor: .cursor/mcp.json in a project, or global Cursor MCP settings

  • Windsurf: ~/.codeium/windsurf/mcp_config.json

  • Cline: extension MCP settings

claude mcp add-json yt-dlp '{"type":"stdio","command":"npx","args":["-y","yt-dlp-mcp-server@latest"],"env":{"YTDLP_MCP_OUTPUT_ROOT":"~/Downloads/yt-dlp-mcp"}}'

VS Code requires a servers root and type field:

{
  "servers": {
    "yt-dlp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "yt-dlp-mcp-server@latest"],
      "env": {
        "YTDLP_MCP_OUTPUT_ROOT": "/Users/YOUR_USER/Downloads/yt-dlp-mcp"
      }
    }
  }
}
mcp_servers:
  yt-dlp:
    command: npx
    args:
      - -y
      - yt-dlp-mcp-server@latest
    env:
      YTDLP_MCP_OUTPUT_ROOT: /Users/YOUR_USER/Downloads/yt-dlp-mcp

Codex Desktop usually reads config.toml from:

  • Windows: C:\Users\YOUR_USER\.codex\config.toml

  • macOS/Linux: ~/.codex/config.toml

[mcp_servers.yt-dlp]
enabled = true
command = "npx"
args = ["-y", "yt-dlp-mcp-server@latest"]

[mcp_servers.yt-dlp.env]
YTDLP_MCP_OUTPUT_ROOT = "/Users/YOUR_USER/Downloads/yt-dlp-mcp"

Windows:

[mcp_servers.yt-dlp]
enabled = true
command = "npx.cmd"
args = ["-y", "yt-dlp-mcp-server@latest"]

[mcp_servers.yt-dlp.env]
YTDLP_MCP_OUTPUT_ROOT = 'C:\Users\YOUR_USER\Downloads\yt-dlp-mcp'

Docker

Docker bundles everything — yt-dlp, ffmpeg, ffprobe, Deno. No host install required.

docker build -t yt-dlp-mcp-server:local .
mkdir -p "$HOME/Downloads/yt-dlp-mcp"
{
  "mcpServers": {
    "yt-dlp": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/Users/YOUR_USER/Downloads/yt-dlp-mcp:/downloads",
        "-e", "YTDLP_MCP_OUTPUT_ROOT=/downloads",
        "yt-dlp-mcp-server:local"
      ]
    }
  }
}
{
  "mcpServers": {
    "yt-dlp": {
      "command": "docker.exe",
      "args": [
        "run", "-i", "--rm",
        "-v", "C:\\Users\\YOUR_USER\\Downloads\\yt-dlp-mcp:/downloads",
        "-e", "YTDLP_MCP_OUTPUT_ROOT=/downloads",
        "yt-dlp-mcp-server:local"
      ]
    }
  }
}

Tools

Environment

Tool

What it does

ytdlp_check_environment

Check host readiness for yt-dlp, ffmpeg, ffprobe, PATH, cookies, plugins, and policy

ytdlp_list_extractors

List all supported site extractors from the installed yt-dlp binary

ytdlp_list_impersonation_targets

List browser impersonation targets for extractor troubleshooting

Inspect (read-only, no file writes)

Tool

What it does

ytdlp_search_videos

Search YouTube without downloading and return compact video results

ytdlp_get_metadata

Inspect title, duration, uploader, formats, subtitles, thumbnails, and selected best format

ytdlp_list_formats

List available quality, codec, resolution, bitrate, and format IDs

ytdlp_list_subtitles

List manual subtitle and automatic caption languages and formats

ytdlp_list_thumbnails

List thumbnail URLs, resolutions, and poster options

ytdlp_probe_url

Check URL support and identify the yt-dlp extractor without downloading

Agent routing

When the user asks to download or save a media URL, including youtube.com and youtu.be links, use the download tools rather than trying to download in the model. A request for "best quality" can use the default video format selection, which plans as bestvideo*+bestaudio/best unless the user asks for a different format.

Plan (dry-run, explains before writing)

Tool

What it does

ytdlp_plan_download

Dry-run a download and show output paths, best-quality format, dependencies, risks, and argv

ytdlp_plan_postprocess

Dry-run remux, recode, audio extraction, embedding, chapter, and SponsorBlock workflows

ytdlp_validate_options

Validate typed yt-dlp options and inspect the source-derived option catalog

Download

Tool

What it does

ytdlp_download_video

Download a web video URL, including YouTube and youtu.be links, with best-quality/default format support

ytdlp_download_audio

Download or extract audio-only output such as MP3, M4A, Opus, WAV, best audio, or podcast/music extraction

ytdlp_download_subtitles

Download subtitles or captions, including timestamped transcript files, without downloading the video

ytdlp_download_thumbnail

Download thumbnail, cover image, poster frame, or all thumbnails

ytdlp_download_playlist

Download playlist/channel entries with ranges, archive skipping, and max-download controls

Archive

Tool

What it does

ytdlp_inspect_archive

List saved entries in a yt-dlp download archive file

ytdlp_check_archive

Check if an exact yt-dlp archive entry is already present

ytdlp_update_archive

Plan archive handling and recommend download-archive usage; does not write the archive

Download + postprocess

Tool

What it does

ytdlp_remux

Download a URL and remux to a different container without re-encoding

ytdlp_recode

Download a URL and re-encode video to a target format

ytdlp_extract_audio

Download a URL and extract audio as mp3, m4a, opus, etc.

ytdlp_embed_assets

Download a URL and embed subtitles, thumbnails, metadata, or chapters

ytdlp_split_chapters

Download a URL and split media into one file per chapter

ytdlp_remove_chapters

Download a URL and remove chapters matching regex filters

ytdlp_apply_sponsorblock

Download a URL and remove or mark SponsorBlock segments

Expert

Tool

What it does

ytdlp_execute_expert

Last-resort raw yt-dlp argv escape hatch; requires YTDLP_MCP_ENABLE_EXPERT=true


Usage Examples

Search and discover

"Search for Python tutorials on YouTube"
"Find the top 10 machine learning videos from this week"
"What formats are available for this video?"
"List all subtitle languages for https://youtube.com/watch?v=..."

Inspect before committing

"What metadata does this video have?"
"Check if this URL is supported"
"List all available formats with their codecs and bitrates"
"Plan a 720p download of this video — what will it create?"

Download

"Download this video in 720p: https://youtube.com/watch?v=..."
"Download just the audio as MP3"
"Download English auto-generated subtitles"
"Download this video from 1:30 to 3:00 only"
"Download playlist items 1–10 and skip ones I've already downloaded"

Postprocess

"Extract MP3 audio from this URL"
"Download this URL and remux it to MP4 without re-encoding"
"Download this URL and embed subtitles and thumbnail"
"Download this URL and split it into chapters"
"Download this URL and remove sponsor segments using SponsorBlock"

Archive management

"Check if this exact archive entry is already in my archive"
"Show me everything in my download archive"
"Plan how to archive-protect this playlist download"

Safety Model

Policy

Behavior

Process execution

spawn with argv arrays, shell: false — no shell injection possible

Planning

Download and postprocess tools call the planner before writing any file

Output roots

All output paths constrained under managed roots by default

Archives

Archive paths resolve under output root unless arbitrary paths are enabled

Config files

Cookie/browser/netrc sources require YTDLP_MCP_ALLOW_CONFIG_FILES=true or server-level env

Raw args

Normal tools take typed inputs only; expert mode is gated

Redaction

Cookies, PO tokens, auth headers, signed URL params redacted in previews and errors


Environment Variables

Variable

Default

Purpose

YTDLP_MCP_OUTPUT_ROOT

~/Downloads/yt-dlp-mcp

Managed output directory

YTDLP_MCP_TEMP_ROOT

OS temp + yt-dlp-mcp

Managed temp directory

YTDLP_MCP_YTDLP_PATH

auto-detected

Override yt-dlp binary path

YTDLP_MCP_FFMPEG_PATH

auto-detected

Override ffmpeg binary path

YTDLP_MCP_FFPROBE_PATH

auto-detected

Override ffprobe binary path

YTDLP_MCP_ENABLE_EXPERT

false

Enable ytdlp_execute_expert

YTDLP_MCP_ALLOW_ARBITRARY_OUTPUT_PATHS

false

Allow paths outside managed roots

YTDLP_MCP_ALLOW_CONFIG_FILES

false

Allow cookie/netrc/config file inputs

YTDLP_MCP_COOKIES_FILE

Server-approved cookies file

YTDLP_MCP_COOKIES_FROM_BROWSER

Server-approved browser cookie source

YTDLP_MCP_TIMEOUT_MS

900000 (15 min)

Per-command timeout

YTDLP_MCP_MAX_OUTPUT_BYTES

4194304 (4 MiB)

Max retained stdout/stderr

If doctor reports missing binaries that work in your terminal, set explicit paths:

{
  "YTDLP_MCP_YTDLP_PATH": "/opt/homebrew/bin/yt-dlp",
  "YTDLP_MCP_FFMPEG_PATH": "/opt/homebrew/bin/ffmpeg",
  "YTDLP_MCP_FFPROBE_PATH": "/opt/homebrew/bin/ffprobe"
}

Use /usr/local/bin/... for Intel Homebrew on macOS. Use absolute .exe paths on Windows.


CLI

The yt-dlp-mcp-server binary is useful for humans and quiet when launched by an MCP client.

yt-dlp-mcp-server doctor              # check environment
yt-dlp-mcp-server doctor --json       # machine-readable
yt-dlp-mcp-server print-config --client claude --mode npx
yt-dlp-mcp-server print-config --client codex --mode npx --os windows
yt-dlp-mcp-server print-config --client all --mode docker
yt-dlp-mcp-server print-deps --os macos
yt-dlp-mcp-server print-deps --os windows --manager winget
yt-dlp-mcp-server print-deps --os linux --manager apt
yt-dlp-mcp-server stdio               # start MCP server explicitly

Supported --client values: claude, cursor, windsurf, cline, vscode, warp, codex, all.


Resources and Prompts

The server exposes MCP resources and prompt templates:

Type

Name

Purpose

Resource

ytdlp://capabilities

Tool inventory and capability summary

Resource

ytdlp://option-catalog/groups

Full 323-option catalog by group

Resource

ytdlp://safety-policy

Current safety policy settings

Resource

ytdlp://troubleshooting

Common errors and fixes

Resource

ytdlp://environment

Live environment check snapshot

Prompt

archive_playlist_safely

Guided workflow for archive-protected playlist downloads

Prompt

choose_smallest_acceptable_format

Guided format selection for minimal file size


Development

pnpm install
pnpm run validate:ci     # typecheck + tests + build + MCP contract + output audit
pnpm run validate:local  # above + live smoke tests (requires host media tools)
pnpm run validate:release # above + Docker smoke tests

MCP Inspector for manual UX check:

npx -y @modelcontextprotocol/inspector node dist/index.js

License

MIT — see LICENSE.

Available Tools

28 tools
ytdlp_apply_sponsorblockYtdlp Apply SponsorblockA

Download a media URL and apply SponsorBlock mark or remove options. Use when the user asks to mark, remove, or chapter SponsorBlock categories during download.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate non-read-only, non-idempotent, non-destructive behavior. The description adds that it downloads and applies SponsorBlock, but lacks details on output, side effects, or prerequisites. This is adequate given annotations and output schema existence.

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

Conciseness5/5

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

The description is two sentences, each serving a distinct purpose: stating the action and specifying usage context. No redundant words; it is efficiently structured.

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

Completeness2/5

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

Despite having an output schema and annotations, the description leaves out essential details for a complex tool: how to specify SponsorBlock categories, what the output is (file location, format), and how other parameters affect behavior. It is too brief for a tool with 13 parameters and nested objects.

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%. The description fails to explain any parameter beyond implying 'url' is the media URL. It does not add meaning to the many nested parameters, especially the sponsorblock object which is critical for the tool's function.

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

Purpose5/5

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

The description explicitly states 'Download a media URL and apply SponsorBlock mark or remove options', providing a specific verb and resource. It distinguishes from sibling download tools by focusing on SponsorBlock, and the 'Use when...' line clarifies its unique role.

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 states when to use the tool ('when the user asks to mark, remove, or chapter SponsorBlock categories during download'). It does not explicitly exclude alternative tools, but the context is strong enough to guide selection.

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

ytdlp_check_archiveYtdlp Check ArchiveA
Read-onlyIdempotent

Check whether an exact yt-dlp archive entry string exists in an archive file under the configured filesystem policy. This does not resolve a video URL into its archive ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
entryNo
archivePathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context about operating under a configured filesystem policy and the fact that it does not resolve URLs, which goes beyond what annotations provide. No contradictions.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main purpose, and includes a clarifying negative statement. Every sentence earns its place with no 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?

The description covers the core behavior and limitations, and annotations cover safety. However, the lack of parameter descriptions leaves a gap in completeness. The output schema exists but is not shown, so the agent relies on description for parameter meaning, which is insufficient.

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

Parameters2/5

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

Schema coverage is 0%, meaning no parameter descriptions in the schema. The tool description does not explicitly describe the 'entry' and 'archivePath' parameters. It hints at 'archive entry string' and 'archive file' but does not directly map them to the parameters. This is insufficient for an agent to understand how to use the parameters correctly.

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 an exact yt-dlp archive entry string exists in an archive file. It also explicitly states what it does NOT do (resolve URL to archive ID), which helps distinguish it from related tools like ytdlp_probe_url. The verb 'check' and the resource 'archive entry' are specific.

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

Usage Guidelines4/5

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

The description gives a clear negative guideline (does not resolve URL), implying when not to use it. However, it does not explicitly mention alternative tools or provide positive usage context. It is still clear enough that an agent can infer the tool is for existence checks only.

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

ytdlp_check_environmentYtdlp Check EnvironmentA
Read-onlyIdempotent

Check whether this MCP server can run yt-dlp workflows on the host. Use before the first download or when PATH, ffmpeg, ffprobe, cookies, plugins, or policy settings may be misconfigured.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4.5/5.0
Behavior4/5

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

Description adds context beyond annotations by listing specific components checked (ffmpeg, ffprobe, cookies, plugins, policy). Annotations already indicate safe, idempotent read operation.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, no redundancy. Every sentence provides essential information.

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?

Given zero parameters, presence of output schema, and annotations covering safety, the description is fully adequate. It covers when to use and what is checked.

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?

No parameters, baseline 4. Description adds meaning by specifying what the check encompasses, which is not evident from the schema 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?

Clearly states the tool checks environment readiness for yt-dlp workflows, differentiating it from sibling tools that perform actual downloads or listing 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?

Explicitly recommends use before first download or when misconfiguration is suspected, providing clear usage context. Does not explicitly state when not to use, but sufficient for a check tool.

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

ytdlp_download_audioYtdlp Download AudioA

Download or extract audio from a web media URL to the managed output root.

Use when: The user asks for audio-only output, MP3, M4A, Opus, WAV, best audio, podcast/music extraction, or keeping audio without video. Don't use when: The user needs a video file with visuals, subtitles only, thumbnails only, metadata, or a dry-run plan.

Note: This creates local audio files under the configured output root.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
kindNomedia
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds that it creates local audio files under the configured output root, confirming the write behavior. While it doesn't detail side effects like overwriting or auth requirements, the combination is adequate.

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

Conciseness4/5

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

The description is relatively short (three sentences plus lists) and front-loaded with purpose. However, listing audio formats (MP3, M4A, etc.) is somewhat redundant with the schema's audioFormat enum but still helpful. Minor waste, but overall efficient.

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

Completeness2/5

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

Given the high parameter count, nested objects, and 0% schema coverage, the description fails to provide sufficient context for proper usage. It does not mention required parameters, sample output, or how to configure audio format, leaving significant gaps despite an output schema existing.

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 has 14 parameters with 0% description coverage. The description does not describe any parameters, leaving the agent without guidance on how to use the complex nested schema, including required url and key audio format options.

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 downloads or extracts audio from a web URL, listing specific use cases like MP3, M4A, Opus, WAV, best audio, and podcast/music extraction. This differentiates it from sibling tools like ytdlp_download_video which handle video.

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

Usage Guidelines5/5

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

Explicit 'Use when' and 'Don't use when' sections provide clear guidance on appropriate scenarios, including when to avoid (e.g., need video, subtitles only) and references to other tools without naming them explicitly but sufficiently.

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

ytdlp_download_playlistYtdlp Download PlaylistA

Download playlist, channel, or multi-video URL entries to the managed output root. Use when the user asks to download a playlist/channel, select playlist ranges, skip existing archive entries, cap max downloads, randomize order, or stop on existing files.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
kindNomedia
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate non-readOnly (writes), non-destructive, open-world (side effects). The description adds context: downloads to 'managed output root', mentions archive handling and boundary behaviors like skip/stop. However, it doesn't elaborate on network usage, authentication, or exact file creation behavior beyond the existing 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?

Two sentences, no fluff. First sentence states core purpose, second lists specific use cases. Information is front-loaded and every word contributes. Ideal conciseness.

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

Completeness3/5

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

Given the tool's complexity (14 parameters, nested objects, output schema), the description covers some usage scenarios but lacks full parameter guidance. Output schema exists, so return values are covered, but the description could better map user intents to param structures. It's adequate but not exhaustive.

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 hints at several parameters (playlistItems, downloadArchive, maxDownloads, playlistRandom, breakOnExisting) by mentioning use cases. However, many parameters (auth, kind, format, output, network, etc.) are not addressed. The description adds value for a subset but not a majority.

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 specifies the tool's purpose: downloading playlist, channel, or multi-video entries. It distinguishes from sibling tools like ytdlp_download_video by explicitly targeting multi-item URLs. The verb 'download' and resource 'playlist/channel/multi-video' are precise.

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 explicitly states when to use this tool: when the user asks to download a playlist/channel, select ranges, skip existing, cap max, randomize, or stop on existing. It provides clear context but does not mention when NOT to use it or suggest alternatives like ytdlp_download_video for single videos.

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

ytdlp_download_subtitlesYtdlp Download SubtitlesA

Download subtitles or captions for a media URL without downloading the video. Use when the user asks for subtitle languages, auto captions, subtitle formats, subtitle files, transcripts with timestamps, or subtitle conversion.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
kindNomedia
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=false and destructiveHint=false. The description adds key behavioral context: it does not download the video. However, it does not disclose other traits like file storage location or side effects, but the annotations mitigate the burden.

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

Conciseness5/5

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

Two sentences, no extraneous information. Purpose and usage are front-loaded efficiently.

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 an output schema existing, the description does not reference what the tool returns (e.g., subtitle files, transcripts). It also lacks prerequisites or limitations. For a tool with high complexity and many parameters, the description is too brief to be fully actionable.

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. With 14 parameters including a 'subtitles' object, the description should clarify key options like subLangs and subFormat. The schema alone is insufficient for an agent to know how to configure subtitle downloads.

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 verb 'download' and the resource 'subtitles or captions', and crucially specifies 'without downloading the video'. This distinguishes it from sibling tools like ytdlp_download_video and ytdlp_list_subtitles.

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

Usage Guidelines5/5

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

Provides explicit use scenarios: 'when the user asks for subtitle languages, auto captions, subtitle formats, subtitle files, transcripts with timestamps, or subtitle conversion'. This gives clear guidance on when to invoke this tool over alternatives.

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

ytdlp_download_thumbnailYtdlp Download ThumbnailB

Download thumbnail image files for a media URL without downloading the video. Use when the user asks for a cover image, thumbnail, poster frame, or all thumbnails.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
kindNomedia
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate non-read-only, not destructive. Description adds 'Download' but lacks details on side effects or authentication requirements.

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

Conciseness4/5

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

Two sentences, front-loaded purpose. Efficient but omits needed parameter context.

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

Completeness2/5

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

With 14 parameters and nested objects, the description only addresses high-level purpose, lacking detail on thumbnail-specific options and output.

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 has 0% description coverage and the description provides no parameter guidance, leaving 14 complex parameters unexplained.

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 it downloads thumbnail images without video, listing synonyms (cover image, poster frame) and distinguishing from sibling download tools.

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

Usage Guidelines4/5

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

Explicitly says to use when user asks for thumbnails, but does not mention alternatives like list_thumbnails or exclusions.

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

ytdlp_download_videoYtdlp Download VideoA

Download a web video URL to the managed output root, including YouTube and youtu.be links.

Use when: The user asks to download, save, fetch, or get a local video file from a media URL; asks for best quality/highest quality; asks for a specific format/resolution; asks to trim sections; or asks for overwrite behavior. Don't use when: The user only wants audio, subtitles, thumbnails, metadata, or a dry-run plan.

Note: This is the intended MCP path for permitted user-provided media download requests such as "download in best quality". Default video format selection plans as bestvideo*+bestaudio/best unless the user asks otherwise. This creates local files under the configured output root.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
kindNomedia
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4.2/5.0
Behavior4/5

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

Discloses default format selection ('bestvideo*+bestaudio/best') and that it creates local files under output root. Annotations already indicate non-read-only and non-idempotent, so description adds value without contradiction.

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

Conciseness5/5

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

Description is concise with purpose first, then usage guidelines, and a note on default behavior. No extraneous information.

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

Completeness3/5

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

Given the tool's complexity (14 parameters, many nested), the description covers core usage but lacks details for the extensive parameter options. Output schema exists but description doesn't reference it.

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

Parameters2/5

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

Schema description coverage is 0%, yet description provides only high-level mention of 'trim sections' and 'overwrite behavior' without detailing the numerous nested parameters. Does not compensate sufficiently for the missing 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?

Description clearly states 'Download a web video URL to the managed output root' with specific examples (YouTube, youtu.be). It distinguishes from sibling tools like ytdlp_download_audio by focusing on video.

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

Usage Guidelines5/5

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

Explicitly lists 'Use when' (download, save, best quality, format requests, trim, overwrite) and 'Don't use when' (audio, subtitles, thumbnails, metadata, dry-run). Provides clear alternatives.

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

ytdlp_embed_assetsYtdlp Embed AssetsA

Download a media URL and embed subtitles, thumbnail, metadata, chapters, or infojson into the output file. Use when the user asks for a self-contained media file with embedded assets.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.5/5.0
Behavior2/5

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

The description adds no behavioral context beyond what annotations already provide (readOnlyHint=false, destructiveHint=false). It does not mention side effects, authorization needs, rate limits, or what happens on errors. The annotations carry the burden, and the description fails to add value.

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

Conciseness5/5

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

The description is extremely concise (two sentences) and front-loads the core action. Every sentence is meaningful and there is no fluff.

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

Completeness2/5

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

Given the tool's complexity (13 parameters, nested objects, 0% schema coverage), the description is too brief. It lacks guidance on required vs optional parameters, output format, and error handling. The presence of an output schema (not visible) does not excuse the lack of contextual help in the description.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only lists the types of assets that can be embedded (subtitles, thumbnail, etc.) without explaining the parameters or their usage. The description does not compensate for the missing parameter descriptions, leaving the agent with minimal guidance on how to configure the tool.

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 ('Download a media URL and embed subtitles, thumbnail, metadata, chapters, or infojson into the output file'), specifying the verb and resource. It distinguishes from sibling tools like ytdlp_download_video by the embedding goal, and mentions the exact assets being embedded.

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

Usage Guidelines4/5

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

The description provides a clear usage scenario: 'Use when the user asks for a self-contained media file with embedded assets.' This tells when to use the tool, but does not explicitly state when not to use it or mention alternatives among siblings. It is good but not exhaustive.

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

ytdlp_execute_expertYtdlp Execute ExpertA
Destructive

Execute reviewed raw yt-dlp argv only when typed tools cannot express the request. Disabled unless YTDLP_MCP_ENABLE_EXPERT=true; dry-run is default and unsafe/path-gated flags are blocked by policy.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
argsNo
dryRunNo
outputNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4.4/5.0
Behavior5/5

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

Beyond annotations (destructiveHint=true, readOnlyHint=false), the description discloses that the tool is disabled by default, dry-run is enabled by default, and unsafe/path-gated flags are blocked. This adds critical safety context without contradicting the annotations.

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

Conciseness5/5

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

Two sentences front-load the purpose and key constraints. Every sentence adds value with no redundancy or unnecessary words.

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

Completeness4/5

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

The description covers purpose, usage guidelines, and safety restrictions well. The existence of an output schema excuses the lack of return value explanation. However, given the tool's destructive nature and open-world hint, additional context on error handling or success conditions would be beneficial. Still, overall quite complete for an expert tool with multiple conditions.

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 of the four parameters (url, args, dryRun, output). The parameter names are somewhat self-explanatory, but for a raw execution tool, the description should provide guidance on how to use args, the output object, and constraints. Without this, the agent lacks essential usage details.

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 'Execute reviewed raw yt-dlp argv' as the action, specifies the resource 'yt-dlp argv', and distinguishes from siblings by noting 'only when typed tools cannot express the request.' This provides a specific verb+resource+scope.

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

Usage Guidelines5/5

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

Explicitly states when to use the tool ('only when typed tools cannot express the request'), when not to (if typed tools can handle it), and provides prerequisites ('YTDLP_MCP_ENABLE_EXPERT=true') and default behavior ('dry-run is default') along with restrictions ('unsafe/path-gated flags are blocked by policy').

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

ytdlp_extract_audioYtdlp Extract AudioB

Download a media URL and extract an audio file with ffmpeg/ffprobe. Use when the user asks for MP3, M4A, Opus, WAV, best audio, or audio-only output.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

B3.4/5.0
Behavior3/5

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

The description mentions using ffmpeg/ffprobe for extraction, giving a hint about dependencies, which adds value beyond the annotations that indicate it is mutable and non-idempotent. However, it does not disclose that ffmpeg must be installed or that output files are saved somewhere, leaving gaps in understanding the tool's side effects.

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

Conciseness5/5

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

The description is exceptionally concise with two sentences. The first sentence states the core purpose, and the second provides usage guidance. No unnecessary words or repetition; it earns its place.

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

Completeness2/5

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

Given the tool's complexity (13 parameters, nested objects, output schema), the description is far too sparse. It does not describe return values, how to control format selection, or handle authentication and output options. The usage tip is helpful but insufficient for an agent to use all features correctly.

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

Parameters2/5

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

With 0% schema description coverage and 13 parameters (including nested objects), the description only implies the url parameter. It provides no guidance on how to use other important parameters like format, output, or postprocess, which are critical for controlling the extraction behavior.

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

Purpose4/5

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

The description clearly states the action (download and extract audio) and resource (media URL). It lists specific audio formats (MP3, M4A, Opus, WAV) which helps distinguish from video download or other audio tools, though it could be more explicit about differences from ytdlp_download_audio.

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 explicitly instructs to use when the user asks for common audio formats or audio-only output. It does not mention when not to use it or alternative tools, but for a straightforward extraction tool, the guidance is clear and actionable.

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

ytdlp_get_metadataYtdlp Get MetadataB
Read-onlyIdempotent

Extract structured metadata for a media URL without downloading files using yt-dlp --dump-json. Use to inspect title, duration, uploader, formats, subtitles, thumbnails, and selected best format.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
limitNo
offsetNo
networkNo
flatPlaylistNo
responseFormatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that it does not download files, which aligns with these hints. However, it does not disclose additional behavioral traits like response size limits, authentication requirements (beyond parameter existence), or rate limits. Given the rich annotations, the description adds moderate value.

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

Conciseness4/5

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

The description is concise (two sentences), front-loaded with the core action and method. While not verbose, it could be enhanced by structuring parameters or providing a quick example. However, it remains efficient and avoids redundancy.

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

Completeness2/5

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

Given the tool's complexity (7 parameters, nested objects, output schema), the description is incomplete. It does not cover key aspects like playlist handling (flatPlaylist), pagination (limit/offset), authentication options, or network configurations. The output schema exists, so return values are partially documented elsewhere, but usage context is lacking.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only lists example output fields but does not explain any parameters (url, auth, limit, offset, network, flatPlaylist, responseFormat). For example, responseFormat's enum values (json/markdown) are not mentioned. The description adds little meaning beyond what the schema structually provides.

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 ('extract structured metadata'), the resource ('media URL'), and the method ('using yt-dlp --dump-json'). It lists specific fields (title, duration, uploader, etc.), distinguishing it from sibling tools that focus on individual aspects like formats or subtitles.

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 listing what to inspect ('title, duration, ...'), but it does not explicitly state when to use this tool versus alternatives such as ytdlp_list_formats or ytdlp_list_subtitles. No exclusions or conditions are provided.

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

ytdlp_inspect_archiveYtdlp Inspect ArchiveB
Read-onlyIdempotent

Read a yt-dlp download archive file under the configured filesystem policy and return its saved archive entries. Use when the user asks what is already in an archive.

ParametersJSON Schema
NameRequiredDescriptionDefault
entryNo
archivePathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds 'under the configured filesystem policy,' giving some context about where archives are read from, but no further behavioral details.

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

Conciseness5/5

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

The description is two succinct sentences: one defining the function, one stating when to use. Every word is relevant, no fluff.

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

Completeness3/5

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

For a simple read tool, the description covers purpose and usage context. However, the complete lack of parameter descriptions, despite having an output schema, leaves a significant gap, making it only minimally complete.

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

Parameters1/5

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

Schema coverage is 0%, and the description provides no explanation of the two parameters ('entry' and 'archivePath'). The agent receives no guidance on what 'entry' does or how to use these parameters.

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

Purpose4/5

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

The description clearly states the action (Read) and resource (archive entries). It distinguishes from sibling check/update tools by being a read operation, but does not explicitly contrast with check_archive.

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?

Explicitly says 'Use when the user asks what is already in an archive,' providing clear context. However, it does not mention when not to use or list alternatives like ytdlp_check_archive.

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

ytdlp_list_extractorsYtdlp List ExtractorsA
Read-onlyIdempotent

List all site extractors supported by the installed yt-dlp binary. Use when the user asks whether a website or URL family is supported.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4.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, so the behavioral safety profile is covered. The description adds that it lists extractors from the installed binary, which adds minimal 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?

The description is two sentences with no wasted words. It is front-loaded: the first sentence states the action, the second provides usage context.

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?

Given the simplicity of the tool (no parameters, clear purpose), annotations, and likely output schema, the description is complete. It fully informs the agent when and why to use this tool.

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

Parameters4/5

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

There are zero parameters and schema coverage is 100% (trivially). Per instructions, 0 params gives a baseline of 4, and the description adequately communicates the tool's purpose without needing parameter details.

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 lists all site extractors supported by the yt-dlp binary, with a specific verb and resource. It also distinguishes from sibling tools by specifying the use case of checking website or URL support.

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 explicitly says 'Use when the user asks whether a website or URL family is supported,' providing clear guidance. It does not mention when not to use or alternatives, but the context is straightforward.

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

ytdlp_list_formatsYtdlp List FormatsA
Read-onlyIdempotent

List available audio/video formats for a media URL without downloading files. Use when the user asks what quality, codec, resolution, bitrate, or format IDs are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
limitNo
offsetNo
networkNo
flatPlaylistNo
responseFormatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive. Description reinforces no-download behavior, but adds little new beyond annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose, no unnecessary words. Extremely concise for a simple tool.

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

Completeness2/5

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

Despite good annotations and output schema, the description omits key details like pagination, response format options, and parameter roles, given the tool's 7 parameters and nested objects.

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?

Zero schema description coverage; description only implies 'url' parameter. Other parameters (auth, limit, offset, network, etc.) are left unexplained, burdening the agent.

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 lists available formats without downloading, using a specific verb and resource. It distinguishes from sibling tools that perform downloads.

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 explicit when-to-use guidance (quality, codec, resolution, etc.), but does not mention when not to use or offer alternatives, though siblings make it clear.

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

ytdlp_list_impersonation_targetsYtdlp List Impersonation TargetsA
Read-onlyIdempotent

List browser impersonation targets supported by the installed yt-dlp binary. Use when a download needs browser-like request headers or extractor troubleshooting.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate a safe, read-only, idempotent operation. The description adds valuable behavioral context: it lists targets supported by the installed yt-dlp binary, implying dependency on the local installation. This adds transparency beyond what annotations provide.

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

Conciseness5/5

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

The description consists of two sentences with no wasted words. It front-loads the verb and resource, immediately conveying the tool's purpose. Every sentence adds value.

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

Completeness5/5

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

Given the tool's simplicity (no parameters, comprehensive annotations, output schema exists), the description is complete. It covers purpose and usage context sufficiently for an agent to decide when to invoke it.

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

Parameters4/5

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

The input schema has zero parameters, so the baseline is 4. The description correctly adds no parameter information, which is appropriate since there are no parameters to document.

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 verb 'list' and the resource 'browser impersonation targets'. It uniquely identifies the tool among siblings, as no other sibling lists impersonation targets. The specific verb+resource combination leaves no ambiguity.

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 explicitly states when to use this tool: 'when a download needs browser-like request headers or extractor troubleshooting.' It provides clear context but does not explicitly list when not to use it or name alternatives, though the use case is well-defined.

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

ytdlp_list_subtitlesYtdlp List SubtitlesA
Read-onlyIdempotent

List available manual subtitles and automatic captions for a media URL without downloading files. Use when the user asks which subtitle languages or formats exist.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
limitNo
offsetNo
networkNo
flatPlaylistNo
responseFormatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds that subtitles are listed 'without downloading files', reinforcing the read-only behavior and clarifying what action is performed. 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?

Two sentences, both essential. Front-loaded with the action and resource, followed by usage guidance. No wasted words.

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 output schema exists, the description does not need to detail return values. It covers core purpose and usage context. However, it could briefly mention the presence of pagination parameters (limit/offset) to aid selection, but the tool is simple enough that this is not critical.

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 by explaining parameter purpose or usage. It does not mention any of the 7 parameters (url, auth, limit, offset, network, flatPlaylist, responseFormat). The description focuses only on the tool's overall function, leaving parameter semantics entirely to the schema.

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

Purpose5/5

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

The description clearly states the action (List), resource (manual subtitles and automatic captions), and scope (for a media URL without downloading). It distinguishes from sibling tools like ytdlp_download_subtitles by emphasizing no download. The phrase 'List available manual subtitles and automatic captions' is specific and unambiguous.

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 explicitly provides a use case: 'Use when the user asks which subtitle languages or formats exist.' This gives clear context for when to invoke. However, it does not mention when NOT to use or suggest alternatives to other sibling tools like ytdlp_get_metadata, which might also provide subtitle info.

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

ytdlp_list_thumbnailsYtdlp List ThumbnailsB
Read-onlyIdempotent

List available thumbnails for a media URL without downloading files. Use when the user asks for cover images, thumbnail URLs, resolutions, or poster options.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
limitNo
offsetNo
networkNo
flatPlaylistNo
responseFormatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds 'without downloading files' which is consistent but not additional behavioral context beyond what annotations imply.

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

Conciseness4/5

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

The description is concise with two sentences, front-loaded with the purpose. It is not verbose, though it could be slightly more structured with parameter hints.

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

Completeness2/5

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

Despite having an output schema, the description does not explain return values or behavior. With 7 parameters and no parameter documentation, the description is insufficient for complete understanding, especially for complex nested parameters like auth and network.

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 provides no explanations for any of the 7 parameters (url, auth, limit, offset, network, flatPlaylist, responseFormat). The description does not compensate for the lack of parameter documentation.

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

Purpose5/5

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

The description clearly states the tool lists available thumbnails for a media URL without downloading, and the specific resource 'thumbnails' distinguishes it from sibling tools like ytdlp_download_thumbnail and ytdlp_get_metadata.

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 explicitly says when to use the tool ('when the user asks for cover images, thumbnail URLs, resolutions, or poster options'), but does not mention when not to use it or provide explicit alternatives.

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

ytdlp_plan_downloadYtdlp Plan DownloadA
Read-onlyIdempotent

Dry-run a video, audio, subtitle, thumbnail, or playlist download without writing files. Use to answer what would happen, which format best quality resolves to, required dependencies, output paths, risks, and exact yt-dlp argv.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
kindNomedia
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4/5.0
Behavior5/5

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

Annotations (readOnlyHint, idempotentHint, destructiveHint=false) indicate safe, read-only behavior. The description confirms no files are written and provides additional behavioral details like returning exact argv and risk analysis, adding value beyond annotations.

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

Conciseness4/5

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

The description is a single, front-loaded sentence that efficiently conveys the tool's purpose. It is concise, but a slight restructuring (e.g., bullet points for the list of answers) could improve readability.

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

Completeness2/5

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

Given the tool has 13 parameters and a complex nested schema, the description is too short. It lacks details on parameter usage, required vs. optional, and examples. An AI agent may struggle to construct correct inputs without more guidance.

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 of the 13 top-level parameters or their defaults. Despite the schema being self-documenting to some extent, the description should provide guidance on how to structure common parameters like 'auth' or 'kind'.

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 performs a dry-run of downloads without writing files, and lists specific outcomes (format resolution, dependencies, risks, argv). It distinguishes itself from sibling download tools by emphasizing the dry-run nature.

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 explains when to use the tool ('to answer what would happen, which format best quality resolves to...'). It does not explicitly mention when not to use or compare with other plan tools like ytdlp_plan_postprocess, but the context is clear enough.

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

ytdlp_plan_postprocessYtdlp Plan PostprocessA
Read-onlyIdempotent

Dry-run post-processing without writing files. Use to explain ffmpeg requirements, output policy, risks, and side effects for remux, recode, audio extraction, embedded assets, chapters, or SponsorBlock.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
authNo
formatNo
outputNo
networkNo
inputFileNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint, and the description adds concrete behavioral details: dry-run, no file writing, generates explanation of ffmpeg requirements, output policy, risks, side effects. This adds significant context beyond the annotations without contradiction.

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

Conciseness4/5

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

The description is a single sentence that conveys the core idea efficiently. However, it could be improved by breaking into multiple sentences or bullet points for readability, especially given the tool's complexity.

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

Completeness2/5

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

Despite having an output schema (not shown), the description does not mention the return value or what the plan looks like. With 8 complex parameters and 0% schema documentation, the description fails to guide the agent on how to invoke the tool correctly. It only covers the high-level purpose, leaving a significant completeness gap.

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 provides no information about the 8 parameters (url, auth, format, output, network, inputFile, postprocess, sponsorblock). All parameters are objects with many nested properties, and the description fails to explain what each parameter controls or how to use them. This is a critical gap.

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?

Description clearly states the tool is a dry-run for post-processing without writing files, distinguishing it from sibling tools that actually perform actions like remux or recode. It lists specific post-processing actions (remux, recode, audio extraction, embedded assets, chapters, SponsorBlock) making its scope unambiguous.

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?

Description explicitly says 'Use to explain ffmpeg requirements, output policy, risks, and side effects' which indicates when to use it. While it does not explicitly state when not to use it, the context of sibling tools that perform actual downloads/post-processing provides clear alternatives, and the dry-run nature implicitly excludes actual execution.

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

ytdlp_probe_urlYtdlp Probe UrlA
Read-onlyIdempotent

Probe whether yt-dlp supports a media URL and identify the extractor without downloading files. Use for quick support checks before planning or downloading.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
limitNo
offsetNo
networkNo
flatPlaylistNo
responseFormatNojson

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that it operates 'without downloading files,' reinforcing the read-only nature and aligning with the annotations. No contradiction.

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

Conciseness5/5

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

Two sentences that are front-loaded and free of redundant or unnecessary words. Every sentence adds value.

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?

While the output schema likely covers return values, the description fails to elaborate on key parameters like limit, offset, and responseFormat. Given the tool's complexity (7 params, nested objects) and 0% schema description coverage, the description is inadequate for full understanding.

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 provides no explanation for any of the 7 parameters (url, auth, limit, offset, network, flatPlaylist, responseFormat). Parameters like limit, offset, and auth require context that the description omits.

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 probes whether yt-dlp supports a URL and identifies the extractor without downloading. This distinguishes it from siblings like ytdlp_get_metadata or ytdlp_plan_download.

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 advises using the tool 'for quick support checks before planning or downloading,' providing clear context. However, it does not explicitly mention when not to use it or mention alternatives.

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

ytdlp_recodeYtdlp RecodeA

Download a media URL and re-encode the resulting video with ffmpeg, defaulting to MP4. Use when the user asks for a target video format and accepts re-encoding.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations indicate write, non-idempotent, non-destructive behavior. The description adds the default MP4 output but doesn't discuss overwrite policies, performance implications, or further side effects. Consistent with annotations, but minimal added value.

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

Conciseness5/5

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

The description is two sentences, front-loads the verb and resource, and contains no extraneous information. Every word earns its place.

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

Completeness2/5

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

Given the tool's complexity (many nested parameters, output schema present), the description is too brief. It fails to guide the agent on configuration fields like format selection, output options, or network settings, which are critical for correct invocation.

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

Parameters1/5

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

With 0% schema description coverage and 13 complex nested parameters, the description offers no explanation of any parameter, leaving the agent to infer from the schema alone. This is insufficient for effective use.

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 downloads and re-encodes media, defaulting to MP4, which distinguishes it from siblings like ytdlp_download_video (no re-encoding) and ytdlp_remux (container change only).

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 specifies 'Use when the user asks for a target video format and accepts re-encoding,' giving clear context. However, it lacks explicit mention of when not to use or alternatives like ytdlp_download_video for direct downloads.

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

ytdlp_remove_chaptersYtdlp Remove ChaptersA

Download a media URL and remove chapters matching configured regex filters, defaulting to sponsor-like chapters. Use for chapter removal workflows that need ffmpeg cuts.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.6/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 idempotent, so the description's mention of downloading and modifying is consistent. It adds that ffmpeg is needed, but lacks details on file creation, temporary storage, or potential side effects. With openWorldHint=true, more transparency would be helpful.

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

Conciseness4/5

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

The description is two sentences and front-loaded with the core action. It avoids unnecessary detail, but could be slightly more informative 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?

Given the tool's complexity (13 nested parameters, output schema, download+modify), the description is too brief. It fails to explain how to configure regex filters, what the output is, or the effect of dryRun. The output schema exists but is not referenced. The description leaves significant gaps for an agent to use the tool correctly.

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

Parameters2/5

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

The input schema has 13 complex parameters with 0% schema description coverage. The description only vaguely refers to 'configured regex filters', which maps to the 'postprocess.removeChapters' property. It does not explain required parameters like 'url' or optional ones like auth, format, dryRun, etc. This is insufficient guidance for an agent.

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 verb 'Download' and resource 'media URL', and specifies the action 'remove chapters using regex filters'. It distinguishes from siblings like ytdlp_download_video (download only) and ytdlp_apply_sponsorblock (sponsorblock).

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 says 'Use for chapter removal workflows that need ffmpeg cuts', which implies the tool requires ffmpeg and is for custom regex filtering. It does not explicitly exclude alternatives like sponsorblock, but the sibling context provides differentiation.

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

ytdlp_remuxYtdlp RemuxA

Download a media URL and remux the resulting video container with ffmpeg, defaulting to MP4 without re-encoding. Use when the user asks to convert containers such as MKV/WebM to MP4.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.8/5.0
Behavior3/5

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

Description discloses the core behavior: uses ffmpeg, defaults to MP4, no re-encoding. Annotations indicate it is not read-only and has open-world side effects. However, it does not detail potential side effects like network usage or disk space, and the description adds moderate context beyond annotations.

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

Conciseness5/5

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

The description consists of two sentences with no fluff. It front-loads the action and use case, making it efficient for the agent to parse.

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

Completeness3/5

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

Given the tool's complexity (13 parameters, nested objects, many siblings, output schema exists), the description is adequate but minimal. It covers the basic function and when to use, but does not elaborate on parameter effects or outputs (though output schema helps). It could be more complete with typical usage examples.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only explains the url parameter (media URL) and the output container (MP4). With 13 parameters including many nested objects, the description fails to add meaning to the vast majority of parameters, leaving the agent to infer from property 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 states the tool downloads a media URL and remuxes the container with ffmpeg to MP4 without re-encoding. It specifies the verb 'download and remux', the resource (media URL), and the output format (MP4), distinguishing it from siblings like ytdlp_recode (re-encodes) and ytdlp_download_video (downloads only).

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?

Explicitly says to use when the user asks to convert containers like MKV/WebM to MP4. This provides clear positive guidance, though it does not explicitly mention when not to use or contrast with alternatives like recode or download audio.

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

ytdlp_search_videosYtdlp Search VideosA
Read-onlyIdempotent

Search YouTube through yt-dlp without downloading media and return compact video results. Use when the user asks to find videos before choosing one to inspect or download.

ParametersJSON Schema
NameRequiredDescriptionDefault
authNo
limitNo
queryYes
offsetNo
sourceNoyoutube
networkNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

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, openWorldHint=true, idempotentHint=true, destructiveHint=false. Description adds 'without downloading media' and 'compact results,' aligning with annotations but not adding much beyond.

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

Conciseness5/5

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

Two sentences, no wasted words, purpose placed first. Optimal length for a simple tool.

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

Completeness2/5

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

Despite having an output schema (not shown), the description is too brief given the complex input schema with nested objects. It omits parameter explanations and does not mention what the compact results contain.

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% (no parameter descriptions in schema). The description does not explain any of the 6 parameters, including nested auth and network objects, making it hard for agents to construct valid calls.

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?

Description clearly states the verb (Search), resource (YouTube through yt-dlp), and scope (without downloading media, compact results). It distinguishes from sibling tools that download or get metadata.

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?

Explicitly says 'Use when the user asks to find videos before choosing one to inspect or download,' providing clear context. Could be improved by mentioning alternatives like ytdlp_get_metadata for known videos.

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

ytdlp_split_chaptersYtdlp Split ChaptersA

Download a media URL and split the result into one file per chapter. Use when the user asks to create separate chapter files or segment a chaptered video.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
authNo
dryRunNo
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.5/5.0
Behavior3/5

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

The description discloses the main behavior (download and split) consistent with annotations (readOnlyHint=false). But it does not elaborate on side effects like file storage locations, naming conventions, or network usage. Annotations already provide basic behavioral flags.

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 concise sentences with no redundant information. It front-loads the core action and usage condition, making it efficient for an agent to parse.

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

Completeness2/5

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

Given the high complexity (13 parameters, nested objects, 0% schema coverage), the description is incomplete. It omits any usage examples, parameter semantics, or reference to the output schema, which leaves the agent underinformed for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no explanation for the 13 parameters, many with nested properties. The description fails to compensate for the lack of schema descriptions, offering no guidance on how to use parameters like auth, format, output, etc.

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 downloads a media URL and splits it into one file per chapter, with specific usage condition for creating separate chapter files. It distinguishes itself from sibling tools by the chapter-splitting functionality.

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 explicitly says 'Use when the user asks to create separate chapter files or segment a chaptered video,' providing a clear context. However, it lacks explicit exclusions or alternative tool recommendations.

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

ytdlp_update_archiveYtdlp Update ArchiveA
Read-onlyIdempotent

Return a safe archive-update plan and recommendation without writing the archive. Prefer using downloadArchive on download tools so yt-dlp writes canonical extractor IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
entryNo
archivePathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds that the tool returns a plan without writing, aligning with annotations. It provides extra context about the recommendation nature, though could elaborate on plan content.

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

Conciseness5/5

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

Two sentences: first states core function, second provides usage preference. No extraneous content, front-loaded with key information.

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

Completeness3/5

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

Given readOnly annotations and output schema existence, description adequately conveys non-destructive planning behavior. However, it lacks detail on what the plan contains and how it relates to sibling archive tools (check, inspect), leaving partial ambiguity for an 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 has two parameters (archivePath required, entry optional) with 0% coverage in schema descriptions. Description adds no information about these parameters, leaving the agent with only names and types. With low coverage, description should compensate but fails to do so.

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?

Description explicitly states the tool returns a safe archive-update plan and recommendation without writing. It uses specific verb 'return' and resource 'archive-update plan', clearly distinguishing from download tools that write the archive.

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?

Description advises to prefer downloadArchive on download tools for writing canonical extractor IDs, indicating when not to use this tool. However, it does not differentiate from sibling archive tools like ytdlp_inspect_archive or ytdlp_check_archive, missing explicit usage context for those alternatives.

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

ytdlp_validate_optionsYtdlp Validate OptionsA
Read-onlyIdempotent

Validate typed yt-dlp option input and expose the source-derived option catalog. Use to answer whether a flag or option is supported without executing yt-dlp.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNo
authNo
kindNomedia
formatNo
outputNo
networkNo
downloadNo
extractorNo
selectionNo
subtitlesNo
thumbnailsNo
postprocessNo
sponsorblockNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
errorNo

TDQS

A4.2/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds behavioral context by explaining it validates input and exposes the catalog without executing, which aligns perfectly with annotations and adds value.

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

Conciseness5/5

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

The description consists of two efficient sentences. The first sentence states the core purpose, and the second provides usage guidance. No unnecessary words or repetition.

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

Completeness3/5

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

Given the tool's complexity (13 parameters, nested objects, output schema), the description is relatively sparse. It does not mention that the tool returns validation results or the option catalog, nor does it clarify how validation works. The output schema exists but is not referenced. Some additional context would be helpful.

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

Parameters2/5

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

With schema description coverage at 0%, the description should compensate, but it only vaguely mentions 'typed yt-dlp option input.' It does not explain any of the 13 parameters, their purposes, or how they relate to yt-dlp options, leaving the agent to rely solely on schema 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 states it validates yt-dlp option input and exposes the option catalog. The verb 'validate' and resource 'option input' are specific, and it distinguishes from siblings that actually execute or download by noting 'without executing yt-dlp'.

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 explicitly says 'Use to answer whether a flag or option is supported without executing yt-dlp,' which tells when to use it. It does not explicitly mention alternatives, but the context of sibling tools implies differentiation.

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.2.0
    • First observedytdlp_apply_sponsorblock
    • First observedytdlp_check_archive
    • First observedytdlp_check_environment
    • First observedytdlp_download_audio
    • First observedytdlp_download_playlist
    • First observedytdlp_download_subtitles
    • First observedytdlp_download_thumbnail
    • First observedytdlp_download_video
    • First observedytdlp_embed_assets
    • First observedytdlp_execute_expert
    • First observedytdlp_extract_audio
    • First observedytdlp_get_metadata
    • First observedytdlp_inspect_archive
    • First observedytdlp_list_extractors
    • First observedytdlp_list_formats
    • First observedytdlp_list_impersonation_targets
    • First observedytdlp_list_subtitles
    • First observedytdlp_list_thumbnails
    • First observedytdlp_plan_download
    • First observedytdlp_plan_postprocess
    • First observedytdlp_probe_url
    • First observedytdlp_recode
    • First observedytdlp_remove_chapters
    • First observedytdlp_remux
    • First observedytdlp_search_videos
    • First observedytdlp_split_chapters
    • First observedytdlp_update_archive
    • First observedytdlp_validate_options

TDQS

A4/5.0

Scored across 28 tools

Disambiguation5/5

Each tool targets a distinct operation: environment checks, extractor listing, searching, metadata, format/subtitle/thumbnail listing, planning, downloading different media types, and various post-processing steps. Descriptions are detailed and clearly differentiate overlapping actions like extract_audio vs download_audio.

Naming Consistency5/5

All tools follow a consistent 'ytdlp_' prefix with verb_noun pattern (e.g., list_extractors, download_video, plan_download). No mixing of conventions; every name clearly indicates the action and target.

Tool Count4/5

With 28 tools, the count is on the high side but justified by yt-dlp's extensive capabilities. Each tool fills a specific niche; however, some tools like the multiple post-processing variants could potentially be simplified. Still, the set is well-scoped for comprehensive media management.

Completeness5/5

The surface covers virtually all typical yt-dlp workflows: environment checks, extractor listing, search, metadata, format/subtitle/thumbnail handling, various download types (video, audio, subtitles, thumbnails, playlists), post-processing (remux, recode, embed, chapters, SponsorBlock), archive management, and an expert fallback. No obvious gaps for a media download tool.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers