Skip to content
Conduit

mcp server

radarr-mcp

MCP server for Radarr — lets AI agents curate the movie library, drive indexer searches, triage the download queue, and diagnose failed imports

OrellBuehler/radarr-mcpcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • Node.js 20 or newer
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "radarr-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@orellbuehler/radarr-mcp"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 23, 2026

Radarr MCP Server

npm npm downloads CI node license: MIT

A Model Context Protocol server that gives AI agents full access to your Radarr movie library — adding and curating movies, driving searches, and diagnosing why a download never turned into a file.

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

  • Curate the library — look movies up on TMDB, add them with the right root folder and quality profile, bulk-edit monitoring, profiles and tags, and remove what you no longer want.
  • Drive searches — run automatic searches, list what the indexers actually returned with their rejection reasons and custom format scores, and grab a specific release.
  • Work the queue — see what is downloading, remove or blocklist a stuck grab, force pending items through, and inspect manual import candidates.
  • Explain itself — history per movie, blocklist, health checks, logs, scheduled tasks, indexer and download client tests, remote path mappings, and release title parsing.

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

Example prompts

"Add Dune Part Two in 4K to my library and search for it."

"Nothing from my library has downloaded since Tuesday. Figure out what broke."

"Which monitored movies are still missing a file, and are there any releases for them right now?"

"This grab has been stuck in the queue with an import warning for two days — what happened?"

"Tag every movie from A24 as 'arthouse' and move them to the 4K profile."

"What's arriving on digital in the next month that I already have monitored?"

Install

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

claude mcp add radarr \
  --env RADARR_URL=http://radarr.local:7878 \
  --env RADARR_API_KEY=your-api-key \
  -- npx -y @orellbuehler/radarr-mcp

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

Getting an API key

RADARR_API_KEY is Radarr's own API key: Settings → General → Security → API Key. It grants full access to the instance, so treat it like a password.

Configuration

VariableRequiredDescription
RADARR_URLyes*Base URL of your instance, e.g. http://radarr.local:7878. A reverse-proxy path such as https://media.example.com/radarr works; /api/v3 is stripped if you include it.
RADARR_SERVERnoAlias for RADARR_URL. Used if RADARR_URL is unset.
RADARR_API_KEYyesRadarr API key.

* One of RADARR_URL or RADARR_SERVER is required. The server exits at startup if the URL or the API key is missing.

Tools

Movies

ToolDescription
list_moviesCompact library listing, filtered by search term, monitoring, file state, profile or tag
get_movieFull record for one movie
lookup_movieSearch TMDB by term, IMDB id or TMDB id
add_movieAdd a movie by TMDB id with root folder, profile and add options
update_movieMerge-update one movie (monitoring, profile, path, tags), optionally moving files
edit_moviesBulk-edit monitoring, profile, availability, root folder and tags
delete_movieRemove one movie, optionally with its files
delete_moviesRemove several movies in one call

Files

ToolDescription
list_movie_filesFiles with quality, size, languages and media info
delete_movie_filesDelete files from disk, leaving the movies in the library
get_rename_previewWhich files the naming config would rename, and to what
list_manual_import_candidatesFiles found for a manual import, with matches and rejections

Searching and releases

ToolDescription
search_releasesInteractive indexer search with rejections and custom format scores
grab_releaseSend a release to the download client
parse_release_titleAsk Radarr how it parses a release title

Queue

ToolDescription
get_queuePaged queue with progress, warnings and import errors
get_queue_statusQueue counters (errors, warnings, unknown items)
remove_queue_itemsRemove items, optionally blocklisting or skipping the redownload
grab_queue_itemsForce pending items through

Activity

ToolDescription
get_calendarUpcoming cinema, digital and physical release dates
get_historyPaged global history of grabs, imports, failures and renames
get_movie_historyFull history for one movie
mark_history_failedMark a grab failed, blocklist it and trigger a replacement
get_wantedMissing or cutoff-unmet movies
get_blocklistBlocklisted releases with the reason
remove_blocklist_itemsUnblock releases

Commands

ToolDescription
run_commandQueue a command from the allowlist (searches, refresh, rescan, rename, syncs)
list_commandsQueued, running and recently finished commands
get_commandStatus of one command

Settings

ToolDescription
list_quality_profilesProfiles with cutoff and allowed qualities
get_quality_profileOne profile in full
list_root_foldersRoot folders with free space and accessibility
list_tagsTags, optionally with what uses them
create_tag / update_tag / delete_tagTag management
list_custom_formatsCustom formats and their specifications
list_quality_definitionsSize limits per quality
list_languagesLanguage ids
get_configRead a settings section (naming, media management, …)
get_naming_examplesExample names for the current naming config

Providers

ToolDescription
list_indexersIndexers with protocol, priority and settings (secrets redacted)
test_indexersTest one or all indexers
list_download_clientsDownload clients (secrets redacted)
test_download_clientsTest one or all download clients
list_import_listsImport lists with their monitor and profile settings
test_import_listsTest one or all import lists
discover_moviesImport list suggestions plus recommended/trending/popular feeds
list_notificationsNotification connections and their events
list_remote_path_mappingsDownload client path → Radarr path mappings

Collections and exclusions

ToolDescription
list_collectionsTMDB collections with missing-movie counts
update_collectionsBulk-update collection monitoring and add settings
list_exclusionsImport list exclusions
add_exclusionExclude a movie from import lists
remove_exclusionsRemove exclusions

System

ToolDescription
get_system_statusVersion, branch, runtime, database, paths
get_healthActive health warnings and errors
get_disk_spaceFree and total space per drive
list_tasksScheduled tasks with last and next run
get_updatesAvailable Radarr updates
get_logsPaged log entries by level

Scope

The server manages the library, not the host. There is deliberately no tool for restarting or shutting down Radarr, restoring or deleting backups, deleting log files, or writing indexer, download client and notification definitions — those stay in the Radarr UI. Provider settings are readable and testable, and API keys and passwords are redacted from the responses.

Destructive library actions are available but never implicit: delete_movie, delete_movies and remove_queue_items default their delete_files/blocklist flags to off, and run_command only accepts commands from an allowlist.

Usage with Claude Code

{
  "mcpServers": {
    "radarr": {
      "command": "npx",
      "args": ["-y", "@orellbuehler/radarr-mcp"],
      "env": {
        "RADARR_URL": "http://radarr.local:7878",
        "RADARR_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Desktop uses the same shape in claude_desktop_config.json.

Development

npm install
npm test              # vitest
npm run lint          # eslint
npm run typecheck     # tsc --noEmit
npm run format:check  # prettier
npm run build         # tsc -> dist/
npm run spec:update   # refetch radarr-openapi.json from the Radarr repo

radarr-openapi.json is the vendored Radarr v3 API schema used as the reference when adding tools.

License

MIT

↑↓ navigate openesc close