plex-mcp-server

EuleMitKeule/plex-mcp-server

3.1

If you are the rightful owner of plex-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

Plex MCP Server is a robust Model-Controller-Protocol server designed to enhance interaction with Plex Media Server through a standardized JSON-based interface.

Plex MCP Server

Notice: This repository is heavily based on vladimir-tutin/plex-mcp-server. Significant portions of the design, structure, and functionality are derived from the original project.

A powerful Model-Controller-Protocol server for interacting with Plex Media Server, providing a standardized JSON-based interface for automation, scripting, and integration with other tools.

Overview

Plex MCP Server creates a unified API layer on top of the Plex Media Server API, offering:

  • Standardized JSON responses for compatibility with automation tools, AI systems, and other integrations
  • Multiple transport methods (stdio and SSE) for flexible integration options
  • Rich command set for managing libraries, collections, playlists, media, users, and more
  • Error handling with consistent response formats
  • Easy integration with automation platforms (like n8n) and custom scripts

Installation

Use the supplied docker-compose.yml file to deploy the server easily.

Environment Variables

You can configure the server using environment variables. The following variables are available:

VariableDescription
PLEX_URLThe URL of your Plex Media Server (e.g., http://localhost:32400)
PLEX_TOKENYour Plex authentication token
PLEX_USERNAMEThe username of the Plex user to use for requests (optional)
PERMISSIONSPermissions to grant (read, write or delete, higher permission includes the previous permissions)
HOSTThe host to bind the server to (default: 0.0.0.0)
PORTThe port to run the server on (default: 8000)
TRANSPORTThe transport method to use (stdio or sse, default: sse)
DEBUGEnable debug logging (default: false)

Response Format

All commands return standardized JSON responses for maximum compatibility with various tools, automation platforms, and AI systems. This consistent structure makes it easy to process responses programmatically.

For successful operations, the response typically includes:

{
  "success_field": true,
  "relevant_data": "value",
  "additional_info": {}
}

For errors, the response format is:

{
  "error": "Error message describing what went wrong"
}

For multiple matches (when searching by title), results are returned as an array of objects with identifying information:

[
  {
    "title": "Item Title",
    "id": 12345,
    "type": "movie",
    "year": 2023
  },
  {
    "title": "Another Item",
    "id": 67890,
    "type": "show",
    "year": 2022
  }
]