Skip to main content
Glama
OrellBuehler

sonarr-mcp

by OrellBuehler

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SONARR_URLNoBase URL of your Sonarr instance, e.g. http://192.168.1.10:8989. http:// is assumed if no scheme is given.
SONARR_SERVERNoAccepted as an alias for SONARR_URL.
SONARR_API_KEYYesAPI key from Settings > General > Security.

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
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_seriesA

List all series in the Sonarr library as compact summaries (id, title, year, status, monitored, quality profile, path, statistics). Use get_series for the full object with seasons, images and alternate titles.

get_seriesA

Get the full series object for one series, including seasons with their per-season statistics and monitored flags.

lookup_seriesA

Search TVDB for series to add, by title or by an id term such as 'tvdb:121361' or 'imdb:tt0944947'. Returns candidates with tvdbId, title, year and overview — pass the tvdbId to add_series.

add_seriesA

Add a new series to the library by TVDB id. Resolves the series metadata via lookup, then posts it with the given root folder and quality profile. Use list_root_folders and list_quality_profiles first to get valid ids.

update_seriesA

Update settings on an existing series. Fetches the current series, merges the given fields and puts it back — only the fields you pass are changed.

delete_seriesB

Remove a series from the library. Optionally delete its files from disk and add an import list exclusion so lists do not re-add it.

edit_series_bulkB

Apply the same change to many series at once (the series editor): monitoring, quality profile, series type, season folders, root folder or tags.

delete_series_bulkA

Remove many series from the library at once, optionally deleting their files and adding import list exclusions.

get_series_folderA

Get the folder path Sonarr would use for a series, given the current naming configuration.

set_season_monitoredA

Monitor or unmonitor whole seasons of a series. Pass season numbers (0 is specials); omit them to apply to every season.

list_episodesA

List episodes as compact summaries (id, season/episode number, title, air date, hasFile, monitored). Filter by series, season or episode file. Use get_episode for the full object.

get_episodeA

Get the full episode object, including the overview and the linked episode file with its quality and media info.

set_episodes_monitoredA

Monitor or unmonitor individual episodes. Use set_season_monitored for whole seasons.

list_episode_filesA

List episode files on disk for a series, with path, size, quality, languages and release group.

get_episode_fileB

Get a single episode file, including its full media info.

delete_episode_fileA

Delete one episode file from disk. The episode stays in the library and becomes missing.

delete_episode_filesA

Delete several episode files from disk in one call.

update_episode_filesA

Change the recorded quality, languages, release group or scene name of existing episode files (the file editor). Does not touch the files on disk.

get_calendarA

List episodes airing in a date range — what aired recently and what is coming up. Defaults to today and tomorrow on the Sonarr side.

get_queueB

List the download queue — everything Sonarr is currently downloading or waiting to import, with progress, status and any error messages.

get_queue_detailsA

Get the full, unpaged queue with per-episode detail. Useful for finding the queue item id of a specific episode.

get_queue_statusA

Get queue counts by state — total, errors, warnings and how many items need manual interaction.

remove_queue_itemA

Remove one item from the queue, optionally also removing it from the download client and blocklisting the release so it is not grabbed again.

remove_queue_itemsA

Remove several queue items at once, with the same options as remove_queue_item.

grab_queue_itemA

Force Sonarr to import a queue item that is stuck pending or waiting on manual interaction.

grab_queue_itemsA

Force import of several stuck queue items at once.

get_historyB

Page through the grab and import history — what was grabbed, imported, failed, deleted or renamed, and from which indexer.

get_history_sinceA

Get every history record since a date, unpaged. Useful for 'what happened since yesterday' style questions.

get_series_historyB

Get the full history for one series, optionally narrowed to a single season.

mark_history_item_failedA

Mark a grabbed history item as failed. Sonarr blocklists the release and searches for a replacement.

get_missing_episodesA

Page through monitored episodes that have already aired but have no file — the wanted/missing list.

get_cutoff_unmet_episodesA

Page through episodes that have a file but have not reached their quality profile cutoff — candidates for an upgrade.

get_blocklistA

Page through blocklisted releases — releases Sonarr has been told never to grab again, with the reason they were blocked.

remove_blocklist_itemA

Remove one release from the blocklist so Sonarr may grab it again.

remove_blocklist_itemsA

Remove several releases from the blocklist at once.

list_commandsA

List commands Sonarr is currently running or has recently run, with their status and duration.

get_commandA

Get the status of a single command by id — poll this after starting a search or refresh.

run_commandA

Queue any Sonarr command by name. Known names: RefreshSeries, RescanSeries, EpisodeSearch, SeasonSearch, SeriesSearch, MissingEpisodeSearch, CutoffUnmetEpisodeSearch, DownloadedEpisodesScan, RenameFiles, RenameSeries, RssSync, RefreshMonitoredDownloads, ImportListSync, ManualImport, ClearBlocklist, CheckHealth, Housekeeping, Backup, ApplicationUpdate. Prefer the dedicated tools (refresh_series, search_series, ...) where one exists.

cancel_commandA

Cancel a queued or running command.

refresh_seriesA

Refresh metadata from TVDB for one series, or for the whole library when no id is given.

rescan_seriesA

Rescan the folder of one series (or all series) to pick up files added or removed outside Sonarr.

search_seriesB

Start an automatic search for all monitored missing episodes of a series.

search_seasonC

Start an automatic search for one season of a series.

search_episodesA

Start an automatic search for specific episodes. Use search_releases first if you want to pick a release by hand.

list_scheduled_tasksA

List Sonarr's scheduled maintenance tasks with their interval and last and next execution times.

get_scheduled_taskA

Get a single scheduled task by id.

search_releasesA

Run an interactive indexer search and return the releases found, with quality, size, seeders, custom format score and any rejection reasons. Pass the guid and indexerId of the one you want to grab_release. This can take a while — indexers are queried live.

grab_releaseA

Send a release from search_releases to the download client.

get_manual_import_candidatesA

List files in a folder or a stuck download with the series and episodes Sonarr would map them to, plus any rejection reasons. Use this to diagnose imports that need manual interaction.

get_rename_previewA

Preview which existing files would be renamed under the current naming configuration, showing the old and new paths. Run the RenameFiles command to apply.

parse_release_titleA

Parse a release title or file path the way Sonarr does, showing the series, season and episodes it maps to and the detected quality.

list_quality_profilesB

List quality profiles with their id, name, cutoff and the qualities each one allows. Series are assigned a profile by id.

get_quality_profileA

Get one quality profile in full, including every quality item and custom format score.

get_quality_profile_schemaA

Get a blank quality profile with every quality Sonarr knows about — the template for create_quality_profile.

create_quality_profileA

Create a quality profile. Start from get_quality_profile_schema, set name, cutoff and which items are allowed.

update_quality_profileA

Update a quality profile. Fetch it with get_quality_profile, change what you need and send the whole object back.

delete_quality_profileA

Delete a quality profile. It must not be in use by any series.

list_quality_definitionsA

List quality definitions — the size limits (min, max, preferred MB per minute) Sonarr applies to each quality.

update_quality_definitionsA

Update the size limits of one or more quality definitions. Send the full definition objects from list_quality_definitions with minSize, maxSize or preferredSize changed.

list_custom_formatsA

List custom formats with their specifications. Custom format scores in a quality profile decide which releases are preferred.

get_custom_formatB

Get one custom format with its full specification list.

get_custom_format_schemaA

List the specification types a custom format can use (release title regex, size, language, quality modifier, ...) with their fields.

create_custom_formatA

Create a custom format. Build the specifications from get_custom_format_schema.

update_custom_formatA

Update a custom format. Fetch it first and send the whole object back.

delete_custom_formatB

Delete a custom format.

list_release_profilesA

List release profiles — the required, ignored and preferred term rules applied to release titles.

create_release_profileB

Create a release profile, e.g. { name, enabled: true, required: [], ignored: ['x265'], indexerId: 0, tags: [] }.

update_release_profileA

Update a release profile. Fetch it from list_release_profiles and send the whole object back.

delete_release_profileB

Delete a release profile.

list_delay_profilesA

List delay profiles — how long Sonarr waits for a better release before grabbing, per protocol and tag.

list_languagesA

List the languages Sonarr knows, with the ids used in language profiles and episode file edits.

list_indexersA

List the configured indexers. Secret field values are masked by Sonarr; the 'fields' array is omitted here — use get_indexer for it.

get_indexerA

Get one indexer including its full 'fields' array (the implementation-specific settings).

get_indexer_schemaA

List every indexer implementation Sonarr supports, with the fields each one takes. Use this as the template for create_indexer.

create_indexerA

Add a new indexer. Build the body from get_indexer_schema: it needs name, implementation, configContract and the fields array, plus enableRss, enableAutomaticSearch, enableInteractiveSearch, priority, protocol.

update_indexerA

Update an existing indexer. Fetch it with get_indexer first, change what you need and send the whole object back.

delete_indexerB

Delete a indexer.

test_indexerA

Test a indexer configuration without saving it. Pass a config object to test a draft, or an id to test an existing one.

list_download_clientsA

List the configured download clients. Secret field values are masked by Sonarr; the 'fields' array is omitted here — use get_download_client for it.

get_download_clientA

Get one download client including its full 'fields' array (the implementation-specific settings).

get_download_client_schemaA

List every download client implementation Sonarr supports, with the fields each one takes. Use this as the template for create_download_client.

create_download_clientA

Add a new download client. Build the body from get_download_client_schema: it needs name, implementation, configContract and the fields array, plus enable, protocol, priority, removeCompletedDownloads, removeFailedDownloads.

update_download_clientA

Update an existing download client. Fetch it with get_download_client first, change what you need and send the whole object back.

delete_download_clientC

Delete a download client.

test_download_clientA

Test a download client configuration without saving it. Pass a config object to test a draft, or an id to test an existing one.

list_import_listsA

List the configured import lists. Secret field values are masked by Sonarr; the 'fields' array is omitted here — use get_import_list for it.

get_import_listA

Get one import list including its full 'fields' array (the implementation-specific settings).

get_import_list_schemaA

List every import list implementation Sonarr supports, with the fields each one takes. Use this as the template for create_import_list.

create_import_listA

Add a new import list. Build the body from get_import_list_schema: it needs name, implementation, configContract and the fields array, plus enableAutomaticAdd, shouldMonitor, rootFolderPath, qualityProfileId, seriesType.

update_import_listA

Update an existing import list. Fetch it with get_import_list first, change what you need and send the whole object back.

delete_import_listB

Delete a import list.

test_import_listA

Test a import list configuration without saving it. Pass a config object to test a draft, or an id to test an existing one.

list_notificationsA

List the configured notification connections. Secret field values are masked by Sonarr; the 'fields' array is omitted here — use get_notification for it.

get_notificationA

Get one notification connection including its full 'fields' array (the implementation-specific settings).

get_notification_schemaA

List every notification connection implementation Sonarr supports, with the fields each one takes. Use this as the template for create_notification.

create_notificationA

Add a new notification connection. Build the body from get_notification_schema: it needs name, implementation, configContract and the fields array, plus onGrab, onDownload, onUpgrade, onHealthIssue and the other event toggles.

update_notificationA

Update an existing notification connection. Fetch it with get_notification first, change what you need and send the whole object back.

delete_notificationB

Delete a notification connection.

test_notificationA

Test a notification connection configuration without saving it. Pass a config object to test a draft, or an id to test an existing one.

list_root_foldersA

List root folders with their free space and any unmapped folders sitting in them. add_series needs one of these paths.

get_root_folderA

Get one root folder including the full list of unmapped folders — series folders on disk that are not in the library.

add_root_folderA

Add a root folder. The path must exist and be writable by Sonarr.

delete_root_folderA

Remove a root folder from Sonarr. Files on disk are not touched.

list_tagsA

List tags with their ids and labels. Tags link series to delay profiles, release profiles, indexers and notifications.

list_tag_detailsA

List tags together with everything using them — series ids, indexer ids, notification ids and profile ids.

create_tagC

Create a tag.

update_tagB

Rename a tag.

delete_tagA

Delete a tag. It is removed from every series and provider using it.

list_import_list_exclusionsA

List series excluded from import lists — series that lists will never re-add.

add_import_list_exclusionA

Exclude a series from import lists by TVDB id, so lists stop re-adding it.

delete_import_list_exclusionA

Remove an import list exclusion so lists may add the series again.

list_remote_path_mappingsA

List remote path mappings — how paths reported by a download client on another host translate to paths Sonarr can read.

add_remote_path_mappingA

Add a remote path mapping for a download client host.

delete_remote_path_mappingC

Delete a remote path mapping.

get_naming_configA

Get the file and folder naming configuration.

update_naming_configA

Update the file and folder naming configuration. Fetch it with get_naming_config first, change what you need and send the whole object back.

get_media_management_configB

Get the media management (import, file handling, permissions) configuration.

update_media_management_configA

Update the media management (import, file handling, permissions) configuration. Fetch it with get_media_management_config first, change what you need and send the whole object back.

get_indexer_configA

Get the indexer (RSS interval, retention, availability delay) configuration.

update_indexer_configA

Update the indexer (RSS interval, retention, availability delay) configuration. Fetch it with get_indexer_config first, change what you need and send the whole object back.

get_download_client_configA

Get the download client (completed and failed download handling) configuration.

update_download_client_configA

Update the download client (completed and failed download handling) configuration. Fetch it with get_download_client_config first, change what you need and send the whole object back.

get_import_list_configB

Get the import list configuration.

update_import_list_configA

Update the import list configuration. Fetch it with get_import_list_config first, change what you need and send the whole object back.

get_host_configA

Get the host (port, URL base, proxy, logging) configuration.

get_ui_configA

Get the UI (date format, first day of week) configuration.

get_naming_examplesA

Preview the filenames a naming format would produce, without saving it. Pass a naming config object to try a draft format.

get_system_statusA

Get version, branch, runtime, install source, OS and the paths Sonarr is using. Start here when diagnosing anything.

get_healthA

Get the active health check warnings and errors, with the wiki link explaining each one.

get_disk_spaceA

Get free and total space for every drive and root folder Sonarr can see.

get_updatesA

List available Sonarr updates for the current branch, with changelogs and whether each is installed or installable.

list_logsA

Page through Sonarr's log entries, newest first by default. Filter by level to find errors quickly.

list_log_filesA

List the log files on disk with their names, sizes and download paths.

get_log_fileA

Download the contents of one log file as text.

list_backupsA

List the database backups Sonarr has taken, with their type, size and date. Run the Backup command to create a new one.

restart_sonarrA

Restart the Sonarr application. It is unreachable for a few seconds afterwards.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/sonarr-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server