Arr-MCP
MCP server to manage your *ARR media stack (Radarr, Sonarr, Lidarr, Readarr, Prowlarr) for searching, adding, and managing movies, TV shows, music, books, and indexers.
README
Arr-MCP
An MCP server for your *ARR stack — Radarr, Sonarr, Lidarr, Readarr, and Prowlarr.
Supports stdio (local, Claude Desktop) and HTTP/Streamable HTTP (remote, ChatGPT, any MCP-compatible client).
Tools
Cross-service
| Tool | Description |
|---|---|
arr_get_services |
Show which services are configured |
arr_search_all |
Search all configured services at once |
Radarr (Movies)
| Tool | Description |
|---|---|
radarr_get_movies |
List movies (paginated) |
radarr_search_movies |
Search by title |
radarr_add_movie |
Add by TMDB ID |
radarr_update_movie |
Update monitored/quality profile |
radarr_delete_movie |
Delete (optionally with files) |
radarr_search_movie |
Trigger download search for a movie |
radarr_refresh_movie |
Refresh metadata |
radarr_get_queue |
Download queue (paginated) |
radarr_delete_queue_item |
Remove item from queue |
radarr_get_calendar |
Upcoming releases |
radarr_get_health |
Health warnings |
radarr_get_quality_profiles |
Quality profiles |
radarr_get_root_folders |
Root folders |
radarr_get_download_clients |
Download clients |
radarr_get_tags |
Tags |
radarr_get_naming |
File naming config |
radarr_get_status |
System status |
Sonarr (TV Shows)
| Tool | Description |
|---|---|
sonarr_get_series |
List series (paginated) |
sonarr_search_series |
Search by title |
sonarr_add_series |
Add by TVDB ID |
sonarr_delete_series |
Delete (optionally with files) |
sonarr_refresh_series |
Refresh metadata |
sonarr_get_episodes |
List episodes (optionally by season) |
sonarr_search_missing |
Trigger search for missing episodes |
sonarr_search_episode |
Trigger search for a specific episode |
sonarr_get_queue |
Download queue (paginated) |
sonarr_delete_queue_item |
Remove item from queue |
sonarr_get_calendar |
Upcoming air dates |
sonarr_get_health |
Health warnings |
sonarr_get_quality_profiles |
Quality profiles |
sonarr_get_root_folders |
Root folders |
sonarr_get_download_clients |
Download clients |
sonarr_get_tags |
Tags |
sonarr_get_naming |
File naming config |
sonarr_get_status |
System status |
Lidarr (Music)
| Tool | Description |
|---|---|
lidarr_get_artists |
List artists (paginated) |
lidarr_search_artists |
Search by name |
lidarr_add_artist |
Add by MusicBrainz ID |
lidarr_get_albums |
List albums (optionally by artist, paginated) |
lidarr_search_missing |
Trigger search for missing albums |
lidarr_get_calendar |
Upcoming album releases |
lidarr_get_health |
Health warnings |
lidarr_get_quality_profiles |
Quality profiles |
lidarr_get_metadata_profiles |
Metadata profiles |
lidarr_get_root_folders |
Root folders |
lidarr_get_download_clients |
Download clients |
lidarr_get_tags |
Tags |
lidarr_get_status |
System status |
Readarr (Books)
| Tool | Description |
|---|---|
readarr_get_authors |
List authors (paginated) |
readarr_search_authors |
Search by name |
readarr_add_author |
Add by Goodreads ID |
readarr_get_books |
List books (optionally by author, paginated) |
readarr_search_books |
Search by title or ISBN |
readarr_get_health |
Health warnings |
readarr_get_quality_profiles |
Quality profiles |
readarr_get_root_folders |
Root folders |
readarr_get_status |
System status |
Prowlarr (Indexers)
| Tool | Description |
|---|---|
prowlarr_get_indexers |
List indexers |
prowlarr_test_indexer |
Test a specific indexer |
prowlarr_test_all_indexers |
Test all indexers |
prowlarr_search |
Search across indexers |
prowlarr_get_indexer_stats |
Indexer statistics |
prowlarr_get_health |
Health warnings |
prowlarr_get_status |
System status |
Setup
1. Install & Build
npm install
npm run build
2. Configure
Copy .env.example to .env and fill in your service URLs and API keys. Only configure the services you use — unconfigured services are skipped at startup and their tools don't appear.
API keys: Settings → General → Security → API Key in each app.
Transport modes
stdio — local (Claude Desktop)
Default mode. The MCP client launches the process directly.
{
"mcpServers": {
"arr": {
"command": "node",
"args": ["/path/to/arr-mcp/dist/index.js"],
"env": {
"RADARR_URL": "http://localhost:7878",
"RADARR_API_KEY": "...",
"SONARR_URL": "http://localhost:8989",
"SONARR_API_KEY": "..."
}
}
}
}
HTTP — remote (ChatGPT, hosted clients)
Set MCP_TRANSPORT=http. The server listens on http://HOST:PORT/mcp and accepts POST requests per the MCP Streamable HTTP spec.
MCP_TRANSPORT=http MCP_PORT=3000 \
RADARR_URL=http://... RADARR_API_KEY=... \
node dist/index.js
A GET /health endpoint is also available for uptime checks.
Docker
Het gepubliceerde image staat op GitHub Container Registry:
ghcr.io/ltmarx/arr-mcp:latest
De docker-compose.yml heeft twee profielen — stdio en http — die nooit tegelijk actief zijn.
HTTP mode — remote/persistent server
cp .env.example .env # vul je keys in
docker compose --profile http up
De server luistert op http://<host>:3000/mcp. Poort aanpassen: MCP_PORT=8080 docker compose --profile http up.
Controleer of de server draait:
curl http://localhost:3000/health
# → {"status":"ok","transport":"http"}
Stdio mode — lokaal (Claude Desktop)
docker compose --profile stdio up
Of direct via docker run (wordt gestart door de MCP client):
docker run --rm -i \
-e RADARR_URL=http://192.168.1.x:7878 \
-e RADARR_API_KEY=abc123 \
ghcr.io/ltmarx/arr-mcp:latest
MCP client config voor Claude Desktop:
{
"mcpServers": {
"arr": {
"command": "docker",
"args": ["run", "--rm", "-i",
"-e", "RADARR_URL", "-e", "RADARR_API_KEY",
"-e", "SONARR_URL", "-e", "SONARR_API_KEY",
"ghcr.io/ltmarx/arr-mcp:latest"
],
"env": {
"RADARR_URL": "http://localhost:7878",
"RADARR_API_KEY": "...",
"SONARR_URL": "http://localhost:8989",
"SONARR_API_KEY": "..."
}
}
}
}
Tip: Als je *ARR draait op de host machine gebruik dan
host.docker.internal(Mac/Windows) of het host IP-adres in plaats vanlocalhost.
Releases
Releases worden automatisch gepubliceerd via GitHub Actions. Maak een tag aan op GitHub (v1.0.0) en publiceer een Release — het multi-arch image (amd64 + arm64) verschijnt vanzelf op GHCR.
Development
npm run dev # run met tsx (geen build stap)
npm run build # compileer naar dist/
npm start # run gecompileerde output
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.