jhomen368/overseerr-mcp
MCP Developer ToolsA Model Context Protocol (MCP) server that lets AI assistants search, request, and manage media in Overseerr or Seerr with batch operations and reduced API usage
Features
- Batch deduplication for 50‑100 titles in a single call
- Compact response format cutting token usage by ~88%
- Smart caching reduces API calls by up to 85%
- Safety features: multi‑season confirmation and input validation
- Six built‑in tools covering search, request, management, and service discovery
Recent releases
View all 13 releases →- `passRate` in dedupe summary now divides by total input titles rather than deduped results — the percentage will be lower if duplicate titles were in the input list
Full changelog
[2.1.2] - 2026-04-08
Fixed
- Non-existent season handling: Searching for a season that doesn't exist (e.g. "Overlord S99") now correctly returns the real show ID with a
SEASON_NOT_FOUNDreason code instead of treating the whole search asNOT_FOUND - Compact search status accuracy:
search_mediain compact format now correctly reflects library availability by readingmediaInfofrom search results — titles already in Plex will showAVAILABLEinstead ofNOT_REQUESTED - autoRequest summary counts: Fixed incorrect
pass/blocked/actionablecounts caused by double-wrapped processor returns; summary now always reflects the actual dedupe results - autoRequest result field: Fixed the
autoRequestsresult object not being populated correctly whenautoRequest: trueis used - Season availability blocking: Dedupe mode now correctly blocks titles where the requested season is already in the library (previously some already-available seasons could slip through as actionable)
- Pass rate calculation:
passRatein dedupe summary now uses total input titles as the denominator instead of the deduped result count, giving a more accurate percentage - Season validation with empty array: Fixed a crash when
dedupeModereceived a title with no specific seasons to validate against - Media title fallback: Removed an unnecessary title fallback that could produce undefined/blank titles in request responses
Breaking Changes
passRatein dedupe summary now divides by total input titles rather than deduped results — the percentage will be lower if duplicate titles were in the input list
What's Changed
- npm(deps): bump axios from 1.13.6 to 1.14.0 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/69
- fix: cache media details to prevent undefined media titles by @jhomen368 in https://github.com/jhomen368/overseerr-mcp/pull/72
- Fix/autorequest dedupe bug by @jhomen368 in https://github.com/jhomen368/overseerr-mcp/pull/73
- npm(deps-dev): bump @types/node from 25.5.0 to 25.5.2 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/74
- npm(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/76
- fix(search): use item.mediaInfo in compact format status by @jhomen368 in https://github.com/jhomen368/overseerr-mcp/pull/77
- npm(deps-dev): bump typescript from 5.9.3 to 6.0.2 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/70
- npm(deps): bump @modelcontextprotocol/sdk from 1.27.1 to 1.29.0 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/75
Full Changelog: https://github.com/jhomen368/overseerr-mcp/compare/v2.1.1...v2.1.2
Fixed HTTP/SSE reconnection stability and `request_media` seasons array handling crashes.
Full changelog
[2.1.1] - 2026-03-25
Fixed
- HTTP/SSE reconnection stability: Fixed "Error: Already connected to a transport" crash when an MCP client reconnects after disconnecting in HTTP mode
- Added single-client enforcement: returns HTTP 409 Conflict with
Retry-Afterheader if a client is already connected - Properly cleans up server state when a client disconnects via
req.on('close') - Resets connection flag on failed connection attempts to prevent permanent lockout
- Prevents race condition by setting the connection flag before the async
connect()call
- Added single-client enforcement: returns HTTP 409 Conflict with
request_mediaseasons array handling: Fixed "seasonsToRequest.forEach is not a function" crash when callingrequest_mediawith an explicit seasons array (e.g.seasons: [1, 2]) — the MCP SDK can deliver array parameters in non-standard formats; added runtime type checking to normalize them correctly before processing
What's Changed
- fix(http): enforce single SSE client with 409, cleanup on disconnect,… by @jhomen368 in https://github.com/jhomen368/overseerr-mcp/pull/66 (thanks for @dkbnz for finding this in https://github.com/jhomen368/overseerr-mcp/pull/65)
Full Changelog: https://github.com/jhomen368/overseerr-mcp/compare/v2.1.0...v2.1.1
- Runtime dependency `express` upgraded from ^4.18.2 to ^5.1.0 (major version bump).
- `get_services` tool: list configured Radarr/Sonarr servers with detailed metadata.
- `get_service_details` tool: retrieve quality profiles, root folders, tags, and language profiles for a specific server.
Full changelog
[2.1.0] - 2026-03-16
Added
-
get_servicesTool: List configured Radarr/Sonarr servers from the Seerr/Overseerr instance- Returns server details:
id,name,isDefault,is4k, active directory, profile ID, and tags - Supports optional
serviceTypefilter (radarrorsonarr); omit for both - Anime-specific overrides included when configured (
activeAnimeDirectory,activeAnimeProfileId,activeAnimeTags) - Results cached for 10 minutes (
CACHE_SERVICES_TTLenv var, default: 10 min)
- Returns server details:
-
get_service_detailsTool: Get quality profiles, root folders, tags, and language profiles for a specific server- Required
serviceTypeparameter (radarrorsonarr) - Optional
serverIdparameter (default:0; useget_servicesto retrieve IDs) - Sonarr responses include
languageProfilesarray - Results cached for 10 minutes (
CACHE_SERVICEDETAILS_TTLenv var, default: 10 min)
- Required
-
Service Discovery Type Definitions (
src/types.ts)- New types:
ServiceConfig,QualityProfile,RootFolder,Tag,LanguageProfile,ServiceDetailsResponse - New input types:
GetServicesArgsandGetServiceDetailsArgs
- New types:
-
New Cache Types:
servicesandserviceDetailsadded to caching layer- TTL: 10 minutes each (configurable via
CACHE_SERVICES_TTLandCACHE_SERVICEDETAILS_TTL) - Both types tracked in hit/miss stats and visible at
/cache/statsendpoint
- TTL: 10 minutes each (configurable via
-
MCP Metadata Updated:
package.jsonmcp.server.toolsdeclaration now lists all 6 tools- Improves discoverability on LobeHub and compatible MCP clients
Changed
- Express updated to v5: Runtime dependency
expressbumped from^4.18.2to^5.1.0@types/expressdev dependency updated to^5.0.5
- Node types updated:
@types/nodedev dependency updated to^25.0.3 - Tool count: Server now exposes 6 tools (up from 4)
What's Changed
- npm(deps): bump hono from 4.11.8 to 4.12.0 in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/46
- ci: bump aquasecurity/trivy-action from 0.34.0 to 0.34.1 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/47
- npm(deps): bump axios from 1.13.5 to 1.13.6 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/50
- npm(deps): bump hono from 4.12.0 to 4.12.4 in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/53
- npm(deps): bump @modelcontextprotocol/sdk from 1.26.0 to 1.27.1 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/51
- npm(deps-dev): bump @types/node from 25.2.3 to 25.3.3 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/52
- ci: bump docker/setup-qemu-action from 3 to 4 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/60
- ci: bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/59
- ci: bump docker/login-action from 3 to 4 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/57
- ci: bump docker/build-push-action from 6 to 7 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/56
- npm(deps): bump @hono/node-server from 1.19.9 to 1.19.10 in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/54
- npm(deps-dev): bump @types/node from 25.3.3 to 25.3.5 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/55
- ci: bump aquasecurity/trivy-action from 0.34.1 to 0.35.0 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/58
- npm(deps-dev): bump @types/node from 25.3.5 to 25.5.0 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/62
- npm(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/63
- feat: Add get_services and get_service_details to available MCP tools by @BronsonZ in https://github.com/jhomen368/overseerr-mcp/pull/61
- chore(release): bump version to 2.1.0 and update changelog by @jhomen368 in https://github.com/jhomen368/overseerr-mcp/pull/64
New Contributors
- @BronsonZ made their first contribution in https://github.com/jhomen368/overseerr-mcp/pull/61
Full Changelog: https://github.com/jhomen368/overseerr-mcp/compare/v2.0.0...v2.1.0
- Use the new preferred `SEERR_URL` and `SEERR_API_KEY` environment variables; they take precedence over the deprecated `OVERSEERR_*` variables.
- Deprecation warnings are logged to stderr but do not break functionality.
- `OVERSEERR_URL` and `OVERSEERR_API_KEY` environment variables are deprecated and will be removed in v3.0.0.
Full changelog
[2.0.0] - 2026-02-18
Added
- Seerr Support: Full compatibility with Seerr (Overseerr/Jellyseerr merger)
- API is 100% backward compatible
- No functional changes required
- Dual Environment Variable Support
- New
SEERR_URLandSEERR_API_KEYenvironment variables (preferred) - Legacy
OVERSEERR_URLandOVERSEERR_API_KEYstill supported SEERR_*variables take precedence when both are provided- Deprecation warnings logged for
OVERSEERR_*variables
- New
Changed
- Branding Update: Primary branding changed from Overseerr to Seerr
- Server name:
overseerr-mcp→seerr-mcp(internal) - Package name remains
@jhomen368/overseerr-mcpfor backward compatibility - Docker image remains
ghcr.io/jhomen368/overseerr-mcp
- Server name:
- Documentation: Updated README.md to reflect Seerr as primary, Overseerr as legacy
- All examples use
SEERR_*environment variables - Added migration notes for existing users
- All examples use
- Logging: Enhanced server startup messages to indicate Seerr/Overseerr compatibility
- Health check endpoint now includes compatibility list
- Error Messages: Updated to use "Seerr" terminology
Deprecated
OVERSEERR_URLandOVERSEERR_API_KEYenvironment variables- Will be removed in v3.0.0 (planned for ~1 year from now)
- Use
SEERR_URLandSEERR_API_KEYinstead - Deprecation warnings are non-intrusive (stderr only)
Migration Guide
For Existing Users:
- No action required - All OVERSEERR_* variables continue to work
- Recommended: Update environment variables from
OVERSEERR_*toSEERR_* - Claude Desktop users: Update
claude_desktop_config.jsonto useSEERR_*variables - Docker users: Update environment variables in docker-compose.yml or docker run commands
Example Migration:
// OLD (still works, but deprecated)
{
"env": {
"OVERSEERR_URL": "https://overseerr.example.com",
"OVERSEERR_API_KEY": "your-key"
}
}
// NEW (recommended)
{
"env": {
"SEERR_URL": "https://overseerr.example.com", // Works with both Seerr and Overseerr
"SEERR_API_KEY": "your-key"
}
}
Breaking Changes: None - 100% backward compatible
What's Changed
- npm(deps): bump hono from 4.11.3 to 4.11.4 in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/30
- npm(deps): bump @modelcontextprotocol/sdk from 1.25.2 to 1.25.3 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/32
- npm(deps): bump hono from 4.11.4 to 4.11.7 in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/35
- npm(deps-dev): bump @types/node from 25.0.6 to 25.2.0 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/36
- npm(deps): bump axios from 1.13.2 to 1.13.4 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/37
- npm(deps): bump @modelcontextprotocol/sdk from 1.25.3 to 1.26.0 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/38
- npm(deps-dev): bump @types/node from 25.2.0 to 25.2.2 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/39
- npm(deps): bump axios from 1.13.4 to 1.13.5 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/40
- npm(deps): bump qs from 6.14.1 to 6.14.2 in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/41
- ci: bump aquasecurity/trivy-action from 0.33.1 to 0.34.0 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/42
- npm(deps-dev): bump @types/node from 25.2.2 to 25.2.3 by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/43
- npm(deps): bump ajv from 8.17.1 to 8.18.0 in the npm_and_yarn group across 1 directory by @dependabot[bot] in https://github.com/jhomen368/overseerr-mcp/pull/44
- Release/v2.0.0 seerr migration by @jhomen368 in https://github.com/jhomen368/overseerr-mcp/pull/45
Full Changelog: https://github.com/jhomen368/overseerr-mcp/compare/v1.2.4...v2.0.0
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.