Plex MCP服务器
](https://smithery.ai/server/@djbriane/plex-mcp)
这是一个基于Python的MCP服务器,它与Plex Media server API集成,用于搜索电影和管理播放列表。它使用PlexAPI库与您的Plex服务器进行无缝交互。
截图
以下是Plex MCP服务器工作原理的一些示例:
1.按导演在Plex库中查找电影
通过指定导演的姓名在Plex库中搜索电影。例如,搜索“阿尔弗雷德·希区柯克”会返回他在你的库中的电影列表。
______________________________________________________________________
2.为导演寻找缺失的电影
识别Plex库中缺少的特定导演的电影。这有助于您发现收藏中的空白。
______________________________________________________________________
3.在Plex库中创建播放列表
使用搜索中找到的电影在Plex库中创建新的播放列表。这使您能够高效地组织您的库。
设置
先决条件
- Python 3.8或更高版本
uv包管理器- 具有API访问权限的Plex媒体服务器
安装
通过Smithery安装
通过以下方式自动安装用于Claude Desktop的Plex媒体服务器集成 史密瑟里:
npx -y @smithery/cli install @djbriane/plex-mcp --client claude手动安装
- 克隆此存储库:
git clone
cd plex-mcp- 安装依赖项
uv:
uv venv
source .venv/bin/activate
uv sync- 为您的Plex服务器配置环境变量:
- PLEX_TOKEN:您的Plex身份验证令牌 - PLEX_SERVER_URL:您的Plex服务器URL(例如。,http://192.168.1.100:32400)
查找您的Plex令牌
您可以通过以下方式找到您的Plex令牌:
- 登录Plex Web应用程序
- 打开开发人员工具
- 在Console选项卡中,粘贴并运行:
window.localStorage.getItem('myPlexAccessToken')与Claude一起使用
将以下配置添加到您的Claude应用程序中:
{
"mcpServers": {
"plex": {
"command": "uv",
"args": [
"--directory",
"FULL_PATH_TO_PROJECT",
"run",
"src/plex_mcp/plex_mcp.py"
],
"env": {
"PLEX_TOKEN": "YOUR_PLEX_TOKEN",
"PLEX_SERVER_URL": "YOUR_PLEX_SERVER_URL"
}
}
}
}可用命令
Plex MCP服务器公开以下命令:
| 命令 | 描述 | OpenAPI参考 |
|---|---|---|
search_movies | 通过各种过滤器(如标题、导演、流派)在库中搜索电影,并支持 limit 控制结果数量的参数。 | /library/sections/{sectionKey}/search |
get_movie_details | 获取特定电影的详细信息。 | /library/metadata/{ratingKey} |
get_movie_genres | 获取特定电影的流派。 | /library/sections/{sectionKey}/genre |
list_playlists | 列出Plex服务器上的所有播放列表。 | /playlists |
get_playlist_items | 获取特定播放列表中的项目。 | /playlists/{playlistID}/items |
create_playlist | 使用指定的电影创建新的播放列表。 | /playlists |
delete_playlist | 从Plex服务器中删除播放列表。 | /playlists/{playlistID} |
add_to_playlist | 将电影添加到现有播放列表中。 | /playlists/{playlistID}/items |
recent_movies | 从您的库中获取最近添加的电影。 | /library/recentlyAdded |
运行测试
该项目包括单元测试和集成测试。使用以下说明运行每种类型的测试:
单元测试
单元测试使用虚拟数据来验证每个模块的功能,而不需要实时Plex服务器。
要运行所有单元测试,请执行以下操作:
uv run pytest集成测试
使用.env文件中定义的环境变量对实时Plex服务器运行集成测试。首先,使用Plex配置在项目根目录中创建.env文件:
PLEX_SERVER_URL=https://your-plex-server-url:32400
PLEX_TOKEN=yourPlexTokenHere集成测试用集成标记。要仅运行集成测试,请执行以下操作:
uv run pytest -m integration如果您遇到与Plex服务器的连接问题,请尝试运行集成测试以帮助排除故障。
代码风格和惯例
- 模块结构:\
为导入、日志设置、实用函数、类定义、全局帮助程序、工具方法和主执行使用清晰的节标题(由保护 if __name__ == "__main__":).
- 命名:\
类使用CamelCase,函数、变量和夹具使用lower_snake_case。在测试中,列出内置夹具(例如。 monkeypatch)在定制之前。
- 文件和评论:\
为每个模块、类和函数提供一个简洁的文档字符串,并为复杂的逻辑提供内联注释。
- 错误处理和日志记录:\
使用Python logging 具有一致错误消息(前缀“error:”)和显式异常处理的模块。
- 异步模式:\
将I/O绑定函数定义为异步并使用 asyncio.to_thread() 以处理阻塞操作。
