- ๐ 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 - ๐ฆ 4 Powerful Tools - Consolidated from 8 for clarity - ๐ค Automated Security Scanning - Dependabot for dependenc
Add this skill
npx mdskills install jhomen368/overseerr-mcpWell-documented MCP server with powerful batch operations, smart caching, and comprehensive media management tools
1# Seerr MCP Server23[](https://opensource.org/licenses/MIT)4[](https://github.com/jhomen368/overseerr-mcp/pkgs/container/overseerr-mcp)5[](https://github.com/jhomen368/overseerr-mcp)6[](https://www.paypal.com/donate?hosted_button_id=PBRD7FXKSKAD2)78> **A [Model Context Protocol](https://modelcontextprotocol.io) (MCP) server for Overseerr and Seerr (the unified successor) that enables AI assistants to search, request, and manage media through the Model Context Protocol.**910## ๐ฏ Key Features1112- **๐ 99% fewer API calls** for batch operations (150-300 โ 1)13- **โก 88% token reduction** with compact response formats14- **๐ฏ Batch Dedupe Mode** - Check 50-100 titles in one operation15- **๐ Smart Caching** - 70-85% API call reduction16- **๐ก๏ธ Safety Features** - Multi-season confirmation, validation17- **๐ฆ 4 Powerful Tools** - Consolidated from 8 for clarity1819## ๐ Security2021- **๐ค Automated Security Scanning**22 - Dependabot for dependency updates (weekly)23 - CodeQL for code vulnerability analysis (PR + weekly)24 - Trivy for Docker image scanning (CI only - blocks PRs if vulnerabilities found)25 - CI validates everything during PR review, CD trusts CI and publishes26- **๐ณ Hardened Docker Images**27 - Non-root user (mcpuser)28 - Multi-stage builds29 - Minimal Alpine base30 - dumb-init process management31- **โ Input Validation**32 - URL and API key format validation33 - Fails fast with clear error messages3435## ๐ ๏ธ Available Tools3637| Tool | Purpose | Key Features |38|------|---------|--------------|39| **search_media** | Search & dedupe | Single/batch search, dedupe mode for 50-100 titles, franchise awareness |40| **request_media** | Request movies/TV | Batch requests, season validation, multi-season confirmation, dry-run mode |41| **manage_media_requests** | Manage requests | List/approve/decline/delete, filtering, summary statistics |42| **get_media_details** | Get media info | Batch lookup, flexible detail levels (basic/standard/full) |4344## ๐ Prerequisites4546- **Node.js** 18.0 or higher47- **Seerr or Overseerr instance** (self-hosted or managed)48- **Seerr/Overseerr API key** (Settings โ General in your instance)4950## ๐ Quick Start5152### Option 1: NPM (Recommended)5354```bash55npm install -g @jhomen368/overseerr-mcp56```5758**Configure with Claude Desktop:**5960Add to your configuration file:61- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`62- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`6364```json65{66 "mcpServers": {67 "seerr": {68 "command": "npx",69 "args": ["-y", "@jhomen368/overseerr-mcp"],70 "env": {71 "SEERR_URL": "https://seerr.example.com",72 "SEERR_API_KEY": "your-api-key-here"73 }74 }75 }76}77```7879> **Legacy Overseerr Users:** If you're still using Overseerr (not Seerr), you can continue using the legacy variables:80> ```json81> {82> "env": {83> "OVERSEERR_URL": "https://overseerr.example.com",84> "OVERSEERR_API_KEY": "your-api-key-here"85> }86> }87> ```88> *Both `OVERSEERR_*` and `SEERR_*` variables are supported for backward compatibility. Legacy variables will be removed in v3.0.0.*8990### Option 2: Docker (Remote Access)9192```bash93docker run -d \94 --name seerr-mcp \95 -p 8085:8085 \96 -e SEERR_URL=https://your-seerr-instance.com \97 -e SEERR_API_KEY=your-api-key-here \98 ghcr.io/jhomen368/overseerr-mcp:latest99```100101**Docker Compose:**102103```yaml104services:105 seerr-mcp:106 image: ghcr.io/jhomen368/overseerr-mcp:latest107 container_name: seerr-mcp108 ports:109 - "8085:8085"110 environment:111 - SEERR_URL=https://your-seerr-instance.com112 - SEERR_API_KEY=your-api-key-here113 restart: unless-stopped114```115116**Test the server:**117```bash118curl http://localhost:8085/health119```120121**Connect MCP clients:**122- **Transport**: Streamable HTTP (SSE)123- **URL**: `http://localhost:8085/mcp`124125### Option 3: From Source126127```bash128git clone https://github.com/jhomen368/overseerr-mcp.git129cd overseerr-mcp130npm install131npm run build132node build/index.js133```134135## ๐ก Usage Examples136137### Batch Dedupe Workflow (Perfect for Anime Seasons)138139```typescript140// Check 50-100 titles in ONE API call141search_media({142 dedupeMode: true,143 titles: [144 "Frieren: Beyond Journey's End",145 "My Hero Academia Season 7",146 "Demon Slayer Season 4",147 // ... 47 more titles148 ],149 autoNormalize: true // Strips "Season N", "Part N", etc.150})151```152153**Response:**154```json155{156 "summary": {157 "total": 50,158 "pass": 35,159 "blocked": 15,160 "passRate": "70%"161 },162 "results": [163 { "title": "Frieren", "status": "pass", "id": 209867 },164 { "title": "My Hero Academia S7", "status": "pass", "franchiseInfo": "S1-S6 in library" },165 { "title": "Demon Slayer S4", "status": "blocked", "reason": "Already requested" }166 ]167}168```169170### Request Media with Validation171172```typescript173// Single movie request174request_media({175 mediaType: "movie",176 mediaId: 438631177})178179// TV show with specific seasons180request_media({181 mediaType: "tv",182 mediaId: 82856,183 seasons: [1, 2]184})185186// All seasons (excludes season 0 by default)187request_media({188 mediaType: "tv",189 mediaId: 82856,190 seasons: "all"191})192```193194### Manage Requests195196```typescript197// List with filters198manage_media_requests({199 action: "list",200 filter: "pending",201 take: 20202})203204// Batch approve205manage_media_requests({206 action: "approve",207 requestIds: [123, 124, 125]208})209210// Get summary statistics211manage_media_requests({212 action: "list",213 summary: true214})215```216217### Natural Language Examples218219Simply ask your AI assistant:220221- "Search for Inception in Seerr"222- "Check if these 50 anime titles have been requested"223- "Request Breaking Bad all seasons"224- "Show me all pending media requests"225- "Approve request ID 123"226- "Get details for TMDB ID 550"227228## โ๏ธ Configuration229230### Environment Variables231232**Required:**233- `SEERR_URL` - Your Seerr/Overseerr instance URL234- `SEERR_API_KEY` - API key from Settings โ General235236**Legacy (deprecated, will be removed in v3.0.0):**237- `OVERSEERR_URL` - Use `SEERR_URL` instead238- `OVERSEERR_API_KEY` - Use `SEERR_API_KEY` instead239240**Optional (with defaults):**241```bash242CACHE_ENABLED=true # Enable caching243CACHE_SEARCH_TTL=300000 # Search cache: 5 min244CACHE_MEDIA_TTL=1800000 # Media cache: 30 min245CACHE_REQUESTS_TTL=60000 # Request cache: 1 min246CACHE_MAX_SIZE=1000 # Max cache entries247REQUIRE_MULTI_SEASON_CONFIRM=true # Confirm >24 episodes248HTTP_MODE=false # Enable HTTP transport249PORT=8085 # HTTP server port250```251252## ๐ Documentation253254- **[CHANGELOG.md](CHANGELOG.md)** - Version history and release notes255- **[CONTRIBUTING.md](CONTRIBUTING.md)** - Contribution guidelines256- **[Overseerr API Docs](https://api-docs.overseerr.dev/)** - Official API reference257258## ๐ง Troubleshooting259260### Connection Issues261- Verify Seerr/Overseerr URL is accessible262- Check API key validity (Settings โ General)263- Review firewall rules for remote access264265### Docker Issues266```bash267# Check logs268docker logs seerr-mcp269270# Verify health271curl http://localhost:8085/health272273# Restart container274docker restart seerr-mcp275```276277### Build Issues278```bash279# Ensure Node.js 18+280node --version281282# Clean rebuild283rm -rf node_modules build284npm install285npm run build286```287288## ๐ค Contributing289290Contributions welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.291292## ๐ License293294MIT License - see [LICENSE](LICENSE) for details295296## ๐ Acknowledgments297298- [Seerr](https://github.com/seerr) - Next-generation media request and discovery tool299- [Overseerr](https://overseerr.dev/) - Original media request tool for Plex300- [Model Context Protocol](https://modelcontextprotocol.io) - Open protocol for AI integrations301- [Anthropic](https://www.anthropic.com/) - Creators of the MCP standard302303---304305**Support this project:** [](https://www.paypal.com/donate?hosted_button_id=PBRD7FXKSKAD2)306
Full transparency โ inspect the skill content before installing.