servarr-analytics-mcp
Provides tools for managing movies, including health checks, configuration reads, library analytics, simulations, backups, diffs, reports, and guarded write/bulk operations.
Provides tools for managing TV series, including health checks, configuration reads, library analytics, simulations, backups, diffs, reports, and guarded write/bulk operations.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@servarr-analytics-mcprun health check on all apps"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
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-mcpAll diagnostics are written to stderr. stdout is reserved for MCP stdio protocol traffic.
Related MCP server: Sonarr & Radarr MCP Server
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:latestReplace 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 |
| optional | Sonarr base URL. |
| optional | Sonarr API key. |
| optional | Radarr base URL. |
| optional | Radarr API key. |
| optional | Prowlarr base URL. |
| optional | Prowlarr API key. |
| optional | API base path. Defaults to |
| optional | API base path. Defaults to |
| optional | API base path. Defaults to |
| optional | HTTP timeout. Defaults to |
| optional | Backup directory. Defaults to |
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_versionConfiguration: 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, orrawpage,pageSize,limitfrom,tosampleRecordsfieldsgroupBycursor
Defaults protect the client context window:
default
pageSize:100max
pageSize:500raw 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 buildBuild 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-mcpthrough npm trusted publishing/OIDC.GHCR publishes
ghcr.io/<owner>/servarr-analytics-mcp.The release tag must match
package.json, for examplev0.1.2.The workflow runs lint, tests, and build before publishing.
Before the first release:
Create the public GitHub repository.
Replace
OWNERplaceholders in docs/examples if desired.Verify the npm package name is available.
Configure npm trusted publishing for
.github/workflows/release.yml.Publish a GitHub Release tagged
v0.1.2.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Maxinger15/servarr-analytics-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server