vcv-rack-mcp
You can use this server to author, validate, inspect, and manage VCV Rack patches, browse the module catalog, generate live-performance mappings, and run an agentic patch-generation workflow.
Patch authoring: Create, edit, validate, list, get, open in Rack, rack-cycle, import patches, and set module data via
vcv_patch.Catalog exploration: Search modules, get module details, verify installed modules, get library links, sideload modules, and suggest racks via
vcv_catalog.Live performance support: Generate OSC address maps and performance sheets for patches via
vcv_live.Agentic generation: Run a brief-to-patch loop that selects modules, generates, validates, and retries up to 3 times via
vcv_agentic_workflow.In-chat UI: Show rich patch and catalog cards via
show_patch_cardandshow_catalog_card.Hub diagnostics: Check catalog size, depot health, and Rack path via
hub_status.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vcv-rack-mcp create a simple synth patch with an oscillator and envelope"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vcv-rack-mcp
MCP server for VCV Rack 2 built around one insight: .vcv patch files are plain JSON, so an LLM can compose modular synth patches by emitting structured data — no GUI automation, ever.
Status: v0.1.0 — Webapp and Core complete. Patch generation, catalog, validation, OSC bridge, webapp dashboard, Playwright E2E tests, and agentic workflow all working. Manual gates P2 (round-trip in Rack) and P3 (OSC e2e) still need a human with Rack open.
Quick Start
git clone https://github.com/sandraschi/vcv-rack-mcp
cd vcv-rack-mcp
uv sync
uv run -m vcv_rack_mcpRelated MCP server: synthlab-mcp
Tools
Tool | What it does |
| Create, edit, validate, list, get, open_in_rack, rack_cycle, import patches, set_module_data |
| Search catalog, get module details, verify installed, library link, sideload, suggest rack |
| OSC address map, performance sheet for live tweaking |
| ctx.sample loop: brief → generate → validate → retry (max 3) |
| Prefab UI cards |
| Catalog size, depot health, Rack path |
| Graceful self-termination (+ |
Architecture
vcv-rack-mcp (port 10916, stdio / HTTP /mcp)
├── catalog/modules.yaml — 50 modules, 50/50 generative/performance
├── depot/ — .vcv patches + SQLite metadata + sidecar .md
└──→ osc-mcp (port 10767) — vcv_manager consumes address mapsWhat's Real vs What Needs Human
Feature | Status | Gate |
Catalog (50 modules, incl. Stoermelder TRANSIT) | Done, validated | P1 |
Patch generation | Done, deterministic | P2 (needs Rack round-trip) |
Validation (4 checks, incl. module data) | Done with tests | P2 |
OSC address map | Done | P3 (needs osc-mcp e2e) |
Agentic workflow | Done | P4 |
Webapp | Done, with Playwright E2E tests | P5 |
Tauri wrapper | Future | P5 |
Ports
Backend: 10916 (FastMCP + FastAPI)
Frontend: 10917 (Vite React, active)
OSC control: delegates to osc-mcp port 10767
Available Tools
7 toolshub_statusA
Show hub status: catalog size, depot health, Rack path.
Inputs: no named parameters. Returns: object
show_catalog_cardC
Show a rich in-chat card for the module catalog.
Return Format
ToolResult with PrefabApp content.
Inputs: persona_tag, function_tag. Returns: object
show_patch_cardC
Show a rich in-chat card for a patch.
Return Format
ToolResult with PrefabApp content.
Inputs: patch_id (required). Returns: object
vcv_agentic_workflowB
SEP-1577 sampling loop: brief -> catalog selection -> generate -> validate -> retry (max 3).
Uses ctx.sample when available for autonomous iteration. Falls back to structured result with recovery_options for hosts without sampling.
Return Format
{"success": bool, "patch_id": str, "iterations": int, "report": list}
Examples
vcv_agentic_workflow(brief="slow ambient drone, two detuned voices, filtered noise swells, big reverb")
Inputs: brief (required), ctx, persona, max_iterations. Returns: object
vcv_catalogC
Module catalog portmanteau — search, get_module, verify_installed, library_link, sideload, suggest_rack.
Return Format
{"success": bool, "operation": str, ...operation-specific keys}
Examples
vcv_catalog(operation="search", function_tag="osc") vcv_catalog(operation="get_module", plugin_slug="Fundamental", model_slug="VCO") vcv_catalog(operation="suggest_rack", persona_tag="generative", intent="ambient drone")
Inputs: operation (required), url, limit, query, +5 more. Returns: object
vcv_liveD
Live performance portmanteau — address_map, performance_sheet.
Return Format
{"success": bool, "operation": str, ...}
Examples
vcv_live(operation="address_map", patch_id="ambient-drone") vcv_live(operation="performance_sheet", patch_id="ambient-drone")
Inputs: operation (required), patch_id. Returns: object
vcv_patchC
Patch authorship portmanteau — create, edit, validate, list, get, open_in_rack, rack_cycle, import.
Return Format
{"success": bool, "operation": str, ...operation-specific keys}
Examples
vcv_patch(operation="create", name="Ambient Drone", persona="generative", description="slow detuned drone") vcv_patch(operation="validate", patch_id="ambient-drone") vcv_patch(operation="list", persona="generative")
Inputs: operation (required), name, path, limit, +7 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 7 tools
Most tools have distinct purposes, but the vcv_* portmanteau tools (vcv_catalog, vcv_live, vcv_patch, vcv_agentic_workflow) could cause some confusion as they share a prefix and bundle multiple operations. However, descriptions clarify their domains.
Naming conventions are mixed: snake_case for hub_status and show_* tools, but vcv_* prefix with underscores. The pattern is not uniform, though the vcv_ prefix provides some consistency for the main tools.
Seven tools is well-scoped for a VCV Rack assistant. Each tool covers a distinct area (system status, catalog, patches, live performance, generative workflow), and none feel extraneous.
The tool surface covers core operations: system monitoring, catalog browsing/search/installation, patch management (CRUD), a generative workflow, and live performance. Minor gaps like detailed module parameter control are acceptable for the scope.
Maintenance
Related MCP Connectors
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Find, compare, and audit software for AI agents. Scored registry of tools and MCP servers.
Find, vet, and run MCP tools through a secure audited gateway with prompt-injection risk scoring
Independent directory of agentic AI tools — search, compare & recommend via MCP. Read-only.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to control synthesizer parameters in real-time by translating natural language commands into OSC messages sent to a JUCE synthesizer application.-
- AlicenseAqualityDmaintenanceEnables AI-powered music composition and synthesis by generating Pure Data patches, VCV Rack modules, and MIDI controller mappings through natural language.1012 npm5MIT
- AlicenseAqualityDmaintenanceEnables AI-powered manipulation of Cardinal/VCV Rack modular synthesizer patches, allowing users to create, analyze, modify, and connect modules and cables through natural language.7MIT
- AlicenseNot gradedqualityDmaintenanceEnables an LLM to drive a live Bespoke Synth, including module graph editing, control modulation, sequencing, playback control, and audio analysis feedback with visualizations.AGPL 3.0