Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ARR_LANGNoLanguage of errors and notes: en or esen
RADARR_URLNoFull URL for Radarr, e.g. http://192.168.1.10:7878
SONARR_URLNoFull URL for Sonarr, e.g. http://192.168.1.10:8989
ARR_TIMEOUTNoHTTP timeout in seconds. Scans and interactive searches use higher values15
ARR_READONLYNotrue disables every write toolfalse
PROWLARR_URLNoFull URL for Prowlarr, e.g. http://192.168.1.10:9696
RADARR_API_KEYNoRadarr API key
SONARR_API_KEYNoSonarr API key
PROWLARR_API_KEYNoProwlarr API key
ARR_DOWNLOADS_PATHNoDownload folder as Sonarr/Radarr see it, used by find_orphan_downloads. If unset, it is detected from the queue and the import history
ARR_SEARCH_CONFIRM_ABOVENoSearches or queue removals over this many items need confirmation10
ARR_INDEXER_BUDGET_PER_HOURNoMax searches/grabs/indexer tests per hour (0 = unlimited)30
ARR_SEARCH_COOLDOWN_MINUTESNoSkip items searched less than this many minutes ago (0 = off)60

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_system_statusA

Version and reachability of every configured service (Sonarr, Radarr, Prowlarr).

Use it first when something fails, to check connectivity and API keys. Examples: "Are Sonarr and Radarr up?", "Which Radarr version am I running?"

search_libraryA

Search the local Sonarr/Radarr library (what is already added) by title.

Does not search the internet; use add_series/add_movie for that. Examples: "Do I have The Capture?", "Which Star Wars movies are in my library?"

get_seriesA

Details of one series in Sonarr, including per-season statistics (episodes on disk vs aired, monitored seasons, size).

Examples: "How complete is The Capture?", "Which seasons of Severance are monitored?"

get_episodesA

Episodes of a series with has_file, monitored, air date and file quality.

Examples: "Is S03E04 of The Capture downloaded?", "Which episodes of season 2 are missing?"

get_missingA

Wanted/missing: monitored episodes (Sonarr) or movies (Radarr) without a file.

Examples: "What episodes am I missing?", "Which movies are still not downloaded?"

get_cutoff_unmetB

Items that have a file but below the quality profile cutoff (upgrade candidates).

Examples: "What could be upgraded to better quality?", "Which movies are below cutoff?"

get_calendarA

Upcoming (or recent) episode air dates and movie releases.

Examples: "What airs this week?", "What came out in the last 3 days?"

get_queueA

Download queue with tracked state (downloading, importBlocked, importPending, failed…), status messages explaining why an import is stuck, indexer and download client. Downloads that Sonarr/Radarr did not grab themselves are hidden (as in the web UI) and only counted, unless include_unknown=true. Stalled downloads (no activity, no metadata, no progress for 6 h) are marked with stall_reason and count as problems, even when Sonarr/Radarr report them as healthy.

Examples: "What's stuck in the queue and why?", "Is S03E04 of The Capture still downloading?"

get_historyA

Activity history: grabs (with indexer), imports, failed downloads, deletions.

Examples: "Which indexer did S03E04 of The Capture come from?", "What failed to download in the last 7 days?"

get_blocklistA

Blocklisted releases with the indexer they came from and the reason.

Examples: "What's in the blocklist?", "Which indexer has the most blocklisted releases?"

get_healthA

Health warnings and errors reported by Sonarr/Radarr (and Prowlarr if configured): unreachable download client, missing root folder, indexers failing… each with the usual fix when it is a known check.

Examples: "Any health warnings?", "Is something wrong with Radarr?"

get_logsA

Latest log entries at the given level (default: errors).

Examples: "Show me Sonarr's recent errors", "Why is Radarr failing? check the logs"

get_disk_spaceA

Free and total space of the disks/volumes seen by Sonarr/Radarr.

Examples: "How much disk space is left on the NAS?"

get_command_statusA

Status of an asynchronous command (search, refresh, manual import) started earlier. For a finished manual import it also checks that each file really reached the library.

Examples: "Has the search for S03E04 finished?", "Did the manual import work?"

find_orphan_downloadsA

Importable files in the downloads folder that no queue item is tracking (e.g. Download Station removed the task before Sonarr imported it). Groups them by series/movie and says whether each episode/movie already has a file (duplicate) or is missing. Also flags several files for the same episode. If no folder is configured, the download folders are detected from the queue and the import history. The scan can take a while on a NAS.

Examples: "Why wasn't S03E04 of The Capture imported?", "Is anything stuck in /downloads?"

find_suspicious_releasesA

Detect fake/malicious releases, with the indexer that provided them: executables (.exe .scr .lnk .bat .cmd .msi .zipx) in the queue, history and blocklist; grabs made more than a day before the episode aired or the movie's digital/physical release (likely="fake" if they never imported, "early_release" if they did, e.g. box sets); and different downloads for different episodes with the exact same size.

Examples: "Is there any .exe in the queue?", "Which indexer is sending me fake releases?"

explain_searchA

Explain why Sonarr/Radarr did not grab something: run an interactive search and summarize every release found, grouped by rejection reason (language, size, quality, custom format score, already have it…), plus basic checks (monitored, aired, available). The guids returned can be grabbed with grab_release. Queries every indexer live, so it counts against the hourly indexer budget: use it for one item at a time, never in a loop.

Examples: "Why didn't Sonarr grab S03E04 of The Capture?", "Why is Dune not downloading? What releases are out there?"

diagnose_importA

Diagnose why a download is not being imported: combines the queue status messages, Sonarr/Radarr's own rejections for the files in the download, and path visibility, and returns the probable cause with a concrete fix (remote path mapping, permissions, manual match, not an upgrade, sample, fake release…).

Examples: "Why isn't S03E04 importing?", "Why is everything stuck in importBlocked?"

check_pathsA

Check the path setup that breaks most imports: root folders (accessible, free space), remote path mappings, download clients, whether Sonarr/Radarr can actually see the download clients' output folders, and the related health warnings.

Examples: "Is my remote path mapping right?", "Why does Sonarr say the path does not exist?"

find_stalled_downloadsA

Find downloads that are stuck: reported as stalled / no connections / no seeds by the download client, with a download client error, or — after min_hours — still at 0 % (no_progress), downloading with no speed/ETA (no_activity), or with no metadata yet (size 0, typical of magnets without peers). Paused or queued items are not reported. Pair with remove_from_queue(blocklist=true) to grab a different release.

Examples: "Which downloads are stalled?", "Remove the stuck torrents and find another release"

parse_releaseA

Show how Sonarr/Radarr interpret a release name: matched series/episodes or movie, quality, languages, custom formats and score. If the item already has a file, compares both and estimates whether it would be an upgrade under the quality profile and why.

Examples: "How would Sonarr score 'The.Capture.S03E04.2160p.WEB.DV-GRP'?", "Why is this release 'not an upgrade'?"

grab_releaseA

Send a specific release (from explain_search) to the download client, even if it was rejected. Only works within ~30 minutes of the search; search again if it fails.

Examples: "Grab that 1080p release anyway", "Download the second one from the list"

library_reportB

Disk usage and cleanup report: total size, biggest series/movies, unmonitored items that still have files, ended series that are complete, size per quality (movies) and free space per root folder. Read-only: it never deletes anything.

Examples: "What takes the most space?", "What could I delete to free space?"

preview_renameA

Preview which files would be renamed by the current naming settings (current path -> new path). Nothing is changed. Show it to the user; if they agree, apply with rename_files and the confirmation_token returned here.

Examples: "Which files of The Capture don't follow my naming scheme?", "Preview renaming Dune"

test_download_clientsA

Test the connection to every download client configured in Sonarr/Radarr and report which ones fail and why.

Examples: "Can Sonarr reach my download client?", "Test the download clients"

bulk_edit_previewA

Preview a change to many series or movies at once (monitoring, quality profile, tags, series type, minimum availability): which items match and what would change. Changes nothing. Select items by IDs/titles and/or filters (status, monitored, quality profile, tag, year, complete). Show the preview to the user; if they agree, apply it with bulk_edit_apply and the confirmation_token returned here.

Examples: "Which ended series would be unmonitored?", "Preview putting the 4K profile on all 2024 movies"

rename_filesA

Rename the files of a series (optionally one season) or a movie to match the current naming settings. Call preview_rename first, show it to the user and only call this once they agree, passing the preview's confirmation_token (required for more than one file).

Examples: "Yes, rename the files of The Capture season 3", "Apply the rename to Dune"

bulk_edit_applyA

Apply a change to many series or movies at once. For several items or a filter selection, call bulk_edit_preview first, show it to the user and only call this once they agree, passing the preview's confirmation_token (same selection and changes). A single item named by the user can be changed directly. Root folders are not changed here because that would move files.

Examples: "Yes, unmonitor those ended series", "Tag The Capture with 'uk'"

search_episodesA

Trigger an indexer search for specific episodes (by ID, or series + season + episode numbers). Episodes searched in the last hour are skipped (force=true to override) and searches over many episodes ask for confirmation first, to respect indexer limits.

Examples: "Search S03E04 of The Capture again", "Look for episodes 3 and 4 of season 1 of Severance"

search_seasonA

Trigger an indexer search for a whole season (season packs or every episode).

Examples: "Search season 2 of The Capture"

add_seriesA

Add a new series to Sonarr. Looks it up online first; if several results match it returns the candidates, and if quality profile or root folder are missing it returns the available options instead of guessing.

Examples: "Add The Capture with the HD-1080p profile", "Add Severance and search for it"

search_missingA

Trigger a search for every monitored missing episode (Sonarr) and/or movie (Radarr). Sonarr/Radarr normally find new releases through RSS on their own; mass searches hit every indexer once per item and can exceed indexer limits. Over a few items it first returns how many would be searched and needs confirm=true. Prefer narrower searches.

Examples: "Search everything that's missing", "Search all missing episodes of The Capture"

set_monitoredA

Monitor or unmonitor episodes (by ID, or series + season + episode numbers in one call), a whole season, a whole series, or a movie.

Examples: "Stop monitoring S03E02 of Lioness", "Stop monitoring season 1 of The Capture", "Unmonitor the movie Cats"

remove_from_queueA

Remove items from the download queue, optionally deleting them from the download client and blocklisting the release. With blocklist=true and skip_redownload=false, Sonarr/Radarr automatically search for another release. Removing a torrent from the client stops seeding (private trackers may count it as hit-and-run). Many items at once need confirm=true.

Examples: "Remove the .exe releases from the queue, blocklist them and find another version", "Delete queue item 42 from Download Station"

refresh_itemA

Refresh metadata and rescan files on disk for a series or movie.

Examples: "Refresh The Capture", "Rescan the files of Dune"

manual_importA

Import specific files from the downloads folder into the library (all or nothing). Never imports a whole folder blindly: every file must be listed, must be matched to a series/episode or movie, must have no rejections, and no two files may target the same episode or movie. If anything fails, nothing is imported and the problems are returned. When Sonarr/Radarr cannot identify a file ("Unknown Series", "matched by ID, manual import required"), pass matches to assign it by hand; the assignment is re-validated first. Replacing a file that is already in the library needs allow_replace=true. By default it waits for the import and verifies each file (Sonarr/Radarr report the command as successful even when a file fails to move), returning the reason from their log for any file that did not get in.

Examples: "Import /downloads/The.Capture.S03E04.1080p.mkv", "Import that file as episode 4 of season 3 of The Capture"

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 36 tools

Disambiguation4/5

Most tools have clearly distinct purposes and detailed descriptions help differentiate (e.g., parse_release vs explain_search vs grab_release). However, several diagnostic tools overlap: find_stalled_downloads vs get_queue's stall detection, check_paths vs get_health, and library_report vs get_disk_space, creating some risk of misselection.

Naming Consistency4/5

Almost all tools use snake_case with consistent verb_noun patterns (get_queue, search_episodes, add_series). Minor deviations like library_report (noun_report) and manual_import (adjective_noun) are readable but slightly break the convention.

Tool Count2/5

36 tools far exceeds the typical 3-15 well-scoped range and surpasses the 25+ threshold for 'too many'. While the domain is broad, many tools could be consolidated or scoped down without losing core functionality.

Completeness3/5

The surface is extensive for diagnostics and many management tasks (queue, history, health, imports, renaming, bulk edits). But notable gaps exist: no add_movie tool despite Radarr support, and no way to delete a series/movie from the library, which can block common lifecycle operations.

Maintenance

ActivityMaintained
ResponsivenessNo issues