Featured

Deploy OpenClaw in 60 seconds β€” 20% off logoDeploy OpenClaw in 60 seconds β€” 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger β†’
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger β†’
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free β†’
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now β†’
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data β€” no proxies, no parsers, no maintenance.

Start building free β†’
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it β€” secured from day one.

Get it set up for you β†’
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free β†’
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here β†’

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

mcp-tautulli MCP server](https://glama.ai/mcp/servers/lodordev/mcp-tautulli/badges/score.svg)](https://glama.ai/mcp/servers/lodordev/mcp-tautulli) 🐍 🏠 - Tautulli (Plex media server monitoring) with 11 read-only tools for activity, history, library stats,...

README.md

<!-- mcp-name: io.github.lodordev/mcp-tautulli -->

mcp-tautulli

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.

Prerequisites

  • Python 3.10+
  • A running Tautulli instance with an API key
  • Claude Code (or any MCP-compatible client)

Installation

pip install mcp-tautulli

Or install with uv:

uv tool install mcp-tautulli

Or from source:

git clone https://github.com/lodordev/mcp-tautulli.git
cd mcp-tautulli
pip install .

Configuration

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) |

Claude Code Setup

Add to your project's .mcp.json:

{
  "mcpServers": {
    "tautulli": {
      "command": "mcp-tautulli",
      "env": {
        // Include the protocol (http:// or https://)
        "TAUTULLI_URL": "http://your-tautulli-host:8181",
        "TAUTULLI_API_KEY": "your-api-key-here"
      }
    }
  }
}

Claude Desktop Setup

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "tautulli": {
      "command": "mcp-tautulli",
      "env": {
        "TAUTULLI_URL": "http://your-tautulli-host:8181",
        "TAUTULLI_API_KEY": "your-api-key-here"
      }
    }
  }
}

Local Development Config

To point your MCP client at local source without reinstalling after every change, use uv run --directory instead of the installed binary:

{
  "mcpServers": {
    "tautulli-dev": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-tautulli", "mcp-tautulli"],
      "env": {
        "TAUTULLI_URL": "http://your-tautulli-host:8181",
        "TAUTULLI_API_KEY": "your-api-key-here"
      }
    }
  }
}

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:

export TAUTULLI_URL="http://localhost:8181"
export TAUTULLI_API_KEY="your-api-key"
mcp-tautulli

Tools

| 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.

<details> <summary><strong>Example Output</strong></summary>

tautulli_activity ``` 2 active stream(s):

β€’ Alice playing "The Bear S02E06 β€” Fishes" β€” 45%, on Apple TV (direct play) β€’ Bob playing "Oppenheimer (2023)" β€” 12%, on Roku (transcode)

Bandwidth: 18.5 Mbps total (LAN: 12.2, WAN: 6.3) ```

tautulli_plays_by_day_of_week ``` Plays by day of week (last 30 days):

Monday : 91 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ (TV:62, Movies:18, Music:11) ← peak Tuesday : 76 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ (TV:56, Movies:15, Music:5) Wednesday: 62 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ (TV:34, Movies:20, Music:8) Thursday : 45 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ (TV:32, Movies:8, Music:5) Friday : 59 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ (TV:37, Movies:14, Music:8) Saturday : 50 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ (TV:32, Movies:10, Music:8) Sunday : 86 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ (TV:60, Movies:16, Music:10)

Total: 469 plays, avg 67.0/day ```

tautulli_stream_data (pass row_id from history output) ``` Stream Performance Data:

Media: Game of Thrones β€” The Red Woman (episode)

Quality Profile: Original Source Bitrate: 10617 kbps Source Video Bitrate: 10233 kbps Source Audio Bitrate: 384 kbps

Stream Bitrate: 10617 kbps Stream Resolution: 1080p Stream Video Codec: h264 Stream Framerate: 24p Stream Audio Codec: ac3 Stream Audio Channels: 6

Source Container: mkv Source Video Codec: h264 Source Audio Codec: ac3 Source Resolution: 1080

Video Decision: direct play Audio Decision: direct play ```

tautulli_metadata (pass [key: N] from search / recently-added) ``` Example Movie (2019) β€” movie

Library: Movies Content Rating: PG-13 Aired: 2019-05-01 Duration: 2h 10m Ratings: audience 7.9 Genres: Adventure, Sci-Fi Resolution: 1080p Container: mkv Video Codec: h264 Audio: eac3 6ch File Size: 18.5 GB Dynamic Range: SDR

IDs: imdb://tt0000000, tmdb://00000 ```

tautulli_library_media_info (pass [id: N] from library stats) ``` Library media info (section 1, 500 items, 4.2 TB total):

Resolutions (top 3): 1080:2, 4k:1

Items (sorted by file_size desc): β€’ Example Feature (2021) β€” 4k, hevc, mkv, 42.0 GB β€’ Another Movie (2018) β€” 1080, h264, mkv, 12.3 GB β€’ A Third Film (2016) β€” 1080, h264, mp4, 9.8 GB ```

tautulli_search ``` Search results for "breaking":

Movies: β€’ Breaking (2012) β€” Movies

TV Shows: β€’ Breaking Bad (2008) β€” TV Shows ```

</details>

Troubleshooting

"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.

License

MIT

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use Developer Tools servers.