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 {
"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 "/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许可证获得许可。请参阅 许可证 文件以获取详细信息。

