radarr-mcp
Provides tools for managing a Radarr instance, including movies, movie files, the download queue, history, indexers, import lists, custom formats, tags, commands, and system status.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@radarr-mcpSearch for the movie Dune and add the first result"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
radarr-mcp
MCP server exposing Radarr's v3 REST API (OpenAPI 3.0.4) as tools, so an LLM can read and manage a Radarr instance: movies, movie files, the download queue, history, indexers, import lists, custom formats, tags, commands, system status, and more. Full surface — reads and writes, with destructive tools flagged.
Built with FastMCP.
Getting an API key
Generate one in Radarr Settings > General > Security. Auth is the
X-Api-Key header.
Related MCP server: arr-stack-mcp
Install
Download a wheel from the latest release
and install it as a uv tool (no repo checkout needed):
uv tool install radarr_mcp-*.whlThis puts a radarr-mcp command on your PATH. Register it with Claude Code:
claude mcp add radarr \
--env RADARR_URL=http://your-radarr-host:7878 \
--env RADARR_API_KEY=<key> \
-- radarr-mcpFrom source
uv sync
cp .env.example .env # fill in RADARR_URL and RADARR_API_KEYclaude mcp add radarr \
--env RADARR_URL=http://your-radarr-host:7878 \
--env RADARR_API_KEY=<key> \
-- uv run --directory /path/to/radarr-mcp radarr-mcpConfig
Env var | Required | Default |
| yes | - |
| yes* | none (no |
* Every API endpoint requires auth; practically you must set it, but the server still starts without one so errors surface from the API rather than at startup.
Tools
One tool per Radarr v3 JSON endpoint (plus GET /ping). Naming is
radarr_<verb>_<resource>. GET endpoints are read-only; POST/PUT are writes;
DELETE endpoints are flagged destructive.
Tool | Method | Endpoint |
AlternativeTitle | ||
| GET |
|
| GET |
|
AutoTagging | ||
| POST |
|
| GET |
|
| GET |
|
| PUT |
|
| DELETE |
|
| GET |
|
Backup | ||
| GET |
|
| POST |
|
| POST |
|
| DELETE |
|
Blocklist | ||
| GET |
|
| DELETE |
|
| GET |
|
| DELETE |
|
Calendar | ||
| GET |
|
Collection | ||
| GET |
|
| PUT |
|
| PUT |
|
| GET |
|
Command | ||
| POST |
|
| GET |
|
| DELETE |
|
| GET |
|
Credit | ||
| GET |
|
| GET |
|
CustomFilter | ||
| GET |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
CustomFormat | ||
| GET |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
| PUT |
|
| DELETE |
|
| GET |
|
Cutoff | ||
| GET |
|
DelayProfile | ||
| POST |
|
| GET |
|
| PUT |
|
| DELETE |
|
| PUT |
|
| GET |
|
DiskSpace | ||
| GET |
|
DownloadClient | ||
| GET |
|
| POST |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
| POST |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
DownloadClientConfig | ||
| GET |
|
| PUT |
|
| GET |
|
ExtraFile | ||
| GET |
|
FileSystem | ||
| GET |
|
| GET |
|
| GET |
|
Health | ||
| GET |
|
History | ||
| GET |
|
| POST |
|
| GET |
|
| GET |
|
HostConfig | ||
| GET |
|
| PUT |
|
| GET |
|
ImportList | ||
| GET |
|
| POST |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
| POST |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
ImportListConfig | ||
| GET |
|
| PUT |
|
| GET |
|
ImportListExclusion | ||
| GET |
|
| POST |
|
| POST |
|
| DELETE |
|
| GET |
|
| PUT |
|
| DELETE |
|
| GET |
|
ImportListMovies | ||
| GET |
|
| POST |
|
Indexer | ||
| GET |
|
| POST |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
| POST |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
IndexerConfig | ||
| GET |
|
| PUT |
|
| GET |
|
IndexerFlag | ||
| GET |
|
Language | ||
| GET |
|
| GET |
|
Localization | ||
| GET |
|
| GET |
|
Log | ||
| GET |
|
LogFile | ||
| GET |
|
ManualImport | ||
| GET |
|
| POST |
|
MediaManagementConfig | ||
| GET |
|
| PUT |
|
| GET |
|
Metadata | ||
| GET |
|
| POST |
|
| POST |
|
| GET |
|
| POST |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
MetadataConfig | ||
| GET |
|
| PUT |
|
| GET |
|
Missing | ||
| GET |
|
Movie | ||
| GET |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
MovieEditor | ||
| PUT |
|
| DELETE |
|
MovieFile | ||
| GET |
|
| DELETE |
|
| PUT |
|
| PUT |
|
| PUT |
|
| DELETE |
|
| GET |
|
MovieFolder | ||
| GET |
|
MovieImport | ||
| POST |
|
MovieLookup | ||
| GET |
|
| GET |
|
| GET |
|
NamingConfig | ||
| GET |
|
| GET |
|
| PUT |
|
| GET |
|
Notification | ||
| GET |
|
| POST |
|
| POST |
|
| GET |
|
| POST |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
Parse | ||
| GET |
|
Ping | ||
| GET |
|
QualityDefinition | ||
| GET |
|
| GET |
|
| PUT |
|
| PUT |
|
| GET |
|
QualityProfile | ||
| POST |
|
| GET |
|
| DELETE |
|
| PUT |
|
| GET |
|
QualityProfileSchema | ||
| GET |
|
Queue | ||
| GET |
|
| DELETE |
|
| DELETE |
|
QueueAction | ||
| POST |
|
| POST |
|
QueueDetails | ||
| GET |
|
QueueStatus | ||
| GET |
|
Release | ||
| POST |
|
| GET |
|
ReleaseProfile | ||
| POST |
|
| GET |
|
| DELETE |
|
| PUT |
|
| GET |
|
ReleasePush | ||
| POST |
|
RemotePathMapping | ||
| POST |
|
| GET |
|
| DELETE |
|
| PUT |
|
| GET |
|
RenameMovie | ||
| GET |
|
RootFolder | ||
| POST |
|
| GET |
|
| DELETE |
|
| GET |
|
System | ||
| POST |
|
| GET |
|
| GET |
|
| POST |
|
| GET |
|
Tag | ||
| GET |
|
| POST |
|
| PUT |
|
| DELETE |
|
| GET |
|
TagDetails | ||
| GET |
|
| GET |
|
Task | ||
| GET |
|
| GET |
|
UiConfig | ||
| GET |
|
| PUT |
|
| GET |
|
Update | ||
| GET |
|
UpdateLogFile | ||
| GET |
|
Endpoints excluded on purpose: | ||
static web routes, the | ||
(media covers, raw log file contents) — |
For POST/PUT tools, the request body is passed as a single body object (or
body list for array-bodied endpoints); query/path params are explicit
arguments. Optional params are omitted when unset so the API's defaults apply.
Development
make help # list all commandsCommand | Does |
|
|
| Offline tests - one per endpoint, mocked HTTP |
| Tests against the live instance (needs |
| Build wheel + sdist into |
| Bump the version in |
| Remove build artifacts |
The release workflow (.github/workflows/release.yml) builds and publishes to
Releases whenever a v*
tag is pushed - so the usual flow is make bump-patch, commit, then tag and
push.
The integration suite is read-only by default (GET endpoints only). Set
RADARR_WRITE_TESTS=1 to also exercise POST/PUT/DELETE against a scratch tag
(created, updated, then deleted). Never run write tests against a production
library.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for managing a media server stack (Plex, Radarr, Overseerr, Bazarr, Prowlarr, Trakt.tv) using natural language to browse, request, and discover content.12MIT
- Alicense-qualityAmaintenanceA Model Context Protocol server that exposes Sonarr, Radarr, Lidarr, and Jellyfin to any MCP client through a curated tool layer for LLM consumption.MIT
- Flicense-qualityCmaintenanceAn MCP server that enables AI assistants to manage your Radarr movies and Sonarr TV shows, including search, add, delete, monitor, and grab releases.
- Alicense-qualityCmaintenanceMCP server that enables local LLMs to manage a home media stack including Radarr, Sonarr, Prowlarr, and others.MIT
Related MCP Connectors
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/SavageCore/radarr-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server