Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"vlc-mcp-server": {
"args": [
"-y",
"vlc-mcp-server"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
An MCP (Model Context Protocol) Server to play and control movies using the VLC media player. Use any MCP client to control play videos remotely (e.g. awesome-mcp-clients)
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'vlc-mcp-server' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
Checked vlc-mcp-server against OSV.dev.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in entertainment
The official MCP Server for the Mux API
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Unity MCP Server — 268 tools for AI-assisted game development. Connect Claude, Cursor, or any MCP client to Unity Editor & Unity Hub. Scene management, GameObjects, components, builds, profiling, Shader Graph, Amplify, terrain, physics, NavMesh, animation, MPPM multiplayer & more. Free & open source by AnkleBreaker Studio.
A Model Context Protocol (MCP) server that gives Claude direct control over Strudel.cc for AI-assisted music generation and live coding.
MCP Security Weekly
Get CVE alerts and security updates for Vlc Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP (Model Context Protocol) Server to play and control movies using the VLC media player. Use any MCP client to control play videos remotely (e.g. awesome-mcp-clients)
I use my signal-mcp-client running on an old laptop connected to my beamer. This way I can play a movie by sending a signal message. An example of how to use it is shown in the screenshot below.
This installation is for Linux systems running Ubuntu or a similar Debian-based system like Raspberry Pi OS. With a few modifications it should also work on other systems. Feel free to create a pull request if you get it working on another system.
Install VLC, mediainfo and uv.
sudo apt-get install vlc mediainfo
curl -LsSf https://astral.sh/uv/install.sh | sh
Start the VLC http server:
export DISPLAY=:0 # needed when running it remotely on a server
vlc --extraintf=http --http-host=localhost --http-port=8081 --http-password=your_password
Add the server to the MCP config file of your client (like signal-mcp-client or 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"
}
}
or clone the repo and use uv with a directory:
{
"name": "vlc-mcp-server",
"command": "uv",
"args": [
"--directory",
"path/to/root/dir/",
"run",
"vlc_mcp_player/main.py"
],
"env": {
"the same as above"
}
}
Contributions to this project are welcome. Feel free to report bugs, suggest ideas, or create merge requests.
Clone repo and install dependencies:
git clone https://github.com/piebro/vlc-mcp-server.git
uv venv
uv sync --extra dev
uv run pre-commit install
Use mcp-client-for-testing to test the tools of the server using the json config using the local path.
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"}}'
The code is formatted and linted with ruff:
uv run ruff format
uv run ruff check --fix
Build the package using uv:
uv build
To release a new version of the package to PyPI, create and push a new Git tag:
Checkout the main branch and get the current version:
git checkout main
git pull origin main
git describe --tags
Create and push a new Git tag:
git tag v0.2.0
git push origin v0.2.0
The GitHub Actions workflow will automatically build and publish the package to PyPI when a new tag is pushed. The python package version number will be derived directly from the Git tag.
To ensure the VLC HTTP interface runs automatically on boot and restarts if it fails (on Linux systems), you can set it up as a systemd user service. User services run under your specific user account.
This setup assumes that you have completed the setup ste