Cubase MCP Server
Integrates with Cubase (by Steinberg) via MIDI Remote API and virtual MIDI ports, providing tools for transport control, track management, plugin parameter manipulation, and audio export.
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., "@Cubase MCP ServerStart playback in Cubase"
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.
Cubase MCP Server
This repository implements a Cubase MCP server with a real headless control path for Windows using:
Cubase MIDI Remote API script
virtual MIDI ports such as loopMIDI
MIDI request/response SysEx bridge
MIDI CC command surface triggers
DirectAccess object and parameter discovery
MIDI Remote command binding
canPerformchecksselected/focused quick controls for plugin parameters
filesystem verification for export results
versioned Windows named-pipe companion bridge protocol
238 registered MCP tools with generated static capability audit
It intentionally does not implement or include AutoHotkey, SendKeys, Win32 keyboard/mouse injection, UI Automation clicks, menu automation, dialog automation, screenshot detection, OCR, mouse coordinates, or OS-level shortcut sending.
Real Adapter Mode
The default adapter is composite, not mock.
$env:CUBASE_ADAPTER="composite"
$env:CUBASE_MIDI_INPUT="AI MCP Bridge From Cubase"
$env:CUBASE_MIDI_OUTPUT="AI MCP Bridge To Cubase"
npm run build
node dist/server.jsUse mock only for unit tests or client prototyping:
$env:CUBASE_ADAPTER="mock"
npm run devRelated MCP server: ReaMCP
Real Cubase Communication Files
src/adapters/MidiRemoteAdapter.tssrc/adapters/MidiCommandSurfaceAdapter.tssrc/adapters/PluginBridgeAdapter.tssrc/adapters/ProjectStateAdapter.tssrc/adapters/CompositeCubaseAdapter.tssrc/adapters/DirectAccessAdapter.tssrc/bridge/midi/*src/cubase-remote-script/direct-access-bridge.js
Current Evidence Status
The static source tree contains no real capability claims. All entries have
testedWithRealCubase: false until npm run cubase:discover or forced real
integration tests produce operation-level evidence.
Implemented candidate headless paths include:
cubase.get_statuscubase.transport_playcubase.transport_stopcubase.transport_recordcubase.transport_rewindcubase.transport_forwardcubase.set_cyclecubase.set_metronomeselected-track
cubase.set_track_volumeselected-track
cubase.set_track_panselected-track
cubase.set_track_muteselected-track
cubase.set_track_soloselected-track
cubase.set_track_record_enableselected-track
cubase.set_track_monitorquick-control based
cubase.get_plugin_parametersquick-control based
cubase.set_plugin_parameteruser-mapped command trigger
cubase.trigger_commandDirectAccess discovery tools such as
cubase.direct_access_discover_object_treecommand binding registry tools such as
cubase.command_binding_get_registrycurrent-settings-only
cubase.perform_current_audio_exportDirectAccess semantic mixer/EQ/send/plugin writes using discovered ObjectIDs and parameter tags
API 1.3 plugin slot assignment and destructive slot reset
generated Standard MIDI File plus explicit companion import
asynchronous export/render/scan jobs with bridge progress polling
Unknown or companion-bridge-required until real evidence proves support:
parameterized project open/save/create
arbitrary track create/delete/rename/reorder
MIDI part and note editing
audio event editing
render/export/mixdown/stems
arbitrary plugin insert/preset/window control
Non-executable functions return machine-readable errors such as NEEDS_CUBASE_SIDE_BRIDGE, NEEDS_USER_SETUP, BLOCKED_BY_CUBASE_API, or BLOCKED_BY_NO_HEADLESS_API.
The complete architecture, tool contract, and generated per-tool audit are in
docs/architecture.md, docs/tools.md, and
docs/full-capability-audit.md.
Setup
Read these in order:
docs/setup-windows.mddocs/setup-virtual-midi.mddocs/setup-cubase-midi-remote.mddocs/setup-command-surface.mddocs/troubleshooting.md
Verification
npm run typecheck
npm test
npm run test:real
npm run buildGenerate the timestamped real Cubase evidence bundle with:
npm run cubase:discoverSee docs/real-test-guide.md for the exact Windows/Cubase sequence and docs/real-test-report-schema.md for the evidence contract. npm test is unit/mock evidence only. npm run test:real detects its npm lifecycle name and does not skip integration tests when Cubase is unavailable.
Sources
Steinberg MIDI Remote API Programmer's Guide: https://steinbergmedia.github.io/midiremote_api_doc/
Steinberg MIDI Remote API Reference: https://steinbergmedia.github.io/midiremote_api_doc/codedoc_api_reference/
MCP TypeScript SDK: https://ts.sdk.modelcontextprotocol.io/
This server cannot be deployed
Maintenance
Related MCP Connectors
Create, co-edit, analyze, publish, and export collaborative step-sequencer sessions through MCP.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
MCP server for Producer/Riffusion AI music generation
Remote MCP for RunComfy: ComfyUI deployments, hosted models, LoRA training. 31 tools.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that exposes REAPER digital audio workstation functionality through a clean API interface, enabling programmatic control of 169+ REAPER operations across track management, MIDI editing, effects, automation and more.79MIT
- AlicenseBqualityDmaintenanceAn MCP server that enables users to control and edit REAPER projects through a Python-based interface and a Lua bridge. It supports managing tracks, controlling transport, manipulating MIDI and audio items, and adjusting FX parameters within the digital audio workstation.57GPL 3.0
- AlicenseCqualityAmaintenanceA comprehensive MCP server that enables AI assistants to control REAPER DAW for mixing, mastering, MIDI composition, and full music production workflows with 130 tools.17654MIT
- AlicenseBqualityBmaintenanceThis MCP server enables AI assistants to control a live REAPER DAW instance, including transport, tracks, FX, MIDI, media, markers, rendering, and project state, with an escape hatch for arbitrary ReaScript commands.40MIT