YARR Media Stack MCP Server

YARR Media Stack MCP Server

A comprehensive Model Context Protocol server that bridges LLMs with self-hosted media services, enabling natural language control of TV shows, movies, downloads, and notifications while maintaining traditional API access.

Category
Visit Server

README

🎬 YARR Media Stack MCP Server

A comprehensive Model Context Protocol (MCP) server that bridges the gap between Large Language Models (LLMs) and your self-hosted media technology stack. This project enables intelligent automation and natural language control of your media services while maintaining traditional programmatic access.

🎯 Key Features

  • 🤖 LLM-powered natural language control of media services
  • 🔌 Modular architecture for easy service integration
  • 🔄 Unified API gateway for traditional access
  • 🎮 Web UI for visual control (planned)
  • 🔐 Direct API access without LLM middleware
  • 🧩 Extensible plugin system for new services

📚 Documentation

🏗️ Project Structure

This monorepo is organized into modular packages, each serving a specific purpose:

  • 📦 packages/server: Core MCP server implementation
  • 🌐 packages/web: Web UI interface (planned)
  • 💬 packages/chatbot: LLM chat interface (planned)
  • 🔀 packages/api-gateway: API routing and service coordination (planned)

🔧 Integrated Services

✅ Currently Supported

  • Gotify - Notification Management
  • Sonarr - TV Show Management
  • Prowlarr - Indexer Management
  • Overseerr - Request Management

🚧 Planned Integrations

  • Radarr - Movie Management
  • qBittorrent - Torrent Management
  • SABnzbd - Usenet Downloads
  • Plex - Media Server
  • Tautulli - Server Statistics
  • TMDB - Media Database

📖 Service Documentation

🟢 Currently Integrated

📋 Planned Integration

🧪 Development

Testing Tools

🛠️ SDK References

🏛️ Architecture

The project follows a modular architecture where each service package contains:

  • 🔌 API client implementation
  • 📝 Type definitions
  • 🛠️ MCP tools for service interaction
  • 🛣️ API routes

This architecture supports multiple interaction methods:

  1. LLM-Powered Control: Natural language processing for intuitive media management
  2. Traditional API Access: Direct API calls through the unified gateway
  3. Web Interface: Visual control panel for service management (planned)
  4. Chatbot Interface: Conversational UI for service control (planned)

The modular design allows for:

  • Easy addition of new services
  • Independent service deployment
  • Flexible interaction methods
  • Consistent API patterns across services

🚀 Getting Started

Prerequisites

# Clone and setup repository
git clone https://github.com/jmagar/yarr
cd yarr
pnpm install

Configuration

  1. Create .env file from template:
cp .env.template .env

Then add your service API keys:

# Sonarr Configuration
SONARR_URL=http://localhost:8989
SONARR_API_KEY=your_sonarr_api_key

# Prowlarr Configuration  
PROWLARR_URL=http://localhost:9696
PROWLARR_API_KEY=your_prowlarr_api_key

# Overseerr Configuration
OVERSEERR_URL=http://localhost:5055
OVERSEERR_API_KEY=your_overseerr_api_key

# Gotify Configuration
GOTIFY_URL=http://localhost:8080
GOTIFY_APP_TOKEN=your_gotify_app_token
GOTIFY_CLIENT_TOKEN=your_gotify_client_token  # Optional, for receiving messages
  1. Configure Claude Desktop:

Important: Use full paths in your configuration to ensure Claude Desktop can find the executables and project directory.

{
  "mcpServers": {
    "yarr": {
      "command": "C:\\Program Files\\nodejs\\node.exe",
      "args": ["C:\\path\\to\\yarr\\packages\\server\\dist\\index.js"],
      "cwd": "C:\\path\\to\\yarr",
      "transport": {
        "type": "stdio"
      },
      "env": {
        "NODE_ENV": "production",
        "PROWLARR_URL": "http://localhost:9696",
        "PROWLARR_API_KEY": "your_prowlarr_api_key",
        "SONARR_URL": "http://localhost:8989",
        "SONARR_API_KEY": "your_sonarr_api_key",
        "OVERSEERR_URL": "http://localhost:5055",
        "OVERSEERR_API_KEY": "your_overseerr_api_key",
        "GOTIFY_URL": "http://localhost:8080",
        "GOTIFY_APP_TOKEN": "your_gotify_app_token",
        "GOTIFY_CLIENT_TOKEN": "your_gotify_client_token"
      }
    }
  }
}

Note: Replace C:\\path\\to\\yarr with your actual project directory path.

Available Tools

Sonarr

// Series Management
sonarr:search              - Search for TV shows
sonarr:list-series         - List all monitored TV series  
sonarr:series-details      - Get detailed information about a series
sonarr:add-series         - Add a new series to monitor
sonarr:monitor-season     - Monitor or unmonitor a season
sonarr:list-profiles      - List quality and language profiles
sonarr:upcoming          - Get upcoming episodes
sonarr:queue             - Get current download queue
sonarr:remove-from-queue - Remove item from download queue

Prowlarr

prowlarr:search           - Search across all indexers
prowlarr:list-indexers    - List configured indexers
prowlarr:indexer-stats    - Get indexer performance stats
prowlarr:check-config     - Validate Prowlarr connection

Overseerr

overseerr:search          - Search for movies and TV shows
overseerr:request         - Request a movie or TV show
overseerr:list-requests   - List media requests
overseerr:update-request  - Update request status
overseerr:trending        - Get trending media with recommendations
overseerr:available       - Get popular available media
overseerr:status          - Get system status

Gotify

gotify:messages:list      - List messages with pagination
gotify:messages:send      - Send a new message
gotify:messages:delete    - Delete a message by ID
gotify:messages:cleanup   - Delete old messages
gotify:apps:list         - List all applications
gotify:apps:create       - Create a new application
gotify:clients:list      - List all clients
gotify:clients:create    - Create a new client
gotify:health           - Check Gotify server health
gotify:stats            - Get Gotify statistics

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured