Skip to main content
Glama
servarr-analytics-mcp

servarr-analytics-mcp

by Maxinger15

Servarr Analytics MCP

Servarr Analytics MCP is a Model Context Protocol server for Sonarr, Radarr, and Prowlarr. It gives AI clients a structured data interface for health checks, configuration reads, library analytics, simulations, backups, diffs, reports, and guarded write/bulk operations.

The MCP retrieves and aggregates data. The AI client analyzes the returned structured data and explains recommendations.

IMPORTANT

AI-assisted project

Hi, human here. I designed the architecture and used AI to implement this project. While I actively use it in my own homelab, I cannot provide any warranties or guarantees.

This software has not undergone a security audit and is not intended for direct exposure to public networks. Use it at your own risk, especially in security-sensitive or internet-facing environments.

Related MCP server: MCParr Server

Quick Start With npx

SONARR_URL=http://localhost:8989 \
SONARR_API_KEY=your-sonarr-api-key \
RADARR_URL=http://localhost:7878 \
RADARR_API_KEY=your-radarr-api-key \
PROWLARR_URL=http://localhost:9696 \
PROWLARR_API_KEY=your-prowlarr-api-key \
npx -y servarr-analytics-mcp

All diagnostics are written to stderr. stdout is reserved for MCP stdio protocol traffic.

Docker

docker run --rm -i \
  -e SONARR_URL=http://host.docker.internal:8989 \
  -e SONARR_API_KEY=your-sonarr-api-key \
  -e RADARR_URL=http://host.docker.internal:7878 \
  -e RADARR_API_KEY=your-radarr-api-key \
  -e PROWLARR_URL=http://host.docker.internal:9696 \
  -e PROWLARR_API_KEY=your-prowlarr-api-key \
  ghcr.io/OWNER/servarr-analytics-mcp:latest

Replace OWNER with the GitHub owner that publishes the image.

Docker Compose

services:
  servarr-analytics-mcp:
    image: ghcr.io/OWNER/servarr-analytics-mcp:latest
    stdin_open: true
    environment:
      SONARR_URL: http://sonarr:8989
      SONARR_API_KEY: your-sonarr-api-key
      RADARR_URL: http://radarr:7878
      RADARR_API_KEY: your-radarr-api-key
      PROWLARR_URL: http://prowlarr:9696
      PROWLARR_API_KEY: your-prowlarr-api-key
    volumes:
      - servarr-analytics-backups:/app/.servarr-analytics-backups

volumes:
  servarr-analytics-backups:

MCP JSON Config

{
  "mcpServers": {
    "servarr-analytics": {
      "command": "npx",
      "args": ["-y", "servarr-analytics-mcp"],
      "env": {
        "SONARR_URL": "http://localhost:8989",
        "SONARR_API_KEY": "your-sonarr-api-key",
        "RADARR_URL": "http://localhost:7878",
        "RADARR_API_KEY": "your-radarr-api-key",
        "PROWLARR_URL": "http://localhost:9696",
        "PROWLARR_API_KEY": "your-prowlarr-api-key"
      }
    }
  }
}

Codex TOML Config

[mcp_servers.servarr-analytics]
command = "npx"
args = ["-y", "servarr-analytics-mcp"]

[mcp_servers.servarr-analytics.env]
SONARR_URL = "http://localhost:8989"
SONARR_API_KEY = "your-sonarr-api-key"
RADARR_URL = "http://localhost:7878"
RADARR_API_KEY = "your-radarr-api-key"
PROWLARR_URL = "http://localhost:9696"
PROWLARR_API_KEY = "your-prowlarr-api-key"

Configuration

Configure only the apps you want to expose. Each configured app requires both URL and API key.

Variable

Required

Description

SONARR_URL

optional

Sonarr base URL.

SONARR_API_KEY

optional

Sonarr API key.

RADARR_URL

optional

Radarr base URL.

RADARR_API_KEY

optional

Radarr API key.

PROWLARR_URL

optional

Prowlarr base URL.

PROWLARR_API_KEY

optional

Prowlarr API key.

SONARR_API_BASE_PATH

optional

API base path. Defaults to /api/v3.

RADARR_API_BASE_PATH

optional

API base path. Defaults to /api/v3.

PROWLARR_API_BASE_PATH

optional

API base path. Defaults to /api/v1.

SERVARR_TIMEOUT_MS

optional

HTTP timeout. Defaults to 30000.

SERVARR_BACKUP_DIR

optional

Backup directory. Defaults to .servarr-analytics-backups.

Do not commit API keys or real local URLs to a public repository.

Tool Coverage

The server registers all tools from the initial architecture plan:

  • Health: health_check_all, get_system_status, get_app_config, test_connection, get_api_version

  • Configuration: quality profiles, definitions, custom formats, language/delay profiles, tags, root folders, download clients, indexers, notifications, metadata profiles, naming, media management, disk, health

  • Library: Radarr movies/files/missing/cutoff unmet; Sonarr series/episodes/files/missing/cutoff unmet

  • History and queue: history, grab/import/failed/deleted history, queue, queue details, blocklist

  • Prowlarr: indexers, indexer status/stats/history/tests, download clients, applications

  • Analytics: library, quality, codec, resolution, HDR, audio, profile, custom format, storage, tracker/indexer analytics

  • Simulation: quality profile, custom format, cutoff, score, storage, upgrade, and codec strategy simulations

  • Backup and diff: create/list/restore backup, generate diff, validate patch, dry-run patch, apply patch

  • Write and bulk operations: quality profiles, custom formats, scores, quality definitions, delay profile, naming, media management, restrictions

  • Reports: quality, storage, tracker, failed downloads, monthly statistics, recommendations

Some analytics and simulations are best-effort aggregations over the Servarr API data available to the configured app.

Large Result Controls

Most read and analytics tools accept:

  • detail: summary, normal, verbose, or raw

  • page, pageSize, limit

  • from, to

  • sampleRecords

  • fields

  • groupBy

  • cursor

Defaults protect the client context window:

  • default pageSize: 100

  • max pageSize: 500

  • raw responses are capped

  • aggregation is performed inside the MCP where possible

Write Safety

Mutating tools require confirm: true. Restore, patch application, and bulk score updates also require dryRun: false.

Restore and patch operations are constrained by a safe endpoint allowlist. Collection updates such as quality profiles, custom formats, download clients, indexers, notifications, tags, and root folders must target a specific item id, for example qualityprofile/3. Singleton config endpoints such as config/naming and config/mediamanagement may be updated directly. A real backup restore also requires a specific app target.

bulk_update_scores targets one explicit quality profile through body.qualityProfileId and one or more explicit custom format ids in body.updates. Without dryRun: false, it returns the planned score changes and does not call Servarr.

Examples:

{
  "app": "radarr",
  "id": 3,
  "body": {
    "name": "HD-1080p"
  },
  "confirm": true
}

Patch application:

{
  "dryRun": false,
  "confirm": true,
  "operations": [
    {
      "app": "sonarr",
      "method": "PUT",
      "path": "qualityprofile/3",
      "body": {
        "id": 3,
        "name": "HD-1080p"
      }
    }
  ]
}

Always create a backup before write, restore, or bulk operations.

Development

npm ci
npm run lint
npm test
npm run build

Build output is written to dist/. The executable is dist/index.js.

Release

Publishing is handled by GitHub Actions when a GitHub Release is published.

  • npm publishes servarr-analytics-mcp through npm trusted publishing/OIDC.

  • GHCR publishes ghcr.io/<owner>/servarr-analytics-mcp.

  • The release tag must match package.json, for example v0.1.2.

  • The workflow runs lint, tests, and build before publishing.

Before the first release:

  1. Create the public GitHub repository.

  2. Replace OWNER placeholders in docs/examples if desired.

  3. Verify the npm package name is available.

  4. Configure npm trusted publishing for .github/workflows/release.yml.

  5. Publish a GitHub Release tagged v0.1.2.

Available Tools

123 tools
apply_patchApply PatchB

Apply patch operations. Requires confirm true and dryRun false.

Inputs: operations (required), dryRun, confirm.

audio_distributionAudio DistributionC

Count library items by audio codec.

Inputs: to, app, from, page, +7 more.

average_release_sizeAverage Release SizeD

Average release size from history data.

Inputs: to, app, from, page, +7 more.

bulk_update_scoresBulk Update ScoresC

Bulk update custom format scores from body.updates. Requires confirm=true and dryRun=false.

Inputs: app (required), body (required), confirm (required), id, +11 more.

clone_quality_profileClone Quality ProfileC

Clone a quality profile using the provided body. Requires confirm=true.

Inputs: app (required), body (required), confirm (required), id, +11 more.

codec_by_indexerCodec By IndexerD

Group history codec hints by indexer when available.

Inputs: to, app, from, page, +7 more.

codec_distributionCodec DistributionC

Count library items by video codec.

Inputs: to, app, from, page, +7 more.

conflicting_custom_formatsConflicting Custom FormatsC

Find custom formats sharing equivalent specification counts and names.

Inputs: to, app, from, page, +7 more.

continue_queryContinue QueryA

Continue a paged query from a cursor produced by a previous tool response.

Inputs: cursor (required).

create_backupCreate BackupC

Create a local JSON backup of Servarr configuration endpoints.

Inputs: app.

create_quality_profileCreate Quality ProfileC

Create a quality profile. Requires confirm=true.

Inputs: app (required), body (required), confirm (required), id, +11 more.

custom_format_hitsCustom Format HitsC

Count matched custom formats in library files.

Inputs: to, app, from, page, +7 more.

custom_format_missesCustom Format MissesC

List configured custom formats not seen in library files.

Inputs: to, app, from, page, +7 more.

cutoff_unmet_by_profileCutoff Unmet By ProfileC

Group cutoff-unmet items by quality profile when available.

Inputs: to, app, from, page, +7 more.

delete_quality_profileDelete Quality ProfileA

Delete a quality profile by id. Requires confirm=true.

Inputs: app (required), body (required), confirm (required), id, +11 more.

download_volume_by_indexerDownload Volume By IndexerC

Sum history download volume by indexer.

Inputs: to, app, from, page, +7 more.

dry_run_patchDry Run PatchC

Show patch operations that would be applied.

Inputs: operations (required), dryRun, confirm.

duplicate_custom_formatsDuplicate Custom FormatsC

Find custom formats with duplicate names.

Inputs: to, app, from, page, +7 more.

duplicate_grabsDuplicate GrabsC

Find repeated grabs with the same download id or title.

Inputs: to, app, from, page, +7 more.

estimated_storage_savingsEstimated Storage SavingsC

Estimate savings candidates from large non-HEVC files.

Inputs: to, app, from, page, +7 more.

failed_downloads_by_indexerFailed Downloads By IndexerC

Count failed downloads by indexer.

Inputs: to, app, from, page, +7 more.

generate_diffGenerate DiffC

Compare a backup against current Servarr configuration.

Inputs: backupFile (required), app.

get_api_versionGet API VersionC

Return version details from system status for one configured app.

Inputs: app (required), to, from, page, +7 more.

get_app_configGet App ConfigC

Return host-level configuration for one configured app.

Inputs: app (required), to, from, page, +7 more.

get_applicationsGet Prowlarr ApplicationsC

List Prowlarr application sync targets.

Inputs: to, from, page, limit, +6 more.

get_blocklistGet BlocklistC

Return blocklist records.

Inputs: app (required), to, from, page, +7 more.

get_custom_formatsGet Custom FormatsC

List custom formats.

Inputs: app (required), to, from, page, +7 more.

get_delay_profilesGet Delay ProfilesC

List delay profiles.

Inputs: app (required), to, from, page, +7 more.

get_deleted_historyGet Deleted HistoryD

Return deleted history records.

Inputs: app (required), to, from, page, +7 more.

get_disk_spaceGet Disk SpaceD

Return disk space information.

Inputs: app (required), to, from, page, +7 more.

get_download_clientsGet Download ClientsC

List download clients.

Inputs: app (required), to, from, page, +7 more.

get_failed_historyGet Failed HistoryD

Return failed history records.

Inputs: app (required), to, from, page, +7 more.

get_grab_historyGet Grab HistoryC

Return grab history records.

Inputs: app (required), to, from, page, +7 more.

get_healthGet HealthD

Return health messages.

Inputs: app (required), to, from, page, +7 more.

get_historyGet HistoryC

Return history records with optional paging and date filters.

Inputs: app (required), to, from, page, +7 more.

get_import_historyGet Import HistoryC

Return import/download-folder-imported history records.

Inputs: app (required), to, from, page, +7 more.

get_indexerGet Prowlarr IndexerC

Return one Prowlarr indexer by id.

Inputs: id (required), to, from, page, +7 more.

get_indexer_historyGet Prowlarr Indexer HistoryC

Return Prowlarr indexer history.

Inputs: to, from, page, limit, +6 more.

get_indexersGet IndexersC

List indexers.

Inputs: app (required), to, from, page, +7 more.

get_indexer_statsGet Prowlarr Indexer StatsC

Return Prowlarr indexer statistics.

Inputs: to, from, page, limit, +6 more.

get_indexer_statusGet Prowlarr Indexer StatusD

Return Prowlarr indexer status.

Inputs: to, from, page, limit, +6 more.

get_language_profilesGet Language ProfilesC

List language profiles when supported by the app.

Inputs: app (required), to, from, page, +7 more.

get_media_management_configGet Media Management ConfigC

Return media management configuration.

Inputs: app (required), to, from, page, +7 more.

get_metadata_profilesGet Metadata ProfilesC

List metadata profiles when supported by the app.

Inputs: app (required), to, from, page, +7 more.

get_naming_configGet Naming ConfigC

Return naming configuration.

Inputs: app (required), to, from, page, +7 more.

get_notificationsGet NotificationsC

List notifications.

Inputs: app (required), to, from, page, +7 more.

get_quality_definitionsGet Quality DefinitionsC

List quality definitions.

Inputs: app (required), to, from, page, +7 more.

get_quality_profileGet Quality ProfileC

Return a single quality profile by id.

Inputs: id (required), app (required), to, from, +8 more.

get_quality_profilesGet Quality ProfilesC

List quality profiles.

Inputs: app (required), to, from, page, +7 more.

get_queueGet QueueD

Return queue records.

Inputs: app (required), to, from, page, +7 more.

get_queue_detailsGet Queue DetailsD

Return detailed queue records.

Inputs: app (required), to, from, page, +7 more.

get_root_foldersGet Root FoldersC

List root folders.

Inputs: app (required), to, from, page, +7 more.

get_system_statusGet System StatusC

Return Servarr system status for one configured app.

Inputs: app (required), to, from, page, +7 more.

get_tagsGet TagsC

List tags.

Inputs: app (required), to, from, page, +7 more.

grabs_by_indexerGrabs By IndexerC

Count grab events by indexer.

Inputs: to, app, from, page, +7 more.

hdr_distributionHDR DistributionD

Count library items by HDR/dynamic range.

Inputs: to, app, from, page, +7 more.

health_check_allHealth Check AllC

Check status and health for every configured Servarr app.

Inputs: to, from, page, limit, +6 more.

imports_by_indexerImports By IndexerC

Count import events by indexer.

Inputs: to, app, from, page, +7 more.

language_by_indexerLanguage By IndexerC

Group history languages by indexer.

Inputs: to, app, from, page, +7 more.

library_audio_distributionLibrary Audio DistributionC

Summarize audio codec distribution.

Inputs: to, app, from, page, +7 more.

library_codec_distributionLibrary Codec DistributionC

Summarize video codec distribution.

Inputs: to, app, from, page, +7 more.

library_growth_statisticsLibrary Growth StatisticsC

Estimate growth from added dates and recent imports.

Inputs: to, app, from, page, +7 more.

library_hdr_distributionLibrary HDR DistributionC

Summarize HDR/dynamic range distribution.

Inputs: to, app, from, page, +7 more.

library_profile_usageLibrary Profile UsageC

Summarize quality profile usage.

Inputs: to, app, from, page, +7 more.

library_quality_distributionLibrary Quality DistributionC

Summarize quality distribution.

Inputs: to, app, from, page, +7 more.

library_resolution_distributionLibrary Resolution DistributionD

Summarize resolution distribution.

Inputs: to, app, from, page, +7 more.

library_storage_statsLibrary Storage StatsC

Summarize storage usage by library.

Inputs: to, app, from, page, +7 more.

library_summaryLibrary SummaryD

Summarize configured Servarr libraries.

Inputs: to, app, from, page, +7 more.

list_backupsList BackupsA

List local Servarr Analytics MCP backup files.

Inputs: no named parameters.

profile_overlapProfile OverlapC

Find quality profiles with identical quality sets.

Inputs: to, app, from, page, +7 more.

quality_by_indexerQuality By IndexerC

Group history qualities by indexer.

Inputs: to, app, from, page, +7 more.

quality_distributionQuality DistributionC

Count library items by current file quality.

Inputs: to, app, from, page, +7 more.

quality_profile_usageQuality Profile UsageC

Count library items per quality profile.

Inputs: to, app, from, page, +7 more.

radarr_get_cutoff_unmetRadarr Get Cutoff UnmetC

List Radarr movies that have not met cutoff.

Inputs: to, from, page, limit, +6 more.

radarr_get_missingRadarr Get MissingC

List missing Radarr movies.

Inputs: to, from, page, limit, +6 more.

radarr_get_movieRadarr Get MovieC

Return one Radarr movie by id.

Inputs: id (required), to, from, page, +7 more.

radarr_get_movie_filesRadarr Get Movie FilesC

List movie files for a Radarr movie.

Inputs: movieId (required), to, from, page, +7 more.

radarr_get_moviesRadarr Get MoviesC

List Radarr movies.

Inputs: to, from, page, limit, +6 more.

redundant_quality_profilesRedundant Quality ProfilesC

Find unused or duplicate quality profiles.

Inputs: to, app, from, page, +7 more.

release_group_by_indexerRelease Group By IndexerC

Group release groups by indexer.

Inputs: to, app, from, page, +7 more.

report_failed_downloadsReport Failed DownloadsC

Generate report failed downloads.

Inputs: to, app, from, page, +7 more.

report_monthly_statisticsReport Monthly StatisticsD

Generate report monthly statistics.

Inputs: to, app, from, page, +7 more.

report_quality_reviewReport Quality ReviewD

Generate report quality review.

Inputs: to, app, from, page, +7 more.

report_recommendationsReport RecommendationsD

Generate report recommendations.

Inputs: to, app, from, page, +7 more.

report_storage_reviewReport Storage ReviewD

Generate report storage review.

Inputs: to, app, from, page, +7 more.

report_tracker_reviewReport Tracker ReviewD

Generate report tracker review.

Inputs: to, app, from, page, +7 more.

resolution_distributionResolution DistributionC

Count library items by resolution.

Inputs: to, app, from, page, +7 more.

restore_backupRestore BackupB

Plan or restore a backup. Actual restore requires confirm true and dryRun false.

Inputs: backupFile (required), app, dryRun, confirm.

simulate_codec_strategySimulate Codec StrategyC

Run a dry-run simulate codec strategy simulation.

Inputs: to, app, from, page, +9 more.

simulate_custom_format_changeSimulate Custom Format ChangeC

Run a dry-run simulate custom format change simulation.

Inputs: to, app, from, page, +9 more.

simulate_cutoff_changeSimulate Cutoff ChangeC

Run a dry-run simulate cutoff change simulation.

Inputs: to, app, from, page, +9 more.

simulate_profile_impactSimulate Profile ImpactA

Dry-run hypothetical quality profiles and custom formats against current files and live releases without applying changes.

Inputs: app (required), qualityProfiles (required), to, from, +11 more.

simulate_quality_profile_changeSimulate Quality Profile ChangeD

Run a dry-run simulate quality profile change simulation.

Inputs: to, app, from, page, +9 more.

simulate_score_changeSimulate Score ChangeD

Run a dry-run simulate score change simulation.

Inputs: to, app, from, page, +9 more.

simulate_storage_growthSimulate Storage GrowthC

Run a dry-run simulate storage growth simulation.

Inputs: to, app, from, page, +9 more.

simulate_storage_savingsSimulate Storage SavingsD

Run a dry-run simulate storage savings simulation.

Inputs: to, app, from, page, +9 more.

simulate_upgrade_impactSimulate Upgrade ImpactD

Run a dry-run simulate upgrade impact simulation.

Inputs: to, app, from, page, +9 more.

sonarr_get_cutoff_unmetSonarr Get Cutoff UnmetC

List Sonarr episodes that have not met cutoff.

Inputs: to, from, page, limit, +6 more.

sonarr_get_episode_filesSonarr Get Episode FilesC

List episode files for a Sonarr series.

Inputs: seriesId (required), to, from, page, +7 more.

sonarr_get_episodesSonarr Get EpisodesC

List episodes for a Sonarr series.

Inputs: seriesId (required), to, from, page, +7 more.

sonarr_get_missingSonarr Get MissingC

List missing Sonarr episodes.

Inputs: to, from, page, limit, +6 more.

sonarr_get_seriesSonarr Get SeriesC

List Sonarr series, or return one series when id is provided.

Inputs: id, to, from, page, +7 more.

storage_by_codecStorage By CodecD

Group storage by codec.

Inputs: to, app, from, page, +7 more.

storage_by_qualityStorage By QualityD

Group storage by quality.

Inputs: to, app, from, page, +7 more.

storage_by_resolutionStorage By ResolutionD

Group storage by resolution.

Inputs: to, app, from, page, +7 more.

storage_growthStorage GrowthD

Estimate storage growth from history.

Inputs: to, app, from, page, +7 more.

storage_usageStorage UsageD

Summarize storage usage.

Inputs: to, app, from, page, +7 more.

success_rate_by_indexerSuccess Rate By IndexerC

Estimate indexer success rate from grab/import/failure history.

Inputs: to, app, from, page, +7 more.

test_all_indexersTest All Prowlarr IndexersC

Trigger Prowlarr tests for all indexers.

Inputs: to, from, page, limit, +6 more.

test_connectionTest ConnectionC

Test connectivity for one Servarr app.

Inputs: app (required), to, from, page, +7 more.

test_indexerTest Prowlarr IndexerC

Trigger a Prowlarr indexer test.

Inputs: id (required), to, from, page, +7 more.

unused_custom_formatsUnused Custom FormatsD

Alias for custom format misses.

Inputs: to, app, from, page, +7 more.

update_custom_formatUpdate Custom FormatC

Update a custom format by id. Requires confirm=true.

Inputs: app (required), body (required), confirm (required), id, +11 more.

update_custom_format_scoreUpdate Custom Format ScoreC

Update custom format score data using the provided body. Requires confirm=true.

Inputs: app (required), body (required), confirm (required), id, +11 more.

update_delay_profileUpdate Delay ProfileC

Update a delay profile by id. Requires confirm=true.

Inputs: app (required), body (required), confirm (required), id, +11 more.

update_media_managementUpdate Media ManagementC

Update media management configuration. Requires confirm=true.

Inputs: app (required), body (required), confirm (required), id, +11 more.

update_namingUpdate NamingD

Update naming configuration. Requires confirm=true.

Inputs: app (required), body (required), confirm (required), id, +11 more.

update_quality_definitionUpdate Quality DefinitionD

Update a quality definition by id. Requires confirm=true.

Inputs: app (required), body (required), confirm (required), id, +11 more.

update_quality_profileUpdate Quality ProfileC

Update a quality profile by id. Requires confirm=true.

Inputs: app (required), body (required), confirm (required), id, +11 more.

update_restrictionsUpdate RestrictionsC

Update release profile restrictions. Requires confirm=true.

Inputs: app (required), body (required), confirm (required), id, +11 more.

upgrade_candidatesUpgrade CandidatesC

List monitored items missing files or below cutoff.

Inputs: to, app, from, page, +7 more.

validate_patchValidate PatchC

Validate patch operations without applying them.

Inputs: operations (required), dryRun, confirm.

wasted_downloadsWasted DownloadsC

Estimate failed or non-imported grab volume.

Inputs: to, app, from, page, +7 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2/5.0

    Scored across 123 tools

    Disambiguation2/5

    Many tools have overlapping boundaries (library_codec_distribution vs codec_distribution, library_quality_distribution vs quality_distribution, custom_format_misses vs unused_custom_formats which is an explicit alias). The large number of distribution, simulation, and report tools makes it hard to select the right one without deep inspection.

    Naming Consistency3/5

    Mostly snake_case verb_noun, but inconsistent: radarr_get_movies breaks the get_* pattern, library_summary and storage_usage lack verbs, and duplicate functionality is named differently (custom_format_misses vs unused_custom_formats). Overall readable but with clear deviations.

    Tool Count1/5

    123 tools is an extreme number for any MCP server. The functionality could be consolidated into far fewer tools; many are micro-variants of each other, making the surface unnecessarily heavy and difficult to navigate.

    Completeness3/5

    The toolset provides extensive read, analytics, simulation, and report coverage, plus some configuration mutations. However, custom formats lack create/delete operations, and indexers, download clients, and notifications have no mutation tools, leaving notable gaps for a supposedly comprehensive management surface.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Integrates with Radarr and Sonarr to manage your media library, enabling search, download requests, status checks, and system health monitoring.
      6
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      A locally-run, read-only MCP server that lets an LLM client diagnose a self-hosted *arr media stack by aggregating across Sonarr, Radarr, Prowlarr, qBittorrent, Tdarr, and Profilarr.
      53 PyPI
      Apache 2.0
    • A
      license
      B
      quality
      C
      maintenance
      Exposes the Sonarr v3 REST API as MCP tools, enabling LLMs to read and manage a Sonarr instance including series, episodes, downloads, history, and more. Supports both read and write operations, with destructive tools flagged.
      15
      MIT