Seerr MCP Server
Allows discovering configured Radarr servers through Seerr/Overseerr, including server IDs, active defaults, 4K status, quality profiles, root folders, and tags, so media requests can target a chosen Radarr server.
Allows discovering configured Sonarr servers through Seerr/Overseerr, including server IDs, active defaults, 4K status, quality profiles, root folders, and tags, so TV requests can target a chosen Sonarr server.
Click on "Deploy 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., "@Seerr MCP Server search for Dune Part Two and request it if it's not already available"
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.
Seerr MCP Server
A Model Context Protocol (MCP) server for Overseerr and Seerr (the unified successor) that enables AI assistants to search, request, and manage media through the Model Context Protocol.
π― Key Features
π 99% fewer API calls for batch operations (150-300 β 1)
β‘ 88% token reduction with compact response formats
π― Batch Dedupe Mode - Check 50-100 titles in one operation
π Smart Caching - 70-85% API call reduction
π‘οΈ Safety Features - Multi-season confirmation, validation
π¦ 6 Tools - Search, request, and manage media | Discover Radarr/Sonarr server configurations
Related MCP server: Overseerr MCP Server
π Security
π€ Automated Security Scanning
Dependabot for dependency updates (weekly)
CodeQL for code vulnerability analysis (PR + weekly)
Trivy for Docker image scanning (CI only - blocks PRs if vulnerabilities found)
CI validates everything during PR review, CD trusts CI and publishes
π³ Hardened Docker Images
Non-root user (mcpuser)
Multi-stage builds
Minimal Alpine base
dumb-init process management
β Input Validation
URL and API key format validation
Fails fast with clear error messages
π οΈ Available Tools
Tool | Purpose | Key Features |
search_media | Search & dedupe | Single/batch search, dedupe mode for 50-100 titles, franchise awareness |
request_media | Request movies/TV | Batch requests, season validation, multi-season confirmation, dry-run mode |
manage_media_requests | Manage requests | List/approve/decline/delete, filtering, summary statistics |
get_media_details | Get media info | Batch lookup, flexible detail levels (basic/standard/full) |
get_services | List Radarr/Sonarr servers | Discover server IDs, active defaults, 4K status |
get_service_details | Get server config | Quality profiles, root folders, tags per server |
π Prerequisites
Node.js 18.0 or higher
Seerr or Overseerr instance (self-hosted or managed)
Seerr/Overseerr API key (Settings β General in your instance)
π Quick Start
Option 1: NPM (Recommended)
npm install -g @jhomen368/overseerr-mcpConfigure with Claude Desktop:
Add to your configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"seerr": {
"command": "npx",
"args": ["-y", "@jhomen368/overseerr-mcp"],
"env": {
"SEERR_URL": "https://seerr.example.com",
"SEERR_API_KEY": "your-api-key-here"
}
}
}
}Legacy Overseerr Users: If you're still using Overseerr (not Seerr), you can continue using the legacy variables:
{ "env": { "OVERSEERR_URL": "https://overseerr.example.com", "OVERSEERR_API_KEY": "your-api-key-here" } }Both
OVERSEERR_*andSEERR_*variables are supported for backward compatibility. Legacy variables will be removed in v3.0.0.
Option 2: Docker (Remote Access)
docker run -d \
--name seerr-mcp \
-p 8085:8085 \
-e SEERR_URL=https://your-seerr-instance.com \
-e SEERR_API_KEY=your-api-key-here \
ghcr.io/jhomen368/overseerr-mcp:latestDocker Compose:
services:
seerr-mcp:
image: ghcr.io/jhomen368/overseerr-mcp:latest
container_name: seerr-mcp
ports:
- "8085:8085"
environment:
- SEERR_URL=https://your-seerr-instance.com
- SEERR_API_KEY=your-api-key-here
restart: unless-stoppedTest the server:
curl http://localhost:8085/healthConnect MCP clients:
Transport: Streamable HTTP
URL:
http://localhost:8085/mcp
Option 3: From Source
git clone https://github.com/jhomen368/overseerr-mcp.git
cd overseerr-mcp
npm install
npm run build
node build/index.jsπ‘ Usage Examples
Batch Dedupe Workflow (Perfect for Anime Seasons)
// Check 50-100 titles in ONE API call
search_media({
dedupeMode: true,
titles: [
"Frieren: Beyond Journey's End",
"My Hero Academia Season 7",
"Demon Slayer Season 4",
// ... 47 more titles
],
autoNormalize: true // Strips "Season N", "Part N", etc.
})Response:
{
"summary": {
"total": 50,
"pass": 35,
"blocked": 15,
"passRate": "70%"
},
"results": [
{ "title": "Frieren", "status": "pass", "id": 209867 },
{ "title": "My Hero Academia S7", "status": "pass", "franchiseInfo": "S1-S6 in library" },
{ "title": "Demon Slayer S4", "status": "blocked", "reason": "Already requested" }
]
}Request Media with Validation
// Single movie request
request_media({
mediaType: "movie",
mediaId: 438631
})
// TV show with specific seasons
request_media({
mediaType: "tv",
mediaId: 82856,
seasons: [1, 2]
})
// All seasons (excludes season 0 by default)
request_media({
mediaType: "tv",
mediaId: 82856,
seasons: "all"
})Manage Requests
// List with filters
manage_media_requests({
action: "list",
filter: "pending",
take: 20
})
// Batch approve
manage_media_requests({
action: "approve",
requestIds: [123, 124, 125]
})
// Get summary statistics
manage_media_requests({
action: "list",
summary: true
})Service Discovery
// List all configured servers (Radarr + Sonarr)
get_services({})
// List only Radarr servers
get_services({ serviceType: "radarr" })
// Get quality profiles, root folders, and tags for a server
get_service_details({
serviceType: "radarr",
serverId: 0
})
// Use discovered values when requesting media
request_media({
mediaType: "movie",
mediaId: 438631,
serverId: 0,
profileId: 13,
rootFolder: "/data/media/movies"
})Natural Language Examples
Simply ask your AI assistant:
"Search for Inception in Seerr"
"Check if these 50 anime titles have been requested"
"Request Breaking Bad all seasons"
"Show me all pending media requests"
"Approve request ID 123"
"Get details for TMDB ID 550"
"What Radarr servers are configured?"
"Show me the quality profiles for my Sonarr server"
βοΈ Configuration
Environment Variables
Required:
SEERR_URL- Your Seerr/Overseerr instance URLSEERR_API_KEY- API key from Settings β General
Legacy (deprecated, will be removed in v3.0.0):
OVERSEERR_URL- UseSEERR_URLinsteadOVERSEERR_API_KEY- UseSEERR_API_KEYinstead
Optional (with defaults):
CACHE_ENABLED=true # Enable caching
CACHE_SEARCH_TTL=300000 # Search cache: 5 min
CACHE_MEDIA_TTL=1800000 # Media cache: 30 min
CACHE_REQUESTS_TTL=60000 # Request cache: 1 min
CACHE_MAX_SIZE=1000 # Max cache entries
CACHE_SERVICES_TTL=600000 # Services cache: 10 min
CACHE_SERVICEDETAILS_TTL=600000 # Service details cache: 10 min
REQUIRE_MULTI_SEASON_CONFIRM=true # Confirm >24 episodes
HTTP_MODE=false # Enable HTTP transport
PORT=8085 # HTTP server portπ Documentation
CHANGELOG.md - Version history and release notes
CONTRIBUTING.md - Contribution guidelines
Overseerr API Docs - Official API reference
π§ Troubleshooting
Connection Issues
Verify Seerr/Overseerr URL is accessible
Check API key validity (Settings β General)
Review firewall rules for remote access
Docker Issues
# Check logs
docker logs seerr-mcp
# Verify health
curl http://localhost:8085/health
# Restart container
docker restart seerr-mcpBuild Issues
# Ensure Node.js 18+
node --version
# Clean rebuild
rm -rf node_modules build
npm install
npm run buildπ€ Contributing
Contributions welcome! Please see CONTRIBUTING.md for guidelines.
π License
MIT License - see LICENSE for details
π Acknowledgments
Seerr - Next-generation media request and discovery tool
Overseerr - Original media request tool for Plex
Model Context Protocol - Open protocol for AI integrations
Anthropic - Creators of the MCP standard
Support this project:
Available Tools
6 toolsget_media_detailsB
Get media details. Single/batch with level control (basic/standard/full). Media/season status: 1=UNKNOWN, 2=PENDING, 3=PROCESSING, 4=PARTIALLY_AVAILABLE, 5=AVAILABLE, 7=DELETED (Seerr). Code 6 is BLOCKLISTED in Seerr or DELETED in legacy Overseerr. Request statuses use a separate enum.
Inputs: items, level, fields, format, +3 more.
get_service_detailsB
Get quality profiles, root folders, tags, and language profiles (Sonarr) for a Radarr/Sonarr server.
Inputs: serviceType (required), serverId.
get_servicesA
List configured Radarr/Sonarr servers. Returns ID, name, isDefault, 4K status, active defaults (directory, profile, tags).
Inputs: serviceType.
manage_media_requestsB
Manage requests: get/list/approve/decline/delete. Supports filters and batching. Filters: all|pending|approved|available|processing|unavailable|failed
Inputs: action (required), skip, sort, take, +5 more.
request_mediaA
Request media with auto-confirm for TV β€24 eps. Single/batch with validation. Confirm: Movies auto | TV β€24 eps auto | TV >24 eps needs confirmed:true TV needs seasons (array or "all"). "all"=no specials; [0,1,2]=with specials
Inputs: is4k, items, dryRun, mediaId, +7 more.
search_mediaA
Search movies/TV with single/batch/dedupe modes. Dedupe returns actionable status for batch processing. Status: NOT_FOUND | ALREADY_AVAILABLE | ALREADY_REQUESTED | SEASON_AVAILABLE | SEASON_REQUESTED | AVAILABLE_FOR_REQUEST
Inputs: page, limit, query, format, +9 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 6 tools
Each tool maps to a distinct action (list services, search, request, manage requests, details, service config), but the pairs get_services/get_service_details and search_media/get_media_details have overlapping-sounding names that require reading descriptions to separate. The descriptions do clarify the boundary (list vs. config detail; quick status vs. full detail), so misselection risk is low but non-zero.
All names use snake_case with a verb_noun pattern (get_services, search_media, request_media, manage_media_requests), which is highly predictable. Minor inconsistency in granularity between get_services (plural list) and get_service_details (singular detail), but the convention holds.
Six tools is a tight, well-scoped surface for a Seerr/Radarr/Sonarr request-proxy server, with no redundant or filler tools. Each tool covers a distinct stage of the discoverβrequestβmanageβinspect workflow.
The core lifecycle is covered: service discovery, media search with actionable statuses, request creation with confirmation rules, request management (get/list/approve/decline/delete), and detail inspection. Gaps exist around library-side operations (deleting media from Radarr/Sonarr) and user/quota or settings management, but agents can work around these.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Search photos and video moments by visual meaning, people, dates, and folders across local libraries, Apple Photos, and OneDrive. Manage collections, groups, favorites, people, and duplicate review. Synced metadata remains searchable while the desktop is offline; local and Apple Photos media access needs the owning device online with remote access enabled. OneDrive media can be accessed directly from the cloud. OAuth or Bearer API keys. Paid Cloud Access required; hosted visual search uses prepaid credits. Text-in-image search is semantic matching, not guaranteed exact OCR. Setup: https://organizewith.ai/en/guides/connect-ai-assistants
The media memory layer for AI agents and their humans. Your AI client can search your collection, add and log what you've finished, update ratings and lists, and find patterns across everything you've read, watched, played, and listened to.
Related MCP Servers
- FlicenseAqualityBmaintenanceEnables interaction with Jellyseerr media request systems through natural language. Supports searching for media, creating requests, checking request status, and managing your media library workflow.58-
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Overseerr media request management through natural language. Supports searching for movies/TV shows, managing media requests, approving/denying requests, and monitoring server status.MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to interact with Overseerr for automated media discovery, requests, and management in your Plex ecosystem, including searching for movies/TV shows, requesting media, checking request status, and managing approvals.696 npm26MIT
- FlicenseNot gradedqualityDmaintenanceEnables natural language control of self-hosted media services like Sonarr, Prowlarr, Overseerr, and Gotify through the Model Context Protocol.-