CueScope
CueScope is a read-first MCP server that gives AI assistants safe production intelligence for vMix workflows. It reads vMix state, explains what it sees, and helps users decide what to do next without mutating vMix by default.
README
CueScope
CueScope is a read-first MCP server that gives AI assistants safe production intelligence for workflows compatible with vMix.
This server connects AI assistants to vMix state, curated production knowledge, and reviewable automation planning. By default it does not switch inputs, run scripts, start streams, change audio, or mutate vMix. It reads first, explains what it sees, and helps you decide what to do next.
Package name: @greenhouselabs/cuescope-mcp
<p align="center"> <img src="https://img.shields.io/badge/vMix-Compatible-blue" alt="vMix compatible"> <img src="https://img.shields.io/badge/Model_Context_Protocol-Server-green" alt="Model Context Protocol Server"> <img src="https://img.shields.io/badge/TypeScript-5.x-blue" alt="TypeScript"> <img src="https://img.shields.io/badge/License-Source_Available-orange" alt="Source-available license"> </p>
Product Promise
Use CueScope as a read-first production advisor:
You: "Explain my current preset and call out anything risky before the show."
Assistant: [reads vMix state]
[identifies program, preview, inputs, title fields, overlays, and audio routing]
[summarizes likely production roles]
[flags risks and suggests review steps]
The preserved control tools are still available for advanced users, but the default experience is advisory, state-aware, and review-first.
For a first hands-on walkthrough, use DEMO.md. If you used the old control-first prototype, start with MIGRATION.md.
What It Does
| Capability | Default Behavior |
|---|---|
| Preset analysis | Explains current inputs, roles, active/preview state, overlays, and likely risks |
| Input lookup | Finds inputs by number, key, name, type, or fuzzy title matching |
| Input inspection | Answers current input questions from live state first, including visible fields and production role hints |
| Audio diagnosis | Reviews buses, mute state, solo state, vMix Call patterns, and mix-minus risks |
| Troubleshooting guidance | Translates pasted errors and explicit log files/excerpts into likely causes, confidence, and safe next checks |
| Script generation | Produces reviewable VB.NET artifacts using actual input references and title fields |
| Script validation | Checks VB.NET safety rules, syntax patterns, loop sleeps, and state references |
| API planning | Produces ordered vMix function-call plans without calling vMix |
| XML comparison | Compares before/after vMix XML snapshots and explains changed production state |
| Knowledge resources | Exposes curated vMix API, scripting, audio, production, troubleshooting, forum-pattern, and example notes |
| Control Mode | Opt-in access to preserved live-control tools, with highest-impact tools behind a second flag |
Saved .vmix files are explicit evidence. CueScope uses live vMix state first for current show questions, and asks for a .vmix path on the machine running CueScope only when saved-only details are needed, such as stored scripts, input triggers, title countdown/data-source setup, or saved-vs-live drift. Raw XML content is a fallback when a server-visible path is unavailable; chat-uploaded attachments may not be readable by the MCP server.
Quick Start
Prerequisites
- Node.js 20+
- vMix running with Web Controller enabled in Settings > Web Controller
- An MCP-compatible client such as Claude Desktop, Cursor, or Claude CLI
One-Line MCP Setup
The package is published to npm, and no global install is required. Let your MCP client launch the package with npx.
Claude Code CLI:
claude mcp add cuescope -- npx -y @greenhouselabs/cuescope-mcp
Codex CLI:
codex mcp add cuescope -- npx -y @greenhouselabs/cuescope-mcp
With vMix running on another trusted machine:
claude mcp add cuescope -e VMIX_HOST=192.168.1.100 -- npx -y @greenhouselabs/cuescope-mcp
codex mcp add cuescope --env VMIX_HOST=192.168.1.100 -- npx -y @greenhouselabs/cuescope-mcp
For guided desktop setup and first-run smoke tests, see docs/DESKTOP-INSTALL.md. For more setup variants, see docs/MCP-SETUP.md.
Install From Source
Use this while developing or testing an unpublished checkout.
git clone https://github.com/greenhouselabs/cuescope-mcp.git
cd cuescope-mcp
npm install
npm run build
npm Install
npm install -g @greenhouselabs/cuescope-mcp
Global install is optional. The recommended MCP setup above uses npx.
Client Configuration
Most MCP clients accept this JSON shape:
{
"mcpServers": {
"cuescope": {
"command": "npx",
"args": ["-y", "@greenhouselabs/cuescope-mcp"],
"env": {
"VMIX_HOST": "localhost",
"VMIX_HTTP_PORT": "8088",
"VMIX_TCP_PORT": "8099"
}
}
}
}
Do not set VMIX_CONTROL_MODE for the default Review Mode experience.
Windows note (vMix is Windows-only, so this affects most users): Claude Desktop on Windows often cannot spawn
npxdirectly and fails withspawn npx ENOENT. Launch it throughcmdinstead:{ "mcpServers": { "cuescope": { "command": "cmd", "args": ["/c", "npx", "-y", "@greenhouselabs/cuescope-mcp"] } } }If the client still cannot find Node, run
where nodein a terminal to get the absolute path, then use that full path as thecommand(pointingargsat the package's compiled entry point for a source checkout).
For a source checkout, point the client at the compiled entry point instead:
{
"mcpServers": {
"cuescope": {
"command": "node",
"args": ["/path/to/cuescope-mcp/build/index.js"],
"env": {
"VMIX_HOST": "localhost",
"VMIX_HTTP_PORT": "8088",
"VMIX_TCP_PORT": "8099"
}
}
}
}
Claude Code CLI
claude mcp add cuescope -- npx -y @greenhouselabs/cuescope-mcp
Control Mode:
claude mcp add cuescope-control -e VMIX_CONTROL_MODE=true -- npx -y @greenhouselabs/cuescope-mcp
High-Impact Control:
claude mcp add cuescope-high-impact -e VMIX_CONTROL_MODE=true -e VMIX_HIGH_IMPACT=true -- npx -y @greenhouselabs/cuescope-mcp
Codex CLI
codex mcp add cuescope -- npx -y @greenhouselabs/cuescope-mcp
Control Mode:
codex mcp add cuescope-control --env VMIX_CONTROL_MODE=true -- npx -y @greenhouselabs/cuescope-mcp
High-Impact Control:
codex mcp add cuescope-high-impact --env VMIX_CONTROL_MODE=true --env VMIX_HIGH_IMPACT=true -- npx -y @greenhouselabs/cuescope-mcp
Claude Desktop
Use the JSON configuration above in claude_desktop_config.json. The file lives at:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Create the file if it does not exist, then fully quit and reopen Claude Desktop after editing it. On Windows, prefer the cmd /c npx launch shape shown in the Windows note above.
Multiple vMix Instances
To advise on more than one vMix machine (for example a main and a backup mixer), register the server twice under different names with different VMIX_HOST values:
{
"mcpServers": {
"vmix-main": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@greenhouselabs/cuescope-mcp"],
"env": { "VMIX_HOST": "192.168.1.10" }
},
"vmix-backup": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@greenhouselabs/cuescope-mcp"],
"env": { "VMIX_HOST": "192.168.1.11" }
}
}
}
Each entry runs its own server process with its own connection, mode flags, and tool surface, and the assistant can address them by name.
Environment Variables
| Variable | Default | Description |
|---|---|---|
VMIX_HOST |
localhost |
vMix hostname or IP address |
VMIX_HTTP_PORT |
8088 |
HTTP API port |
VMIX_TCP_PORT |
8099 |
TCP API port |
TCP_ENABLED |
true |
Enable TCP tally subscriptions |
TCP_RECONNECT_DELAY |
5000 |
Delay between TCP reconnect attempts in ms |
TCP_MAX_RECONNECTS |
10 |
Maximum TCP reconnect attempts |
TCP_CONNECT_TIMEOUT |
10000 |
TCP connection timeout in ms |
VMIX_CONTROL_MODE |
false |
Expose safer live-control tools when set to true |
VMIX_HIGH_IMPACT |
false |
Expose high-impact control tools when VMIX_CONTROL_MODE=true is also set |
STATE_CACHE_TTL |
100 |
Parsed vMix state cache TTL in ms |
SKILLS_PATH |
(bundled) | Override the bundled skill-guidance directory |
VMIX_USER_SKILLS_PATH |
(none) | Directory of your own skills (<name>/SKILL.md), merged with the bundled ones |
VMIX_PRESET_ROOT |
(none) | Optional directory that confines preset-file reads; when set, .vmix files outside it are rejected |
LOG_LEVEL |
info |
debug, info, warn, or error |
A commented .env.example in the repository documents every variable with its default. Boolean variables use canonical true/false values.
Modes And Safety
Review Mode is the default. It exposes read-only tools that return analysis, validation results, scripts, API plans, assumptions, risk notes, and review checklists. Review Mode does not execute scripts, call vMix shortcut functions, save presets, start streams, start recordings, or perform batch commands.
Control Mode is explicit:
VMIX_CONTROL_MODE=true
Use Control Mode when you intentionally want direct vMix control tools to appear in the MCP client. The highest-impact tools require a second opt-in:
VMIX_CONTROL_MODE=true
VMIX_HIGH_IMPACT=true
High-Impact Control exposes tools for scripts, batch commands, recording, streaming, snapshots, preset open/save, destructive input management, output routing, show-building, and replay recording. Test these workflows on a rehearsal preset before using them during a live show.
Security Notes
Run vMix Web Controller only on trusted machines and networks. This MCP server talks to the vMix HTTP API, which is normally available at http://localhost:8088/api/; exposing that API to the public internet can expose live production control.
Review Mode is the public-safe default. Control Mode and High-Impact Control are explicit opt-ins for users who understand that the assistant can affect a live production. vMix Call join URLs and passwords are treated as sensitive; tools do not return generated call links unless the caller explicitly requests that behavior.
This project is an independent source-available integration for vMix, published by Greenhouse Ventures LLC under the Greenhouse Labs brand. It is not open source, and use is governed by the CueScope Source-Available License. It is not affiliated with, endorsed by, or sponsored by vMix or StudioCoast Pty Ltd. vMix is a trademark of its respective owner.
Review Mode Tools
These tools are visible by default.
| Tool | Purpose |
|---|---|
vmix_show_review |
Natural-language show review for "check my show" / "am I ready": combines live state, audio, output readiness, preflight, checklist, and optional saved-preset audio/audit context |
vmix_analyze_preset |
Summarize the current live preset, production shape, risks, output readiness, and preflight checks |
vmix_generate_show_checklist |
Generate a reviewable rehearsal, go-live, recovery, or end-show operator handoff |
vmix_find_input |
Find matching inputs by name, number, key, type, or role clues |
vmix_explain_input |
Explain one input's state, fields, audio, and likely production role |
vmix_diagnose_audio |
Review audio routing, mute/solo state, buses, call audio, and mix-minus risks |
vmix_diagnose_outputs |
Review recording, streaming, external output, video path, audio path, output-like helper inputs, and destination blind spots |
vmix_diagnose_logs |
Diagnose pasted vMix/MCP/device log text or one explicit log file with redaction, confidence, and safe next checks |
vmix_generate_script |
Generate a preflight-aware reviewable VB.NET script artifact without executing it |
vmix_validate_script |
Validate VB.NET script text against vMix scripting rules and known state |
vmix_generate_api_sequence |
Generate a preflight-aware ordered vMix API command plan without calling vMix |
vmix_compare_xml_snapshots |
Compare two vMix XML snapshots and explain meaningful changes |
vmix_read_preset_file |
Read-only inventory of a saved .vmix preset file: compact summary by default; detailMode="full" includes full scripts/triggers (read-only; as last saved) |
vmix_explain_preset_scripts |
Plain-language review and risk flags for VB.NET scripts stored in a saved .vmix preset, validated against live state (read-only; as last saved) |
vmix_audit_preset_file |
Cross-reference a saved .vmix preset against live vMix state: flags triggers calling missing scripts, triggers targeting absent inputs, saved-vs-live drift, and with targetInput summarizes one input's own triggers plus inbound trigger/script references (read-only; as last saved) |
vmix_preflight |
Go-live readiness report: checks program, preview, audio, fade-to-black, overlays, and input roles against heuristic rules and returns a prioritized verdict (ready/caution/not-ready); optionally cross-references a saved .vmix preset (read-only) |
vmix_connection_test |
Test connectivity to vMix and diagnose connection problems |
Note: vmix_analyze_preset analyzes live vMix state from the running /api/ endpoint. The vmix_read_preset_file, vmix_explain_preset_scripts, and vmix_audit_preset_file tools read a saved file on disk and reflect the preset as last saved, which may differ from what vMix is currently running.
For single-input saved-preset questions, use targeted summaries before full script dumps: vmix_read_preset_file summary mode for title countdown/data-source bindings, and vmix_audit_preset_file with targetInput for attached triggers, inbound trigger references, and scripts that reference the input. Use detailMode="full" or vmix_explain_preset_scripts when the user asks for exact script bodies, validation, or rewrite guidance.
Control Mode Tools
When VMIX_CONTROL_MODE=true, the server exposes the safer preserved live-control surface. When VMIX_HIGH_IMPACT=true is also set, it exposes the highest-impact tools too.
| Domain | Examples | Gate |
|---|---|---|
| Switching | Cut, fade, transitions, stingers, preview, fade to black | Control Mode |
| Audio | Volume, mute, bus assignment | Control Mode |
| Graphics | Title text, title images, countdowns, animations | Control Mode |
| Overlays | Overlay in, out, and off | Control Mode |
| Playback and live adjustments | Playback, layers, browser, vMix Call, PTZ, playlists, color correction, effects, datasource, most replay playback | Control Mode |
| Recording and streaming | Record, stream, snapshot, replay recording | High-Impact Control |
| Inputs and outputs | Add/remove/rename/reset inputs, output routing, fullscreen, external output | High-Impact Control |
| Scripting | Run, stop, save, and legacy script generation tools | High-Impact Control |
| Batch, presets, and show-building | Multi-command batches, preset open/save/last, build show, add participant, create multiview | High-Impact Control |
Control Mode keeps the original control prototype salvageable without making live mutation the default product.
Resources
| URI | Description |
|---|---|
vmix://server/version |
Server version, feature, and build metadata |
vmix://server/status |
Active mode, safety boundary, tool counts, and vMix connection config |
vmix://state/summary |
Parsed current state summary |
vmix://state/live |
Compact live-state view for active, preview, mixes, overlays, audio, and playback |
vmix://state/relationships |
Normalized relationships across inputs, overlays, mixes, audio, and titles |
vmix://state/full |
Complete raw vMix XML state. Prefer vmix://state/summary for routine checks; the full state can be very large on big productions |
vmix://inputs |
All inputs with parsed properties |
vmix://inputs/fields |
Title text and image fields across inputs |
vmix://audio |
Audio levels, mute states, buses, and solo data |
vmix://script/context |
State-aware context for script generation |
vmix://skills |
Available vMix skill guidance |
vmix://copilot/context |
Higher-level setup analysis for advisory workflows |
vmix://tally |
Real-time on-air tally (program/preview per input) from the TCP subscription |
vmix://docs/index |
Generated index of curated docs resources and source files |
vmix://docs/mcp-capabilities |
MCP knowledge scope, confidence rules, blind spots, and professional-readiness roadmap |
vmix://docs/api |
Curated API and shortcut-function notes |
vmix://docs/scripting |
Curated VB.NET scripting guidance |
vmix://docs/audio-routing |
Curated audio bus and mix-minus guidance |
vmix://docs/production-patterns |
Curated production workflow and safe troubleshooting patterns |
vmix://docs/forum-patterns |
Curated forum-pattern digests |
vmix://docs/examples |
Review-first preset, XML snapshot, routing, and script examples |
Prompts
The server ships reusable MCP prompts that mirror the documented Review Mode workflows. They are available in every mode and only reference read-only tools and resources.
| Prompt | Arguments | Purpose |
|---|---|---|
show-review |
path, intent (optional) |
Run vmix_show_review for a natural-language production review with output readiness and optional saved-preset context |
preflight-check |
none | Run vmix_preflight and summarize go-live readiness with a prioritized verdict |
diagnose-audio |
input (optional) |
Diagnose audio routing, mutes, mix-minus, and feedback risks; optionally focus on one input |
output-readiness |
focus (optional) |
Run vmix_diagnose_outputs for recording/streaming/external readiness and destination checks |
explain-my-setup |
none | Read the live state summary and relationships and explain the production like a show runbook |
audit-preset |
path |
Audit a saved .vmix preset file against live state and flag drift and risky triggers |
go-live-checklist |
phase (optional) |
Generate a reviewable rehearsal, go-live, recovery, or end-show checklist from live state |
Example Requests
"Explain my preset like I am preparing for a show."
"Check my show and tell me if anything needs review before we go live."
"Check whether my recording, streaming, and external outputs are ready."
"Find anything that looks risky in my current vMix setup."
"Diagnose my audio routing and call out mix-minus problems."
"Explain this Blackmagic/vMix error and give me safe next checks."
"Generate a safe script to rotate my camera inputs every 10 seconds."
"Validate this vMix VB.NET script before I paste it into vMix."
"Build a reviewable API sequence for showing a lower third."
"Compare these before and after XML snapshots and explain what changed."
Troubleshooting
vMix state cannot be read / tools return connection errors:
- Confirm the vMix Web Controller is enabled: in vMix, open
Settings > Web Controllerand tick Enabled. The default port is8088. - Verify it from a browser on the vMix machine: open
http://localhost:8088/api/- you should see XML. If you do not, the MCP server cannot read state either. - Check that
VMIX_HOSTandVMIX_HTTP_PORTin your MCP config match the actual vMix machine and Web Controller port. - Confirm vMix itself is running; the Web Controller only responds while vMix is open.
- Run the
vmix_connection_testtool from your assistant ("Test the vMix connection and diagnose any problems") for a step-by-step diagnosis.
vMix runs on a different machine (VMIX_HOST is remote):
- On the vMix machine, allow inbound TCP port
8088(and optionally8099for tally) through Windows Firewall, scoped to your trusted production network only. - Verify reachability from the MCP host first, then keep the Web Controller off the public internet - it is unauthenticated.
TCP tally (port 8099) fails but HTTP state works:
- The TCP connection is optional. The server runs HTTP-only without it; only the real-time
vmix://tallyresource is affected. - Confirm
VMIX_TCP_PORTmatches vMix's TCP API port, or setTCP_ENABLED=falseto silence reconnect attempts.
The MCP client cannot start the server:
- On Windows, use the
cmd /c npxlaunch shape shown in the Windows note under Client Configuration; a bare"command": "npx"often fails withspawn npx ENOENT. - Confirm Node.js 20+ is on the PATH the client uses (
node --version, andwhere nodefor the absolute path). - Fully restart the MCP client after any config change so the server relaunches with the new environment.
Where to find logs:
- The MCP server logs to stderr, which your MCP client captures.
- Claude Desktop writes MCP logs to
%APPDATA%\Claude\logson Windows (~/Library/Logs/Claudeon macOS); look for themcp-server-cuescopelog file. - You can paste a redacted error/log excerpt into your assistant, or ask it to use
vmix_diagnose_logson one explicit.log,.txt,.json,.ndjson,.xml,.err,.stderr, or.stdoutfile path. vmix_diagnose_logsdoes not scan folders, does not execute fixes, and redacts secrets, vMix Call links, stream URLs, private IPs, and local paths before returning excerpts.- For state-aware troubleshooting, pair log diagnosis with
vmix_connection_test,vmix_preflight,vmix_analyze_preset,vmix_diagnose_audio, or saved-preset tools only when those facts can confirm or challenge the log hypothesis.
Demo And Migration
- DEMO.md walks through the first Review Mode demo: status, preset analysis, audio diagnosis, script generation, script validation, API planning, and XML comparison.
- MIGRATION.md explains how old control-first workflows map to Review Mode, Control Mode, and High-Impact Control.
Claude Skills
The skills/ directory contains compact vMix guidance for assistants. The skills are being reframed around Review Mode first: inspect state, reason from actual inputs, generate reviewable artifacts, and only use control tools when the user has explicitly enabled Control Mode or High-Impact Control.
skills/
|-- vmix-basics/ # Switching, transitions, and production-state basics
|-- vmix-audio/ # Mixing, buses, ducking, calls, and mix-minus checks
|-- vmix-graphics/ # Titles, lower thirds, fields, and GT workflows
|-- vmix-overlays/ # Overlay channels, PIP, and stinger guidance
|-- vmix-scripting/ # VB.NET generation and validation
|-- vmix-replay/ # Instant replay workflows
|-- vmix-show-building/ # Complete show setup and review
|-- vmix-streaming/ # Recording, streaming, and external output safety
`-- vmix-troubleshooting/ # Error, log, device, and hardware diagnosis
Architecture
MCP Client (Claude, Cursor, CLI)
|
| MCP Protocol over stdio
v
CueScope
|
|-- src/tools/ # Review tools by default, control tools by opt-in flag
|-- src/resources/ # 21 MCP resources for state, docs, skills, and status
|-- src/clients/ # vMix HTTP and TCP clients
|-- src/state/ # XML parser, cache, and normalized relationships
|-- src/validation/ # VB.NET and API validation helpers
|-- knowledge/ # Curated production knowledge and examples
`-- skills/ # Assistant guidance
|
v
vMix Instance
|-- HTTP 8088: XML state and shortcut functions
`-- TCP 8099: tally and activator subscriptions
Development
npm install
npm run build
npm test
npm run lint
npm run dev
npm run inspector
Recommended release verification:
npm run build
npm run typecheck
npm run lint
npm test
npm audit --audit-level=moderate
node scripts/validate-api-calls.mjs
npm pack --dry-run
MCP Inspector
npm run inspector launches the MCP Inspector against the local build and opens it in your browser. What you should see:
- The Inspector connects over stdio and the server reports itself as
cuescope-mcpwith the current version. - The Tools tab lists the Review tools only (no control tools) unless you set the control flags in the environment.
- The Resources tab lists the
vmix://URIs from the table above; readingvmix://server/statusshould show modereview. - With vMix running and the Web Controller enabled, reading
vmix://state/summaryreturns your live preset summary.
Useful connection checks:
curl http://localhost:8088/api/
On Windows:
Invoke-WebRequest -UseBasicParsing http://localhost:8088/api/
Test-NetConnection localhost -Port 8099
Release Shape
CueScope should demonstrate value without live execution:
- Connect to vMix.
- Analyze the current preset.
- Diagnose a realistic audio scenario.
- Generate and validate a script using actual input references.
- Compare before and after XML snapshots.
- Keep Control Mode and High-Impact Control available but secondary.
License
CueScope Source-Available License - see LICENSE for details. Official releases may be installed and used for personal, internal, production, broadcast, educational, nonprofit, and commercial live-production workflows. Redistribution, competing products or services, hosted/managed offerings, and broader reuse require written permission from Greenhouse Ventures LLC.
Support
- Contributing Guide
- Security Policy
- Changelog
- Third-Party Notices
- vMix Forums
- MCP Documentation
- GitHub Issues
Built for the live production community by Greenhouse Labs.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.