使用说明
VLC MCP服务器
MCP(模型上下文协议)服务器,用于使用VLC媒体播放器播放和控制电影。 使用任何MCP客户端远程控制播放视频(例如。 很棒的mcp客户)
我用我的 信号mcp客户端 在一台连接着我的投影仪的旧笔记本电脑上跑步。 这样我就可以通过发送信号消息来播放电影。 下面的屏幕截图显示了如何使用它的示例。
用法
此安装适用于运行Ubuntu或类似基于Debian的系统(如Raspberry Pi OS)的Linux系统。 经过一些修改,它也应该适用于其他系统。 如果你让它在另一个系统上工作,可以随意创建拉取请求。
-
安装VLC、mediainfo和uv。
sudo apt-get install vlc mediainfo curl -LsSf https://astral.sh/uv/install.sh | sh -
启动VLC http服务器:
export DISPLAY=:0 # needed when running it remotely on a server vlc --extraintf=http --http-host=localhost --http-port=8081 --http-password=your_password -
将服务器添加到客户端的MCP配置文件中(如 信号mcp客户端 或 很棒的mcp客户)
{ "name": "vlc-mcp-server", "command": "uvx", "args": [ "vlc-mcp-server" ], "env": { "ROOT_VIDEO_FOLDER": "path/to/your/video/folder", "VLC_HTTP_HOST": "localhost", "VLC_HTTP_PORT": "8081", "VLC_HTTP_PASSWORD": "your_password" } }或克隆仓库并使用
uv使用目录:{ "name": "vlc-mcp-server", "command": "uv", "args": [ "--directory", "path/to/root/dir/", "run", "vlc_mcp_player/main.py" ], "env": { "the same as above" } }
贡献
欢迎为这个项目捐款。您可以随时报告错误、提出想法或创建合并请求。
发展
克隆仓库并安装依赖项:
git clone https://github.com/piebro/vlc-mcp-server.git
uv venv
uv sync --extra dev
uv run pre-commit install
测试
使用 用于测试的mcp客户端 使用本地路径使用json配置测试服务器的工具。
uvx mcp-client-for-testing \
--config '
[
"the json config from above"
]
' \
--client_log_level "INFO" \
--server_log_level "INFO" \
--tool_call '{"name": "show_video", "arguments": {"video_title": "David Lynch - Dune", "subtitle_language_code": "en"}}'
格式化和装订
代码被格式化并用ruff过梁:
uv run ruff format
uv run ruff check --fix
紫外线建筑
使用uv构建包:
uv build
发布新版本
要将包的新版本发布到PyPI,请创建并推送一个新的Git标签:
-
检查主分支并获取当前版本:
git checkout main git pull origin main git describe --tags -
创建并推送一个新的Git标签:
git tag v0.2.0 git push origin v0.2.0
当推送新标签时,GitHub Actions工作流将自动构建包并将其发布到PyPI。 python包版本号将直接从Git标签中导出。
作为系统服务运行
为了确保VLC HTTP接口在启动时自动运行,并在失败时重新启动(在Linux系统上),您可以将其设置为systemd用户服务。 用户服务在您的特定用户帐户下运行。
此设置假定您已完成设置步骤。
-
启用“用户逗留”以在注销后保持用户会话活动。
sudo loginctl enable-linger $USER -
创建系统服务目录
mkdir -p /home/$USER/.config/systemd/user/ -
为VLC HTTP服务器创建服务文件。 确保使用apt而不是snap安装vlc,或者更改vlc二进制文件的路径。
cat << EOF > "/home/$USER/.config/systemd/user/vlc-http.service" [Unit] Description=VLC Media Player with HTTP Interface After=network.target sound.target [Service] Restart=on-failure RestartSec=30 SyslogIdentifier=vlc-http Environment="DISPLAY=:0" ExecStart=/usr/bin/vlc --extraintf=http --http-host=localhost --http-port=8081 --http-password=your_password ExecStop=/usr/bin/pkill -f '/usr/bin/vlc --extraintf=http --http-host=localhost --http-port=8080' [Install] WantedBy=default.target EOF -
启用并启动服务
systemctl --user daemon-reload systemctl --user enable vlc-http.service systemctl --user start vlc-http.service -
检查服务状态和日志
systemctl --user status vlc-http.service journalctl --user -u vlc-http.service -f
许可证
该项目根据MIT许可证获得许可。请参阅 许可证 文件以获取详细信息。