Skip to content

jhomen368/overseerr-mcp

MCP Developer Tools

A 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

JavaScript Latest v2.1.3 · 14d ago Security brief →

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 →
Review required
v2.1.3 Bug fix
Dependencies

Request API path fix

v2.1.2 Breaking risk
Breaking changes
  • `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_FOUND reason code instead of treating the whole search as NOT_FOUND
  • Compact search status accuracy: search_media in compact format now correctly reflects library availability by reading mediaInfo from search results — titles already in Plex will show AVAILABLE instead of NOT_REQUESTED
  • autoRequest summary counts: Fixed incorrect pass/blocked/actionable counts caused by double-wrapped processor returns; summary now always reflects the actual dedupe results
  • autoRequest result field: Fixed the autoRequests result object not being populated correctly when autoRequest: true is 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: passRate in 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 dedupeMode received 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

  • 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

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

v2.1.1 Bug fix

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-After header 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
  • request_media seasons array handling: Fixed "seasonsToRequest.forEach is not a function" crash when calling request_media with 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

v2.1.0 Breaking risk
Breaking changes
  • Runtime dependency `express` upgraded from ^4.18.2 to ^5.1.0 (major version bump).
Notable features
  • `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_services Tool: 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 serviceType filter (radarr or sonarr); omit for both
    • Anime-specific overrides included when configured (activeAnimeDirectory, activeAnimeProfileId, activeAnimeTags)
    • Results cached for 10 minutes (CACHE_SERVICES_TTL env var, default: 10 min)
  • get_service_details Tool: Get quality profiles, root folders, tags, and language profiles for a specific server

    • Required serviceType parameter (radarr or sonarr)
    • Optional serverId parameter (default: 0; use get_services to retrieve IDs)
    • Sonarr responses include languageProfiles array
    • Results cached for 10 minutes (CACHE_SERVICEDETAILS_TTL env var, default: 10 min)
  • Service Discovery Type Definitions (src/types.ts)

    • New types: ServiceConfig, QualityProfile, RootFolder, Tag, LanguageProfile, ServiceDetailsResponse
    • New input types: GetServicesArgs and GetServiceDetailsArgs
  • New Cache Types: services and serviceDetails added to caching layer

    • TTL: 10 minutes each (configurable via CACHE_SERVICES_TTL and CACHE_SERVICEDETAILS_TTL)
    • Both types tracked in hit/miss stats and visible at /cache/stats endpoint
  • MCP Metadata Updated: package.json mcp.server.tools declaration now lists all 6 tools

    • Improves discoverability on LobeHub and compatible MCP clients

Changed

  • Express updated to v5: Runtime dependency express bumped from ^4.18.2 to ^5.1.0
    • @types/express dev dependency updated to ^5.0.5
  • Node types updated: @types/node dev 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

v2.0.0 Breaking risk
⚠ Upgrade required
  • 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.
Breaking changes
  • `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_URL and SEERR_API_KEY environment variables (preferred)
    • Legacy OVERSEERR_URL and OVERSEERR_API_KEY still supported
    • SEERR_* variables take precedence when both are provided
    • Deprecation warnings logged for OVERSEERR_* variables

Changed

  • Branding Update: Primary branding changed from Overseerr to Seerr
    • Server name: overseerr-mcpseerr-mcp (internal)
    • Package name remains @jhomen368/overseerr-mcp for backward compatibility
    • Docker image remains ghcr.io/jhomen368/overseerr-mcp
  • Documentation: Updated README.md to reflect Seerr as primary, Overseerr as legacy
    • All examples use SEERR_* environment variables
    • Added migration notes for existing users
  • 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_URL and OVERSEERR_API_KEY environment variables
    • Will be removed in v3.0.0 (planned for ~1 year from now)
    • Use SEERR_URL and SEERR_API_KEY instead
    • Deprecation warnings are non-intrusive (stderr only)

Migration Guide

For Existing Users:

  1. No action required - All OVERSEERR_* variables continue to work
  2. Recommended: Update environment variables from OVERSEERR_* to SEERR_*
  3. Claude Desktop users: Update claude_desktop_config.json to use SEERR_* variables
  4. 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.

About

Stars
14
Forks
9
Languages
JavaScript TypeScript Dockerfile
Downloads/week
3 ↑17%
NPM Maintainers
2
Contributors
4

Install & Platforms

Install via
npm docker docker-compose shell-script

Community & Support

Beta — feedback welcome: [email protected]