NDSP QC MCP
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., "@NDSP QC MCPRecall my 'Metal Rhythm' preset on the Quad Cortex"
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.
NDSP QC MCP
An unofficial, modular control platform for Neural DSP Quad Cortex devices. The project provides hardware-faithful Windows and Android controllers plus a standalone MCP server, while keeping future iOS, web, and other clients from duplicating device-control logic.
This project is not affiliated with or endorsed by Neural DSP. Device support uses an independent native Rust implementation informed by the community-maintainedpyquadcortex project. The private protocol remains firmware-sensitive.
Repository shape
apps/ End-user clients
windows/ Tauri + web UI desktop client
android/ Capacitor Android client with native USB, AI, and voice adapters
ios/ Future iOS composition root
services/ Independently runnable processes
device-broker/ Native single-owner USB/protobuf broker
device-gateway/ Legacy Python parity gateway for development
mcp-server/ Standalone MCP server
packages/
rust/
qc-protocol/ Shared QC framing, protobuf schema, and native state engine
qc-android/ Narrow JNI binding for the shared native state engine
python/
qc-core/ Pure device model, use cases, ports, safety rules
qc-pyquadcortex/ Development-only pyquadcortex parity adapter
qc-gateway-client/ Client for a running device gateway
typescript/
qc-core/ Shared client behavior, commands, reducers, transport port
qc-client/ Generated contracts and gateway transport types
qc-ui/ Platform-neutral web UI primitives
qc-form-factors/ QC geometry, skins, and control manifests
contracts/ Versioned wire schemas; the cross-language source of truth
docs/ Product, architecture, and decision records
tests/ Cross-module contract and real-hardware testsEvery directory initially contains a boundary document. Code is added only to the module that owns the responsibility.
Related MCP server: reaper-daw-mcp-server
Architectural rules
qc-corecontains no HID, MCP, HTTP, UI, Tauri, or operating-system imports.Production device behavior lives in the shared Rust crates;
qc-pyquadcortexisolates the optional Python parity oracle.Exactly one process owns the QC USB-HID session at a time.
Clients communicate in typed domain commands and events, never protobuf packets or raw grid coordinates.
contracts/is the source of truth for cross-process and cross-language messages.The MCP server is independently installable and never imports a desktop or mobile app.
Form-factor geometry, skins, and behavior are separate; adding a client or skin must not change device logic.
AI is an optional adapter. Manual device control continues to work without an AI provider.
See Architecture, the Windows implementation plan, and the pyquadcortex coverage and deferred OpenCortex research.
Status
The Windows client now has a Tauri/WebView2 shell, reusable hardware surface,
form-factor/skin packages, keyboard/mouse interaction, connection diagnostics,
menus, chat composer, and microphone capture lifecycle. A native Rust broker
owns QC HID, exposes the complete application gateway API, keeps the session
warm, and publishes realtime state from the same Rust decoder compiled into
Android. The optional Python gateway is a development-only differential oracle.
One Rust session machine now owns reconnect,
handshake, keepalive, and link-loss policy for both native hosts, and shared
payload schemas generate the TypeScript, Rust, and Python boundary types.
Scene selection, block bypass, tuner, and
Gig View controls are enabled, along with mode-aware A–H footswitch emulation
through the QC's Windows MIDI endpoint and verified tempo/encoder/tap control,
live setlist browsing, installed model discovery, guarded block placement/removal/movement,
STOMP assignment and signal-routing editing, guarded preset
recall, bank navigation, metadata-driven block parameter editing, and explicit
dirty-state recovery. The Grid rails and split/rejoin markers are derived from
the live preset's four-row routing topology rather than demo labels, including
parallel-lane blocks and split/rejoin points. Visible device state synchronizes
in the background so touchscreen changes appear without a manual refresh.
Explicit disconnect/reconnect, a privacy-safe connection
log, current-device details, and an allowlisted redacted diagnostics export are
available from the application menus. State-changing commands use expected-state guards,
value readback, and dirty-state verification. Local .qcw workspace snapshots
can be saved and reopened without touching the hardware. Persistent preset,
library, and global-setting writes require explicit review and confirmation.
The chat dock now supports a
configurable OpenAI Responses-compatible conversational model, supplies current
QC context as untrusted data, and exposes an allowlisted set of typed device
tools. Read tools can be followed by a natural answer; performance actions
retain expected-state guards; bypass and parameter edits still require review
before temporary application. The deterministic offline command parser remains
available when no model is configured. Windows installer builds embed only the
native Rust device broker; Python and pyquadcortex remain source-level parity
tools and are not installed. The installer also embeds the
optional YouTube reference-audio resolver: after explicit rights confirmation,
chat can fetch a bounded excerpt as Opus/WebM or AAC/M4A, losslessly remux it,
attach it to the next model round, and remove the temporary file. An installed app does not require
Python, Node, Rust, the source tree, or a repository .venv at runtime.
Push-to-talk voice transcription is runtime-detected and opt-in: the app
discloses that stable Microsoft Edge speech recognition may send microphone
audio to Microsoft Azure before starting it, then routes the visible transcript
through the same guarded typed-command path.
The public MCP and remote-control services are implemented in Rust, with the legacy Python server retained only as a compatibility oracle. Neither deployed path exposes raw HID, protobuf, or arbitrary JSON-RPC; global-setting mutations remain typed, allowlisted, and confirmation-gated. See Chat and MCP setup.
The Android client is available as a branded Firebase App Distribution build. It presents the QC display, compact performance controls, and chat in a phone-first layout. Android owns a direct USB-host HID session with the Quad Cortex (USB permission is requested on first attachment), uses Firebase AI Logic with Gemini 3.7 Flash without embedding a personal Gemini key, and sends Android speech-recognition transcripts through the same chat/action path. The mobile shell composes the same preset, Grid, routing, scene, parameter, footswitch, history, save, and performance workflows as Windows, including the same guarded assistant action executor, generated hardware-safe action allowlist, and offline intent resolver. That shared allowlist covers the contracted read, performance, edit, library, and confirmed system surface. Live USB messages populate the preset grid, routes, scene metadata, setlist position, dirty state, tempo, mode/footswitch state, and master volume through the shared Rust state engine. The Firebase project registers the stable distribution certificate used by the tester APK. App Check is not yet activated in the project. Before enabling Play Integrity enforcement for Firebase AI Logic, review the off-Play policy in the hardware-conformance release checklist so Firebase App Distribution builds are not rejected as unrecognized Play installs.
Run npm run app-parity:check for the executable capability inventory. It
distinguishes required Windows/Android parity from justified platform-only
features and validates the shared/native evidence for every listed capability.
The native transport and legacy parity adapter have been validated locally against a connected Quad Cortex. See Native QC device broker.
Licensing
No project license has been selected yet. Until one is added, the source is not offered under an open-source license. Third-party dependencies retain their own licenses; release builds will include generated third-party notices.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Producer/Riffusion AI music generation
Create, inspect, and manage Wubble music, speech, voice, and sound-effect requests through MCP.
The Cortex MCP server provides read-only access to real-time engineering context from the Cortex developer portal, allowing AI coding assistants to answer natural language questions about your organization's catalog (microservices, libraries, domains, teams, infrastructure), scorecards (engineering standards and best practices), initiatives (goals and deadlines), and Engineering Intelligence metrics. It includes tools for querying documentation, tracking personal entities, and accessing AI-assisted insights across the entire Cortex ecosystem.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Related MCP Servers
- AlicenseCqualityAmaintenanceEnables AI assistants to control REAPER DAW via the Model Context Protocol, including track, FX, MIDI, and audio operations.4720 PyPI84MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered music production by integrating with REAPER DAW via MCP protocol, allowing users to control project settings, MIDI editing, and VST plugins through natural language.10-
- FlicenseNot gradedqualityFmaintenanceAI-powered control for Apple Logic Pro via MCP, enabling transport, tracks, plugins, MIDI, project, and mixer control through natural language.5-
- FlicenseNot gradedqualityDmaintenanceEnables an AI assistant to control Apple Logic Pro DAW including transport, mixing, playhead positioning, MIDI region read/write, and more, via MCP.2-