About this project
ARR-MCP is an MCP (Model Context Protocol) server that connects AI assistants like Claude, Cursor, and VS Code to the *Arr media stack, including Sonarr, Radarr, Prowlarr, Bazarr, qBittorrent, and NZBGet. It supports multiple instances of each service, allowing users to run separate configurations (e.g., 4K and 1080p Sonarr instances) and address them by name.
The server implements real MCP using JSON-RPC 2.0 over stdio and Streamable HTTP, built on the official Go SDK. It provides 246 tools across all supported services, enabling users to perform tasks they would otherwise do through each service's web UI. These tools cover library management, search and import operations, quality profile configuration, provider management, and system operations.
Key features include:
- Multi-instance support with named instances and default selection
- Permission controls with three modes: readonly, confirm (default), and full access
- Confirmation scope settings for write or destructive operations
- Fallback behavior for clients without elicitation support
- Single static binary with distroless container and multi-arch image support
- Kubernetes deployment manifests included
Configuration can be done via environment variables for single instances or a config.yaml file for multiple instances. The config file supports referencing secrets via environment variables, making it safe to commit or mount from a ConfigMap. The server validates configuration at startup, catching errors before they surface during operation.
Tools are organized by service and access type (read, write, destructive). Sonarr and Radarr maintain parity with 62 common tool names. Bazarr provides subtitle management tools, Prowlarr handles indexer management and release grabbing, while qBittorrent and NZBGet offer torrent and Usenet download client functionality respectively.
The server includes health checks, supports both stdio and HTTP transports, and provides copy-pasteable configuration for various MCP clients. Response payloads are projected to include only relevant fields rather than full upstream data, keeping responses manageable while providing necessary information for decision-making.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.