Skip to main content
Glama
OrellBuehler

Tdarr MCP Server

by OrellBuehler

Tdarr MCP Server

npm npm downloads CI node license: MIT

A Model Context Protocol server that puts your Tdarr transcoding farm in reach of an AI agent — libraries, files, nodes and workers, plugins and flows, job reports and statistics.

Point Claude (or any MCP client) at it and the agent can:

  • See what the farm is doing — nodes, workers, queues, resource usage, and the live status of every library scan.

  • Explain why a transcode failed — read the job report with the actual ffmpeg command line and its error, then the plugin or flow that produced it.

  • Operate the queues — scan libraries, requeue files, cancel or kill a stuck worker, move worker limits, pause a node, run an automation.

  • Work on plugins — search Community and Local classic plugins, read their source, copy one local, edit it, and push the result out to every node.

  • Report on the numbers — space saved by library, node or plugin; success and error rates over time; codec, container and resolution breakdowns.

85 tools, zero install (npx), works with Claude Code, Claude Desktop, Cursor, and any other MCP client.

Example prompts

"Which of my libraries still has the most h264 left, and how much space would transcoding it to hevc save based on what I've already converted?"

"Three files failed to transcode last night. Read their job reports and tell me what they have in common."

"The basement node has been sitting at zero throughput for an hour — figure out whether it's stuck, and kill the worker if it is."

"Explain what my 'Movies' flow actually does, node by node."

"Copy the HEVC plugin to Local, change the CRF to 22, and sync it to the nodes."

"Take a database backup, then requeue the whole TV library for a health check."

Related MCP server: Tdarr MCP

Install

The package is published as @orellbuehler/tdarr-mcp and runs directly with npx — no clone or build needed:

claude mcp add tdarr \
  --env TDARR_URL=http://tdarr.local:8265 \
  --env TDARR_API_KEY=tapi_your_api_key \
  -- npx -y @orellbuehler/tdarr-mcp

See Usage with Claude Code for the equivalent JSON config. For any other MCP client, run the package directly — npx -y @orellbuehler/tdarr-mcp with TDARR_URL set in the environment. Requires Node.js 20+.

Getting an API key

TDARR_API_KEY is only needed if your server runs with authentication enabled (the Tdarr Server auth config/env variable set to true). If it does:

  1. Sign in to the Tdarr web UI.

  2. Go to Tools → API Keys and create a key.

  3. Copy the key — it starts with tapi_ — and treat it like a password.

The key is sent as the x-api-key header on every request. If your server has authentication turned off, leave TDARR_API_KEY unset and everything works.

Configuration

Variable

Required

Description

TDARR_URL

yes*

Base URL of Tdarr Server, e.g. http://tdarr.local:8265.

TDARR_SERVER

no

Alias for TDARR_URL. Used if TDARR_URL is unset.

TDARR_API_KEY

no

API key from Tools → API Keys. Only needed when auth is enabled.

* Either TDARR_URL or TDARR_SERVER must be set. A missing scheme is treated as http://, and trailing slashes are stripped.

Usage with Claude Code

Add the server to ~/.claude/settings.json (or a project .mcp.json):

{
  "mcpServers": {
    "tdarr": {
      "command": "npx",
      "args": ["-y", "@orellbuehler/tdarr-mcp"],
      "env": {
        "TDARR_URL": "http://tdarr.local:8265",
        "TDARR_API_KEY": "tapi_your_api_key"
      }
    }
  }
}

If you built from source instead, use "command": "node" with "args": ["/path/to/tdarr-mcp/dist/index.js"]. Restart Claude Code and the tools are available immediately. Verify with claude mcp list (should show tdarr ✓ connected) or /mcp inside a session.

Tools

85 tools in 11 groups, over the Tdarr API.

System (13)

Tool

Description

get_status

Version, build date, uptime, OS. Also the connectivity/API-key check.

get_server_time

Server clock, for interpreting the epoch timestamps on file records.

get_server_log

Server log, tailed to the last N lines.

get_resource_stats

Live CPU, memory and heap usage of the server.

get_db_statuses

Status of the Tdarr databases.

get_process_info

Process tree of server and nodes — finds stuck ffmpeg children.

get_performance_stats

Internal timings, for diagnosing a slow server.

check_for_update

Check, download and/or apply a Tdarr update. Check-only by default.

get_package_index

Versions the updater can install.

relaunch_server

Relaunch to finish applying a downloaded update.

restart_server

Restart Tdarr Server. Interrupts running workers.

restart_ui

Restart just the web UI process.

run_help_command

Run ffmpeg/HandBrake help to check which encoders actually exist.

Nodes & workers (9)

Tool

Description

list_nodes

Connected nodes: name, paused state, worker limits, running workers.

get_node_log

A node's log, tailed to the last N lines.

get_dispatch_readiness

Whether the server is ready to dispatch tasks.

update_node

Change node settings — pause, rename, reprioritize.

alter_worker_limit

Move a worker-pool limit up or down by one.

cancel_worker_item

Cancel the current item; the worker keeps running.

kill_worker

Kill a wedged worker outright.

restart_node

Restart a node process.

disconnect_node

Force-disconnect a node that is gone but still listed.

Libraries (13)

Tool

Description

list_libraries

Libraries with ID, folder, priority, plugin stack or flow.

get_library

One library's full settings record.

scan_library

Start a scanFindNew, scanFresh or scanFolderWatcher scan.

get_scanner_status

Progress of a running scan.

kill_scanner

Stop a scan mid-run.

remove_library_files

Clear a library's file records. Files on disk are untouched.

toggle_folder_watch

Enable/disable folder watching for one folder.

toggle_schedule

Turn a range of schedule blocks on or off.

update_schedule_block

Toggle a single schedule block.

manage_library_plugin

Add, remove or enable/disable a plugin in a classic stack.

manage_codec_exclusion

Manage the basic transcode video/audio codec include/exclude list.

list_subdirectories

Browse folders as Tdarr Server sees them.

verify_folder_exists

Check a path is readable by the server.

Files (15)

Tool

Description

search_files

Search the file database by name substring and size.

get_file

One file's full record — ffProbe, MediaInfo, history.

query_table

Low-level paginated UI table query with filters and sorts.

rescan_file

Refresh one file's scan data.

scan_file_details

Run ExifTool / MediaInfo / closed-caption scans on any path.

create_sample

Make a 30 second sample for testing a plugin stack or flow.

requeue_files

Requeue a library for transcoding or health checking.

set_staged_verdict

Accept or reject an item staged for approval.

bulk_update_files

Merge field updates into specific file records.

delete_file

Delete one file from disk and the database.

bulk_delete_files

Delete several files from disk and the database.

delete_unhealthy_files

Delete everything in the transcode-error or health-error table.

delete_cache_file

Remove leftover output from an interrupted worker.

find_duplicates

Start duplicate detection by metadata or sha256.

stop_find_duplicates

Stop a running duplicate pass.

Plugins (12)

Tool

Description

search_plugins

Search classic plugins (Community and Local).

search_flow_plugins

Search the nodes available inside a flow.

search_flow_templates

Search ready-made flow templates.

read_plugin

Read a classic plugin's source.

save_plugin

Overwrite a local plugin's source.

create_plugin

Create a basic local plugin with the plugin creator.

copy_community_plugin_to_local

Copy a Community plugin so it survives plugin updates.

verify_plugin

Check a plugin exists before wiring it into a library.

delete_plugin

Delete a plugin from the server.

update_community_plugins

Pull the latest Community plugins.

sync_plugins_to_nodes

Push the server's plugins out to every node.

list_plugin_repo_versions

Recent commits on the upstream plugin repo.

Flows (2)

Tool

Description

list_flows

Flows with ID, name, description and graph size.

get_flow

One flow's complete graph — every node, its inputs, and the edges.

Statistics (6)

Tool

Description

get_pie_stats

Dashboard breakdowns by status, codec, container, resolution.

get_stream_stats

Codecs, languages and stream types across a library.

get_space_saved

Space saved over time, by library, node, worker type or plugin.

get_worker_verdict_history

Success, error and not-required counts over time.

get_resource_history

Server CPU, memory and heap over time.

get_worker_history

Running worker counts by type over time.

Job reports (6)

Tool

Description

search_job_reports

Find job reports by filename.

get_job_report

Full worker log for a job — the ffmpeg command line and its errors.

list_file_job_reports

Every report recorded for one file, by footprintId.

read_job_report_file

Read an individual report file belonging to a job.

delete_job_report

Delete one report.

delete_job_reports

Delete reports in bulk, optionally filtered.

Backups (5)

Tool

Description

list_backups

Backups with name, size and date.

create_backup

Back up the Tdarr database.

get_backup_status

Progress of a backup in flight.

reset_backup_status

Clear a stuck backup status.

delete_backup

Delete a backup.

Automations (3)

Tool

Description

list_automations

Automation configurations on the server.

get_automation

One automation's trigger, payload shape and targets.

run_automation

Trigger an automation, optionally scoped and bypassed.

Database (1)

Tool

Description

query_database

Read-only access to collections the dedicated tools don't cover.

Scope and safety

  • User accounts and API keys are out of scope. There are no tools for registering users, resetting passwords or reading the users and API-key collections — query_database cannot reach them either.

  • Node↔server protocol endpoints are out of scope. Task dispatch, worker relay and plugin download are how Tdarr's own nodes talk to the server; exposing them to an agent only corrupts farm state.

  • Flows are read-only. An agent can read and explain any flow, but flow graphs are edited in the Tdarr flow editor.

  • Tools that delete media are marked as such in their descriptions — delete_file, bulk_delete_files and delete_unhealthy_files remove real files from disk. So do remove_library_files (database records only), restart_server and restart_node (interrupt running work). Confirm before letting an agent run them unattended.

  • Secrets stay in the environment. The API key is read from env and sent only as the x-api-key header.

Development

npm install
npm run build         # tsc -> dist/
npm test              # vitest run
npm run lint          # eslint src
npm run typecheck     # tsc --noEmit
npm run format        # prettier --write .

tdarr-api.json in the repo root is the Tdarr Swagger spec this server is built against; a live copy is available from your own instance under Tools → API Docs.

License

MIT — see LICENSE.

Available Tools

85 tools
alter_worker_limitA

Increase or decrease by one the number of workers of a given type on a node (POST /api/v2/alter-worker-limit). Call it repeatedly to move the limit by more than one.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idYesNode ID, from list_nodes
processYesDirection to move the limit
worker_typeYesWhich worker pool to change

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal the one-step increment/decrement behavior and the need for repeated calls, but it does not mention side effects, failure conditions, permissions, or what happens to existing workers when the limit changes.

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

Conciseness5/5

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

The description is two short sentences with no wasted words. The core behavior is front-loaded, and the repeated-call guidance earns its place by preventing misuse.

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

Completeness4/5

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

For a simple three-parameter mutation tool, the description is largely complete: it states the action, scope, endpoint, and the key nuance about repeated calls. A small gap is the lack of any note about return values or error conditions, but this is minor given the simple contract.

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 100%, and each parameter already has a clear description in the schema. The tool description adds no additional parameter-level meaning beyond confirming the one-step directionality, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the operation: increasing or decreasing by one the number of workers of a given type on a node. It is specific about the verb, resource, and scope, though it does not explicitly differentiate itself from sibling tools like kill_worker or cancel_worker_item.

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

Usage Guidelines3/5

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

The description implies this tool is used to adjust worker limits incrementally, and it explicitly instructs to call repeatedly to move the limit by more than one. However, it provides no explicit guidance about when to choose this tool over alternatives such as kill_worker or restart_node.

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

bulk_delete_filesA

Delete several files from disk and remove them from the Tdarr database (POST /api/v2/bulk-delete-files). This deletes real media — list the files for the user and confirm before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idsYesFile IDs (full paths) to delete

TDQS

A4.2/5.0
Behavior4/5

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

There are no annotations, so the description carries the full burden of disclosing destructive behavior. It clearly states that it 'deletes real media' and also removes records from the database, and alerts the agent to confirm with the user first. This is strong transparency for a destructive tool, though it stops short of stating irreversibility explicitly.

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 tight sentences. The first states the action and scope, and the second delivers the crucial safety warning. No filler or repetition.

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

Completeness4/5

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

For a one-parameter destructive tool with no output schema, the description covers the essential details: what it deletes, that it also updates the database, and the required confirmation step. It could add information about irreversibility or expected response, but the definition is sufficient for safe invocation.

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

Parameters3/5

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

The schema already documents file_ids as 'File IDs (full paths) to delete' with 100% coverage. The description reinforces that these are multiple files but adds no new parameter-level detail beyond what the schema provides. Baseline 3 is appropriate.

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 starts with a specific verb and resource: 'Delete several files from disk and remove them from the Tdarr database.' It clearly states the bulk nature of the operation, distinguishing it from single-file tools like delete_file. The endpoint is also included for clarity.

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

Usage Guidelines4/5

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

The description provides clear context: it is for deleting multiple files at once. It gives an explicit safety instruction ('list the files for the user and confirm before calling') which guides when and how to use it. It doesn't explicitly name alternatives like delete_file for single deletions, but the bulk context is unmistakable.

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

bulk_update_filesA

Update fields on specific file records by ID (POST /api/v2/bulk-update-files). The update object is merged into every listed file — e.g. { holdUntil: 0 } to release a hold, or { TranscodeDecisionMaker: 'Queued' } to requeue just those files.

ParametersJSON Schema
NameRequiredDescriptionDefault
updatesYesObject of fields to merge into each file record
file_idsYesFile IDs (full paths) to update

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden. It usefully discloses that the update object is merged into each listed file and gives concrete examples of effects. However, it does not mention potential side effects, failure behavior, permissions, or whether changes are reversible.

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

Conciseness5/5

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

Two sentences with no filler. The core action and endpoint are front-loaded, and the examples are compact and directly informative.

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

Completeness4/5

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

For a two-parameter tool with full schema coverage, the description provides enough to invoke correctly: what it does, how it applies updates, and representative field values. It is slightly incomplete because there is no output schema and no mention of return values or error behavior, but these are not critical for basic selection and invocation.

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

Parameters4/5

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

Schema coverage is 100%, so the parameters are already documented. The description adds value with concrete examples of valid update payloads ({ holdUntil: 0 } and { TranscodeDecisionMaker: 'Queued' }), clarifying the shape and purpose of the updates object beyond the generic schema text.

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 names a specific verb ('Update'), a specific resource ('fields on specific file records by ID'), and includes the endpoint. It is clearly distinct from siblings like bulk_delete_files because it targets field updates rather than deletion.

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 examples imply usage for releasing holds and requeueing files, but no explicit guidance is given about when to prefer this tool over related siblings like requeue_files or bulk_delete_files. Usage context is present but not directly contrasted with alternatives.

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

cancel_worker_itemA

Cancel the item a worker is currently processing (POST /api/v2/cancel-worker-item). The worker stays alive and picks up the next item; the cancelled file goes back to the queue.

ParametersJSON Schema
NameRequiredDescriptionDefault
causeYesReason recorded against the cancellation
node_idYesNode ID, from list_nodes
worker_idYesWorker ID, from the node's workers in list_nodes(detailed)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It explains the key side effects: the worker stays alive, the cancelled file goes back to the queue, and a cause is recorded. This is solid transparency for a mutating 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 concise sentences with no wasted words. The primary action and endpoint are front-loaded, followed by the important behavioral consequences.

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

Completeness4/5

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

For a three-required-param mutation with no output schema, the description covers what happens to the worker and the item. It is complete enough for an agent to select and invoke the tool correctly, though an explicit note on expected response behavior would be marginally useful.

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

Parameters3/5

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

Schema coverage is 100% and each parameter already has a meaningful description, including source hints for node_id and worker_id. The tool description adds no extra parameter detail, so baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb-resource pair ('Cancel the item a worker is currently processing') and names the endpoint. It clearly distinguishes itself from kill-style tools by stating the worker stays alive and the file returns to the queue.

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

Usage Guidelines4/5

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

The description gives clear behavioral context: this cancels the current item without stopping the worker. It implicitly contrasts with kill_worker and requeue-style tools, but it does not explicitly name alternatives or state when not to use it.

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

check_for_updateA

Check whether a Tdarr update is available (POST /api/v2/updater/check). Defaults to a check only. Set download_update to fetch the update, and apply_update to install it — applying an update requires calling relaunch_server afterwards.

ParametersJSON Schema
NameRequiredDescriptionDefault
apply_updateNoApply a downloaded update (default false). Requires a relaunch afterwards.
reset_updaterNoReset a stuck updater state before checking (default false)
download_updateNoDownload the new version if one is available (default false)

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the disclosure burden. It does reveal that the tool is safe by default and that applying an update requires a relaunch, but it does not discuss side effects of reset_updater, the destructive nature of installation, or what happens if apply_update is set without download_update. The description is adequate but not fully transparent.

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 focused sentences: the first front-loads the core purpose and default behavior, the second covers optional modes and the required follow-up. There is no filler or redundant prose.

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

Completeness4/5

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

For a three-boolean tool, the description covers the main workflow, optional modes, and sequencing, while the schema fills the parameter details. However, there is no output schema, and the description does not describe what a check returns, nor does it mention reset_updater, so a couple of minor gaps remain.

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 100%, so every parameter is already documented with its default and meaning. The description restates download_update and apply_update semantics and adds the relaunch dependency, but that dependency is also present in the schema, so it adds little beyond what structured data already 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 states a specific action ('check whether a Tdarr update is available') against a named resource and includes the exact endpoint. The 'defaults to a check only' phrasing also clarifies the tool's scope, distinguishing it from the install/apply behavior it can optionally trigger.

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 explains the default check-only behavior, when to set download_update and apply_update, and explicitly requires calling relaunch_server afterwards. It does not explicitly contrast this tool with sibling update tools like update_node, but the workflow guidance is strong enough for an agent to use it correctly.

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

copy_community_plugin_to_localA

Copy a Community plugin into Local plugins so it can be edited without being overwritten by plugin updates (POST /api/v2/copy-community-to-local).

ParametersJSON Schema
NameRequiredDescriptionDefault
plugin_idYesPlugin ID, from search_plugins
force_overwriteNoOverwrite an existing local copy (default false)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It clearly identifies this as a copy operation and adds a meaningful behavioral consequence: the local copy is safe from plugin-update overwrites. It does not cover edge cases like existing local copies, but the core behavior and purpose are transparent.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action and purpose, then includes the endpoint. There is no filler or redundant restating of the tool name.

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

Completeness4/5

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

For a simple two-parameter copy tool, the description plus complete schema provides enough information for an agent to decide when and how to invoke it. Return-value details are absent, but the copy action and its purpose are sufficiently described without needing an output schema.

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

Parameters3/5

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

The input schema fully documents both parameters, including plugin_id's source and force_overwrite's default behavior. The description itself adds no parameter-specific detail, so the baseline of 3 applies because the schema covers parameter semantics completely.

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

Purpose5/5

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

The description uses a specific verb ('Copy') and names the source and destination ('Community plugin' into 'Local plugins'), so the action is unambiguous. It also distinguishes this tool from sibling plugin operations like read_plugin, save_plugin, create_plugin, and delete_plugin by stating its copy-based purpose and the reason for doing it.

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 use case: copy a Community plugin locally so edits are not overwritten by plugin updates. It does not explicitly list alternatives or when not to use it, but the stated rationale effectively routes an agent to this tool instead of editing or saving a plugin directly.

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

create_backupA

Create a backup of the Tdarr database (POST /api/v2/create-backup). Runs asynchronously — poll get_backup_status for progress. Take one before any bulk change to libraries or files.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses that the operation runs asynchronously and that progress must be checked via get_backup_status. This is meaningful behavioral context beyond a simple 'create' statement, though it does not detail retention, overwrite behavior, or failure modes.

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

Conciseness5/5

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

Two tight sentences cover purpose, endpoint, asynchronous behavior, polling guidance, and recommended usage. No filler or repetition; the most important action and context are front-loaded.

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

Completeness5/5

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

For a zero-parameter, no-output-schema tool, the description provides everything an agent needs: what it does, how to invoke it, how to track completion, and when it should be used. No critical operational gap remains.

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

Parameters4/5

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

The tool has zero parameters and schema description coverage is 100%, so there is no parameter information missing. The description does not need to explain parameters, and the baseline for zero-parameter tools applies.

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 begins with a specific verb and resource: 'Create a backup of the Tdarr database', and reinforces it with the exact endpoint. This clearly identifies the operation and differentiates it from siblings like list_backups or get_backup_status.

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?

It provides a clear when-to-use directive: 'Take one before any bulk change to libraries or files.' It also instructs polling get_backup_status for progress. It does not explicitly discuss exclusions or alternative creation paths, but none are needed given the tool's unique purpose.

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

create_pluginA

Create a basic local classic plugin with Tdarr's plugin creator (POST /api/v2/create-plugin). The conditionals string is the plugin's matching logic; the action describes what to run when it matches. For anything beyond a simple condition/action pair, create it here and then refine the source with read_plugin and save_plugin.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPlugin name
typeYesPlugin type, e.g. 'Video' or 'Audio'
presetYesffmpeg or HandBrake arguments to run
info_logYesMessage logged when the plugin runs
containerYesOutput container, e.g. '.mkv'
operationYesPlugin operation, e.g. 'Transcode'
descriptionYesWhat the plugin does
ffmpeg_modeYesRun the preset through ffmpeg
conditionalsYesThe plugin's matching conditions, as a string
process_fileYesWhether a matching file should be processed
handbrake_modeYesRun the preset through HandBrake
conditional_notesNoNotes about the conditions (default empty)

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it does not state side effects, overwrite behavior, failure modes, required permissions, or what the response contains. It also introduces an 'action' concept that does not map cleanly to any parameter in the schema, which can mislead an agent about how to provide the execution logic.

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

Conciseness5/5

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

The description is compact at three sentences, front-loads the endpoint and scope, and adds a useful read_plugin/save_plugin workflow without redundancy. Every sentence contributes.

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 12-parameter creation tool with no annotations and no output schema, the description is only minimally complete. It provides useful workflow context, but it omits expected response behavior, overwrite/duplicate handling, and a clear mapping from the abstract 'action' to the actual preset/operation fields.

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 100%, so the baseline is 3; the schema already documents all parameters well. The description adds little beyond framing conditionals as matching logic, and the reference to 'action' is not tied to preset, operation, or any actual schema field.

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 what the tool does: 'Create a basic local classic plugin' and names the exact endpoint. It also scopes the tool to 'basic' and 'local' plugins, which helps distinguish it from plugin-read, plugin-save, and community-plugin siblings.

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 concrete workflow guidance: create the basic plugin here, then refine it with read_plugin and save_plugin for anything beyond a simple condition/action pair. It names those sibling tools explicitly, though it does not cover every alternative scenario such as community plugins or plugin verification.

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

create_sampleA

Create a 30 second sample of a file (POST /api/v2/create-sample) and return the path of the sample. Useful for testing a plugin stack or flow on a short clip before running it on a whole library.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesFull file path, as Tdarr Server sees it

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It discloses the core mutation—creating a 30-second sample—and that the sample path is returned. However, it does not clarify whether a new file is persisted on disk, whether the original file is modified, or whether the sample is temporary.

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 with no filler: the action, duration, endpoint, return value, and use case are all packed compactly and front-loaded. Every sentence earns its place.

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

Completeness4/5

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

The tool is simple with a single param and no output schema, so the description is nearly complete: it says what is created, how long the sample is, and what is returned. Minor gaps like failure behavior and output format are not necessary at this complexity level.

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

Parameters3/5

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

The schema already describes the only parameter (`file_path` as 'Full file path, as Tdarr Server sees it'), so schema coverage is 100%. The description adds little beyond the word 'file', which is the baseline scenario for high schema coverage.

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

Purpose5/5

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

The description states a specific verb and resource: 'Create a 30 second sample of a file' and explicitly mentions the POST endpoint. It also states the return value (path of the sample), which makes it clearly distinguishable from sibling inspection tools like get_file or search_files.

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 concrete use case: 'testing a plugin stack or flow on a short clip before running it on a whole library.' It does not mention alternatives or when not to use it, but the intended context is clear enough for an agent.

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

delete_backupA

Delete a Tdarr database backup (POST /api/v2/delete-backup).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesBackup name, from list_backups

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are present, so the description carries the full behavioral disclosure burden. It identifies a destructive action, but does not disclose whether the deletion is permanent, whether backup data is removed from disk, whether there are any safety checks, or what the response contains. The endpoint detail is useful but does not substitute for behavioral context.

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

Conciseness5/5

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

The description is a single, tightly worded sentence that communicates the action, the target resource, and the HTTP endpoint with no filler or redundant information.

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

Completeness3/5

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

For a one-parameter destructive tool with no annotations and no output schema, the description is minimally sufficient for an agent to know what the tool does and what input it needs. However, it omits important behavioral context such as irreversibility, side effects, or whether confirmation is returned, which leaves a meaningful gap for a delete operation.

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

Parameters3/5

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

The schema fully documents the single 'name' parameter and already notes 'Backup name, from list_backups,' so baseline is 3. The description itself adds no parameter-level meaning beyond what the schema provides, but high schema coverage means the description does not need to compensate.

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 ('Delete a Tdarr database backup') and the resource, and includes the concrete endpoint (POST /api/v2/delete-backup). This makes it immediately distinguishable from backup-related siblings like list_backups, create_backup, get_backup_status, and reset_backup_status.

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

Usage Guidelines3/5

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

The description implies usage — use this tool when you want to delete a backup — but it does not explicitly state when not to use it or how it compares to related backup tools. The parameter schema mentions 'from list_backups,' but the description itself provides no routing or prerequisite guidance.

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

delete_cache_fileA

Delete a leftover file from the Tdarr transcode cache (POST /api/v2/delete-cache-file). Use it to clear partial output from an interrupted worker.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesFull path of the cache file to delete

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral burden. It clearly discloses that the action is destructive ('Delete'), scoped to leftover cache files, and intended for interrupted-work cleanup. It does not discuss return values or error cases, but the core behavior is transparent.

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 with no filler. The endpoint, operation, and use case are front-loaded, and every clause earns its place.

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

Completeness5/5

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

For a one-parameter, single-action delete tool, the description is complete. It specifies the operation, the resource, the path semantics via the schema, and the exact scenario for use. No critical information is missing for an agent to invoke it correctly.

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

Parameters3/5

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

Schema coverage is 100%: the single required parameter 'file' is already described as 'Full path of the cache file to delete'. The description adds usage context but no additional parameter-level meaning, so the baseline 3 is appropriate.

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?

States a specific verb ('Delete'), a precise resource ('leftover file from the Tdarr transcode cache'), and the intended purpose ('clear partial output from an interrupted worker'). The cache-specific framing clearly differentiates it from sibling deletion tools like delete_file or delete_job_report.

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 identifies the usage scenario: cleaning up leftover/partial cache output from an interrupted worker. It does not enumerate exclusions or name alternative tools, but the context is narrow and clear enough for an agent to select it appropriately.

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

delete_fileA

Delete one file from disk and remove it from the Tdarr database (POST /api/v2/delete-file). This deletes real media — confirm with the user first.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYesFile ID (full path), from search_files

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It clearly warns that this deletes real media and removes the file from the database, which is critical for a destructive operation. It does not mention irreversibility explicitly, but 'deletes real media' strongly implies permanence.

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 tight sentences deliver the core action, the resource affected, and the critical user-confirmation warning. No filler or redundancy, and the most important behavioral warning is placed at the end for emphasis.

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

Completeness4/5

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

For a single-parameter destructive tool with a fully documented schema, the description is nearly complete. It covers what the tool does, that it affects real media, and that confirmation is required. The only minor gap is not explicitly stating the operation cannot be undone, though this is strongly implied.

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

Parameters3/5

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

The schema already provides 100% coverage, documenting file_id as the full path from search_files. The description does not add additional parameter-level meaning, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific action ('Delete one file from disk') and a specific resource (file, Tdarr database), and clarifies this is the single-file variant as opposed to bulk deletion. The API endpoint is also included, making the tool's intent unambiguous.

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

Usage Guidelines3/5

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

The description clearly implies this is for deleting a single file and explicitly instructs to confirm with the user first. However, it does not mention alternatives such as bulk_delete_files or delete_unhealthy_files, so an agent gets no explicit guidance on when to choose this over sibling tools.

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

delete_job_reportA

Delete one job report from the database and from disk (POST /api/v2/delete-job-report).

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID of the report to delete

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does convey the key destructive fact that the report is removed from both the database and disk, which is important context. However, it does not mention irreversibility, permissions, or what happens if the job_id does not exist.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler. It states the action, scope, and endpoint efficiently, and every word contributes to understanding the tool's behavior.

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

Completeness4/5

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

For a simple delete tool with one parameter and no output schema, the description is largely sufficient. It explains what is deleted and where. The only notable gap is the lack of explicit warning that deletion is permanent, which would be useful for a destructive operation without annotations.

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 100%, so the schema already fully documents the single job_id parameter as 'Job ID of the report to delete.' The description adds no parameter-specific meaning beyond that, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states a specific action ('Delete one job report'), the resource ('one job report'), and the scope ('from the database and from disk'). The singular 'one' distinguishes it from the sibling delete_job_reports, making the tool's purpose explicit 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 Guidelines3/5

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

The description implies this tool is for deleting a single job report, and the presence of delete_job_reports as a sibling suggests a plural/bulk alternative. However, it does not explicitly state when to use this tool versus delete_job_reports or provide any exclusion criteria.

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

delete_job_reportsA

Delete job reports in bulk (POST /api/v2/delete-job-reports). With no filters this deletes every report — pass filters to narrow it, and confirm with the user first.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersNoFilters selecting which reports to delete; omit to delete all of them

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full behavioral disclosure. It clearly warns that with no filters this deletes every report and instructs the agent to confirm with the user first. This goes beyond the literal word 'delete' and reveals the high-impact destructive nature of the operation.

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

Conciseness5/5

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

Two tight sentences earn their place: the first states the action and endpoint, the second immediately surfaces the critical safety warning and mitigation. No fluff, and the most important information is front-loaded.

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

Completeness4/5

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

For a simple one-parameter tool with full schema coverage, the description covers the essential context: bulk operation, filter narrowing, all-reports risk, and user confirmation. It does not mention return values or irreversibility, but for this dangerously destructive operation the main safety context is sufficiently complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already explains that filters select which reports to delete and that omitting them deletes all. The description adds 'pass filters to narrow it' but no additional type, format, or syntax meaning beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Delete'), a specific resource ('job reports'), and a clear scope ('in bulk'), and even includes the endpoint. 'Bulk' differentiates it from the singular sibling delete_job_report, so an agent can tell them apart.

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

Usage Guidelines4/5

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

It gives clear operational guidance: pass filters to narrow deletion, omit filters to delete everything, and confirm with the user first. It does not explicitly name the singular delete_job_report as the alternative for deleting one report, but the 'in bulk' phrasing and dangerous no-filter behavior provide strong contextual guidance.

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

delete_pluginA

Delete a plugin from the server (POST /api/v2/delete-plugin). Deleting a plugin that a library's stack still references leaves that stack broken — check with list_libraries first.

ParametersJSON Schema
NameRequiredDescriptionDefault
plugin_idYesPlugin ID
plugin_sourceYesPlugin source, 'Community' or 'Local'

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It does disclose the most important non-obvious side effect — that deleting a referenced plugin leaves that stack broken — which goes beyond what the name alone implies. However, it doesn't disclose other behavioral traits: whether deletion is reversible, what happens if the plugin_id doesn't exist, or what the response looks like.

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 with zero waste. The primary action and endpoint are front-loaded in the first sentence, and the second sentence carries the crucial risk warning and precaution. Every word earns its place.

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

Completeness4/5

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

For a simple destructive tool with 2 fully-documented parameters and no output schema, the description is nearly complete: purpose, endpoint, key risk, and mitigation are all present. The only gaps are minor — no statement of success/error response format and no mention of reversibility — which an agent could infer from the POST endpoint and the existence of create_plugin/copy_community_plugin_to_local siblings.

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 100%, with both plugin_id and plugin_source already described, so the baseline is 3. The description adds no parameter-level detail beyond the schema, but it doesn't need to — the schema fully documents both required fields including the allowed values for plugin_source.

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

Purpose5/5

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

The description states a specific verb and resource — 'Delete a plugin from the server' — plus the exact HTTP endpoint. This cleanly distinguishes it from the many plugin-related siblings (read_plugin, save_plugin, create_plugin, verify_plugin, manage_library_plugin) without needing to inspect any of their schemas.

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

Usage Guidelines4/5

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

The description gives clear context and an explicit when-not-to-proceed condition: deleting a plugin a library's stack still references breaks the stack. It names a concrete sibling tool (list_libraries) to consult first. It stops short of a full 5 because it doesn't route between overlapping tools (e.g., using manage_library_plugin to detach a plugin first rather than deleting it outright).

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

delete_unhealthy_filesA

Delete every file in the transcode-error table (table3) or the health-check-error table (table6) from disk (POST /api/v2/delete-unhealthy-files). This deletes real media in bulk — always list the affected files with query_table and confirm with the user first.

ParametersJSON Schema
NameRequiredDescriptionDefault
tableYestable3 = files that failed to transcode, table6 = files that failed a health check

TDQS

A4.3/5.0
Behavior4/5

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

Annotations are absent, so the description carries the full burden; it clearly discloses that this deletes real media in bulk and is destructive. It also provides a concrete precautionary procedure. It does not detail failure modes or permission needs, but it flags the most critical behavioral trait well.

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 with no filler. The first sentence states the action and scope, and the second delivers the mandatory safety warning. The most critical information is front-loaded.

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 single enum parameter, the full schema coverage, and absence of an output schema, the description provides all necessary context: what the tool does, what data it targets, that it is destructive, and the required confirmation workflow.

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

Parameters3/5

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

The input schema already provides 100% coverage by describing table3 and table6 meanings and the enum constraint. The description repeats this mapping but adds no new parameter-level details, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Delete'), a precise resource scope ('every file in the transcode-error table or health-check-error table'), and the destructive nature ('from disk', 'deletes real media in bulk'). It also names the API endpoint, making it fully distinguishable from sibling delete tools like delete_file or bulk_delete_files.

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

Usage Guidelines4/5

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

The description gives clear operational guidance: 'always list the affected files with query_table and confirm with the user first.' This tells the agent when and how to use the tool safely. It does not explicitly discuss when to prefer sibling deletion tools, but for this distinct bulk-destructive operation the guidance is sufficient.

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

disconnect_nodeA

Forcefully disconnect a node from the server (POST /api/v2/disconnect-node). Use it to clear a node that shows as connected but is actually gone.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idYesNode ID, from list_nodes

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It discloses the forceful nature and the stale-node cleanup scenario, but it does not mention side effects such as whether a live connection is terminated, whether the action is reversible, or any permission requirements.

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

Conciseness5/5

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

Two sentences with clear front-loading: the action and purpose come first, and the HTTP endpoint adds useful context without bloat. Every word earns its place.

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

Completeness4/5

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

For a one-parameter tool with no output schema and no annotations, the core usage context is well covered. Missing details like return values or error conditions are minor, though a bit more side-effect clarity would make it fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, and the node_id parameter is already documented as 'Node ID, from list_nodes.' The description adds no parameter-level detail, so the baseline score of 3 applies.

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

Purpose5/5

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

The description states a specific verb ('forcefully disconnect'), a clear resource (node), and the trigger condition (node shows as connected but is actually gone). The HTTP endpoint reinforces the operation, and the purpose clearly distinguishes it from siblings like restart_node or update_node.

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?

It gives an explicit use case: 'Use it to clear a node that shows as connected but is actually gone.' This provides clear context for when to choose this tool, though it does not name alternatives or exclusion conditions.

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

find_duplicatesA

Start Tdarr's duplicate detection (POST /api/v2/find-duplicates). 'metadata' compares stream metadata and is fast; 'sha256' hashes file content and is accurate but slow — with sha256, hash_amount controls how much of each file is read. Runs asynchronously; stop it with stop_find_duplicates.

ParametersJSON Schema
NameRequiredDescriptionDefault
countYesMinimum number of matching files to report a group
thresholdYesSimilarity threshold above which two files count as duplicates
hash_amountNoHow much of each file to hash, for detection_method 'sha256'
detection_methodNoDetection method (default is the server's own default)

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full transparency burden. It discloses that the operation runs asynchronously, compares metadata or hashes content, and that sha256 is slow but accurate. This goes beyond the schema and exposes important runtime behavior.

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

Conciseness5/5

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

The description is compact and front-loaded with purpose, then method details, then async lifecycle behavior. Every sentence carries useful information with no filler.

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

Completeness4/5

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

For an asynchronous tool with no annotations and no output schema, the description covers what the tool does, how to choose detection parameters, and how to stop it. It does not mention how to retrieve detection results afterward, but that is a follow-up concern rather than a blocker to correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is already strong. The description adds meaningful semantics for detection_method and hash_amount, explaining the tradeoffs and effect on file reads. threshold and count are not expanded, but the schema already documents them adequately.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Start Tdarr's duplicate detection', and identifies the exact API endpoint. It also differentiates itself from stop_find_duplicates by positioning itself as the asynchronous start operation.

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?

It explains when to choose 'metadata' vs 'sha256' and how hash_amount behaves with sha256. The async behavior is stated along with the explicit stop action, giving an agent clear operational guidance, though it does not enumerate exclusions or alternative scanning tools.

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

get_automationA

Get one automation configuration in full — its trigger, payload shape and targets.

ParametersJSON Schema
NameRequiredDescriptionDefault
config_idYesAutomation config ID, from list_automations

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description does the heavy lifting. It clearly conveys that this is a read operation returning configuration data, not executing the automation or modifying anything. Naming the specific payload components adds useful behavioral context, though it does not discuss error cases, permissions, or other side effects.

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

Conciseness5/5

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

A single, front-loaded sentence that states the action and the contents of the result without any filler. Every word contributes meaning.

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

Completeness4/5

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

For a one-parameter getter with no output schema, the description gives a solid overview of the return value (trigger, payload shape, targets). It could be slightly more explicit about the exact shape of the returned configuration, but 'in full' plus the listed elements is sufficient for a simple tool.

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

Parameters4/5

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

The schema already fully documents config_id, so the baseline is 3. The description adds value by clarifying that the ID is from list_automations and that the returned content includes trigger, payload shape, and targets — linking the parameter to expected inputs and outputs beyond the raw type definition.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('one automation configuration') and enumerates what is included ('its trigger, payload shape and targets'). This cleanly distinguishes it from siblings like list_automations (which presumably returns summaries) and run_automation (which executes rather than retrieves).

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 usage context is implied by the phrase 'one automation configuration in full' — an agent can tell it is for fetching full details rather than listing all configs. However, there is no explicit statement of when to choose this tool over siblings such as list_automations or run_automation, and no exclusions are mentioned.

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

get_backup_statusA

Get the status of a backup in progress (POST /api/v2/get-backup-status).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It does disclose that this is a read-style status operation and includes the HTTP endpoint, but it does not describe side effects, failure behavior, or what happens when no backup is in progress.

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

Conciseness5/5

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

The description is a single sentence, front-loads the action and resource, and then provides the exact endpoint in parentheses. Every part is useful and there is no filler.

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

Completeness3/5

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

With no parameters, invocation is trivial, but the tool has no output schema and the description does not describe what status information is returned or how the status is represented. It also doesn't clarify how this tool relates to reset_backup_status or list_backups, leaving some gaps for an agent trying to fully understand the tool's result.

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

Parameters4/5

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

The input schema has zero parameters, so there is nothing meaningful for the description to add about parameters. The description correctly stays silent on parameters, matching the baseline for a no-parameter tool.

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

Purpose4/5

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

The description uses a specific verb and resource: it retrieves the status of a backup that is currently in progress. It is clearly distinct from siblings like list_backups or create_backup, though it does not explicitly differentiate itself from get_status or other status-style tools.

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

Usage Guidelines3/5

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

The phrase 'backup in progress' implies when this tool should be used, but the description provides no explicit when-to-use or when-not-to-use guidance. It also doesn't mention alternatives such as get_status, list_backups, or reset_backup_status, leaving the agent to infer the right context.

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

get_db_statusesA

Get the status of the Tdarr databases (POST /api/v2/get-db-statuses). Use when the UI reports the database as loading, busy or corrupted.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the burden of explaining behavior. 'Get the status' clearly indicates a read-style operation, but it does not disclose details such as side effects, authentication requirements, or what happens when the database is corrupted. This is adequate for a simple status tool but leaves some behavioral specifics implicit.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the purpose and immediately provides a practical usage trigger. Every word contributes meaning, with no filler.

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

Completeness4/5

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

Given zero parameters and no output schema, the description is largely complete: it states what is retrieved and when to use it. It does not describe the exact response shape, but for a simple status-checking tool this is a minor gap.

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

Parameters4/5

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

The tool has zero parameters, so there is nothing for the description to add beyond the schema. The baseline for zero parameters is 4, and the description correctly implies a parameterless call.

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

Purpose5/5

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

The description states a specific verb and resource: 'Get the status of the Tdarr databases.' This clearly identifies what the tool does and distinguishes it from generic siblings like get_status. The endpoint path further reinforces the exact operation.

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

Usage Guidelines4/5

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

It gives an explicit invocation condition: 'Use when the UI reports the database as loading, busy or corrupted.' This provides clear context for when the tool is appropriate, though it does not mention alternative tools or exclusions.

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

get_dispatch_readinessA

Check whether the server is ready to dispatch tasks and has finished server/node plugin setup (GET /api/v2/nodes/ready). Returns { ready, reasons } — call it before queueing work after a restart.

ParametersJSON Schema
NameRequiredDescriptionDefault
number_of_nodesNoRequire at least this many connected nodes before reporting ready

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that this is a GET (read-only) operation, states the readiness condition it verifies, and describes the return shape as { ready, reasons }. It does not detail the contents of reasons, but that is acceptable for this simple readiness probe.

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 compact sentences deliver the purpose, endpoint, return structure, and usage timing with zero filler. Every clause earns its place.

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

Completeness5/5

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

For a tool with one optional parameter and no output schema, the description is complete: it explains what the tool checks, when to call it, the HTTP endpoint, and what it returns. No critical information is missing.

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

Parameters3/5

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

The only parameter, number_of_nodes, is already fully documented in the schema with 100% coverage. The description adds no extra parameter detail, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description uses a specific verb and resource: it checks server dispatch readiness and completed server/node plugin setup, and even names the endpoint. It is clearly distinguishable from most siblings, though it does not explicitly differentiate itself from the similarly named get_status.

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?

It gives explicit invocation context: 'call it before queueing work after a restart.' This provides clear timing guidance for the agent, but it does not mention exclusions or alternatives such as get_status or get_server_time.

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

get_fileA

Get one file's full database record — ffProbe output, MediaInfo, transcode and health check history, and the current queue status.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYesFile ID, which is the file's full path as Tdarr Server sees it

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose the return payload composition (ffProbe, MediaInfo, transcode/health history, queue status), which is valuable given the absence of an output schema. However, it does not explicitly state that the operation is read-only/idempotent or describe behavior when file_id does not exist.

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

Conciseness5/5

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

A single sentence with the core verb+resource front-loaded, followed by an em-dash list of contained data. There is zero filler, and every element — scope ('one file', 'full record') and content enumeration — earns its place.

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

Completeness4/5

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

For a single-parameter getter with no output schema and no annotations, the description covers the essentials: scope and the composition of the returned record. It omits error handling and alternative routing, but those are minor for a read-oriented tool of this simplicity, so it is nearly complete rather than merely adequate.

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 100%, and the file_id parameter description already provides a non-obvious detail — that the ID is actually the file's full path as Tdarr Server sees it. The tool description adds no parameter-level meaning, but at full schema coverage the baseline of 3 applies.

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?

States a specific verb and resource: 'Get one file's full database record', then enumerates the record's contents (ffProbe output, MediaInfo, transcode and health check history, queue status). The 'one file' and 'full record' scope clearly differentiates it from siblings like search_files, get_job_report, and list_file_job_reports in a large toolset.

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

Usage Guidelines3/5

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

The use case is implied — whenever a single file's complete database record is needed — but the description never names an alternative or states when NOT to use it. With over 100 siblings (e.g., scan_file_details, get_job_report, search_files), explicit routing guidance would materially help an agent choose correctly.

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

get_flowA

Get one flow's complete graph — every node with its plugin ID and inputs, plus the edges between them. Read this to explain or debug what a library's flow actually does.

ParametersJSON Schema
NameRequiredDescriptionDefault
flow_idYesFlow ID, from list_flows

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. The wording 'Get' and 'Read this' signals a non-mutating operation, and the description clearly states what will be returned: a complete graph of nodes, plugin IDs, inputs, and edges. It does not explicitly address side effects or error cases, but for a read-only graphing tool this is reasonably transparent.

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 filler. It front-loads the core action and return contents, then follows with the intended use case. Every sentence earns its place.

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?

With a single required parameter, full schema coverage, and no output schema, the description does a good job of explaining the return value by listing nodes, plugin IDs/inputs, and edges. It could be slightly more explicit about the exact shape of the returned graph, but it is sufficient for an agent to understand what the tool provides.

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 100%, and the flow_id parameter is already documented as 'Flow ID, from list_flows.' The tool description does not add semantic detail beyond the schema, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Get one flow's complete graph' and specifies the exact contents: every node with its plugin ID and inputs, plus the edges between them. This clearly distinguishes get_flow from siblings like list_flows or get_library by emphasizing the full structural graph.

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 second sentence gives an explicit use case: 'Read this to explain or debug what a library's flow actually does.' It provides clear context for when to call the tool, though it does not name alternatives or state when not to use it.

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

get_job_reportA

Get a job report by job ID (GET /api/v2/job-reports/{jobId}) — the full worker log for that job plus its metadata, including whether the job is still running. This is where the ffmpeg command line and its errors live, so read it first when a transcode fails.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It does so effectively by revealing what the response contains beyond the tool name, including whether the job is still running and that the report holds ffmpeg command-line details and errors. It does not mention auth, rate limits, or error cases, but for a simple GET-style report tool this is reasonable coverage.

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: the first precisely defines the operation and return content, and the second adds immediately useful diagnostic context. No filler or redundant detail; the most important information is front-loaded.

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

Completeness4/5

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

For a tool with one parameter and no output schema, the description explains what the response contains and offers practical usage context. It does not discuss related tools for searching or filtering reports, but that is outside the core need for invoking get_job_report correctly.

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

Parameters3/5

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

The input schema already has full coverage: it documents job_id as a required string 'Job ID'. The description adds only the implicit sense that job_id identifies the job whose report is returned. Since schema coverage is 100%, the baseline of 3 applies and the description does not need to compensate.

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

Purpose5/5

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

The description states a specific verb and resource ('Get a job report by job ID') and identifies the exact endpoint. It also clarifies the return contents: the full worker log, metadata, running status, and the ffmpeg command line/errors. This clearly distinguishes it from sibling report-related tools like search_job_reports or delete_job_report.

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 concrete situational guidance: 'read it first when a transcode fails' and explains that the ffmpeg command line and errors live here. It does not explicitly name alternatives or state when not to use this tool, but the intended context is clear enough for an agent to select it appropriately.

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

get_libraryA

Get one library's full settings record — folders, filters, schedule, plugin stack or flow ID, transcode and health check options.

ParametersJSON Schema
NameRequiredDescriptionDefault
library_idYesLibrary ID (dbID), from list_libraries

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It does explain what the call returns by listing the setting categories, and 'Get' implies a read-only operation. However, it does not disclose whether special permissions are required, how invalid library IDs are handled, or whether the response has a particular structure beyond the listed fields.

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

Conciseness5/5

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

The description is a single focused sentence with the primary action front-loaded. The enumeration of settings is compact and every word adds value, with no redundant filler or restatement of the tool name.

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

Completeness4/5

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

For a simple single-parameter getter with no output schema, the description adequately explains what the tool returns by listing the setting categories, and the schema covers the parameter source. It does not address edge cases like missing libraries or permission failures, but the low complexity of the tool makes that a minor gap rather than a critical omission.

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

Parameters3/5

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

The schema covers 100% of the parameter documentation, with library_id described as 'Library ID (dbID), from list_libraries'. The description adds no new parameter semantics, but none are needed because the schema already provides clear meaning and provenance for the only required parameter.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('one library's full settings record'), and it enumerates the setting categories included, such as folders, filters, schedule, and plugin stack. This clearly distinguishes it from sibling tools like list_libraries, which lists libraries rather than fetching a single library's settings.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when you need a single library's full settings. However, it does not explicitly state when not to use it or mention alternatives like list_libraries for listing libraries or scan_library for scanning actions. Usage context is inferable but not spelled out.

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

get_node_logA

Get a node's log as plain text (POST /api/v2/get-node-log). Returns the trailing lines only (default 100). Use it to see why a node's transcodes are failing.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNoNumber of trailing lines to return (default 100; use 0 for the full log)
node_idYesNode ID, from list_nodes

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the output format (plain text), the scoping behavior (trailing lines only, default 100), and the raw HTTP endpoint. It does not cover error behavior for invalid node IDs, but for a read-only diagnostic tool the key behavioral traits are disclosed.

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

Conciseness5/5

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

Three short sentences, each earning its place: verb+resource in sentence one, output scoping in sentence two, and the use case in sentence three. The endpoint hint is minor redundancy but not wasteful.

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

Completeness4/5

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

The tool is simple (2 params, 1 required, no nested objects) and the schema covers 100% of parameters. With no output schema, the description's 'plain text' and 'trailing lines' notes partly fill the return-value gap. Missing error-case guidance is a minor gap for a log-read operation.

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 100%, with both node_id and lines already well documented, including the lines=0 full-log option. The description's purpose statement contextualizes the parameters but adds no new parameter-level semantics, so the baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb ('Get'), resource ('a node's log'), and constrained behavior ('trailing lines only, default 100', 'plain text'). It clearly differentiates from the sibling get_server_log by scoping to a node's log rather than the server log.

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?

'Use it to see why a node's transcodes are failing' gives an explicit diagnostic scenario for choosing this tool. It stops short of naming alternatives or stating when not to use it, but the provided context 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.

get_package_indexA

Get the Tdarr package index (POST /api/v2/updater/package-index) — the versions and artifacts the updater can install.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of disclosing behavior. It correctly frames the operation as fetching package metadata despite the POST endpoint, which reduces concern about mutation. However, it does not mention potential side effects, response size, or error behavior; for a zero-parameter read this is a moderate but not severe gap.

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

Conciseness5/5

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

The description is a single sentence with no filler. It front-loads the action and resource, then adds the endpoint and the returned content. Every part earns its place.

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

Completeness5/5

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

For a zero-parameter tool with no output schema and low complexity, the description fully conveys what the agent will get (versions and artifacts) and why the tool exists. No additional operational detail is necessary for correct invocation.

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

Parameters4/5

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

There are no parameters, so there is nothing for the description to add beyond what the schema already states. The description focuses on the resource semantics instead, which is appropriate for a zero-parameter tool.

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

Purpose5/5

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

The description uses a specific verb ('Get') and a specific resource ('Tdarr package index'), and clarifies the semantic content: 'the versions and artifacts the updater can install.' This makes it clearly distinct from sibling tools like check_for_update or update_node.

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

Usage Guidelines3/5

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

The description implies the tool is for inspecting available updater versions and artifacts, which gives the agent a reasonable context for when to use it. However, it does not explicitly state when to prefer it over related siblings such as check_for_update, nor does it mention any exclusions or alternative tools.

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

get_performance_statsA

Get Tdarr internal performance statistics (POST /api/v2/performance-stats) — timings for server operations, used to diagnose a slow server or database.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It reveals the HTTP method (POST) and that it returns internal performance timings, but it does not explicitly state that the operation is read-only or describe any side effects or output format. For a low-risk stats tool this is adequate, though not deeply transparent.

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

Conciseness5/5

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

The description is a single efficient sentence that front-loads the action and resource, then adds the endpoint and use case. It contains no filler or redundant information.

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

Completeness4/5

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

For a no-parameter statistics tool, the description sufficiently covers what the tool does and when to use it. It does not describe the response structure, but no output schema exists and the nature of the returned data (timings) is already indicated. This is complete enough for the tool's low complexity.

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

Parameters4/5

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

The tool has zero parameters and an empty schema, so the 100% schema coverage is trivial. The baseline for 0-parameter tools is 4, and the description correctly adds no unnecessary parameter information.

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

Purpose4/5

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

The description names a specific verb and resource: 'Get Tdarr internal performance statistics,' and clarifies the content as 'timings for server operations.' It also states the use case ('diagnose a slow server or database'), which gives functional clarity. However, it does not explicitly distinguish itself from sibling diagnostic tools like get_resource_stats or get_server_time, so it falls short of the top tier.

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 context: 'used to diagnose a slow server or database.' This tells an agent when to invoke the tool. It lacks explicit alternatives or exclusions, but the stated diagnostic purpose is 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.

get_pie_statsA

Get the pie-chart statistics shown on the Tdarr dashboard (POST /api/v2/stats/get-pies) — file counts by transcode status, health status, container, video and audio codec, resolution and channel layout. Omit library_id for totals across every library.

ParametersJSON Schema
NameRequiredDescriptionDefault
library_idNoLibrary ID to scope the stats to (default: all libraries)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It communicates the read-only nature via 'Get', adds the underlying POST endpoint, specifies what dimensions are aggregated, and clarifies that omitting library_id returns totals across every library. This is strong behavioral context for a low-complexity stats tool.

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

Conciseness5/5

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

A single, information-dense sentence front-loads the purpose, adds the API endpoint, enumerates the statistic categories, and closes with the parameter behavior. There is no filler or redundancy.

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

Completeness5/5

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

For a read-only tool with one optional parameter and no output schema, the description is complete: it states what is returned, the scoping parameter's effect, and the endpoint. An agent has everything needed to select and invoke it correctly.

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

Parameters4/5

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

The input schema already describes library_id as the scoping ID with a default of all libraries, so baseline is 3. The description adds extra meaning by explaining that omitting it yields 'totals across every library', which clarifies the aggregation semantics beyond a literal reading of 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 names a specific verb ('Get'), a concrete resource ('pie-chart statistics'), and enumerates exactly what the statistics cover: file counts by transcode status, health status, container, codecs, resolution, and channel layout. This clearly distinguishes it from the many other get_* sibling tools.

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

Usage Guidelines3/5

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

The description gives clear context for when the tool is relevant (Tdarr dashboard pie stats) and even explains the default behavior of omitting library_id. However, it does not explicitly say when to choose this tool over related sibling tools like get_resource_stats, get_performance_stats, or get_stream_stats, nor does it state any exclusions.

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

get_process_infoA

Get the process tree of the server and every connected node — pid, ppid, executable, script and memory usage per process (POST /api/v2/get-process-info). Useful for spotting stuck ffmpeg/HandBrake child processes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It explains what data is returned and the endpoint, but it does not explicitly state that the operation is read-only, whether it may be expensive on large node counts, or any other behavioral caveats. The 'get' wording implies a safe read, but more explicit disclosure would strengthen it.

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 filler. The main action and returned fields are front-loaded, and the practical use case is added in a compact second sentence.

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

Completeness5/5

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

For a no-parameter, no-output-schema read tool, this description is complete: it identifies the resource, the scope, the returned process attributes, the endpoint, and a real-world diagnostic use case. Nothing essential is missing for an agent to select and invoke it correctly.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description correctly avoids inventing parameter-related detail and focuses on what the tool returns, which is sufficient.

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

Purpose5/5

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

The description states a clear verb ('Get') and a specific resource: the process tree of the server and every connected node. It enumerates the returned fields (pid, ppid, executable, script, memory usage) and includes the exact endpoint, making it easy to distinguish from sibling tools like get_status or get_resource_stats.

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 concrete use case: spotting stuck ffmpeg/HandBrake child processes. This provides clear context for when to call the tool, though it does not explicitly name alternatives or state when not to use it.

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

get_resource_historyB

Get the Tdarr Server resource history (POST /api/v2/stats/get-res-hist) — CPU percentage, memory and heap usage over time.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeframeNoTimeframe to report over, as used by the Tdarr UI

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It does disclose the endpoint, the HTTP method, and the returned metrics, which is useful. However, it does not describe the response structure, whether the call has side effects, or any authentication requirements, so behavioral transparency is only partially covered.

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

Conciseness5/5

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

The description is a single, focused sentence that front-loads the core action and resource, then adds the endpoint and the metrics returned. Every part adds information and there is no redundant or filler text.

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

Completeness4/5

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

For a tool with one optional parameter and no output schema, the description is largely sufficient: it identifies the resource, the endpoint, and the returned metrics. It could be more complete by describing the output shape or timeframe format, but the schema covers the parameter and the description covers the basic return content.

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

Parameters3/5

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

The schema already documents the only parameter, 'timeframe', with a reasonable description ('Timeframe to report over, as used by the Tdarr UI'), and schema coverage is 100%. The description adds no extra parameter detail such as accepted formats or example values, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly names the action ('Get'), the target resource ('Tdarr Server resource history'), and even provides the exact POST endpoint. It also specifies the returned metrics (CPU, memory, heap usage over time), which distinguishes it from generic status tools, though it does not explicitly contrast it with sibling tools like get_resource_stats or get_performance_stats.

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

Usage Guidelines2/5

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

No guidance is given about when to choose this tool over the many similar sibling tools such as get_resource_stats or get_performance_stats. The endpoint and metric list imply a use case, but there is no explicit when-to-use or when-not-to-use guidance.

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

get_resource_statsA

Get current Tdarr Server resource usage: process uptime and heap, plus host CPU percentage and memory used/total (POST /api/v2/get-res-stats).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are present, so the description carries the full burden. It transparently states the operation is a read-style stats retrieval, lists the returned metrics, and includes the exact endpoint. It does not state whether side effects are possible or mention auth requirements, but the 'Get' phrasing and stats-oriented content make the read-only nature clear.

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

Conciseness5/5

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

A single sentence front-loads the core purpose, then provides a compact list of returned metrics and the endpoint. There is no redundancy or filler; every part of the description adds useful information.

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

Completeness4/5

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

With no output schema, the description must document return values, and it does by naming process uptime, heap, CPU percentage, and memory used/total. Exact field names or units are not specified, but for a zero-parameter statistical snapshot this is nearly complete.

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

Parameters4/5

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

The tool takes zero parameters, so there is no parameter meaning to supplement beyond the empty schema. The schema already fully covers this case, and the description does not need to add parameter details. Baseline 4 for zero-parameter tools is appropriate.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Get current Tdarr Server resource usage' and then enumerates the exact metrics returned (process uptime, heap, host CPU, memory). This clearly distinguishes it from sibling tools like get_resource_history or get_server_time without needing to read schemas.

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 word 'current' establishes a clear point-in-time use case: the agent can choose this tool when it wants an immediate server resource snapshot. It does not explicitly name alternatives or exclusion conditions, so it stops short of a perfect score.

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

get_scanner_statusA

Get the progress of a library's file scanner (POST /api/v2/get-filescanner-status). Poll this after scan_library.

ParametersJSON Schema
NameRequiredDescriptionDefault
library_idYesLibrary ID (dbID), from list_libraries

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It communicates that the tool is pollable and that scanning was started elsewhere, but it does not explicitly state that the call is side-effect free, what the progress payload looks like, or when polling should stop. These are useful inferences but not explicit disclosures.

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

Conciseness5/5

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

The description is two short sentences with no filler. The core purpose and endpoint are front-loaded, and the usage instruction follows immediately with the correct sequential relationship to scan_library.

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

Completeness3/5

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

The tool is simple with one well-documented parameter, and the description gives a clear use sequence after scan_library. However, there is no output schema, and the description never explains what the returned progress data looks like or how an agent can tell the scan is complete, leaving an important gap for a polling tool.

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

Parameters3/5

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

The only parameter, library_id, is already fully documented in the schema with a description including 'from list_libraries'. The description's reference to 'a library's scanner' adds no meaningful semantic detail beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Get the progress of a library's file scanner', and even names the exact endpoint. Its focus on scanner progress clearly distinguishes it from generic siblings like get_status and get_job_report, and it is naturally paired with scan_library.

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 instruction 'Poll this after scan_library' gives explicit, actionable when-to-use guidance and makes the relationship to the initiating sibling clear. It does not mention when not to use it or compare with alternatives such as kill_scanner, so it stops just short of full routing guidance.

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

get_server_logA

Get the Tdarr Server log as plain text (GET /api/v2/get-server-log). Returns the trailing lines only (default 100) — the full log can be very large.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesNoNumber of trailing lines to return (default 100; use 0 for the full log)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It usefully reveals that the tool returns plain text, only trailing lines, defaults to 100, and that the full log is potentially very large. This goes beyond the parameter schema and helps set expectations.

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 compact sentences with no filler. The endpoint, return type, default behavior, and caveat are all communicated efficiently and the most important information is front-loaded.

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

Completeness4/5

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

For a simple one-optional-parameter read tool with no output schema, the description is nearly complete: it covers what is returned, the default behavior, and a relevant warning. It could mention how the 'lines' parameter interacts with the 'full log' note, but the schema already covers that.

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

Parameters3/5

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

The input schema already fully documents the lone 'lines' parameter, including default and the 0-for-full behavior. The description mostly repeats this and adds only a caveat about log size, so it adds minimal new semantic value.

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 names a specific verb and resource ('Get the Tdarr Server log'), states the return format ('as plain text'), and includes the exact API endpoint. This clearly distinguishes it from sibling tools like get_node_log.

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

Usage Guidelines4/5

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

The description gives clear context: this retrieves only the trailing lines of the server log and warns that the full log can be very large. It does not explicitly discuss alternatives or exclusions, but the server vs node distinction is implied by the resource naming.

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

get_server_timeA

Get the current time on the Tdarr Server as a Unix epoch in milliseconds. Useful for interpreting the epoch timestamps returned by file and job records.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the burden of explaining behavior. It clearly identifies this as a read-only retrieval operation with no side effects, and specifies the output unit (Unix epoch milliseconds). The only minor gap is that the exact response shape (e.g., raw number vs. wrapped object) is not disclosed, but for such a simple getter this is sufficient.

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

Conciseness5/5

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

Two concise sentences with no filler. The core action and output format are front-loaded, and the second sentence adds practical context that justifies the tool's existence. Every word earns its place.

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

Completeness5/5

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

For a zero-parameter, read-only tool with no output schema, the description is complete. It states what the tool returns and why it is useful. No significant detail an agent would need to call it correctly is missing.

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

Parameters4/5

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

The tool accepts zero parameters, so the baseline is 4. The description adds relevant context about the returned timestamp format, though there is no parameter semantics to elaborate on. Nothing is missing here.

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 specific action (get), the resource (current time on the Tdarr Server), and the exact format (Unix epoch in milliseconds). This is unambiguous and distinct from any sibling tool, none of which appear to provide time information.

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 concrete use case: interpreting epoch timestamps in file and job records. Since no alternative tool for retrieving server time exists, explicit when-not guidance is unnecessary. The stated purpose effectively tells an agent when to invoke this tool.

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

get_space_savedA

Get space saved by transcoding over time, bucketed (POST /api/v2/stats/get-space-saved). Filter by library, node, worker type or plugin to see which of them actually saves storage.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idNoRestrict to one node
plugin_idNoRestrict to one plugin
timeframeNoTimeframe to report over, as used by the Tdarr UI
library_idNoRestrict to one library
worker_typeNoRestrict to one worker type, e.g. 'transcodecpu'

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It reveals that results are bucketed over time and filterable, and the 'Get' wording implies a read-only stats operation, but it does not explicitly state the operation is non-mutating, mention auth requirements, or describe pagination/output behavior.

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

Conciseness5/5

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

Two sentences with no filler. The main purpose, bucketing behavior, endpoint, and filtering use case are all front-loaded and concise. Every clause adds useful information, and the endpoint path is included for precise invocation.

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

Completeness4/5

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

For a stats tool with zero required parameters and a fully documented schema, the description provides enough context to invoke the tool meaningfully. The lack of an output schema means return-structure details are not covered, but the description's 'space saved over time, bucketed' gives reasonable expectation of the result shape.

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?

All five parameters have schema-level descriptions with 100% coverage, so the schema already documents the filter semantics. The description adds interpretive value by connecting filters to the goal of determining which component actually saves storage, but it does not add syntax or format details beyond the schema.

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

Purpose5/5

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

The description names a specific resource — 'space saved by transcoding' — and a specific action ('Get'), while adding the temporal 'bucketed' aspect. It is clearly distinct from sibling stats tools like get_pie_stats or get_resource_stats because of the explicit 'space saved by transcoding' target.

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

Usage Guidelines4/5

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

The description gives clear context for when to use the tool: to see which library, node, worker type, or plugin actually saves storage. It does not explicitly name alternatives or state when not to use it, but the filtering guidance effectively communicates the intended use case.

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

get_statusA

Get Tdarr Server status: version, build date, uptime, OS and server engine (GET /api/v2/status). Also serves as a connectivity/API-key check — call this first when something looks wrong.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It discloses that this is a GET request, what response fields to expect, and adds the diagnostic role of a connectivity/API-key check. The main gap is not explicitly stating error or unauthorized-access behavior, but the API-key check phrasing implies it.

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 with no wasted words; the core purpose and returned fields are front-loaded, and the second sentence adds the practical diagnostic use case. Every sentence earns its place.

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

Completeness5/5

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

For a zero-parameter, read-only status tool with no output schema, the description is complete: it lists the return fields, gives the endpoint, and explains how to use the call as a first diagnostic step. This is sufficient for an agent to select and invoke it correctly.

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

Parameters4/5

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

The tool has zero parameters, so the schema has nothing to document and the baseline of 4 applies. The description appropriately doesn't include parameter information because none is needed.

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?

States a specific action and resource: 'Get Tdarr Server status' and enumerates the exact fields returned (version, build date, uptime, OS, server engine), plus the GET endpoint. This clearly distinguishes it from sibling status tools like get_db_statuses or get_scanner_status.

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 call this first when something looks wrong, positioning it as a connectivity/API-key check. This gives a clear decision rule for when to use it, though it does not name sibling alternatives or state when not to use it.

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

get_stream_statsA

Get stream-level statistics (POST /api/v2/stats/get-streams) — the codecs, languages and stream types present across the library's files.

ParametersJSON Schema
NameRequiredDescriptionDefault
library_idNoLibrary ID to scope the stats to (default: all libraries)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full behavioral burden. It does disclose that this is a POST endpoint and that it aggregates stream-level facts across the library's files, implying a read-only statistical operation. It does not reveal whether results are computed live, cached, or what the aggregation granularity is, but for a simple stats tool this is acceptable.

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

Conciseness5/5

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

A single sentence with no filler. The verb and resource are front-loaded, followed by the endpoint and a compact list of what the statistics contain. Every element earns its place.

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

Completeness4/5

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

For a simple one-optional-parameter tool with 100% schema coverage, the description sufficiently explains the tool's scope and return content. It could be more explicit about whether the output is counts, arrays, or a structured breakdown, but the provided information is enough for an agent to invoke it correctly in most contexts.

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

Parameters3/5

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

Schema coverage is 100%: library_id is fully described with its optionality and default of all libraries. The description adds no new parameter-level semantics beyond mentioning 'the library's files,' so the baseline score of 3 is appropriate.

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 names a specific verb and resource ('Get stream-level statistics'), cites the endpoint, and enumerates the exact data categories returned: codecs, languages, and stream types. This clearly differentiates it from sibling stats tools like get_resource_stats or get_performance_stats by focusing on stream-level content.

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 the data returned, so an agent can infer it is appropriate when stream composition details are needed. However, it does not explicitly state when to prefer this tool over alternatives such as get_resource_stats or get_performance_stats, nor does it describe exclusions.

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

get_worker_historyA

Get the history of running worker counts by type (POST /api/v2/stats/get-running-worker-hist). Use it to check whether workers were actually busy over a period, or idle waiting for work.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeframeNoTimeframe to report over, as used by the Tdarr UI

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries full behavioral burden. 'Get' and the stats endpoint imply a read-only operation, and the purpose of checking busy/idle adds interpretive context. However, it does not disclose details like response format, whether any filtering occurs, or any operational caveats. Adequate but not rich.

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

Conciseness5/5

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

Two sentences with no filler: the first states exactly what the tool returns, the second gives the practical use case. The key information is front-loaded and every phrase earns its place.

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

Completeness3/5

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

The tool has one optional parameter and no output schema. The description conveys the nature of the result ('history of running worker counts by type') and the use case. However, it does not describe the response structure, the default behavior when timeframe is omitted, or the granularity of the history, leaving some ambiguity for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the only parameter, timeframe. The description adds only a slight contextual link between 'over a period' and the timeframe parameter, not meaningfully more than the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Get'), a clear resource ('history of running worker counts by type'), and even includes the exact endpoint. It clearly differentiates from siblings like get_worker_verdict_history and get_resource_history by focusing on worker-count activity and the busy/idle use case.

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 an explicit use case: 'Use it to check whether workers were actually busy over a period, or idle waiting for work.' It clearly states when to use the tool, though it does not mention alternatives or exclusions, so it falls short of a perfect 5.

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

get_worker_verdict_historyA

Get transcode and health check outcomes over time, bucketed (POST /api/v2/stats/get-worker-verdict-hist) — successes, errors and not-required counts. The quickest way to see whether a change made failures go up.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idNoRestrict to one node
timeframeNoTimeframe to report over, as used by the Tdarr UI
library_idNoRestrict to one library
worker_typeNoRestrict to one worker type, e.g. 'transcodegpu'

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does disclose that results are bucketed over time and include successes, errors, and not-required counts, which is useful behavioral context. However, it doesn't describe response structure, default scoping when no params are provided, or details about what 'not-required' means.

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 filler. It front-loads the core purpose, includes the endpoint, and then immediately gives the practical use case.

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

Completeness4/5

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

For a read-only stats query with four optional well-documented parameters, the description covers the main purpose, the data returned, and the scenario for use. Minor gaps remain around default behavior and exact response shape, but nothing blocks an agent from correctly invoking it.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds general context about bucketed counts but doesn't add details about parameter format, constraints, or default behaviors beyond what the schema says.

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

Purpose5/5

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

The description states a specific verb ('Get'), a specific resource ('transcode and health check outcomes over time'), and the key data returned ('successes, errors and not-required counts'). It also includes the exact API endpoint, making the purpose unambiguous and easy to distinguish from broader stats tools like get_worker_history.

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

Usage Guidelines4/5

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

The description gives clear context: 'The quickest way to see whether a change made failures go up.' This tells an agent when to prefer this tool. It doesn't explicitly name alternatives or exclusions, but the use case is stated clearly.

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

kill_scannerA

Stop a library's file scanner mid-run (POST /api/v2/kill-file-scanner).

ParametersJSON Schema
NameRequiredDescriptionDefault
library_idYesLibrary ID (dbID), from list_libraries

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action and HTTP endpoint but does not disclose side effects, whether the operation is destructive or reversible, permission requirements, or what happens if no scan is running.

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

Conciseness5/5

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

The description is a single sentence that states the action, target, and endpoint with no redundant content. It is appropriately front-loaded and easy 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?

For a simple one-parameter tool with no output schema and no annotations, the core invocation details are present. However, the agent is left without information about what a successful kill returns or how errors are surfaced, which keeps it at a minimum viable level.

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 100% and the only parameter, library_id, is documented as 'Library ID (dbID), from list_libraries'. The tool description itself adds no additional parameter meaning, so the baseline of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Stop') and a clear resource ('a library's file scanner'), and the qualifier 'mid-run' distinguishes it from sibling tools like scan_library and get_scanner_status. Even without naming alternatives, an agent can tell exactly what operation this performs.

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 phrase 'mid-run' implies the tool is appropriate when a scanner is currently executing, which gives some usage context. However, it does not explicitly state when to prefer this tool over alternatives like scan_library or get_scanner_status, nor does it mention conditions such as scanner-not-running behavior.

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

kill_workerA

Kill a worker on a node (POST /api/v2/kill-worker). Unlike cancel_worker_item this removes the worker itself — use it for a worker that is wedged and not responding to a cancel.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idYesNode ID, from list_nodes
worker_idYesWorker ID, from the node's workers in list_nodes(detailed)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does clarify that killing the worker removes the worker itself and is meant for unresponsive workers, which is useful. However, it does not mention side effects, reversibility, or what happens to the work/task currently running on that worker.

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 with no filler. The core action is stated first, and the comparison with cancel_worker_item is packed into a single useful contrast. Every sentence earns its place.

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

Completeness4/5

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

For a simple two-parameter destructive action, the description gives enough information to select and invoke the tool correctly. It is slightly incomplete because it does not explain what response to expect or explicitly warn about consequences, but the low complexity and strong sibling differentiation keep the gap small.

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 100%, and both parameters have descriptive definitions pointing to list_nodes / list_nodes(detailed). The description adds no additional parameter meaning, but the baseline of 3 applies because the schema already documents them adequately.

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

Purpose5/5

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

The description states a specific action ('Kill a worker on a node') with a clear resource and even includes the API endpoint. It explicitly distinguishes itself from cancel_worker_item by noting this removes the worker itself, so an agent can immediately tell them apart.

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

Usage Guidelines5/5

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

The description names the alternative (cancel_worker_item) and gives the exact condition for choosing this tool: when a worker is wedged and not responding to a cancel. This is explicit routing guidance rather than leaving the decision to inference.

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

list_automationsA

List the automation configurations defined on the server. The _id of one of these is the config_id run_automation takes.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

There are no annotations, so the description carries the burden. It states the listing behavior and the key field (_id), but does not disclose output shape, ordering, pagination, or whether it returns full configuration details or only metadata. The read-only nature is reasonably implied by 'list', but not fully elaborated.

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

Conciseness5/5

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

Two short sentences, each earning its place. The list action and server scope are front-loaded, and the downstream relationship to run_automation is stated without any filler.

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

Completeness5/5

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

For a zero-parameter listing tool, the description is complete: it defines what is listed, from where, and what the returned _id is used for. The lack of an output schema is acceptable because the description already identifies the critical field an agent would need.

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

Parameters4/5

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

The tool has zero parameters and schema coverage is trivially 100%, so there is little to document. The description adds useful semantic context by linking the returned _id to run_automation's config_id, which helps an agent understand the value it will receive.

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

Purpose5/5

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

The description uses a specific verb ('list') and a clear resource ('automation configurations defined on the server'). It also anchors the tool's purpose by explaining that the returned _id is the config_id consumed by run_automation, which distinguishes it from related automation 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?

The description clearly implies when this tool is useful: when you need the _id to pass to run_automation. It does not explicitly mention alternatives like get_automation or state when not to use it, but it provides clear operational context without being misleading.

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

list_backupsA

List the Tdarr database backups on the server with their name, size and date (POST /api/v2/get-backups).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral disclosure burden. It does disclose the HTTP method and the output fields, and the verb 'List' implies a read-only operation. It does not explicitly state that no side effects occur, nor does it mention ordering, limits, or failure modes, but for a zero-parameter list call this is adequate.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states exactly what the tool does, the resource, the main output attributes, and the endpoint. There is no filler or redundant content.

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

Completeness5/5

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

For a parameterless list operation with no output schema, the description provides the essential information: what is listed, which attributes are returned, and the full endpoint. There are no nested objects, required parameters, or hidden settings that would require additional context.

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

Parameters4/5

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

The tool has zero parameters and the schema coverage is 100%, so the description has no parameter semantics to add. Per the baseline for zero-parameter tools, this scores well because there are no undocumented inputs that could confuse 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 uses a specific verb ('List'), a clear resource ('Tdarr database backups'), and enumerates the return fields ('name, size and date'). It also includes the exact endpoint, making the tool's purpose unambiguous and distinct from related backup tools like create_backup and delete_backup.

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

Usage Guidelines3/5

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

The intended usage is implied by 'List the Tdarr database backups' — an agent should call this when it wants an inventory of backups. However, there is no explicit guidance about when not to use it or how it compares with sibling backup operations like get_backup_status or delete_backup.

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

list_file_job_reportsA

List every job report recorded for one file (POST /api/v2/list-footprintId-reports). The footprintId is on the file record from get_file, and identifies the file across renames and transcodes.

ParametersJSON Schema
NameRequiredDescriptionDefault
footprint_idYesFile footprintId, from get_file

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does this reasonably by stating that the operation returns every job report for one file and that footprintId uniquely identifies the file across renames and transcodes. It does not mention ordering or output size, but for a simple listing operation this is adequate.

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

Conciseness5/5

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

Two sentences, front-loaded with the core purpose, followed by a useful endpoint reference and a compact explanation of footprintId. There is no wordiness or redundant repetition of schema fields.

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?

The tool has a single required parameter, no output schema, and no annotations. The description provides the necessary context to invoke it correctly: what it lists, how to obtain the footprintId, and why footprintId is the right identifier. Nothing critical is missing.

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

Parameters4/5

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

The schema already fully describes footprint_id as 'File footprintId, from get_file', so the description does not need to repeat that. The description adds value by explaining that footprintId identifies the file across renames and transcodes, giving the agent deeper context for the parameter's meaning.

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

Purpose5/5

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

The description states a clear verb-resource pair: list every job report for one file. It also names the endpoint and explains the footprintId concept, which helps distinguish this from siblings like search_job_reports or get_job_report.

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 conveys when to use this tool: after retrieving a file via get_file, to see all job reports tied to that file. It does not explicitly say when not to use it or call out alternatives for cross-file search, but the prerequisite is clear.

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

list_flowsA

List the Tdarr flows defined on the server with their ID, name, description and size. A library's flowId (from list_libraries) points at one of these.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailedNoReturn the full flow graphs instead of the summary

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. The List verb signals a non-destructive read operation and the scope (defined on the server) is clarified, but the description adds nothing about output shape, pagination, or how the detailed parameter changes behavior beyond what the schema already says.

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 with zero wasted words. The first states the action and the return fields; the second ties flows to libraries via flowId, which is genuinely useful context. Each sentence earns its place.

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

Completeness4/5

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

For a simple listing tool with one optional boolean and no output schema, the description covers the core usage and explains the library relationship. Minor gaps remain: the meaning of size is undefined, and the sibling get_flow is not mentioned as the alternative for fetching an individual flow's details, but an agent can still invoke this tool correctly.

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

Parameters3/5

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

Schema description coverage is 100 percent; the detailed boolean parameter is fully documented in the schema as returning the full flow graphs instead of the summary. The tool description itself adds no parameter-level meaning, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb (List), a resource (Tdarr flows defined on the server), and the returned fields (ID, name, description, size). It clearly identifies what the tool does, though it does not explicitly differentiate it from the sibling get_flow.

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 line about a library's flowId coming from list_libraries gives useful domain context, implying when list_flows becomes relevant. However, there is no explicit when-to-use or when-not-to-use guidance, and the natural alternative get_flow for retrieving a single flow is never mentioned.

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

list_librariesA

List the configured Tdarr libraries with their ID, name, source folder, priority, plugin stack or flow, and scanning settings. The library _id is the dbID every other library and file tool needs.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailedNoReturn the full library records instead of the summary

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of explaining behavior. It makes the operation a read-only list, names the scope ('configured' libraries), and specifies the returned fields and the significance of the _id. It does not explicitly describe the summary-vs-full-record behavior of the detailed parameter, though that is documented in the input schema.

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 with no filler; the first states the action and output fields, and the second provides the most important usage fact. Every sentence earns its place.

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

Completeness4/5

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

For a one-parameter list tool with no output schema, the description is largely complete: it enumerates the output fields and points out why the tool matters. It stops short of explicitly stating the summary default and that detailed=true swaps to full records, but the input schema covers that behavior.

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 100% for the single optional 'detailed' parameter, so the schema already explains its meaning. The description adds no parameter-level detail, which is acceptable under the high-coverage baseline of 3.

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

Purpose4/5

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

The description opens with a specific verb and resource ('List the configured Tdarr libraries') and enumerates the returned fields, so an agent knows exactly what it does. It does not explicitly differentiate from the singular get_library sibling, although the plural 'configured libraries' and the dbID note make the role mostly clear.

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 second sentence gives a concrete use case: this tool returns the library _id/dbID that every other library and file tool needs, so an agent should call it first when it needs identifiers. It provides clear context but no explicit when-not-to-use instructions or a named alternative such as get_library.

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

list_nodesA

List the connected Tdarr nodes (GET /api/v2/get-nodes), keyed by node ID. The summary gives name, paused state, version, worker limits, running worker count and resource stats; pass detailed for the full record including every running worker.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailedNoReturn the full node records instead of the summary

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses that this is a GET operation, that results are keyed by node ID, and what fields the summary versus detailed response includes. It could mention default behavior or empty-result handling, but it gives solid transparency for a read-only listing tool.

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 concise sentences with no filler. The core purpose and endpoint are front-loaded, followed by a clear summary-vs-detailed distinction. Every sentence contributes useful 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?

For a simple optional-boolean list tool with no output schema, the description is complete. It explains the return structure for both summary and detailed modes, and there are no additional parameters or complex behaviors that need elaboration.

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

Parameters4/5

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

Schema coverage is 100% and the boolean 'detailed' parameter is already described in the schema. The description adds meaningful nuance by specifying exactly what the summary contains and what additional data the detailed mode returns, going beyond the schema's one-line description.

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'), the resource ('connected Tdarr nodes'), and the endpoint (GET /api/v2/get-nodes). It also distinguishes the tool from node-related siblings by focusing on listing nodes rather than updating, restarting, or fetching node logs.

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 establishes a clear context: it is for listing connected Tdarr nodes and covers both summary and detailed views. It does not explicitly name alternatives or exclusions, but the purpose is unambiguous enough that an agent can infer when this tool is appropriate compared to other node-management tools.

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

list_plugin_repo_versionsA

List recent commits on the Tdarr plugin repo — SHA, date, message and author (POST /api/v2/plugin-repo-versions). Use it to see what changed upstream before pulling plugin updates.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden of disclosing behavior. It clearly indicates a read-only listing operation, specifies the output fields, and even names the HTTP endpoint. It does not discuss auth or error behavior, but for a simple zero-parameter list tool the description is reasonably transparent.

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 tight sentences deliver the action, resource, output fields, endpoint, and usage context with no filler. The essential information is front-loaded in the first sentence.

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

Completeness5/5

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

For a zero-parameter list tool with no output schema, the description is complete: it identifies what is listed, what fields are returned, the endpoint, and the intended use case. Nothing essential is missing for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

The tool has zero parameters, so there is nothing for the description to explain beyond the schema. The 100% schema coverage plus the lack of parameters makes the baseline 4 appropriate; the description adds no parameter-specific detail because none is needed.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'List recent commits on the Tdarr plugin repo'. It also enumerates the returned fields (SHA, date, message, author), making the tool's behavior unmistakable and clearly distinct from siblings like check_for_update or update_community_plugins.

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

Usage Guidelines4/5

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

The phrase 'Use it to see what changed upstream before pulling plugin updates' gives a clear intended context. It does not explicitly name alternatives or state when not to use it, but the reference to 'before pulling plugin updates' effectively separates it from update-oriented sibling tools.

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

list_subdirectoriesA

List the subfolders of a path as seen by Tdarr Server (POST /api/v2/get-subdirectories). Use it to discover the paths a library can point at — the server sees container paths, not host paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathYesFolder path to list, as visible to Tdarr Server

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description bears the full burden, and it does disclose the key behavioral nuance: results are as seen by Tdarr Server, not the host filesystem. It also identifies the exact API endpoint. It doesn't explicitly state that the operation is read-only or describe error behavior, though 'List' strongly implies non-mutating behavior.

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

Conciseness5/5

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

Two sentences with no filler. The primary action is stated first, followed by the use case and the critical path-scoping caveat. Every sentence earns its place.

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

Completeness4/5

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

For a single-parameter tool with no output schema and no annotations, the description covers the action, the purpose, and the important input-semantics caveat. The agent has enough to invoke it correctly. Minor details like return format or error cases could be added but are not essential here.

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

Parameters4/5

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

Schema coverage is 100% and already describes folder_path as 'visible to Tdarr Server,' so the baseline is 3. The description adds extra meaning by explaining that these are container paths, not host paths, which is not stated in the schema. This additional context helps the agent supply correct path values.

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?

Names a specific verb and resource ('List the subfolders of a path') and clarifies the Tdarr Server viewpoint, distinguishing it from filesystem-level or host-path tools. The container-vs-host path distinction further differentiates it from sibling tools like list_libraries or verify_folder_exists.

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 states the intended use case: 'Use it to discover the paths a library can point at.' The warning that the server sees container paths, not host paths, gives practical guidance for valid inputs. It does not name alternatives or exclusions, but this is adequate for a simple discovery tool.

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

manage_codec_exclusionA

Add, remove or toggle a codec in a library's basic transcoding include/exclude list. Applies to the basic (non-plugin) video or audio transcode settings of the library.

ParametersJSON Schema
NameRequiredDescriptionDefault
codecYesCodec name, e.g. 'hevc', 'h264', 'aac'
actionYesadd puts the codec in the list, remove takes it out, update toggles it
statusNoEnabled state, required for action 'update'
streamYesWhich codec list to change
library_idYesLibrary ID (dbID), from list_libraries

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It does state the three actions and the basic/non-plugin scope, but it does not mention side effects, persistence, idempotence, authorization requirements, or what happens when adding a codec that already exists.

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

Conciseness5/5

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

Two concise sentences, with the action and target front-loaded and the non-plugin clarification earning the second sentence. No filler or redundancy.

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

Completeness4/5

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

For a simple five-parameter mutation tool with fully documented enums and schema, the description plus input schema provides enough context for an agent to select and invoke it correctly. The lack of an output schema and absence of behavioral caveats keep it from a 5.

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 100%, so the baseline is 3. The description mostly restates the action semantics already present in the schema and adds no extra detail about status handling, accepted formats, or edge cases.

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

Purpose5/5

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

The description uses a specific verb phrase ('Add, remove or toggle'), a precise resource ('a codec in a library's basic transcoding include/exclude list'), and explicitly scopes it to basic non-plugin video/audio transcode settings. This clearly differentiates it from plugin-related tools such as manage_library_plugin.

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 that the tool applies only to the basic non-plugin transcode settings, which implicitly routes the agent away from plugin settings and related sibling tools. It does not explicitly name alternatives or state when not to use it, so it falls short of a 5.

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

manage_library_pluginA

Add, remove or enable/disable a classic plugin in a library's plugin stack. Adding requires the plugin source and the position in the stack; get the plugin IDs from search_plugins. Libraries that use a flow instead of a classic stack are not affected.

ParametersJSON Schema
NameRequiredDescriptionDefault
indexNoPosition in the plugin stack, required for action 'add'
actionYesadd appends to the stack, remove deletes it, update toggles its enabled state
sourceNoPlugin source ('Community' or 'Local'), required for action 'add'
statusNoEnabled state, required for action 'update'
plugin_idYesPlugin ID, from search_plugins
library_idYesLibrary ID (dbID), from list_libraries

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It clearly discloses the three actions and the scope (classic plugin stack only), plus add prerequisites. However, it does not mention side effects, reversibility, permission requirements, or behavior when the operation fails, which would be valuable for a mutating tool.

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

Conciseness5/5

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

Three focused sentences, front-loaded with the core action and followed by high-value details: requirements, ID source, and the flow-library exclusion. No filler or redundancy.

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

Completeness4/5

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

For a six-parameter tool with no output schema and no annotations, the description covers action modes, prerequisites, ID sourcing, and a key boundary condition. The schema handles parameter-level details. It does not mention response or error behavior, but that is not essential for correct invocation.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description adds a little by noting that source and position are required for 'add' and that plugin IDs come from search_plugins, but the schema already documents these parametric relationships. It does not significantly augment the schema's parameter descriptions.

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

Purpose5/5

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

The description states a specific action and resource: 'Add, remove or enable/disable a classic plugin in a library's plugin stack.' It also distinguishes the tool from flow-plugin management by noting that flow-based libraries are not affected, making its scope clear even among many similar plugin 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?

The description gives clear context: adding requires a source and stack position, plugin IDs should come from search_plugins, and flow-based libraries are explicitly out of scope. It does not explicitly name an alternative tool for flow-based libraries, but the usage boundary and prerequisites are clearly implied.

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

query_databaseA

Read a Tdarr database collection directly (POST /api/v2/cruddb) for anything the dedicated tools do not cover — global settings, variables, staged items, jobs, statistics. Read-only: this tool cannot insert, update or remove documents. 'getAll' on FileJSONDB returns the entire file database, so prefer search_files there.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesgetAll returns every document; getById and getByIndex look one up by doc_id
doc_idNoDocument ID, required for getById and getByIndex
collectionYesCollection to read

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states the read-only nature: 'this tool cannot insert, update or remove documents'. It also warns about the potentially large result of getAll on FileJSONDB and redirects to search_files. This goes beyond the schema and covers the most important behavioral traits, though it does not mention response format or other edge cases.

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

Conciseness5/5

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

Three sentences with no wasted words. The purpose is front-loaded in the first sentence, the read-only constraint is in the second, and the important getAll caveat is in the third. The structure is logical and scannable.

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

Completeness4/5

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

For a generic fallback query tool with no output schema and no annotations, the description covers the core requirements: what it reads, that it is read-only, when to use it, and one critical caveat about data size. It does not describe response structure or pagination, but those are less critical given the tool's role as a catch-all and the schema's already thorough parameter documentation.

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 schema already covers parameter meaning with 100% description coverage, so the baseline is 3. The description adds extra semantic value by highlighting a mode-collection combination hazard: 'getAll' on FileJSONDB returns the entire file database and recommends search_files instead. This is not present in the schema and helps agents reason about the interaction between mode and collection.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Read a Tdarr database collection directly (POST /api/v2/cruddb)'. It clearly states the tool's scope as a general-purpose reader for anything dedicated tools do not cover, listing examples like global settings and jobs. It also differentiates from the sibling search_files by explicitly preferring that tool for FileJSONDB getAll, making the boundary between tools apparent.

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?

The description explicitly states when to use this tool: 'for anything the dedicated tools do not cover'. It also provides a concrete exclusion: 'prefer search_files there' when using getAll on FileJSONDB. This gives an agent actionable routing guidance relative to siblings, satisfying the when/when-not requirement.

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

query_tableA

Query one of the paginated tables behind the Tdarr UI (POST /api/v2/client/{client_type}) with server-side filtering, sorting and paging. This is the low-level escape hatch for views search_files cannot express; the valid client_type and opts.table values are the ones the Tdarr UI uses for that page. Prefer search_files for plain file lookups.

ParametersJSON Schema
NameRequiredDescriptionDefault
optsNoEndpoint-specific options, e.g. { table: 'table1', dbID: '<libraryId>' }. Tdarr's file tables are table1 transcode queue, table2 transcode success, table3 transcode error, table4 health check queue, table5 health check success, table6 health check error.
sortsNoSort order, e.g. [{ id: 'file_size', desc: true }]
startNoRow offset (default 0)
filtersNoColumn filters, e.g. [{ id: 'file', value: 'Movie' }]
page_sizeNoRows per page (default 25)
client_typeYesThe client endpoint segment, i.e. the UI table being queried

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It conveys that this is a read-style query operation, mentions server-side filtering/sorting/paging, and warns that it is low-level. It could be more explicit about no mutation or response behavior, but the verb and framing are reasonably transparent.

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

Conciseness5/5

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

The description is three sentences with no filler. The core purpose is front-loaded, the low-level nature is stated, and the alternative is named efficiently.

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

Completeness4/5

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

For a complex tool with 6 parameters and no output schema, the description covers the essential context: endpoint, valid value source, relationship to search_files, and pagination capabilities. It stops short of describing the expected response envelope or error behavior, which would improve completeness.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaningful context by explaining that valid client_type and opts.table values are the ones used by the Tdarr UI, which is not stated in the schema and is essential for correct 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 a specific action ('Query one of the paginated tables behind the Tdarr UI') and identifies the underlying endpoint. It also distinguishes itself from search_files, making its purpose and scope immediately clear.

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?

It explicitly frames the tool as a low-level escape hatch for views search_files cannot express and instructs agents to prefer search_files for plain file lookups. This gives a concrete selection rule and clearly identifies the main alternative.

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

read_job_report_fileA

Read one report file belonging to a job (POST /api/v2/read-job-file). Use it for the individual files listed by list_file_job_reports when a job produced more than one report.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID
job_file_idYesReport file ID, from list_file_job_reports
footprint_idYesFile footprintId, from get_file

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden. The word 'Read' implies a non-mutating operation and the endpoint is supplied, but there is no explicit mention of side effects, return content, or authentication needs. This is adequate for a simple read but not highly transparent.

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 filler. The core purpose is front-loaded, and the usage note adds necessary context without redundancy.

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

Completeness4/5

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

For a simple three-parameter read tool, the description plus fully documented schema is largely complete: it says what the tool does, when to use it, and where the IDs come from. The main missing piece is explicit differentiation from the sibling get_job_report, and there is no output schema to clarify the return shape.

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

Parameters3/5

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

Schema coverage is 100%, as each of the three parameters has a description already. The tool description adds no parameter-level detail beyond what the schema provides, so the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Read') and the resource ('one report file belonging to a job'), and explicitly links to list_file_job_reports. It does not explicitly contrast with the sibling get_job_report, so it stops just short of fully distinguishing among all report-related tools.

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

Usage Guidelines4/5

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

It gives a concrete when-to-use scenario: individual files from list_file_job_reports when a job produced more than one report. However, it does not mention get_job_report or state an explicit when-not-to-use condition, so alternatives are only partially addressed.

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

read_pluginA

Read the source of a classic plugin (POST /api/v2/read-plugin-text). Read a Community plugin to understand what it does before adding it to a library, or a Local plugin before editing it.

ParametersJSON Schema
NameRequiredDescriptionDefault
plugin_idYesPlugin ID, from search_plugins
plugin_sourceYesPlugin source, 'Community' or 'Local'

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It conveys the read-only nature through the verb 'Read', discloses the endpoint, and clarifies that source handling differs for Community vs Local plugins. However, it does not disclose error behavior, permissions, or explicitly confirm an absence of 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?

Two sentences, ~50 words, zero filler. The action and endpoint are front-loaded, followed by the two use cases. Every sentence earns its place with no redundant marketing or restating of the name.

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

Completeness4/5

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

For a simple 2-parameter read tool with no output schema and no annotations, the description covers the essential context: what it does, when in the workflow to use it, and that the result is plugin source text. Slightly more detail on response format or failure modes would push it to 5, but nothing critical is missing for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents plugin_id ('from search_plugins') and plugin_source ('Community' or 'Local'). The description adds marginal value by mapping plugin_source values to concrete use cases, but it does not introduce new parameter-level semantics beyond the schema baseline.

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?

States a specific verb ('Read') and resource ('the source of a classic plugin'), and includes the concrete HTTP endpoint (POST /api/v2/read-plugin-text). The two use cases — reading a Community plugin before adding it to a library, or a Local plugin before editing it — clearly distinguish this from sibling tools like save_plugin, create_plugin, verify_plugin, and copy_community_plugin_to_local, so an agent can tell it apart without opening schemas.

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

Usage Guidelines4/5

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

The description gives clear workflow context: use this when you need to understand a Community plugin before adding it to a library, or a Local plugin before editing it. It does not explicitly name alternatives or when-not-to-use conditions — for instance, it doesn't say to use search_plugins for discovery — so it stops one point short of full guidance.

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

relaunch_serverA

Relaunch Tdarr Server to finish applying a downloaded update (POST /api/v2/updater/relaunch). Only call this after check_for_update reported the update as applied — it interrupts running jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden. It clearly discloses the key side effect: the call interrupts running jobs. It also clarifies the required prior state. It does not mention response format or server availability during the relaunch, but the most important behaviors are covered.

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 dense sentences carry the action, purpose, endpoint, precondition, and side-effect warning. Information is front-loaded and there is no filler.

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

Completeness4/5

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

For a zero-parameter tool with no output schema, the description covers purpose, endpoint, when to call, and major side effects. It could be slightly stronger by naming the generic restart_server alternative, but nothing essential is missing for correct invocation.

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

Parameters4/5

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

The tool has zero parameters and the schema is trivially complete. The description adds useful context about update semantics and preconditions, meeting the baseline for a zero-parameter tool.

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

Purpose5/5

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

The description uses a specific verb ('Relaunch'), names the resource ('Tdarr Server'), and states the exact purpose ('to finish applying a downloaded update'). It also includes the endpoint, which makes the tool's role unambiguous and distinguishes it from generic restart 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?

The description gives an explicit precondition: 'Only call this after check_for_update reported the update as applied.' It also warns that the call interrupts running jobs. It does not explicitly name an alternative like restart_server for non-update restarts, so it stops just short of full alternative guidance.

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

remove_library_filesA

Remove every file record of a library from the Tdarr database (POST /api/v2/remove-library-files). Files on disk are NOT touched — this only clears the scan results, which then have to be rebuilt with scan_library. Ask the user before calling this.

ParametersJSON Schema
NameRequiredDescriptionDefault
library_idYesLibrary ID (dbID), from list_libraries

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so thoroughly. It discloses the destructive effect (removes file records), the non-destructive effect on disk, the need to rebuild scan results, and the mandatory user confirmation. This is exemplary transparency for a mutation tool.

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

Conciseness5/5

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

Three sentences with no filler: the first states the core action, the second clarifies the key non-effect and consequence, and the third gives an explicit instruction. Information is front-loaded and every sentence earns its place.

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

Completeness5/5

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

For a single-parameter destructive tool with no output schema, the description covers action, side effects, recovery path, and required user consent. The reference to scan_library and the explicit warning make this complete enough for an agent to call it correctly and safely.

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

Parameters3/5

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

The input schema has 100% coverage with library_id described as 'Library ID (dbID), from list_libraries'. The description adds minimal parameter-specific meaning beyond 'of a library', which is already in the schema, so the baseline of 3 is appropriate.

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 ('Remove every file record of a library from the Tdarr database') and the resource affected, and it explicitly distinguishes this from touching files on disk. It also names the sibling tool scan_library for rebuilding scan results, making differentiation easy.

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?

The description explicitly says to ask the user before calling, and it explains when this operation is appropriate and what it does not do (touch files on disk), plus the follow-up action needed (rebuild with scan_library). This gives clear usage context and an alternative tool.

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

requeue_filesA

Requeue every file of a library for transcoding or health checking (POST /api/v2/set-all-status). Tdarr's file tables are table1 transcode queue, table2 transcode success, table3 transcode error, table4 health check queue, table5 health check success, table6 health check error — requeueing from table2 back to the transcode queue re-runs the whole library.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesRequeue mode as used by the Tdarr UI, e.g. 'transcode' or 'health'
tableYesSource table, e.g. 'table2' for previously transcoded files
library_idYesLibrary ID (dbID), from list_libraries
process_statusYesStatus to set on the files, e.g. 'Queued' to put them back in the queue

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden, and it delivers meaningful behavioral context: it is a bulk write affecting every file in a library, and it explicitly discloses the major side effect that requeueing from table2 're-runs the whole library.' It does not mention reversibility, permissions, or load impact, but the whole-library consequence is the key trait an agent needs.

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

Conciseness4/5

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

The core action is front-loaded in the first clause, and the endpoint parenthetical is tight. The table enumeration is long but earns its place because it is essential for choosing the correct source table. Slightly dense dash-delimited formatting, but every sentence carries information.

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

Completeness4/5

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

For a 4-required-param mutation tool with no output schema and no annotations, the description covers the operation's scope, the endpoint, all table semantics, and the primary side effect. It lacks explicit warning about the operational weight of resubmitting an entire library and does not describe the response, but nothing required to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds genuine value beyond the schema: the full table1–6 taxonomy maps the entire value space of the 'table' parameter and clarifies how 'table' and 'process_status' interact ('requeueing from table2 back to the transcode queue re-runs the whole library'). This exceeds the schema's single example.

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?

States a specific verb and resource ('Requeue every file of a library') with distinct purposes ('for transcoding or health checking'). The scope qualifier 'every file of a library' differentiates it from per-file operations like rescan_file or get_file among the siblings, and the API endpoint reinforces the specific operation.

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

Usage Guidelines3/5

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

The table-mechanics explanation implies the usage scenario (re-running a whole library by moving table2 files back to the transcode queue), which is useful context. However, it never explicitly names alternatives or says when not to use this tool versus bulk_update_files, scan_library, or rescan_file, leaving routing largely to inference.

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

rescan_fileA

Rescan a single file so Tdarr refreshes its ffProbe data and queue status (POST /api/v2/rescan-file). Use it after changing a file on disk outside Tdarr.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_idYesFile ID (full path), from search_files
library_idYesLibrary ID (dbID) the file belongs to

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description bears the full burden of behavioral disclosure. It discloses the immediate effect (refreshes ffProbe data and queue status) and implies mutation via the POST method. However, it does not mention side effects on an in-progress queue entry, reversibility, failure modes, or what response to expect — meaningful gaps for a write 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 with zero filler. The primary action and purpose lead, the endpoint is tucked into parentheses, and the usage condition is a clean second sentence. Every word earns its place.

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

Completeness4/5

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

For a simple 2-parameter action with fully documented schema, the description adequately covers what the tool does and when to call it. The remaining gap is the absence of any mention of the response shape or behavior when the file is not found or is mid-processing — with no output schema, a brief note on the return would fully close it.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters well — file_id even tells the agent where to source the value ('from search_files') and library_id explains it is the dbID. The description adds no parameter information beyond the schema, landing at the baseline of 3.

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

Purpose5/5

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

The description uses a specific verb ('Rescan') with a scoped resource ('a single file') and states the exact purpose (refreshes ffProbe data and queue status). The phrase 'single file' clearly distinguishes it from sibling scan_library, and the endpoint reference adds precision. This is a model of purpose clarity.

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 an explicit trigger condition: 'Use it after changing a file on disk outside Tdarr.' This tells an agent exactly when the tool is appropriate. It does not name alternatives or state when not to use it, so it falls just short of the 5-level explicitness.

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

reset_backup_statusA

Reset a stuck backup status (POST /api/v2/reset-backup-status). Use it when get_backup_status keeps reporting a backup that is no longer running.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It clearly signals a mutation via 'Reset' and the POST endpoint, and explains the intended use case. It does not detail side effects or permissions, but for a zero-parameter status-reset operation, the disclosure 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.

Conciseness5/5

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

The description is two sentences with no filler. It front-loads the core purpose, includes the endpoint for precision, and immediately follows with the usage condition. Every sentence earns its place.

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

Completeness4/5

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

For a simple zero-parameter operation with no output schema, the description provides enough context: what the tool does, when to use it, and the HTTP endpoint. It omits response details, but those are not essential for selecting and invoking this tool correctly.

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

Parameters4/5

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

The input schema has zero parameters, and schema description coverage is 100%. The description therefore does not need to document any parameter semantics; the baseline of 4 applies because there is nothing for the description to add.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Reset a stuck backup status', which clearly identifies the action and target. It also distinguishes itself from get_backup_status by focusing on clearing a stale state rather than reporting current status.

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?

The description explicitly states when to use the tool: 'Use it when get_backup_status keeps reporting a backup that is no longer running.' This names the relevant sibling tool and gives a concrete triggering condition, leaving no ambiguity about when this tool should be selected.

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

restart_nodeA

Restart a node process (POST /api/v2/restart-node). Its running workers are interrupted and their files are requeued.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idYesNode ID, from list_nodes

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It meaningfully discloses that running workers are interrupted and their files are requeued, which is the key disruptive side effect of the operation. It does not cover auth, failure modes, or response behavior, but the core behavioral consequence is clearly stated.

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 concise sentences with no filler: the first names the operation and endpoint, the second explains the behavioral effect. Every sentence earns its place and the key information is front-loaded.

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

Completeness4/5

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

For a simple, one-parameter action with no output schema, the description supplies the essential information: what happens, the endpoint, and the effect on workers and files. It lacks explicit expected-response details and usage routing, but the necessary invocation context is otherwise present.

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

Parameters3/5

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

Schema description coverage is 100%, and the single parameter node_id is already described as coming from list_nodes. The description adds no additional parameter-level meaning, but because the schema fully documents the parameter, the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific action ('Restart a node process'), identifies the resource, and includes the exact HTTP endpoint. It also explains the immediate consequence, which makes the tool's purpose unambiguous and distinguishable from sibling tools like restart_server and restart_ui.

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

Usage Guidelines2/5

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

No guidance is given for when to use this tool instead of alternatives such as disconnect_node, update_node, restart_server, or kill_worker. The side effect of requeueing files hints at one scenario, but there is no explicit condition, prerequisite, or exclusion stated.

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

restart_serverA

Restart Tdarr Server (POST /api/v2/restart-server). Disruptive: running workers are interrupted and every node reconnects. Ask the user before calling this.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the full disclosure burden. It does well by stating the disruptive nature and concrete side effects: 'running workers are interrupted and every node reconnects.' It could add what the response looks like or whether the call is asynchronous, but the critical behavior is covered.

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 and every clause earns its place: the endpoint, the disruptive consequence, and the user-consent requirement. No filler or repetition.

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

Completeness5/5

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

For a zero-parameter, no-output-schema tool, the description is complete with respect to complexity. It names the action, gives the endpoint, warns about side effects, and mandates user confirmation—arguably all an agent needs to decide to invoke it safely.

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

Parameters4/5

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

The input schema has zero parameters and is therefore fully self-explanatory at 100% coverage. The description does not need to add parameter meaning, and for a no-parameter tool the baseline of 4 is appropriate.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Restart Tdarr Server', backed by the exact endpoint '(POST /api/v2/restart-server)'. This clearly identifies the tool's action and distinguishes it from sibling restart tools aimed at the UI or individual nodes.

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

Usage Guidelines4/5

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

The description gives clear invocation guidance: it is disruptive and the agent must 'Ask the user before calling this.' It does not explicitly compare with alternatives like relaunch_server, but the safety and consent context is strong and unambiguous.

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

restart_uiA

Restart the Tdarr web UI process (GET /api/v2/restart-ui). Does not interrupt transcoding — use it when the UI is unresponsive but jobs are fine.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full disclosure burden. It surfaces one crucial behavioral trait—does not interrupt transcoding—which is genuinely useful. However, it omits other expected side effects of a restart, such as brief UI downtime or session termination.

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

Conciseness5/5

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

A single focused sentence with the action front-loaded, the endpoint in parentheses, and the key caveat placed at the end. Every word earns its place—no padding.

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

Completeness4/5

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

For a zero-parameter tool with no output schema, the description sufficiently explains what happens and when to invoke it. Minor gaps include not mentioning what the caller should expect after invocation (e.g., UI downtime or recovery time), but these are not critical for a simple restart action.

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

Parameters4/5

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

The tool has zero parameters, so there are no parameter semantics to clarify. The schema is 100% complete by virtue of having an empty properties object, and the description adds no necessary parameter information.

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 verb 'Restart', the resource 'Tdarr web UI process', and the exact endpoint. This distinguishes it from sibling tools like restart_server or restart_node by explicitly focusing on the UI process.

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?

Gives an explicit trigger condition: 'use it when the UI is unresponsive but jobs are fine.' The clarification that it does not interrupt transcoding also implies a boundary for when not to use it, though it doesn't name alternative tools.

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

run_automationA

Manually trigger an automation (POST /api/v2/run-automation). Scope it to specific libraries or nodes, and use the bypass flags only when you deliberately want to jump the worker or staged-file limits.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNoPayload passed to the automation, shaped by that automation's config
config_idYesAutomation config ID, from list_automations
library_idsNoRestrict the run to these libraries
target_node_idsNoRestrict the run to these node IDs
target_node_namesNoRestrict the run to these node names
execute_immediatelyNoRun now instead of queueing behind existing work
bypass_worker_limitsNoIgnore the nodes' configured worker limits
bypass_staged_file_limitNoIgnore the staged file limit

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the triggering action, the scoping behavior, and cautions about bypassing worker/staged-file limits. However, it does not disclose side effects of running an automation, whether execution is queued or asynchronous, or what kind of response or failure behavior to expect.

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

Conciseness5/5

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

Two tight sentences: the first states the action and endpoint, the second conveys scoping and bypass guidance. Every phrase earns its place, and the most important information is front-loaded.

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

Completeness3/5

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

The description is adequate for a tool with 8 parameters and 100% schema coverage, but it leaves gaps because there is no output schema and no annotations. It does not mention what happens after triggering, whether runs can be destructive, or how results are returned. These are notable for a tool that executes automations.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value by mapping the scoping intent to libraries/nodes and by explicitly warning that bypass flags should be used only deliberately to jump worker or staged-file limits. This goes beyond the individual property descriptions.

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

Purpose5/5

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

The description opens with a clear verb-and-resource statement, 'Manually trigger an automation,' and reinforces it with the exact endpoint, 'POST /api/v2/run-automation.' This clearly distinguishes the tool from sibling tools like list_automations and get_automation, which query rather than execute.

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 actionable context: scope the run to libraries or nodes, and reserve bypass flags for deliberate limit-jumping. It does not explicitly name alternatives or state when not to use the tool, but the 'only when you deliberately want...' phrasing provides a clear exclusion for the bypass behavior.

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

run_help_commandA

Run an ffmpeg or HandBrake help command on the server and return its output (POST /api/v2/run-help-command). Use it to check which encoders, filters or presets the server's binaries actually support before writing transcode arguments.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesWhich binary to query, e.g. 'ffmpeg' or 'handbrake'
textYesArguments to pass, e.g. '-encoders', '-hwaccels' or '-h encoder=hevc_nvenc'

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral disclosure. It clearly states that a help command is executed and its output returned, and frames it as a read-only capability check. However, it does not explicitly confirm the operation is side-effect free or note any restrictions on the 'text' argument, which is a meaningful gap for a tool that runs a binary server-side.

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 with no filler. The endpoint and core action are front-loaded, followed immediately by a practical usage example. Every word earns its place.

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

Completeness4/5

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

For a simple two-parameter tool with no output schema, the description provides enough to understand its purpose, behavior, and intended use. It does not explain the exact output formatting or error conditions, but those are minor for a help-command utility whose output is simply returned. The sibling list contains no comparable tool, so extra disambiguation is unnecessary.

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 100%, with both 'mode' and 'text' already described clearly. The description adds useful context about checking encoders/filters/presets, but it does not provide additional parameter-level semantics beyond the schema. The baseline of 3 is appropriate when the schema carries the parameter documentation burden.

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

Purpose5/5

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

The description uses a specific verb ('Run') and resource ('ffmpeg or HandBrake help command on the server') and clarifies that it returns the output. It distinguishes itself from all sibling tools, none of which execute help commands, and explicitly names the POST endpoint.

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

Usage Guidelines4/5

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

The description gives clear, explicit guidance on when to use the tool: to check which encoders, filters, or presets the server's binaries actually support before writing transcode arguments. It does not state when not to use it or list alternatives, but no similar sibling exists, so exclusions are not necessary.

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

save_pluginA

Write the source of a local classic plugin (POST /api/v2/save-plugin-text). Overwrites the whole file, so read_plugin first and send back the full modified source. Only edit Local plugins — Community plugins are overwritten on the next plugin update.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesComplete new plugin source
plugin_idYesPlugin ID
plugin_sourceYesPlugin source, normally 'Local'

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description bears the full behavioral disclosure burden and handles it well. It reveals the destructive overwrite behavior ('Overwrites the whole file'), the prerequisite read step, and the non-persistence trait of Community plugin edits. It stops short of disclosing response format or error conditions, which keeps it from a 5.

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

Conciseness5/5

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

Three sentences, each carrying distinct information: purpose, destructive behavior plus workflow, and scope restriction. The core purpose is front-loaded and there is zero filler or redundancy.

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

Completeness4/5

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

For a simple 3-parameter write tool with fully documented schema fields and no output schema, the description covers purpose, behavior, safe workflow, and scope exclusions. A note on success indicators or a verify_plugin follow-up would make it fully complete, but nothing needed for correct invocation is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds genuine meaning beyond the schema by explaining why 'text' must be the complete source (because of the whole-file overwrite) and reinforcing that plugin_source is 'Local' by restricting usage to Local plugins. This connects the parameters to the tool's behavior rather than merely restating them.

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

Purpose5/5

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

The description states a specific verb ('Write'), a precise resource ('the source of a local classic plugin'), and even the raw HTTP endpoint, leaving no ambiguity about what the tool does. It also distinguishes itself from siblings like read_plugin and create_plugin by narrowing scope to 'local classic' plugins.

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?

The description gives explicit workflow guidance: 'read_plugin first and send back the full modified source,' naming the sibling tool to use beforehand. It also states when not to use it ('Only edit Local plugins — Community plugins are overwritten on the next plugin update'), making the selection criteria fully explicit.

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

scan_file_detailsA

Run ExifTool, MediaInfo and/or a closed-caption scan against one file and return the results (POST /api/v2/scan-individual-file). Works on any path the server can read, whether or not it is in a library.

ParametersJSON Schema
NameRequiredDescriptionDefault
exiftoolNoRun an ExifTool scan (default true)
file_pathYesFull file path, as Tdarr Server sees it
mediainfoNoRun a MediaInfo scan (default true)
closed_captionsNoScan for closed captions (default false; this one is slow)

TDQS

A3.9/5.0
Behavior3/5

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

No annotations exist, so the description carries the full disclosure burden. It does disclose the actual operations performed (ExifTool, MediaInfo, closed-caption scan) and that results are returned, which is meaningful. However, it never explicitly states the operation is read-only/side-effect-free, and the runtime cost caveat for closed_captions lives only in the schema rather than the description.

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 tight sentences with the primary action front-loaded and zero filler. The parenthetical POST endpoint is mildly redundant for an MCP consumer since the tool name already conveys the operation, but it is short and does not detract from readability.

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

Completeness4/5

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

For a simple four-parameter tool with full schema coverage, the description plus schema cover correct invocation: what scans run, their defaults, and path scoping. The main gap is that no output schema exists and 'return the results' gives no shape of the return value, but this is a minor omission for a straightforward scan utility.

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 100% and each boolean parameter already documents its default, so the baseline is 3. The description adds a small but real semantic clarification for file_path by saying the path need not be in a library, but it contributes nothing beyond the schema for the three scan-type flags.

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?

States a specific verb and resource: it runs ExifTool, MediaInfo and/or a closed-caption scan against a single file and returns results. The clause 'Works on any path the server can read, whether or not it is in a library' clearly differentiates it from library-scoped siblings like scan_library, so an agent can distinguish them at a glance.

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?

Gives clear context: this is for single-file scans at arbitrary server-readable paths, including outside a library. That implicitly routes the agent away from scan_library and rescan_file, but it never names an alternative or states an explicit when-not-to-use exclusion, leaving some routing to inference.

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

scan_libraryA

Start a file scan on a library (POST /api/v2/scan-files). 'scanFindNew' adds files not yet in the database, 'scanFresh' rescans everything from scratch, and 'scanFolderWatcher' scans a specific list of file paths. Scanning is asynchronous — poll get_scanner_status for progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesScan mode. scanFresh discards existing scan results for the library.
pathNoFolder to scan, for scanFresh and scanFindNew. Defaults to the library's own folder.
pathsNoExplicit list of file paths, required for scanFolderWatcher
library_idYesLibrary ID (dbID), from list_libraries

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does disclose key behavioral traits: scanning is asynchronous and should be followed with get_scanner_status. It also explains what each mode does (adds new files, rescans from scratch, scans specific paths), which goes beyond the schema.

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

Conciseness5/5

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

The description is exactly three sentences with no filler: it states the action, explains the modes, and gives post-invocation guidance. Each sentence earns its place.

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

Completeness4/5

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

For a 4-parameter asynchronous action with no output schema, the description covers the start action, mode selection, and follow-up polling. It does not state what the API immediately returns, but the polling instruction partially fills that gap.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds meaning by explaining the three mode values in plain language and implicitly linking scanFolderWatcher to the paths parameter, which the schema only labels as 'required for scanFolderWatcher'.

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

Purpose5/5

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

The description uses a specific verb 'Start' and resource 'a file scan on a library', names the HTTP endpoint, and explains all three scan modes. This clearly distinguishes it from status-only or single-file sibling tools.

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

Usage Guidelines3/5

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

The description gives clear context for starting a library scan and tells the caller to poll get_scanner_status for progress. However, it does not explicitly mention when to prefer this tool over alternatives like rescan_file or scan_file_details, nor any exclusions.

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

search_filesA

Search the Tdarr file database by filename substring and file size (POST /api/v2/search-db). Returns one summarized record per match: path, library, container, size, codecs, and transcode/health status.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYesSubstring to match against the file path (empty for no filter)
detailedNoReturn the full records, including ffProbe and MediaInfo data
less_than_gbNoOnly files smaller than this (default 10000)
greater_than_gbNoOnly files larger than this (default 0)

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden, and it does disclose the return format: one summarized record per match with listed fields. However, it is silent on the 'detailed' parameter, which changes results to full records with ffProbe and MediaInfo data, so the stated return shape is incomplete for one valid invocation mode.

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 with no fluff: the first states the action and criteria, the second states the endpoint and return shape. All information is front-loaded and every sentence earns its place.

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

Completeness3/5

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

The description is complete enough for the default summarized mode, but it does not mention that setting 'detailed' to true returns full ffProbe/MediaInfo records instead of the summarized record. Since there is no output schema, the description should carry more of this return-shape burden, and it also omits any mention of result limits or pagination.

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 100%, so the baseline is 3. The description adds some context by clarifying that 'search' matches against filename/file path and that size filters are supported, but it does not substantially add meaning beyond the schema. The slight wording shift from 'file path' in the schema to 'filename' in the description is minor but not clarified.

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 names a specific verb ('Search'), a specific resource ('Tdarr file database'), and the key filter dimensions (filename substring, file size). It also names the endpoint and describes the returned record shape, making it easily distinguishable from sibling search tools like search_plugins or search_job_reports.

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

Usage Guidelines3/5

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

The description implies when to use this tool: when you need to find files in the Tdarr database by substring or size. However, it does not explicitly state when not to use it or name alternatives such as get_file, query_table, or query_database, so an agent must infer routing from context rather than being told.

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

search_flow_pluginsB

Search the flow plugins — the individual nodes available inside a Tdarr flow (POST /api/v2/search-flow-plugins).

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYesSearch string (empty to list everything)
plugin_typeYesPlugin type filter as used by the flow editor

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It labels the operation as a search and gives the endpoint, but it does not disclose the return format, whether empty searches return all items, pagination behavior, or any potential cost or side effects. This is thin for a tool with no annotation support.

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 entire description is one compact sentence that front-loads the action, identifies the resource, adds a clarifying parenthetical definition, and includes the endpoint. There is no filler or redundant phrasing.

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

Completeness3/5

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

For a two-parameter search tool with full schema coverage, the description is mostly adequate. However, with no annotations and no output schema, it omits return-value expectations and does not distinguish when to choose this over closely related search tools, leaving meaningful gaps for agents.

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 100%, with both parameters already clearly documented. The description adds no additional parameter-level meaning, but none is strictly required since the schema provides explicit descriptions for 'search' and 'plugin_type'.

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

Purpose5/5

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

The description uses a specific verb ('Search'), names the resource ('flow plugins'), and additionally defines what flow plugins are ('individual nodes available inside a Tdarr flow'). It also includes the exact endpoint, making the tool's purpose unambiguous and distinct from sibling tools like search_plugins or search_flow_templates.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as search_plugins, search_flow_templates, or list_nodes. With over 70 sibling tools, an agent is left to infer the correct choice from the name and resource definition alone.

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

search_flow_templatesA

Search the ready-made flow templates (POST /api/v2/search-flow-templates). Read one before designing a flow from scratch — the templates show how the official flows wire their nodes together.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYesSearch string (empty to list everything)
plugin_typeYesTemplate type filter as used by the flow editor

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It transparently presents the operation as a search and reveals the HTTP endpoint, implying a read-only style operation. However, it does not state whether results are paginated, require authentication, or what the response structure looks like, so the transparency is adequate but not rich.

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

Conciseness5/5

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

Two sentences carry exactly the needed content: what the tool searches, the endpoint, and why an agent would use it. There is no filler, and the core purpose is front-loaded.

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

Completeness4/5

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

For a simple two-parameter search tool with no output schema and no annotations, the description is largely sufficient. It names the endpoint, describes the resource, and frames the use case. It could add explicit return-value details, but the statement that templates show how official flows wire nodes gives the agent enough understanding of what will come back.

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 100%, and the schema already documents both parameters, including the useful note that 'search' can be empty to list everything. The tool description adds context that the search targets ready-made templates, but it does not add meaning beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Search the ready-made flow templates' and even gives the exact endpoint. It also clarifies what these templates are ('how the official flows wire their nodes together'), which distinguishes them from related sibling tools like search_flow_plugins that search plugins, not flow compositions.

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 when-to-use trigger: 'Read one before designing a flow from scratch.' This tells the agent the intended context for the tool. It does not explicitly name alternatives or exclusions, but the context is specific 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.

search_job_reportsA

Search the job reports on the server by filename (POST /api/v2/search-job-reports). Returns the matching report filenames and their last-modified time; read one with get_job_report.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYesSearch terms matched against report filenames

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does so well: it states the match criterion, that this is a server-side search, the exact return fields, and the next action. It does not cover empty-result or error behavior, but that is not critical for a simple search tool.

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 compact sentences front-load the purpose, state the return value, and link to the next tool. The endpoint method adds useful context without bloat.

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

Completeness5/5

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

For a single-parameter search tool with no output schema, the description is complete: it covers what is searched, how the parameter maps to behavior, what is returned, and what to do with a result. No essential invocation information is missing.

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

Parameters3/5

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

The sole parameter 'search' already has 100% schema coverage ('Search terms matched against report filenames'), and the description does not add new parameter-level semantics beyond restating that matching is by filename. The baseline of 3 is appropriate because the schema carries the semantic load.

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

Purpose5/5

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

The description uses a specific verb ('Search') with a clear resource ('job reports') and scoping mechanism ('by filename'). It also states the output (filenames and last-modified time), which distinguishes it from related report tools like list_file_job_reports and get_job_report.

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?

It clearly indicates the tool is for finding job reports by filename and suggests the follow-up read operation with get_job_report. It lacks an explicit when-not-to-use note (e.g., to enumerate all reports use list_file_job_reports), but the context is otherwise clear.

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

search_pluginsA

Search the classic plugins available to the server (POST /api/v2/search-plugins). Returns name, type, operation, description, version and source for each match — the source and ID are what manage_library_plugin needs.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYesSearch string (empty to list everything)
plugin_typeYesPlugin type filter as used by the Tdarr plugin browser, e.g. 'Video' or 'Audio'

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral disclosure burden. It discloses the HTTP method, the resource being searched, and the exact fields returned, which covers the core behavior. However, it does not explicitly state that this is read-only, mention authentication needs, or describe pagination/result limits, leaving some behavioral uncertainty.

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

Conciseness5/5

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

The description is compact and front-loaded: it states what the tool does, gives the endpoint, and lists the return fields in two sentences. Every clause earns its place, with no redundant filler.

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

Completeness4/5

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

The description is appropriately complete for a search tool: it explains what is searched, what fields are returned, and how the results connect to manage_library_plugin. It does not mention pagination, sorting, or result limits, and it does not call out search_flow_plugins as the alternative for flow plugins, so a small gap remains, but the core operational context is present.

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

Parameters3/5

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

The input schema already describes both parameters fully: search string and plugin_type filter, with an example for plugin_type, so 100% schema coverage earns a baseline of 3. The description adds no additional parameter-level meaning beyond what the schema already 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 states a specific verb and resource: 'Search the classic plugins available to the server', and even names the HTTP endpoint. It also lists the exact return fields, which makes the tool's purpose unmistakable and distinguishes it from related tools like search_flow_plugins.

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

Usage Guidelines4/5

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

The description gives clear context for when to use this tool by explaining that the returned source and ID are needed by manage_library_plugin. It does not explicitly mention alternatives or exclusion criteria, but the intended use case is clear enough for an agent to route to it appropriately.

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

set_staged_verdictA

Take action on an item staged for user approval (POST /api/v2/transcode-user-verdict) — accept, reject or otherwise resolve a transcode that is waiting on a decision.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemYesThe staged item record, as returned by query_table for the staged view
verdictYesThe verdict to apply, as used by the Tdarr staged-items UI

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It does reveal this is a mutating POST that resolves a pending transcode, but it does not state whether the verdict is reversible, what happens when a verdict is applied, or what error/success behavior to expect. It is acceptable but not deeply transparent.

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?

Single sentence with no filler: action, resource, endpoint, and resolution types are all present and front-loaded. Every part earns its place.

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

Completeness3/5

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

For a two-parameter write operation, the workflow context is reasonably complete and the schema covers parameter meanings. However there is no output schema or annotation, and the description does not say what the tool returns, whether the action is permanent, or what side effects follow a reject/resolve. Those are meaningful gaps.

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

Parameters3/5

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

Both parameters already have descriptions in the schema: item is the staged record from query_table, and verdict is the UI-style verdict string. The description adds general verdict categories ('accept, reject or otherwise resolve') but does not enumerate exact acceptable verdict values or clarify item structure. Baseline 3 applies because schema coverage is high.

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?

States a clear action verb ('Take action') on a specific resource ('item staged for user approval'), and spells out the outcomes: accept, reject, or otherwise resolve a transcode waiting for a decision. The mention of the POST endpoint and the distinction from read-only siblings such as query_table make its purpose unambiguous.

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

Usage Guidelines4/5

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

Provides clear context: use this tool when an item is staged for user approval and a transcode decision is pending. It does not explicitly name alternatives or when-not-to-use conditions, but the workflow context is strong enough to route an agent correctly.

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

stop_find_duplicatesA

Stop a running duplicate detection pass (GET /api/v2/stop-dedupe).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the transparency burden. It clearly states the core behavior (stop) and the precondition (running), which is adequate for basic invocation. However, it does not mention side effects such as whether already-detected duplicates are preserved, or what happens if no pass is currently running.

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

Conciseness5/5

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

A single front-loaded sentence states the action, the target, and the HTTP endpoint with no filler. Every word contributes to the agent's understanding.

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

Completeness4/5

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

For a zero-parameter cancellation tool, this is nearly complete: it names the action, the target, and the endpoint. The only gap is the behavior when no duplicate detection pass is running, but the core invocation context is fully specified.

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

Parameters4/5

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

The tool accepts no parameters, so schema coverage is trivially complete. The description adds enough context by identifying what operation is being stopped, which is all the parameter information an agent needs.

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

Purpose5/5

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

The description uses a specific verb ('Stop') and a specific resource ('running duplicate detection pass'), making the tool's function unmistakable. It also implicitly distinguishes this from its sibling find_duplicates, which starts the corresponding operation.

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

Usage Guidelines4/5

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

The phrase 'a running duplicate detection pass' clearly states the context in which this tool is appropriate. It does not explicitly name alternatives or exclusions, but with zero parameters and a clear counterpart in the sibling list, the intended use is unambiguous.

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

sync_plugins_to_nodesA

Push the server's current plugins out to every connected node (POST /api/v2/sync-plugins). Run it after update_community_plugins or save_plugin so nodes execute the new code.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It reveals that the tool mutates state on every connected node and implies code reload, but it does not disclose potential side effects such as node restarts, failure behavior when nodes are unreachable, or idempotency. This is a meaningful gap for a multi-node write 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 with no filler. The core action and endpoint are front-loaded, followed by a concise usage trigger. Every word earns its place.

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

Completeness4/5

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

For a zero-parameter, no-output-schema tool, the description covers the core semantics and the appropriate sequencing. It stops short of 5 because it omits any caveats about the operational impact on nodes, which would be useful given there are no annotations to convey safety or side effects.

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

Parameters4/5

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

The tool takes zero parameters and the schema is an empty object, so there is nothing for the description to add. The baseline of 4 for zero-parameter tools applies.

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

Purpose5/5

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

The description uses a specific verb ('Push') and resource ('server's current plugins out to every connected node'), and includes the exact endpoint. This clearly distinguishes it from sibling tools like save_plugin or update_community_plugins, which modify the plugin source rather than propagate it.

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 run this tool: after update_community_plugins or save_plugin, with the reason being so nodes execute new code. It doesn't mention exclusions or alternatives, but no sibling tool offers the same sync behavior, so the guidance is sufficient.

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

toggle_folder_watchB

Enable or disable folder watching for one of a library's folders (POST /api/v2/toggle-folder-watch).

ParametersJSON Schema
NameRequiredDescriptionDefault
folderYesPath of the folder to watch, as configured on the library
statusYestrue to enable watching, false to disable
library_idYesLibrary ID (dbID), from list_libraries

TDQS

B3.1/5.0
Behavior2/5

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

Annotations are absent, so the description carries the full burden of behavioral disclosure. It conveys the core toggle action, but does not state side effects (e.g., interaction with the scanner, whether disabling affects ongoing or scheduled scans), persistence, permission requirements, or what the response looks like. This is a significant gap for a mutating tool.

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

Conciseness5/5

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

A single sentence that front-loads the action and includes the API endpoint for precision. Every element earns its place with zero redundancy or filler.

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

Completeness3/5

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

The core action and all parameters are clearly specified and the schema is complete, but with no annotations and no output schema, the description omits expected return values, behavioral consequences, and any link to related tools like verify_folder_exists or the scanner workflow. Adequate for a simple toggle, but with real gaps.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter (folder, status, library_id) already documented in the schema, so the baseline is 3. The description adds no parameter-level meaning beyond the schema, but it does not need to since the schema is complete.

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

Purpose4/5

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

The description states a specific verb ('Enable or disable') and a specific resource ('folder watching for one of a library's folders'), and clarifies the action beyond the tool name. It is distinguishable from sibling scan/list tools by object, but it does not explicitly name an alternative or state what it is not, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as toggle_schedule, scan_library, or verify_folder_exists. No preconditions, exclusions, or workflow context are mentioned, leaving the agent to infer when folder watching should be toggled.

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

toggle_scheduleA

Turn a contiguous range of hour blocks in a library's weekly schedule on or off (POST /api/v2/toggle-schedule). The schedule controls when Tdarr is allowed to process the library.

ParametersJSON Schema
NameRequiredDescriptionDefault
endYesIndex of the last schedule block in the range
typeYesSchedule type the range belongs to, as used by the Tdarr UI
startYesIndex of the first schedule block in the range
library_idYesLibrary ID (dbID), from list_libraries

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It reveals that this is a POST mutation and that the schedule controls when Tdarr can process the library, but it does not disclose the response format, idempotency, or potential side effects beyond toggling the blocks.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the core action, the scope, and the domain context. It contains no filler or redundant repetition of the tool name.

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

Completeness3/5

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

For a mutating tool with no annotations and no output schema, this is adequate but not complete. It explains the effect on the processing schedule, but leaves out return behavior and validation details such as whether start must precede end or how type maps to schedule definitions.

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

Parameters3/5

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

Schema coverage is 100% and every parameter has a description. The description adds helpful context by explaining that blocks are hourly and the range is contiguous, which clarifies start/end, but it does not add per-parameter meaning beyond the schema.

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

Purpose5/5

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

The description states exactly what the tool does: turning a contiguous range of hour blocks in a library's weekly schedule on or off. This clearly distinguishes it from schedule-related siblings like update_schedule_block, which updates individual blocks rather than toggling a range.

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 usage context is implied: use this tool when you need to enable or disable a range of weekly schedule blocks. However, it does not explicitly say when to prefer this over update_schedule_block or when not to use it.

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

update_community_pluginsA

Pull the latest Community plugins from the Tdarr plugin repo (POST /api/v2/update-plugins). This overwrites Community plugins; Local plugins are untouched.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoRe-download even if the server thinks plugins are current (default false)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral disclosure burden. It explicitly warns that Community plugins are overwritten and that Local plugins are unaffected, which are the key behavioral traits beyond the action itself. It does not detail irreversibility or side effects beyond the overwrite warning, but the warning is sufficient for this tool's risk profile.

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

Conciseness5/5

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

Two sentences with no filler. The action and endpoint are front-loaded, and the critical overwrite warning is placed immediately after, making the description scannable and efficient.

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

Completeness5/5

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

For a simple one-optional-parameter tool with no output schema, the description provides everything an agent needs to invoke it correctly: the purpose, the scope, the endpoint, and the destructive overwrite warning. No critical calling information is missing.

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 100%, so the schema fully documents the 'force' parameter. The description adds no additional detail about the parameter beyond what the schema already provides, so the baseline score of 3 applies.

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 names a specific action ('Pull the latest Community plugins'), a specific resource ('Tdarr plugin repo'), and the exact endpoint. It distinguishes itself from sibling plugin tools by stating it operates on all Community plugins and leaves Local plugins untouched.

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 makes the scope clear: use this tool to update Community plugins from the Tdarr repo. The statement that Local plugins are untouched provides an exclusion, though it does not explicitly name alternative tools such as copy_community_plugin_to_local or sync_plugins_to_nodes.

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

update_nodeA

Update a connected node's settings (POST /api/v2/update-node). node_updates is merged into the node record — e.g. { nodePaused: true } to pause a node, { nodeName: 'basement' } to rename it, or { priority: 1 } to change its task priority. Read the current record with list_nodes(detailed) first.

ParametersJSON Schema
NameRequiredDescriptionDefault
node_idYesNode ID, from list_nodes
node_updatesYesObject of node fields to change, e.g. { nodePaused: true }

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals a key behavioral trait: node_updates is merged into the node record, implying a partial update rather than a full replacement. It also notes the node must be connected. It does not discuss reversibility or permissions, but the merge semantics are well covered.

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

Conciseness5/5

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

Three sentences, each earning its place: the action and endpoint, the merge semantics with examples, and the prerequisite read step. Front-loaded and free of fluff.

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

Completeness4/5

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

For a two-parameter update tool with no output schema, the description covers the operation, the update mechanism, example payloads, and the recommended read-before-write workflow. It doesn't describe return behavior or error cases, but those are less critical given the tool's simplicity and the presence of the prerequisite guidance.

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

Parameters4/5

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

Schema description coverage is 100%, so node_id and node_updates are already documented. The description adds value by giving multiple concrete examples of node_updates payloads and explaining the merge behavior, going beyond the schema's single example.

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

Purpose5/5

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

The description states a specific verb ('Update') and resource ('a connected node's settings'), provides explicit examples (pause, rename, priority), and is clearly distinct from sibling tools like restart_node or disconnect_node.

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 prerequisite: 'Read the current record with list_nodes(detailed) first.' This tells the agent the recommended workflow and points to the correct sibling for reading. It does not explicitly enumerate when not to use this tool, but the context is sufficient.

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

update_schedule_blockA

Enable or disable a single block in a library's weekly schedule (POST /api/v2/update-schedule-block).

ParametersJSON Schema
NameRequiredDescriptionDefault
blockYesSchedule block identifier, as stored on the library record
statusYestrue to allow processing in this block, false to block it
library_idYesLibrary ID (dbID), from list_libraries

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does state the core effect (enable/disable a block) and the HTTP method (POST), which is helpful, but it does not mention side effects, reversibility, or what happens after the update.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the action, scope, and endpoint without wasted words. Every element contributes to understanding the tool.

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

Completeness4/5

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

For a simple three-parameter mutation with full schema coverage, the description is nearly complete. It identifies the operation and resource clearly; only minor details like post-update effects or response behavior are absent.

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 100%, so the schema already documents all three parameters clearly. The description adds no new parameter-specific meaning beyond what the input schema 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 uses a specific verb ('Enable or disable'), names the exact resource ('a single block in a library's weekly schedule'), and includes the API endpoint. It clearly distinguishes itself from broader schedule tools like toggle_schedule by emphasizing 'single block'.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when you need to enable or disable one schedule block. However, it provides no explicit guidance about alternatives, prerequisites, or situations where this tool should not be used.

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

verify_folder_existsA

Check whether a folder exists and is readable by Tdarr Server (POST /api/v2/verify-folder-exists). Returns a boolean.

ParametersJSON Schema
NameRequiredDescriptionDefault
folder_pathYesFolder path to check, as visible to Tdarr Server

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the HTTP method and endpoint, the fact that it checks both existence and readability, and the return type (boolean). The verb 'Check' implies a non-mutating operation, which is appropriate for this verification tool. It does not explicitly state 'no changes are made', but for a simple read-only check this is sufficient.

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

Conciseness5/5

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

A single concise sentence communicates purpose, endpoint, and return value without wasted words. The most important information is front-loaded, and there is no redundant repetition of the tool name or schema details.

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

Completeness5/5

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

For a simple verification tool with one fully documented parameter and no output schema, the description is complete: it explains what is checked, what input the agent must provide, and what the boolean result means. No additional context such as pagination, side effects, or complex return structure is needed.

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 100% and the single parameter folder_path is already well-defined in the schema as 'Folder path to check, as visible to Tdarr Server'. The tool description reinforces the server-visible/path concept but does not add significant new meaning beyond the schema.

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

Purpose5/5

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

The description states a specific action ('Check whether a folder exists and is readable') on a clear resource (a folder path), and includes the exact endpoint. It is clearly distinct from siblings like list_subdirectories or search_files, since this tool returns a boolean verification rather than performing discovery or file operations.

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

Usage Guidelines4/5

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

The description makes it clear when to use the tool: whenever an agent needs to confirm that a folder exists and is readable by Tdarr Server before performing file operations. It does not explicitly name alternative tools or list exclusions, but the verification-oriented purpose is specific 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.

verify_pluginA

Check whether a classic plugin exists on the server (POST /api/v2/verify-plugin). Returns a boolean — use it before adding a plugin to a library's stack.

ParametersJSON Schema
NameRequiredDescriptionDefault
communityYestrue to look in Community plugins, false for Local
plugin_idYesPlugin ID

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so the description carries the full disclosure burden. It adds useful behavior context: the HTTP method (POST), the endpoint, and the return type (boolean). However, it does not state error behavior, whether any state changes occur, or permission requirements — though for an existence check these risks are low, the disclosure is not comprehensive.

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

Conciseness5/5

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

Two sentences with no wasted words. The core action is front-loaded, followed by the return type and a usage hint. Every clause earns its place; the endpoint reference adds precision without bloat.

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

Completeness4/5

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

For a simple 2-parameter boolean check with no output schema and no annotations, the description covers the essentials: purpose, endpoint, return type, and when to call it. Minor gaps remain — notably the meaning/behavior of a false result versus an error — but nothing critical is missing for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100% — both community and plugin_id are described in the input schema, so baseline 3 applies. The description adds contextual meaning (classic plugin, library stack) that indirectly clarifies plugin_id's role, but it provides no param-specific detail beyond what the schema already documents.

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?

States a specific verb and resource: 'Check whether a classic plugin exists on the server.' The 'classic' qualifier distinguishes it from flow-plugin tools (search_flow_plugins), and 'exists' differentiates it from verify_folder_exists (folder vs plugin) and search_plugins (searching vs existence check). The endpoint and boolean return tighten the definition further.

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?

Provides clear when-to-use context: 'use it before adding a plugin to a library's stack.' This positions the tool as a pre-condition check. However, it does not name alternatives or state when not to use it (e.g., when to prefer read_plugin or search_plugins), so it stops short of the full 5.

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. Dates show when Glama detected each change.

  1. 85 tool updatesv0.1.0
    • First observedalter_worker_limit
    • First observedbulk_delete_files
    • First observedbulk_update_files
    • First observedcancel_worker_item
    • First observedcheck_for_update
    • First observedcopy_community_plugin_to_local
    • First observedcreate_backup
    • First observedcreate_plugin
    • First observedcreate_sample
    • First observeddelete_backup
    • First observeddelete_cache_file
    • First observeddelete_file
    • First observeddelete_job_report
    • First observeddelete_job_reports
    • First observeddelete_plugin
    • First observeddelete_unhealthy_files
    • First observeddisconnect_node
    • First observedfind_duplicates
    • First observedget_automation
    • First observedget_backup_status
    • First observedget_db_statuses
    • First observedget_dispatch_readiness
    • First observedget_file
    • First observedget_flow
    • First observedget_job_report
    • First observedget_library
    • First observedget_node_log
    • First observedget_package_index
    • First observedget_performance_stats
    • First observedget_pie_stats
    • First observedget_process_info
    • First observedget_resource_history
    • First observedget_resource_stats
    • First observedget_scanner_status
    • First observedget_server_log
    • First observedget_server_time
    • First observedget_space_saved
    • First observedget_status
    • First observedget_stream_stats
    • First observedget_worker_history
    • First observedget_worker_verdict_history
    • First observedkill_scanner
    • First observedkill_worker
    • First observedlist_automations
    • First observedlist_backups
    • First observedlist_file_job_reports
    • First observedlist_flows
    • First observedlist_libraries
    • First observedlist_nodes
    • First observedlist_plugin_repo_versions
    • First observedlist_subdirectories
    • First observedmanage_codec_exclusion
    • First observedmanage_library_plugin
    • First observedquery_database
    • First observedquery_table
    • First observedread_job_report_file
    • First observedread_plugin
    • First observedrelaunch_server
    • First observedremove_library_files
    • First observedrequeue_files
    • First observedrescan_file
    • First observedreset_backup_status
    • First observedrestart_node
    • First observedrestart_server
    • First observedrestart_ui
    • First observedrun_automation
    • First observedrun_help_command
    • First observedsave_plugin
    • First observedscan_file_details
    • First observedscan_library
    • First observedsearch_files
    • First observedsearch_flow_plugins
    • First observedsearch_flow_templates
    • First observedsearch_job_reports
    • First observedsearch_plugins
    • First observedset_staged_verdict
    • First observedstop_find_duplicates
    • First observedsync_plugins_to_nodes
    • First observedtoggle_folder_watch
    • First observedtoggle_schedule
    • First observedupdate_community_plugins
    • First observedupdate_node
    • First observedupdate_schedule_block
    • First observedverify_folder_exists
    • First observedverify_plugin

TDQS

A3.6/5.0
Disambiguation5/5

Every tool targets a distinct resource and action; even close pairs like delete_job_report/delete_job_reports or restart_server/relaunch_server/restart_node are clearly separated by description and target. The detailed descriptions make misselection unlikely.

Naming Consistency4/5

Overall naming follows a predictable verb_noun snake_case pattern (list_x, get_x, delete_x, update_x, search_x). There are minor inconsistencies like check_for_update vs verify_folder_exists, find_duplicates instead of list_duplicates, and alter_worker_limit vs update_node, but these deviations do not obscure the general convention.

Tool Count1/5

85 tools is far beyond the 25+ threshold and creates an enormous, unwieldy surface for an agent to consider. Even if each tool is individually focused, the set as a whole is excessive and hard to navigate.

Completeness3/5

The set covers operations, monitoring, plugin management, read-only flows, job reports, backups, and run-only automations, but lacks create/update/delete tools for libraries, flows, and automations, and has no backup restore. These are notable gaps for full lifecycle management, though core transcode workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    C
    maintenance
    MCP server for interacting with Tdarr, a distributed transcoding system. Provides 21 tools for monitoring workers, managing flows, and controlling transcoding libraries.
    100
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A FastMCP server that exposes Tdarr's OpenAPI endpoints as MCP tools, enabling management and monitoring of Tdarr transcoding jobs.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides AI access to a Thinkbox Deadline 10 render farm via its Web Service REST API, exposing 18 tools for farm status, job management, and monitoring through MCP.
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to interact with a Jellyfin media server, allowing them to search the library, fetch item details, list active playback sessions, and retrieve next-up episodes.
    5
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OrellBuehler/tdarr-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server