mcp-arr-suite

mcp-arr-suite

Enables interaction with the *arr media management suite (Sonarr, Radarr, Lidarr, Prowlarr, SABnzbd) and TRaSH Guides through MCP tools, allowing media library management, searching, and configuration via natural language.

Category
Visit Server

README

mcp-arr-suite

MCP server for the *arr media management suite — Sonarr, Radarr, Lidarr, Prowlarr, and SABnzbd.

Exposes your media services as MCP tools consumable by Claude or any MCP-capable client. 215 tools across 7 modules.

<img width="854" height="739" alt="MCP Suite Image Diagram" src="https://github.com/user-attachments/assets/099d2cb3-ff71-4a27-8816-6e0d66f22a7a" />

Requirements

  • Node.js >= 18
  • At least one service running and accessible

Install

Via npm (recommended):

npm install -g mcp-arr-suite

From source:

git clone https://github.com/ismael9291/mcp-arr-suite.git
cd mcp-arr-suite
npm install && npm run build

Configuration

All configuration is via environment variables. Set at least one service pair:

Variable Description
SONARR_URL Sonarr base URL (e.g. http://localhost:8989)
SONARR_API_KEY Sonarr API key
RADARR_URL Radarr base URL (e.g. http://localhost:7878)
RADARR_API_KEY Radarr API key
LIDARR_URL Lidarr base URL (e.g. http://localhost:8686)
LIDARR_API_KEY Lidarr API key
PROWLARR_URL Prowlarr base URL (e.g. http://localhost:9696)
PROWLARR_API_KEY Prowlarr API key
SABNZBD_URL SABnzbd base URL (e.g. http://localhost:8080)
SABNZBD_API_KEY SABnzbd API key (from sabnzbd.ini, field api_key)

Tools are only registered for services that are configured.

MCP Client Setup

Example Claude Desktop / Claude Code config (npm install):

{
  "mcpServers": {
    "mcp-arr-suite": {
      "command": "mcp-arr-suite",
      "env": {
        "SONARR_URL": "http://localhost:8989",
        "SONARR_API_KEY": "...",
        "RADARR_URL": "http://localhost:7878",
        "RADARR_API_KEY": "...",
        "PROWLARR_URL": "http://localhost:9696",
        "PROWLARR_API_KEY": "...",
        "SABNZBD_URL": "http://localhost:8080",
        "SABNZBD_API_KEY": "..."
      }
    }
  }
}

If running from source, replace "command": "mcp-arr-suite" with:

"command": "node",
"args": ["/path/to/mcp-arr-suite/dist/index.js"],

Tools

Cross-service (always available)

Tool Description
arr_status Connection status and version for all configured services
arr_search_all Search across all configured media services simultaneously

Sonarr — 54 tools

Category Tools
Library sonarr_get_series, sonarr_search, sonarr_add_series, sonarr_delete_series, sonarr_update_series, sonarr_bulk_update_series, sonarr_bulk_delete_series
Episodes sonarr_get_episodes, sonarr_get_episode_files, sonarr_delete_episode_file, sonarr_delete_episode_files_bulk, sonarr_monitor_episodes, sonarr_season_pass
Search & import sonarr_search_missing, sonarr_search_episode, sonarr_search_releases, sonarr_grab_release, sonarr_get_manual_import, sonarr_process_manual_import
Queue sonarr_get_queue, sonarr_remove_from_queue, sonarr_get_wanted_missing, sonarr_get_wanted_cutoff
History & blocklist sonarr_get_history, sonarr_get_blocklist, sonarr_delete_from_blocklist
Quality & formats sonarr_get_quality_profiles, sonarr_get_quality_profile, sonarr_update_quality_profile, sonarr_update_quality_definition, sonarr_list_custom_formats, sonarr_get_custom_format, sonarr_create_custom_format, sonarr_update_custom_format, sonarr_delete_custom_format
Config sonarr_get_import_lists, sonarr_update_import_list, sonarr_get_import_exclusions, sonarr_delete_import_exclusion, sonarr_get_tags, sonarr_create_tag, sonarr_delete_tag
System sonarr_get_health, sonarr_get_disk_space, sonarr_get_root_folders, sonarr_get_download_clients, sonarr_get_naming, sonarr_get_system_tasks, sonarr_get_logs, sonarr_get_notifications, sonarr_get_calendar, sonarr_get_command_status
Commands sonarr_refresh_series, sonarr_trigger_backup, sonarr_trigger_rss_sync, sonarr_trigger_refresh_monitored_downloads, sonarr_trigger_cutoff_unmet_search, sonarr_trigger_rescan_series, sonarr_trigger_rename_series, sonarr_trigger_downloaded_scan
Overview sonarr_review_setup

Radarr — 50 tools

Category Tools
Library radarr_get_movies, radarr_search, radarr_add_movie, radarr_delete_movie, radarr_update_movie, radarr_bulk_update_movies, radarr_bulk_delete_movies
Files radarr_get_movie_files, radarr_delete_movie_file
Search & import radarr_search_movie, radarr_search_releases, radarr_grab_release, radarr_get_manual_import, radarr_process_manual_import
Queue radarr_get_queue, radarr_remove_from_queue, radarr_get_wanted_missing, radarr_get_wanted_cutoff
History & blocklist radarr_get_history, radarr_get_blocklist, radarr_delete_from_blocklist
Quality & formats radarr_get_quality_profiles, radarr_get_quality_profile, radarr_update_quality_profile, radarr_update_quality_definition, radarr_list_custom_formats, radarr_get_custom_format, radarr_create_custom_format, radarr_update_custom_format, radarr_delete_custom_format
Config radarr_get_import_lists, radarr_update_import_list, radarr_get_import_exclusions, radarr_delete_import_exclusion, radarr_get_tags, radarr_create_tag, radarr_delete_tag
System radarr_get_health, radarr_get_disk_space, radarr_get_root_folders, radarr_get_download_clients, radarr_get_naming, radarr_get_system_tasks, radarr_get_logs, radarr_get_notifications, radarr_get_calendar, radarr_get_command_status
Commands radarr_refresh_movie, radarr_trigger_backup, radarr_trigger_rss_sync, radarr_trigger_refresh_monitored_downloads, radarr_trigger_cutoff_unmet_search, radarr_trigger_rescan_movies, radarr_trigger_rename_movies, radarr_trigger_missing_search, radarr_trigger_downloaded_scan
Overview radarr_review_setup

Lidarr — 49 tools

Category Tools
Library lidarr_get_artists, lidarr_search, lidarr_add_artist, lidarr_delete_artist, lidarr_update_artist
Albums & files lidarr_get_albums, lidarr_get_album_by_id, lidarr_monitor_albums, lidarr_get_track_files, lidarr_delete_track_file
Search lidarr_search_album, lidarr_search_missing
Queue lidarr_get_queue, lidarr_remove_from_queue, lidarr_get_wanted_missing, lidarr_get_wanted_cutoff
History & blocklist lidarr_get_history, lidarr_get_blocklist, lidarr_delete_from_blocklist
Quality & formats lidarr_get_quality_profiles, lidarr_get_quality_profile, lidarr_update_quality_profile, lidarr_update_quality_definition, lidarr_list_custom_formats, lidarr_get_custom_format, lidarr_create_custom_format, lidarr_update_custom_format, lidarr_delete_custom_format
Config lidarr_get_metadata_profiles, lidarr_get_import_lists, lidarr_update_import_list, lidarr_get_import_exclusions, lidarr_delete_import_exclusion, lidarr_get_tags, lidarr_create_tag, lidarr_delete_tag
System lidarr_get_health, lidarr_get_disk_space, lidarr_get_root_folders, lidarr_get_download_clients, lidarr_get_naming, lidarr_get_system_tasks, lidarr_get_logs, lidarr_get_notifications, lidarr_get_calendar, lidarr_get_command_status
Commands lidarr_refresh_artist, lidarr_trigger_backup, lidarr_trigger_rss_sync, lidarr_trigger_refresh_monitored_downloads, lidarr_trigger_cutoff_unmet_search, lidarr_trigger_rescan_artists, lidarr_trigger_rename_artists, lidarr_trigger_refresh_all_artists, lidarr_trigger_downloaded_scan
Overview lidarr_review_setup

Prowlarr — 24 tools

Category Tools
Indexers prowlarr_get_indexers, prowlarr_get_indexer, prowlarr_update_indexer, prowlarr_test_indexer, prowlarr_test_indexers, prowlarr_search
Applications prowlarr_get_apps, prowlarr_update_app
Stats & history prowlarr_get_stats, prowlarr_get_history
Config prowlarr_get_tags, prowlarr_create_tag, prowlarr_delete_tag, prowlarr_get_download_clients, prowlarr_get_notifications, prowlarr_test_notification
System prowlarr_get_status, prowlarr_get_health, prowlarr_get_logs, prowlarr_get_system_tasks, prowlarr_get_command_status
Commands prowlarr_trigger_backup, prowlarr_trigger_rss_sync, prowlarr_sync_apps

SABnzbd — 29 tools

Category Tools
Queue sabnzbd_get_queue, sabnzbd_pause, sabnzbd_resume, sabnzbd_set_priority, sabnzbd_set_speed_limit, sabnzbd_change_cat, sabnzbd_change_opts
History sabnzbd_get_history, sabnzbd_retry, sabnzbd_retry_all, sabnzbd_mark_completed, sabnzbd_purge_failed
Delete sabnzbd_delete, sabnzbd_delete_orphans
Post-processing sabnzbd_pause_pp, sabnzbd_resume_pp, sabnzbd_add_orphans
Add NZBs sabnzbd_add_url
Config sabnzbd_get_cats, sabnzbd_get_scripts, sabnzbd_get_paths
System sabnzbd_get_status, sabnzbd_get_warnings, sabnzbd_unblock_server, sabnzbd_server_stats, sabnzbd_version
Triggers sabnzbd_rss_now, sabnzbd_watched_now, sabnzbd_get_files

TRaSH Guides — 7 tools (always available)

Tool Description
trash_list_profiles List recommended quality profiles from TRaSH Guides
trash_get_profile Full profile details including custom format scores
trash_list_custom_formats List custom formats, optionally filtered by category
trash_get_naming Recommended naming conventions for your media server
trash_get_quality_sizes Recommended min/max/preferred file sizes per quality
trash_compare_profile Compare your quality profile against TRaSH recommendations
trash_compare_naming Compare your naming config against TRaSH recommendations

Testing

# Unit tests (MSW mocks, no services required)
npm test

# Live smoke tests against real services
SONARR_URL=http://localhost:8989 SONARR_API_KEY=... \
RADARR_URL=http://localhost:7878 RADARR_API_KEY=... \
npm run test:live

Additional live test variables:

Variable Description
MCP_ARR_LIVE_SEARCH_TERM Override default search term (default: dune)
MCP_ARR_ENABLE_TRASH=1 Include TRaSH Guides smoke tests
MCP_ARR_ENABLE_COMMAND_SMOKE=1 Include command tests (refresh, scan, trigger, etc.)
RADARR_TEST_MOVIE_ID Movie ID for command smoke tests
RADARR_TEST_DOWNLOADS_PATH Downloads path for radarr_trigger_downloaded_scan (default: /downloads/complete)
SONARR_TEST_SERIES_ID Series ID for command smoke tests
SONARR_TEST_EPISODE_ID Episode ID for release search tests
SONARR_TEST_DOWNLOADS_PATH Downloads path for sonarr_trigger_downloaded_scan (default: /downloads/complete)
SONARR_TEST_IMPORT_FOLDER Folder for manual import tests (default: /tmp)
LIDARR_TEST_ARTIST_ID Artist ID for command smoke tests

API Documentation

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured