Server data from the Official MCP Registry
MCP server for *arr media suite - Sonarr, Radarr, Lidarr, Readarr, Prowlarr
MCP server for *arr media suite - Sonarr, Radarr, Lidarr, Readarr, Prowlarr
Valid MCP server (2 strong, 4 medium validity signals). 1 known CVE in dependencies (0 critical, 1 high severity) Package registry verified. Imported from the Official MCP Registry. Trust signals: trusted author (6/6 approved).
3 files analyzed · 2 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
This plugin requests these system permissions. Most are normal for its category.
Set these up before or after installing:
Environment variable: SONARR_URL
Environment variable: SONARR_API_KEY
Environment variable: RADARR_URL
Environment variable: RADARR_API_KEY
Environment variable: LIDARR_URL
Environment variable: LIDARR_API_KEY
Environment variable: READARR_URL
Environment variable: READARR_API_KEY
Environment variable: PROWLARR_URL
Environment variable: PROWLARR_API_KEY
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-aplaceforallmystuff-mcp-arr": {
"env": {
"LIDARR_URL": "your-lidarr-url-here",
"RADARR_URL": "your-radarr-url-here",
"SONARR_URL": "your-sonarr-url-here",
"READARR_URL": "your-readarr-url-here",
"PROWLARR_URL": "your-prowlarr-url-here",
"LIDARR_API_KEY": "your-lidarr-api-key-here",
"RADARR_API_KEY": "your-radarr-api-key-here",
"SONARR_API_KEY": "your-sonarr-api-key-here",
"READARR_API_KEY": "your-readarr-api-key-here",
"PROWLARR_API_KEY": "your-prowlarr-api-key-here"
},
"args": [
"-y",
"mcp-arr-server"
],
"command": "npx"
}
}
}From the project's GitHub README.

MCP server for the *arr media management suite - Sonarr, Radarr, Lidarr, and Prowlarr.
Supports both local stdio mode for Claude/Codex-style clients and remote HTTP mode for hosted MCP clients such as ChatGPT connectors.
| Category | Capabilities |
|---|---|
| Sonarr (TV) | List series, view episodes, search shows, trigger downloads, check queue, view calendar, review setup |
| Radarr (Movies) | List movies, search films, trigger downloads, check queue, view releases, review setup |
| Lidarr (Music) | List artists, view albums, search musicians, trigger downloads, check queue, view calendar, review setup |
| Prowlarr (Indexers) | List indexers, search across all trackers, test health, view statistics |
| Cross-Service | Status check, unified search across all configured services |
| Configuration | Quality profiles, download clients, naming conventions, health checks, storage info |
| TRaSH Guides | Reference quality profiles, custom formats, naming conventions, compare against recommendations |
npx mcp-arr-server
MCP_TRANSPORT=http PORT=3000 npx mcp-arr-server
By default the remote server listens on 127.0.0.1:3000 and serves MCP on /mcp.
Environment variables for remote mode:
MCP_TRANSPORT=http to enable remote Streamable HTTP transportHOST to override the bind host (default 127.0.0.1)PORT to override the port (default 3000)MCP_PATH to override the MCP endpoint path (default /mcp)Build locally:
docker build -t mcp-arr .
Run in local stdio mode:
docker run --rm -i \
-e SONARR_URL=http://host.docker.internal:8989 \
-e SONARR_API_KEY=your-sonarr-api-key \
mcp-arr
Run in remote HTTP mode:
docker run --rm -p 3000:3000 \
-e MCP_TRANSPORT=http \
-e HOST=0.0.0.0 \
-e PORT=3000 \
-e SONARR_URL=http://host.docker.internal:8989 \
-e SONARR_API_KEY=your-sonarr-api-key \
mcp-arr
Minimal docker-compose.yml:
services:
mcp-arr:
build: .
ports:
- "3000:3000"
environment:
MCP_TRANSPORT: http
HOST: 0.0.0.0
PORT: 3000
SONARR_URL: http://host.docker.internal:8989
SONARR_API_KEY: your-sonarr-api-key
RADARR_URL: http://host.docker.internal:7878
RADARR_API_KEY: your-radarr-api-key
git clone https://github.com/aplaceforallmystuff/mcp-arr.git
cd mcp-arr
npm install
npm run build
Each *arr application has an API key in Settings > General > Security:
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"arr": {
"command": "npx",
"args": ["-y", "mcp-arr-server"],
"env": {
"SONARR_URL": "http://localhost:8989",
"SONARR_API_KEY": "your-sonarr-api-key",
"RADARR_URL": "http://localhost:7878",
"RADARR_API_KEY": "your-radarr-api-key",
"LIDARR_URL": "http://localhost:8686",
"LIDARR_API_KEY": "your-lidarr-api-key",
"PROWLARR_URL": "http://localhost:9696",
"PROWLARR_API_KEY": "your-prowlarr-api-key"
}
}
}
}
Add to ~/.claude.json:
{
"mcpServers": {
"arr": {
"command": "npx",
"args": ["-y", "mcp-arr-server"],
"env": {
"SONARR_URL": "http://localhost:8989",
"SONARR_API_KEY": "your-sonarr-api-key",
"RADARR_URL": "http://localhost:7878",
"RADARR_API_KEY": "your-radarr-api-key"
}
}
}
}
Note: Only configure the services you have running. The server automatically detects which services are available based on the environment variables you provide.
TRaSH-only mode: if you don’t configure any *arr services, the server still starts and exposes the TRaSH Guides reference tools plus generic search and fetch.
To use mcp-arr with ChatGPT, run the server in remote HTTP mode on a reachable host and connect ChatGPT to the /mcp endpoint.
The server now exposes the generic search and fetch tools expected by ChatGPT-style remote MCP integrations:
search discovers matching *arr media and TRaSH profilesfetch returns structured detail for a selected search resultThe existing service-specific tools remain available for richer local or power-user workflows.
| Tool | Description |
|---|---|
arr_status | Get connection status for all configured *arr services |
arr_search_all | Search across all configured services simultaneously |
search | Generic discovery tool for remote MCP clients such as ChatGPT |
fetch | Generic detail-fetch tool for items returned by search |
| Tool | Description |
|---|---|
sonarr_get_series | List all TV series in your library |
sonarr_search | Search for TV series by name (returns tvdbId for adding) |
sonarr_add_series | Add a TV series to Sonarr (supports tags) |
sonarr_get_root_folders | Get available root folders for adding series |
sonarr_get_quality_profiles | Get available quality profiles for adding series |
sonarr_get_queue | View current download queue with limit and offset pagination |
sonarr_get_calendar | See upcoming episodes |
sonarr_get_episodes | List episodes for a series (shows missing vs available) |
sonarr_search_missing | Trigger search for all missing episodes in a series |
sonarr_search_episode | Trigger search for specific episode(s) |
| Tool | Description |
|---|---|
radarr_get_movies | List all movies in your library |
radarr_search | Search for movies by name (returns tmdbId for adding) |
radarr_add_movie | Add a movie to Radarr (supports tags) |
radarr_get_root_folders | Get available root folders for adding movies |
radarr_get_quality_profiles | Get available quality profiles for adding movies |
radarr_get_queue | View current download queue with limit and offset pagination |
radarr_get_calendar | See upcoming releases |
radarr_search_movie | Trigger search to download a movie in your library |
| Tool | Description |
|---|---|
lidarr_get_artists | List all artists in your library |
lidarr_search | Search for artists by name (returns foreignArtistId for adding) |
lidarr_add_artist | Add an artist to Lidarr (supports tags) |
lidarr_get_root_folders | Get available root folders for adding artists |
lidarr_get_quality_profiles | Get available quality profiles for adding artists |
lidarr_get_metadata_profiles | Get available metadata profiles for adding artists |
lidarr_get_queue | View current download queue with limit and offset pagination |
lidarr_get_albums | List albums for an artist (shows missing vs available) |
lidarr_search_album | Trigger search for a specific album |
lidarr_search_missing | Trigger search for all missing albums for an artist |
lidarr_get_calendar | See upcoming album releases |
| Tool | Description |
|---|---|
prowlarr_get_indexers | List all configured indexers |
prowlarr_search | Search across all indexers |
prowlarr_test_indexers | Test all indexers and return health status |
prowlarr_get_stats | Get indexer statistics (queries, grabs, failures) |
These tools are available for Sonarr, Radarr, and Lidarr. Replace {service} with the service name (e.g., sonarr_get_quality_profiles).
| Tool | Description |
|---|---|
{service}_get_quality_profiles | Detailed quality profile information with allowed qualities and custom format scores |
{service}_get_health | Health check warnings and issues detected by the application |
{service}_get_root_folders | Storage paths, free space, and accessibility status |
{service}_get_download_clients | Download client configurations and settings |
{service}_get_naming | File and folder naming conventions |
{service}_get_tags | Tag definitions for content organization |
{service}_review_setup | Comprehensive configuration dump for AI-assisted setup analysis |
The {service}_review_setup tool returns all configuration in a single call, enabling natural language conversations about optimizing your setup. Claude can analyze your quality profiles, suggest improvements, explain why certain content isn't being grabbed, and help configure complex settings like custom formats.
⚠️ Disclaimer: The configuration review tools provide read-only access to your *arr settings. Any changes to your configuration must be made directly in the *arr application interfaces. The AI's suggestions are recommendations only - always back up your configuration before making significant changes. The maintainers are not responsible for any configuration changes, data loss, or other issues that may arise from following AI-generated recommendations.
Access community-curated quality profiles, custom formats, and naming conventions from TRaSH Guides directly through Claude or ChatGPT. These tools work without any *arr configuration - they fetch reference data from the TRaSH Guides GitHub repository.
| Tool | Description |
|---|---|
trash_list_profiles | List available TRaSH quality profiles for Radarr or Sonarr |
trash_get_profile | Get detailed profile with custom formats, scores, and quality settings |
trash_list_custom_formats | List custom formats with optional category filter (hdr, audio, resolution, etc.) |
trash_get_naming | Get recommended naming conventions for Plex, Emby, Jellyfin, or standard |
trash_get_quality_sizes | Get recommended min/max/preferred sizes for each quality level |
trash_compare_profile | Compare your profile against TRaSH recommendations (requires *arr configured) |
trash_compare_naming | Compare your naming config against TRaSH recommendations (requires *arr configured) |
Example usage:
Data is cached for 1 hour to minimize GitHub API calls.
# Watch mode for development
npm run watch
# Build TypeScript
npm run build
# Run locally
SONARR_URL="http://localhost:8989" SONARR_API_KEY="your-key" node dist/index.js
Ensure you have set at least one pair of URL and API_KEY environment variables:
SONARR_URL="http://localhost:8989"
SONARR_API_KEY="your-api-key"
The API key is incorrect. Verify it in your *arr application under Settings > General > Security.
The *arr application is not running or the URL is incorrect. Verify:
You tried to use a tool for a service that isn't configured. Add the corresponding URL and API_KEY environment variables.
MIT - see LICENSE for details.
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.