Plex alone would give you a library browser; adding Sonarr, Radarr and Trakt means "I want the next season" becomes an actual queue entry, and your watch history can live in both Plex and Trakt without exporting anything. Everything but the Plex token is optional, so it degrades cleanly if you only run some of the stack.
One server across four systems: Plex for the library and playback data, Sonarr and Radarr for acquiring what is missing, and Trakt for syncing history.
- The library browsable and searchable — libraries, their items, media details, editable fields, and a full export
- The shelves you actually use: recently added, on deck, watchlist, recently watched and full watch history
- Analytics of the Tautulli kind: watch statistics, per-user stats, library stats, fully watched items, popular content and who is streaming right now
- Recommendations drawn from your own watch history, genres and directors
- Playlists created, added to, trimmed, cleared and deleted, and watchlist entries added and removed
- Metadata updated field by field or from a JSON payload
- Sonarr and Radarr from the same conversation: search, add a series or film, see what is missing, read the queue and the calendar, check quality profiles and trigger a search
- Trakt integration end to end — authenticate, sync history in either direction, start scrobbling, read sync status and user stats, and search Trakt itself
A Plex token in PLEX_TOKEN with PLEX_URL pointing at the server — that is the only required credential. SONARR_URL with SONARR_API_KEY, RADARR_URL with RADARR_API_KEY, and TRAKT_CLIENT_ID with TRAKT_CLIENT_SECRET are each optional; tools for a service you have not configured return an explanation rather than failing the server. Published on npm as plex-mcp-server and run over stdio. Write operations add to the tool count when enabled.
One command plus a key — npx plex-mcp-server, then supply credentials
