Skip to main content
Glama

Retry a failed download

retry_download

Retry failed SABnzbd or NZBGet downloads, or requeue failed or cancelled Shelfmark books, after previewing and confirming the action.

Instructions

Retries one failed download on SABnzbd or NZBGet, the client that holds the files, or a failed or cancelled book on Shelfmark, which queues it again if Shelfmark says it can. It picks what to send from the job itself: a SABnzbd job paused for a password is unlocked, a failed SABnzbd job is retried, an NZBGet download with missing articles fetches them again, and one that only failed to unpack is post-processed again. Give password when the failure was an encrypted archive; it comes from the site the NZB came from and is never shown back. Take id from the get_history or get_queue row. The preview checks whether Radarr or Sonarr already grabbed a replacement, since retrying then can leave two copies. If no *arr imports the result, trigger_scan with action: "import" does. Safe tier. Previews first; confirm to apply it.

Input Schema

NameRequiredDescriptionDefault
idYesthe id on that client's get_history or get_queue row
confirmNoThe token from this tool's preview, passed back verbatim to apply it. Single-use and bound to the previewed arguments.
dry_runNoPreview without a confirm token, for "what would happen if" questions; not the first step of a real change.
serviceYes
instanceNoWhich instance (e.g. "4k") when several of this service exist. Omit it when there is one.
passwordNothe archive password, from the site the NZB came from

Output Schema

NameRequiredDescriptionDefault
noopYes
tierYes
toolYes
resultNo
targetYes
appliedYes
dry_runYes
effectsYes
serviceYes
summaryYes
audit_idNo
warningsNo
operationYes
uncheckedNo
next_stepsNo
permissionYes
confirm_errorNo
confirm_tokenNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed20 schema fields changedv1.74.0
    • removedInput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • changedInput schema / properties / confirm / description
      Previous value: -"The confirmation token from this same tool's preview of this same operation. Omit it to get a preview and a token; pass the token back verbatim to apply the change. Tokens are single-use, expire, and are bound to the exact operation and arguments previewed."New value: +"The token from this tool's preview, passed back verbatim to apply it. Single-use and bound to the previewed arguments."
    • changedInput schema / properties / dry_run / description
      Previous value: -"Preview only: resolve the target and describe exactly what would happen, then stop. Never mutates anything and never returns a confirmation token. Use this to answer \"what would happen if…\" — not as the first step of actually doing it."New value: +"Preview without a confirm token, for \"what would happen if\" questions; not the first step of a real change."
    • changedInput schema / properties / instance / description
      Previous value: -"Which instance, when several of this service are configured — for example \"4k\" or \"hd\". Omit it when there is only one. If several are configured and you omit it, the call is refused and the names are listed."New value: +"Which instance (e.g. \"4k\") when several of this service exist. Omit it when there is one."
    • removedInput schema / properties / service / description
      Removed value: -"sabnzbd, nzbget or shelfmark."
    • changedInput schema / properties / service / enum
      Previous value: -[
      -  "radarr",
      -  "sonarr",
      -  "whisparr",
      -  "lidarr",
      -  "prowlarr",
      -  "bazarr",
      -  "jellyfin",
      -  "seerr",
      -  "sabnzbd",
      -  "nzbget",
      -  "transmission",
      -  "qbittorrent",
      -  "plex",
      -  "profilarr",
      -  "cleanuparr",
      -  "reclaimerr",
      -  "dispatcharr",
      -  "shelfmark",
      -  "grimmory"
      -]New value: +[
      +  "sabnzbd",
      +  "nzbget",
      +  "shelfmark"
      +]
    • removedOutput schema / $schema
      Removed value: -"https://json-schema.org/draft/2020-12/schema"
    • removedOutput schema / properties / applied / description
      Removed value: -"Whether the change actually happened. False on every preview, refusal and no-op."
    • removedOutput schema / properties / audit_id / description
      Removed value: -"The audit row this call wrote. Every branch writes one, including previews and refusals."
    • removedOutput schema / properties / confirm_error / description
      Removed value: -"Why a presented token was rejected. Present only when one was presented."
    • removedOutput schema / properties / confirm_token / description
      Removed value: -"Present when a preview is awaiting confirmation. Single-use, expiring, bound to this exact operation and arguments."
    • removedOutput schema / properties / dry_run / description
      Removed value: -"Whether this was an explicit preview."
    • removedOutput schema / properties / effects / description
      Removed value: -"Itemised consequences, most severe first. Empty is legitimate for a no-op."
    • removedOutput schema / properties / next_steps / description
      Removed value: -"Present on an applied write when another call is worth offering. Offer it to the person; do not run it."
    • removedOutput schema / properties / noop / description
      Removed value: -"True when the request resolved but there was nothing to do — already monitored, already approved."
    • removedOutput schema / properties / result / description
      Removed value: -"Whatever the service returned, on a write that landed."
    • removedOutput schema / properties / summary / description
      Removed value: -"One sentence, safe to show a human."
    • removedOutput schema / properties / target / description
      Removed value: -"The resolved id the write acts on — what the confirmation token is bound to."
    • removedOutput schema / properties / unchecked / description
      Removed value: -"Present when a service could not be asked, so its absence from `warnings` means nothing."
    • removedOutput schema / properties / warnings / description
      Removed value: -"Present on a preview when another service has something to say about this change. Tell the user before confirming."
  2. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the annotations, it discloses per-service behavior (a password-paused SABnzbd job is unlocked, an NZBGet job with missing articles is refetched, an unpack failure is re-post-processed) and that the password is never echoed back. It also warns that the preview checks whether Radarr or Sonarr already grabbed a replacement, avoiding duplicate copies.

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 and the preview-then-confirm model are front-loaded and each sentence carries operational content. It is dense and slightly overlong in the per-service behavior list, but nothing is truly redundant.

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 6-parameter mutation with an output schema and preview token flow, the description covers dispatch logic, credential sourcing, prerequisites, and the fallback path. Nothing an agent needs 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 already 83%, so the baseline is a 3; the description goes further by explaining the origin and sensitivity of password and the provenance of id. It says less about instance (multi-instance disambiguation) and nothing that extends the dry_run semantics already in 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 first sentence names a specific verb (retries) and a precisely scoped resource (one failed download on SABnzbd or NZBGet, or a failed/cancelled book on Shelfmark), then enumerates which failure modes it handles per client. An agent can distinguish this from siblings like get_history, get_queue, and trigger_scan without opening any schema.

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 states where to source the id (the get_history or get_queue row), when to supply password, when to prefer a scan, and the preview-then-confirm workflow. It also names the concrete alternative path -- trigger_scan with action: "import" -- for the case where no *arr imports the result.

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