Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Control VLC Media Player from any MCP client: play, pause, seek, volume, playlist.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
VLC_BASE_URL, VLC_HTTP_PASSWORD, VLC_HTTP_TIMEOUT_MSValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"vlc": {
"command": "npx",
"args": [
"-y",
"vlc-mcp-server"
],
"env": {
"VLC_BASE_URL": "your-value",
"VLC_HTTP_PASSWORD": "your-value",
"VLC_HTTP_TIMEOUT_MS": "your-value"
}
}
}
}Run this in your terminal
claude mcp add vlc --env VLC_BASE_URL=your-value --env VLC_HTTP_PASSWORD=your-value --env VLC_HTTP_TIMEOUT_MS=your-value -- npx -y vlc-mcp-serverFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"vlc": {
"command": "npx",
"args": [
"-y",
"vlc-mcp-server"
],
"env": {
"VLC_BASE_URL": "your-value",
"VLC_HTTP_PASSWORD": "your-value",
"VLC_HTTP_TIMEOUT_MS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"vlc": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"vlc-mcp-server"
],
"env": {
"VLC_BASE_URL": "your-value",
"VLC_HTTP_PASSWORD": "your-value",
"VLC_HTTP_TIMEOUT_MS": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
VLC_BASE_URL envVLC_HTTP_TIMEOUT_MS envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account QuantumNovice, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: VLC_HTTP_PASSWORD
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.2) reached the registry 22 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Tethered Trust
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
vlc-mcp is a Model Context Protocol (MCP) server and Claude Code plugin that lets AI clients inspect and control VLC Media Player using its built in HTTP interface. It uses MCP stdio by default for local clients, with an optional loopback-only Streamable HTTP mode for curl smoke checks and local HTTP clients.
The VLC cone icon is from VideoLAN. VLC and the cone logo are VideoLAN trademarks; this independent project is not affiliated with VideoLAN.
| Tool | Purpose |
|---|---|
vlc_get_status | Read playback state, media, elapsed time, duration, and volume |
vlc_list_playlist | List media items and their VLC playlist IDs |
vlc_play | Resume playback, or play a playlist item by ID |
vlc_pause | Toggle playback pause state |
vlc_stop | Stop playback |
vlc_next / vlc_previous | Change playlist item |
vlc_set_volume | Set volume from 0 to 512 |
vlc_seek | Seek to a position in seconds |
vlc_add_media | Add a local media path or a VLC supported media URL to the playlist |
stdiohttp://127.0.0.1:8080. Do not expose the HTTP interface to the internet.VLC preference labels can vary slightly by version. The setting is part of VLC's Lua HTTP interface. Leave the username blank unless your VLC server is configured with a username. If you set a Lua HTTP password, set VLC_HTTP_PASSWORD to the same value in the MCP client's environment.
No clone or local build is needed. The published npm package can be run with npx; it downloads the package on first launch:
npx -y vlc-mcp-server
The command starts the MCP stdio server. Usually, put it in your AI client's MCP config so the client starts it automatically.
To install it globally instead, run npm install --global vlc-mcp-server; then use vlc-mcp-server as the MCP config command with an empty args array.
Add this entry under mcpServers in your AI client's configuration:
{
"vlc": { "command": "npx", "args": ["-y", "vlc-mcp-server"], "env": { "VLC_BASE_URL": "http://127.0.0.1:8080" } } }
If the config already has an mcpServers object, add only the vlc property and keep the other server entries. Save the file and restart the client. If VLC has a Lua HTTP password, add VLC_HTTP_PASSWORD to env; leave VLC_HTTP_USERNAME empty unless you configured one.
Try these prompts:
To play a specific item, first ask for the playlist, then pass the item's numeric ID to vlc_play. vlc_add_media accepts a local path or a URL that VLC supports. VLC needs permission to read the file or access the URL.
/plugin marketplace add QuantumNovice/vlc-mcp
/plugin install vlc-mcp --marketplace QuantumNovice/vlc-mcp
Claude Desktop can launch the package over stdio. Open %APPDATA%\Claude\claude_desktop_config.json (create it if needed) and add this under mcpServers:
{
"vlc": { "command": "npx", "args": ["-y", "vlc-mcp-server"], "env": { "VLC_BASE_URL": "http://127.0.0.1:8080" } } }
If the file already contains other MCP servers, add only the vlc entry inside mcpServers. Save the file and restart Claude Desktop. Open a chat and ask Claude to list the VLC playlist. For current Claude Desktop extension options, see Anthropic's local MCP server guide.
For an application you run locally, install the OpenAI Agents SDK for JavaScript in that application with npm install @openai/agents. This example starts the published VLC package as a local process:
import { Agent, MCPServerStdio, run } from "@openai/agents";
const server = new MCPServerStdio({ name: "VLC", command: "npx", args: ["-y", "vlc-mcp-server"], env: { VLC_BASE_URL: "http://127.0.0.1:8080", VLC_HTTP_USERNAME: "", VLC_HTTP_PASSWORD: process.env.VLC_HTTP_PASSWORD ?? "" } });
await server.connect(); try { const agent = new Agent({ name: "VLC assistant", instructions: "Use the VLC tools to answer the user's request.", mcpServers: [server] }); const response = await run(agent, "Show the current VLC playback status."); console.log(response.finalOutput); } finally { await server.close(); }
Set OPENAI_API_KEY before running the application. Set VLC_HTTP_PASSWORD only if you configured a Lua HTTP password in VLC. OpenAI's Agents SDK MCP guide documents local stdio and HTTP server connections.
ChatGPT and OpenAI hosted API requests cannot connect directly to this computer's 127.0.0.1 endpoint. To use this local VLC server from those hosted products, use OpenAI Secure MCP Tunnel. Create a tunnel in OpenAI Platform, run tunnel-client on this computer, and point it at this server's local stdio command or HTTP endpoint. Then add the tunnel in ChatGPT as a custom MCP server, or pass its tunnel_id in an OpenAI Responses API MCP tool. Tunnel setup and access depend on your OpenAI Platform and ChatGPT workspace permissions; see OpenAI's tunnel guide.
Hermes Agent supports local stdio MCP servers. Register the published npm package with Hermes' MCP CLI:
hermes mcp add vlc --command npx --args -y vlc-mcp-server
hermes mcp test vlc
Start or restart Hermes with hermes chat, then ask it to show the VLC status. The server defaults to empty username and password. If you configured a Lua HTTP password, add it under mcp_servers.vlc.env.VLC_HTTP_PASSWORD in Hermes config. Hermes MCP setup and config options are documented in the Hermes MCP guide.
Ollama runs the model; configure the MCP server in the agent or client that connects to that model. Ollama's /api/chat tool calling takes function definitions from the client, so it does not use this server's MCP config directly. Use an MCP-capable host such as Hermes Agent or OpenClaw, then select Ollama as that host's model provider. Ollama's ollama launch can set up supported agent integrations:
ollama pull qwen3
ollama launch hermes --model qwen3
ollama launch openclaw --model qwen3
Then configure the vlc MCP server in Hermes or OpenClaw using the section above. Use a model with tool calling support; ollama show qwen3 displays the model capabilities. For direct application code, your app must act as the MCP client and forward discovered MCP tools to Ollama's chat API; see Ollama tool support.
Recent llama-server builds support MCP servers over stdio (the feature is marked experimental). Save this Cursor-style MCP config as vlc-mcp-servers.json:
{
"mcpServers": { "vlc": { "command": "npx", "args": ["-y", "vlc-mcp-server"], "env": { "VLC_BASE_URL": "http://127.0.0.1:8080" } } } }
Append this option to the command you already use to start llama-server.exe from the directory containing the config file:
--mcp-servers-config vlc-mcp-servers.json
If VLC has a Lua HTTP password, add VLC_HTTP_PASSWORD to the config's env. The MCP tools are then registered alongside the model server's other tools. See the llama.cpp MCP server documentation.
OpenClaw supports local stdio MCP servers. Add the published package and probe its tools:
openclaw mcp add vlc `
--command npx --arg -y --arg vlc-mcp-server openclaw mcp doctor vlc --probe
The probe should list the VLC tools. To set a VLC password or other environment values, edit the vlc server in OpenClaw's Settings → MCP page or its mcp.servers config. Keep VLC_HTTP_PASSWORD empty unless you set a Lua HTTP password in VLC.
OpenClaw's MCP guide documents the UI, CLI, and config options.
The MCP endpoint uses stdio by default. To test with curl, start the published package in its optional local HTTP mode:
$env:MCP_TRANSPORT = "http"
$env:MCP_HTTP_PORT = "3000" npx -y vlc-mcp-server
Leave that window running. In a second PowerShell window, initialize an MCP connection:
curl.exe -sS -X POST http://127.0.0.1:3000/mcp `
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" --data-raw '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl-smoke-test","version":"1.0.0"}}}'
List the MCP tools:
curl.exe -sS -X POST http://127.0.0.1:3000/mcp `
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" --data-raw '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
Call VLC status (VLC must be running and its HTTP interface enabled):
curl.exe -sS -X POST http://127.0.0.1:3000/mcp `
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" --data-raw '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"vlc_get_status","arguments":{}}}'
The responses may be returned as Server-Sent Events (event: message followed by a JSON data: line). This HTTP mode is bound to 127.0.0.1; it is for local checks and local clients. Stop it with Ctrl+C.
VLC_BASE_URL points to the computer running VLC.VLC_HTTP_USERNAME empty. If you set a Lua HTTP password in VLC, copy it into VLC_HTTP_PASSWORD and restart the MCP client. If you did not set one, keep both values empty.| Variable | Default
Only the beginning is shown; read the rest in the repo