The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the MCP Tautulli listing page.
A single-file MCP server for Tautulli — Plex monitoring via Claude Code (or any MCP client).
19 read-only tools. No mutations. All configuration via environment variables.
Or install with uv:
Or from source:
Three environment variables:
| Variable | Required | Default | Description |
|---|---|---|---|
TAUTULLI_URL | Yes | — | Tautulli base URL with protocol (e.g. http://localhost:8181 or https://tautulli.example.com:8181) |
TAUTULLI_API_KEY | Yes | — | Tautulli API key (Settings → Web Interface → API Key) |
TAUTULLI_TLS_VERIFY | No | true | Set to false if using self-signed certs (e.g. Tailscale serve) |
Add to your project's .mcp.json:
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
To point your MCP client at local source without reinstalling after every change, use uv run --directory instead of the installed binary:
This works in both Claude Code (.mcp.json) and Claude Desktop (claude_desktop_config.json). Restart the client after code changes — no uv tool install needed.
Or run standalone:
| Tool | Description |
|---|---|
tautulli_activity | Current Plex streaming activity — who's watching what, progress, quality |
tautulli_history | Recent playback history with filters (user, media type, search, date) — includes transcode decision; pass include_ip=true to show client IP (off by default, it's PII) and include_performance=true to also fetch per-record bitrate via get_stream_data |
tautulli_recently_added | Recently added content — what's new in your Plex libraries |
tautulli_search | Search Plex content by title across all libraries — output includes [key: N] rating keys |
tautulli_metadata | Full metadata for one item by rating key — summary, cast/crew, genres, ratings, and media quality (resolution, codecs, HDR/Dolby Vision, file size). Server file paths omitted |
tautulli_item_stats | Watch stats for one item — plays/time over 24h/7d/30d/all, plus which users watched it (friendly name only) |
tautulli_user_stats | Per-user watch statistics — plays, watch time, last seen |
tautulli_library_stats | Library item counts, total plays, last played per library — output includes [id: N] section ids |
tautulli_library_media_info | Per-library media-quality breakdown — total size, item count, and per-item resolution/codec/container/size (find largest files) |
tautulli_most_watched | Top content by plays or duration (TV, movies, music, users) |
tautulli_server_info | Plex server identity — name, version, platform, connection |
tautulli_status | Server config and reachability check |
tautulli_transcode_stats | Direct play vs transcode breakdown by platform |
tautulli_platform_stats | Top platforms/devices by plays and watch time |
tautulli_stream_resolution | Source vs delivered resolution analysis |
tautulli_plays_by_date | Daily play counts over time by stream type |
tautulli_plays_by_day_of_week | Weekly viewing patterns — which days see the most activity |
tautulli_plays_by_hour | Hourly viewing distribution — when people watch |
tautulli_stream_data | Detailed stream performance data — bitrate, codec, transcode decision, bandwidth for a specific play (use row_id from history or session_key from activity) |
All tools are read-only — this server does not modify any Tautulli or Plex state. Each tool calls a fixed Tautulli get_*/search command; there is no passthrough that could reach a write/destructive endpoint.
Privacy: user-identifying data is minimized by default — usernames, user IDs, emails, and thumbnails are never emitted (users appear by friendly name only), server file paths are omitted, and client IP addresses are opt-in (include_ip=true on tautulli_history). Note that Tautulli itself has no read-only API key — the key you configure is a full-access master key, so this server's read-only guarantee lives in its fixed command set, not in the credential.
tautulli_activity
tautulli_plays_by_day_of_week
tautulli_stream_data (pass row_id from history output)
tautulli_metadata (pass [key: N] from search / recently-added)
tautulli_library_media_info (pass [id: N] from library stats)
tautulli_search
"TAUTULLI_URL environment variable not set"
Both TAUTULLI_URL and TAUTULLI_API_KEY must be set. Find your API key in Tautulli → Settings → Web Interface → API Key.
TLS/SSL errors
If Tautulli is behind a reverse proxy with a self-signed certificate, set TAUTULLI_TLS_VERIFY=false.
"Tautulli unreachable" Verify the URL is accessible from the machine running the MCP server. Check firewalls and that Tautulli is running.
MIT