richarddas/plex_mcp_server
3.2
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.
A Model Context Protocol (MCP) server for Plex media management, enabling AI assistants like Claude to interact with your Plex library.
Tools
9
Resources
0
Prompts
0
Plex MCP Server
A Model Context Protocol (MCP) server for Plex media management, enabling AI assistants like Claude to interact with your Plex library.
Features
- Movie Management: Search, browse, and analyze your movie collection
- Library Statistics: Get insights into your media collection
- Genre & Director Search: Find content by specific criteria
- Recent Additions: Track newly added content
- Extensible Architecture: Easy to add TV shows and other media types
Requirements
- Python 3.8 or higher
- Plex Media Server with accessible API
- Network access to your Plex server
Setup
Quick Setup (Recommended)
# Clone the repository
git clone https://github.com/richarddas/plex_mcp_server.git
cd plex_mcp_server
# Run the setup script (creates venv and installs dependencies)
./setup.sh
# Edit your Plex details
nano .env
# Activate virtual environment and start the server
source venv/bin/activate
python main.py
Manual Setup
-
Create and activate virtual environment:
python3 -m venv venv source venv/bin/activate
-
Install dependencies:
pip install --upgrade pip pip install -r requirements.txt
-
Configure environment variables:
cp .env.example .env nano .env
Update the values in
.env
:PLEX_URL
: Your Plex server URL (e.g.,http://192.168.1.100:32400
)PLEX_TOKEN
: Your Plex authentication token (How to find it)HOST
andPORT
: Server binding (defaults are fine for most setups)LOG_LEVEL
: Logging verbosity (INFO recommended)
-
Run the server:
python main.py
Daily Usage
After initial setup, to run the server:
cd plex-mcp-server
source venv/bin/activate # Activate virtual environment
python main.py # Start server
# When done: deactivate # Exit virtual environment
Claude Desktop Configuration
Add to your Claude Desktop config.json
:
{
"globalShortcut": "",
"mcpServers": {
"plex": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"http://your-server:8000/sse",
"--allow-http"
]
}
}
}
Available Tools
Movie Tools
get_library_stats
- Overall library statisticslist_all_movies
- Browse all movies with paginationsearch_movies
- Search by titlesearch_by_genre
- Find movies by genresearch_by_director
- Find movies by directorsearch_by_year_range
- Find movies by year rangeget_all_genres
- List all available genresget_all_directors
- List all directorsget_recent_movies
- Recently added movies
Project Structure
plex_mcp_server/
āāā main.py # FastAPI server
āāā config.py # Configuration
āāā plex_client.py # Plex connection
āāā mcp_handler.py # MCP message handling
āāā tools/
ā āāā movie_tools.py # Movie-related tools
ā āāā tv_tools.py # TV tools (future)
āāā requirements.txt # Dependencies
Development
To add new tools:
- Add methods to the appropriate tools file
- Update the
get_tool_definitions()
method - Register the tool in
mcp_handler.py
License
MIT License