Media Automation Hub (YARR)

by jmagar

2 stars
Not rated
GitHub

About

Integrates with popular media automation services including Sonarr, Radarr, and Plex to provide a unified interface for searching, monitoring, and managing media collections without switching between multiple web interfaces.

Details

Author
jmagar
Repository
dinglebear-ai/yarr
GitHub stars
2
License
GNU Affero General Public License v3.0
Categories
Productivity, Developer Tools, Design, Media, Search, Infrastructure, API, Frontend
Tags
#web

yarr wraps a configured media automation fleet through one action-dispatched
service layer. The same implementation backs MCP and CLI calls, so behavior
does not drift between "agent used the tool" and "operator ran the command."

Primary capabilities:

- Fleet status checks across the configured services.
- Credentialed upstream API passthrough for known service kinds.
- Table-driven OpenAPI operation metadata for Sonarr, Radarr, Prowlarr,
Overseerr, Jellyfin, and Plex. The executor preserves the declared parameter,
request-media, and successful-response transport contract; unsupported rows
are excluded and listed in the generated
capability matrix.
- Curated commands for SABnzbd, qBittorrent, Tautulli, Bazarr, and Tracearr,
whose upstreams do not ship usable machine-readable specs.
- Code Mode over MCP for multi-step media automation scripts.
- Snippet storage and execution for repeatable Code Mode workflows.
- Skills-only direct-HTTP plugin fallbacks for each individual service.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Media Automation Hub (YARR)
    Command (node, npx, python, etc.) yarr
    Arguments
    • Argument 1 mcp
    Environment
    • YARR_SERVICES sonarr
    • YARR_SONARR_URL http://127.0.0.1:8989
    • YARR_SONARR_API_KEY $${YARR_SONARR_API_KEY}

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

service_status

Fetch an upstream service status endpoint.

api_get

Proxy a credentialed GET request.

api_post

Proxy a POST request.

api_put

Proxy a PUT request.

api_delete

Proxy a DELETE request.

help

Return action reference.

codemode

Run a JS arrow function over the fleet.

op

Dispatch a generated OpenAPI operation.

snippet_list

List saved snippets.

snippet_save

Save a reusable snippet.

snippet_run

Run a saved snippet.

snippet_delete

Delete a saved snippet.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "media automation hub (yarr)": {
            "env": {
                "YARR_SERVICES": "sonarr",
                "YARR_SONARR_URL": "http://127.0.0.1:8989",
                "YARR_SONARR_API_KEY": "$${YARR_SONARR_API_KEY}"
            },
            "args": [
                "mcp"
            ],
            "command": "yarr"
        }
    }
}

Linux

{
    "env": {
        "YARR_SERVICES": "sonarr",
        "YARR_SONARR_URL": "http://127.0.0.1:8989",
        "YARR_SONARR_API_KEY": "$${YARR_SONARR_API_KEY}"
    },
    "args": [
        "mcp"
    ],
    "command": "yarr"
}

Macos

{
    "env": {
        "YARR_SERVICES": "sonarr",
        "YARR_SONARR_URL": "http://127.0.0.1:8989",
        "YARR_SONARR_API_KEY": "$${YARR_SONARR_API_KEY}"
    },
    "args": [
        "mcp"
    ],
    "command": "yarr"
}

Windows

{
    "env": {
        "YARR_SERVICES": "sonarr",
        "YARR_SONARR_URL": "http://127.0.0.1:8989",
        "YARR_SONARR_API_KEY": "$${YARR_SONARR_API_KEY}"
    },
    "args": [
        "/c",
        "yarr",
        "mcp"
    ],
    "command": "cmd"
}

yarr

Self-hosted media fleet operations across Sonarr, Radarr, Plex, and related apps over MCP and CLI.

If you run Claude Code, Codex, or Gemini CLI against a self-hosted media stack,
yarr gives an agent one consistent way to query and control all of it instead
of eleven different ad hoc integrations. It is an upstream-client MCP server:
it does not replace those applications or mirror every REST endpoint as a web
UI. Its job is to provide one consistent tool surface for agents and one
equivalent CLI surface for operators.

Not for: a general-purpose REST gateway to arbitrary services, or a
scheduler/automation engine in its own right. yarr only talks to the service
kinds it knows about, and only does what you or your agent ask it to do.

Contents

- Naming
- Capabilities And Boundaries
- Install
- Unraid Plugin
- Quickstart
- Client Configuration
- Runtime Surfaces
- MCP Tool Reference
- CLI Reference
- Configuration
- Authentication
- Safety And Trust Model
- Architecture
- Distribution Contract
- Development
- Verification
- Deployment
- Troubleshooting
- Related Servers
- Documentation
- License

Naming

This repository is published at github.com/dinglebear-ai/yarr.

The Rust package and installed binary are both yarr. The npm launcher package
is yarr-mcp because the shorter yarr name is occupied on npm; installing the
launcher still gives you a yarr command. The MCP registry name is
ai.dinglebear/yarr, and Docker images use ghcr.io/dinglebear-ai/yarr.
Production Compose deployments select that image by immutable manifest digest.

Plugin naming is intentionally split:

- yarr is the full MCP server plugin. It launches the repository-coupled
@dinglebear/yarr npm package over stdio and includes every per-service fallback
skill; it does not commit a platform-specific binary.
- sonarr, radarr, prowlarr, overseerr, sabnzbd, qbittorrent, plex,
jellyfin, tautulli, tracearr, and bazarr are skills-only plugins with
no MCP server and no bundled binary.

Capabilities And Boundaries

yarr wraps a configured media automation fleet through one action-dispatched
service layer. The same implementation backs MCP and CLI calls, so behavior
does not drift between "agent used the tool" and "operator ran the command."

Primary capabilities:

- Fleet status checks across the configured services.
- Credentialed upstream API passthrough for known service kinds.
- Table-driven OpenAPI operation metadata for Sonarr, Radarr, Prowlarr,
Overseerr, Jellyfin, and Plex. The executor preserves the declared parameter,
request-media, and successful-response transport contract; unsupported rows
are excluded and listed in the generated
capability matrix.
- Curated commands for SABnzbd, qBittorrent, Tautulli, Bazarr, and Tracearr,
whose upstreams do not ship usable machine-readable specs.
- Code Mode over MCP for multi-step media automation scripts.
- Snippet storage and execution for repeatable Code Mode workflows.
- Skills-only direct-HTTP plugin fallbacks for each individual service.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.