Yarr MCP server
{
"mcpServers": {
"dinglebear-yarr": {
"command": "npx",
"args": [
"-y",
"@dinglebear/yarr@latest"
],
"env": {
"YARR_MCP_TOKEN": "<yarr_mcp_token>",
"YARR_SONARR_URL": "https://...",
"YARR_SONARR_API_KEY": "<yarr_sonarr_api_key>"
}
}
}
}{
"mcpServers": {
"dinglebear-yarr": {
"command": "npx",
"args": [
"-y",
"@dinglebear/yarr@latest"
],
"env": {
"YARR_MCP_TOKEN": "<yarr_mcp_token>",
"YARR_SONARR_URL": "https://...",
"YARR_SONARR_API_KEY": "<yarr_sonarr_api_key>"
}
}
}
}{
"mcpServers": {
"dinglebear-yarr": {
"command": "npx",
"args": [
"-y",
"@dinglebear/yarr@latest"
],
"env": {
"YARR_MCP_TOKEN": "<yarr_mcp_token>",
"YARR_SONARR_URL": "https://...",
"YARR_SONARR_API_KEY": "<yarr_sonarr_api_key>"
}
}
}
}{
"servers": {
"dinglebear-yarr": {
"command": "npx",
"args": [
"-y",
"@dinglebear/yarr@latest"
],
"env": {
"YARR_MCP_TOKEN": "${input:yarr_mcp_token}",
"YARR_SONARR_URL": "${input:yarr_sonarr_url}",
"YARR_SONARR_API_KEY": "${input:yarr_sonarr_api_key}"
}
}
},
"inputs": [
{
"id": "yarr_mcp_token",
"type": "promptString",
"description": "Yarr mcp token",
"password": true
},
{
"id": "yarr_sonarr_url",
"type": "promptString",
"description": "Yarr sonarr url",
"password": true
},
{
"id": "yarr_sonarr_api_key",
"type": "promptString",
"description": "Yarr sonarr api key",
"password": true
}
]
}{
"mcpServers": {
"dinglebear-yarr": {
"command": "npx",
"args": [
"-y",
"@dinglebear/yarr@latest"
],
"env": {
"YARR_MCP_TOKEN": "<yarr_mcp_token>",
"YARR_SONARR_URL": "https://...",
"YARR_SONARR_API_KEY": "<yarr_sonarr_api_key>"
}
}
}
}file .mcp.json (in your project root)file claude_desktop_config.jsonfile ~/.cursor/mcp.jsonfile .vscode/mcp.jsonfile ~/.codeium/windsurf/mcp_config.jsoninstall npx -y @dinglebear/yarrversion 2.2.2
What it does
Yarr is an MCP server that provides a unified interface for querying and controlling self-hosted media automation services like Sonarr, Radarr, Plex, Jellyfin, and others. It is for operators and AI agents running Claude, Codex, or Gemini CLI against a self-hosted media stack who need one consistent way to interact with multiple services instead of separate integrations.
- Check fleet status across multiple media services to see what is currently running and operational.
- Execute credentialed API operations on Sonarr, Radarr, Prowlarr, Overseerr, Jellyfin, and Plex through a single consistent interface.
- Create and execute multi-step media automation scripts using Code Mode for repeatable workflows.
Tools this server exposes
| Tool | Does |
|---|---|
| fleet_status | Check the operational status of all configured media services in the fleet. |
| sonarr_operations | Execute Sonarr API operations through table-driven OpenAPI metadata. |
| radarr_operations | Execute Radarr API operations through table-driven OpenAPI metadata. |
| prowlarr_operations | Execute Prowlarr API operations through table-driven OpenAPI metadata. |
| overseerr_operations | Execute Overseerr API operations through table-driven OpenAPI metadata. |
| jellyfin_operations | Execute Jellyfin API operations through table-driven OpenAPI metadata. |
| plex_operations | Execute Plex API operations through table-driven OpenAPI metadata. |
| sabnzbd_commands | Execute curated commands for SABnzbd usenet downloads. |
| qbittorrent_commands | Execute curated commands for qBittorrent torrent downloads. |
| tautulli_commands | Execute curated commands for Tautulli Plex monitoring. |
| bazarr_commands | Execute curated commands for Bazarr subtitle management. |
| tracearr_commands | Execute curated commands for Tracearr request tracking. |
| code_mode | Execute multi-step media automation scripts through Code Mode. |
| snippet_storage | Store and execute named workflow snippets for repeatable Code Mode tasks. |
Before you enable it
An MCP server runs with whatever access you give it. Start with a development account rather than production, and check which tools the server exposes before you let an agent call them unattended.