关于 VLC MCP Server
VLC MCP Server 让 MCP 客户端通过 VLC 控制视频播放,适用于连接投影仪等设备的电脑;文档提供 Ubuntu 和 Debian 系统的安装说明。
主要功能
- 01远程控制 VLC 视频播放
- 02接入 MCP 客户端
- 03配置视频文件夹
- 04提供 Linux 安装说明
适用场景
- 01在连接投影仪的电脑上播放电影
- 02通过 MCP 客户端远程控制 VLC
MCP 相关
该服务允许 MCP 客户端远程控制 VLC 播放;客户端通过将服务加入 MCP 配置来连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
VLC MCP 服务
一个用于使用 VLC media player 播放和控制影片的 MCP(Model Context Protocol)服务。 使用任意 MCP 客户端远程控制视频播放(例如 awesome-mcp-clients)
我在一台连接到投影仪的旧笔记本电脑上运行 signal-mcp-client。 这样,我就可以通过发送 signal 消息来播放影片。 下方截图展示了使用示例。
使用方法
此安装方法适用于运行 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 配置文件中(例如 signal-mcp-client 或 awesome-mcp-clients)
{ "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-client-for-testing,通过使用本地路径的 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 构建软件包:
uv build
发布新版本
要将软件包的新版本发布到 PyPI,请创建并推送新的 Git 标签:
-
切换到 main 分支并获取当前版本:
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 标签中获取。
作为 Systemd 服务运行
若要确保 VLC HTTP 界面在 Linux 系统启动时自动运行,并在发生故障时自动重启,可以将其设置为 systemd 用户服务。 用户服务以你的特定用户帐户运行。
此设置假设你已完成设置步骤。
-
启用用户保留功能,以便在注销后保持用户会话处于活动状态。
sudo loginctl enable-linger $USER -
创建 Systemd 服务目录
mkdir -p /home/$USER/.config/systemd/user/ -
为 VLC HTTP 服务创建服务文件。 确保使用 apt 安装 vlc,而不是使用 snap;或者修改为 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 许可证。详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。