Manage the *arr media suite, such as Sonarr and Radarr, from an MCP client.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add arr --env SONARR_API_KEY='<SONARR_API_KEY>' --env RADARR_API_KEY='<RADARR_API_KEY>' --env LIDARR_API_KEY='<LIDARR_API_KEY>' --env READARR_API_KEY='<READARR_API_KEY>' --env PROWLARR_API_KEY='<PROWLARR_API_KEY>' --env LIDARR_URL='<LIDARR_URL>' --env PROWLARR_URL='<PROWLARR_URL>' --env RADARR_URL='<RADARR_URL>' --env READARR_URL='<READARR_URL>' --env SONARR_URL='<SONARR_URL>' -- npx -y mcp-arr-server~/.codex/config.toml
[mcp_servers.arr]
command = "npx"
args = ["-y", "mcp-arr-server"]
env = { SONARR_API_KEY = "<SONARR_API_KEY>", RADARR_API_KEY = "<RADARR_API_KEY>", LIDARR_API_KEY = "<LIDARR_API_KEY>", READARR_API_KEY = "<READARR_API_KEY>", PROWLARR_API_KEY = "<PROWLARR_API_KEY>", LIDARR_URL = "<LIDARR_URL>", PROWLARR_URL = "<PROWLARR_URL>", RADARR_URL = "<RADARR_URL>", READARR_URL = "<READARR_URL>", SONARR_URL = "<SONARR_URL>" }
# codex mcp add arr --env SONARR_API_KEY='<SONARR_API_KEY>' --env RADARR_API_KEY='<RADARR_API_KEY>' --env LIDARR_API_KEY='<LIDARR_API_KEY>' --env READARR_API_KEY='<READARR_API_KEY>' --env PROWLARR_API_KEY='<PROWLARR_API_KEY>' --env LIDARR_URL='<LIDARR_URL>' --env PROWLARR_URL='<PROWLARR_URL>' --env RADARR_URL='<RADARR_URL>' --env READARR_URL='<READARR_URL>' --env SONARR_URL='<SONARR_URL>' -- npx -y mcp-arr-server~/.cursor/mcp.json
{
"mcpServers": {
"arr": {
"command": "npx",
"args": [
"-y",
"mcp-arr-server"
],
"env": {
"SONARR_API_KEY": "<SONARR_API_KEY>",
"RADARR_API_KEY": "<RADARR_API_KEY>",
"LIDARR_API_KEY": "<LIDARR_API_KEY>",
"READARR_API_KEY": "<READARR_API_KEY>",
"PROWLARR_API_KEY": "<PROWLARR_API_KEY>",
"LIDARR_URL": "<LIDARR_URL>",
"PROWLARR_URL": "<PROWLARR_URL>",
"RADARR_URL": "<RADARR_URL>",
"READARR_URL": "<READARR_URL>",
"SONARR_URL": "<SONARR_URL>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"arr": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-arr-server"
],
"env": {
"SONARR_API_KEY": "<SONARR_API_KEY>",
"RADARR_API_KEY": "<RADARR_API_KEY>",
"LIDARR_API_KEY": "<LIDARR_API_KEY>",
"READARR_API_KEY": "<READARR_API_KEY>",
"PROWLARR_API_KEY": "<PROWLARR_API_KEY>",
"LIDARR_URL": "<LIDARR_URL>",
"PROWLARR_URL": "<PROWLARR_URL>",
"RADARR_URL": "<RADARR_URL>",
"READARR_URL": "<READARR_URL>",
"SONARR_URL": "<SONARR_URL>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"arr": {
"command": "npx",
"args": [
"-y",
"mcp-arr-server"
],
"env": {
"SONARR_API_KEY": "<SONARR_API_KEY>",
"RADARR_API_KEY": "<RADARR_API_KEY>",
"LIDARR_API_KEY": "<LIDARR_API_KEY>",
"READARR_API_KEY": "<READARR_API_KEY>",
"PROWLARR_API_KEY": "<PROWLARR_API_KEY>",
"LIDARR_URL": "<LIDARR_URL>",
"PROWLARR_URL": "<PROWLARR_URL>",
"RADARR_URL": "<RADARR_URL>",
"READARR_URL": "<READARR_URL>",
"SONARR_URL": "<SONARR_URL>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"arr": {
"command": "npx",
"args": [
"-y",
"mcp-arr-server"
],
"env": {
"SONARR_API_KEY": "<SONARR_API_KEY>",
"RADARR_API_KEY": "<RADARR_API_KEY>",
"LIDARR_API_KEY": "<LIDARR_API_KEY>",
"READARR_API_KEY": "<READARR_API_KEY>",
"PROWLARR_API_KEY": "<PROWLARR_API_KEY>",
"LIDARR_URL": "<LIDARR_URL>",
"PROWLARR_URL": "<PROWLARR_URL>",
"RADARR_URL": "<RADARR_URL>",
"READARR_URL": "<READARR_URL>",
"SONARR_URL": "<SONARR_URL>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"arr": {
"command": "npx",
"args": [
"-y",
"mcp-arr-server"
],
"env": {
"SONARR_API_KEY": "<SONARR_API_KEY>",
"RADARR_API_KEY": "<RADARR_API_KEY>",
"LIDARR_API_KEY": "<LIDARR_API_KEY>",
"READARR_API_KEY": "<READARR_API_KEY>",
"PROWLARR_API_KEY": "<PROWLARR_API_KEY>",
"LIDARR_URL": "<LIDARR_URL>",
"PROWLARR_URL": "<PROWLARR_URL>",
"RADARR_URL": "<RADARR_URL>",
"READARR_URL": "<READARR_URL>",
"SONARR_URL": "<SONARR_URL>"
}
}
}
}Environment variables
SONARR_API_KEYRADARR_API_KEYLIDARR_API_KEYREADARR_API_KEYPROWLARR_API_KEYLIDARR_URLPROWLARR_URLRADARR_URLREADARR_URLSONARR_URL
Replace the placeholders with your own credentials and keep them out of version control.