mcp-svstudio
Synthesizer V Studio 2 MCP Server (mcp-svstudio)
Ein produktionsreifer Model Context Protocol (MCP)-Server für Dreamtonics Synthesizer V Studio 2 Pro, der es generativen KI- und LLM-Agenten ermöglicht, Noten, Texte, Phoneme, Gesangsattribute, Parameter und die Wiedergabesteuerung sicher, strukturiert und effektiv über die offizielle Dreamtonics-Scripting-API zu manipulieren.
Architekturüberblick
Synthesizer V Studio 2 Pro führt Skripte in einer eingebetteten Lua-5.4-/Duktape-JS-Umgebung ohne externe Netzwerk-Sockets aus. Um hohe Leistung, geringe Latenz und null C-Bibliotheks-Abhängigkeiten zu erreichen, verwendet dieser MCP-Server ein atomares Datei-Mailbox-IPC-Protokoll:
+--------------------------------------+
| LLM / MCP Client |
| (Antigravity / Claude / Cursor) |
+------------------+-------------------+
| JSON-RPC over Stdio
v
+--------------------------------------+
| Node.js MCP Server |
| - Tool Schema & Validation (Zod) |
| - Stable Note Locator Resolver |
| - Safe Diff & Dry Run Engine |
| - Mailbox IPC Client |
+------------------+-------------------+
| Atomic Mailbox IPC (.req / .res)
| Live Heartbeat Monitor (heartbeat.json)
v
+--------------------------------------+
| Synthesizer V Studio 2 Pro (Lua 5.4)|
| `StartMCPServerRequestHandler.lua` |
| - Non-blocking SV:setTimeout loop |
| - Dreamtonics Official Scripting API|
| - Automatic Snapshot Rollback & Undo|
+--------------------------------------+Höhepunkte des IPC-Protokolls
Atomare Dateiumbenennungen: Schreibt in
<id>.tmpund benennt atomar in<id>.req/<id>.resum, um Race Conditions und partielle Dateilesevorgänge zu verhindern.Eindeutige Anforderungs-IDs: Garantiert die Zuordnung von Anforderung und Antwort auch bei schnellen sequenziellen Befehlen.
Sofortiger Heartbeat-Liveness: Das Lua-Skript aktualiziert
heartbeat.jsonalle 500 ms. Der MCP-Server prüft die Heartbeat-Frische und meldet den Offline-Status sofort (<50 ms), anstatt bei Zeitüberschreitungen hängen zu bleiben.Automatische Speicherbereinigung: Bereinigt beim Start und während des Abrufens automatisch veraltete temporäre Dateien, die älter als 60 Sekunden sind.
Related MCP server: aviutl2-mcp
Installation & Einrichtung
Voraussetzungen
Node.js (v18 oder höher; getestet mit v22 & v26)
Synthesizer V Studio Pro (Version 2.0 oder 2.1+)
1. MCP-Server erstellen
git clone https://github.com/shotarokawade/SV-MCP.git
cd SV-MCP
npm install
npm run build2. Lua-Skripte in Synthesizer V Studio installieren
Führen Sie den automatisierten Installer aus:
npm run install-scriptsOder kopieren Sie die Dateien in sv-scripts/ manuell in Ihren Synthesizer-V-Studio-Skriptordner:
macOS:
~/Library/Application Support/Dreamtonics/Synthesizer V Studio 2/scripts/MCP/Windows:
%APPDATA%\Dreamtonics\Synthesizer V Studio 2\scripts\MCP\Linux:
~/.local/share/Dreamtonics/Synthesizer V Studio 2/scripts/MCP/
3. Server-Handler in Synthesizer V Studio starten
Starten Sie Synthesizer V Studio 2 Pro.
Öffnen oder erstellen Sie ein Projekt mit Gesangsspuren.
Wählen Sie in der oberen Menüleiste: Skripte > MCP > MCP-Server-Anfrage-Handler starten
Der Hintergrund-Handler läuft nun und ist betriebsbereit. (Zum Beenden wählen Sie Skripte > MCP > MCP-Server-Anfrage-Handler stoppen).
MCP-Client-Konfiguration
Antigravity (~/.gemini/config/mcp_config.json oder Projektkonfiguration)
{
"mcpServers": {
"synthv": {
"command": "node",
"args": ["/absolute/path/to/SV-MCP/build/index.js"],
"env": {
"MCP_SVSTUDIO_IPC_DIR": "/absolute/path/to/.mcp-svstudio/ipc"
}
}
}
}Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"synthv": {
"command": "node",
"args": ["/path/to/SV-MCP/build/index.js"]
}
}
}MCP-Tool-Referenz
Toolname | Beschreibung |
| Gibt Verbindungsstatus, Skript-Heartbeat-Zeitstempel und aktuelle Projektinformationen zurück. |
| Ruft Projektdateinamen, Dauer (in Blicks), Anzahl der Spuren, Gruppen, Tempo- und Taktartenmarkierungen ab. |
| Listet Spuren mit Namen, Gruppenreferenzzählern, Anzeigefarben und Mischpulteinstellungen (Verstärkung, Panorama, Stummschaltung, Solo) auf. |
| Listet alle Notengruppen in der Projektbibliothek mit UUIDs und Notenanzahl auf. |
| Ruft Noten für eine Spur und Gruppe (0-basierte Indizes) ab, einschließlich Tonhöhe, Einsatz, Dauer, Text, Phonemen und Notenattributen. |
| Sucht Noten, die Einsatzbereich, Tonhöhenbereich, Textteilzeichenfolge/-regex oder Phoneme erfüllen. |
| Fügt einer Gruppe eine oder mehrere Noten hinzu. Unterstützt |
| Aktualisiert vorhandene Noten nach Index oder Locator ( |
| Löscht Noten nach Indizes oder Locator. Unterstützt |
| Ruft benutzerdefinierte Phoneme für Note(n) ab. |
| Setzt direkt formale, durch Leerzeichen getrennte Phonemzeichenfolgen ( |
| Fragt die Ergebnisse der internen Text-zu-Phonem-Engine und berechnete Attribute ab ( |
| Ruft Notenattribute ab (Verstimmung, Sprachüberschreibung, Phonemsatzüberschreibung, Musiktyp, Rap-Akzent, Timing/Stärke pro Phonem). |
| Ändert Notenattribute und Attribute pro Phonem ( |
| Ruft Stimmparameter für |
| Ändert Stimmparameter und Gesangsmodi von Spur/Gruppe. |
| Liest Automatisierungskurvenpunkte für Parameter ( |
| Fügt Automatisierungspunkte hinzu, ersetzt oder entfernt sie mit Bereichsvalidierung. |
| Startet die Wiedergabesteuerung. |
| Pausiert die Wiedergabe, ohne die Abspielposition zurückzusetzen. |
| Stoppt die Wiedergabe und setzt die Abspielposition auf die Startposition zurück. |
| Bewegt die Abspielposition in Sekunden. |
| Liest Abspielposition und -status ( |
| Legt den Schleifenwiedergabebereich zwischen |
| Führt mehrere Vorgänge atomar in einer einzigen Rückgängig-Transaktion mit Vorvalidierung und Diff-Vorschau aus. |
Phonem-Manipulation & deutscher Mehrsilben-Text-Fix
Das Problem
Beim Importieren von MusicXML aus MuseScore in Synthesizer V Studio werden deutsche mehrsilbige Wörter, die auf mehrere Noten aufgeteilt sind (z. B. schö- und -ne) mit syllabic=begin/end, oft mit rohem Phonemtext im Text zusammengeführt:
Beabsichtigte Note 1:
.sh erBeabsichtigte Note 2:
.n axErgebnis in SynthV, wenn in den Text eingefügt:
.sh er.n ax(verursacht Aussprachewarnungen und phonetische Fehler).
Die Lösung: Direkte Phonem-Injektion über MCP
Mit diesem MCP-Server setzt das LLM Text und Phoneme direkt über offizielle APIs:
{
"trackIndex": 0,
"groupIndex": 0,
"assignments": [
{ "noteIndex": 0, "phonemes": ".sh er" },
{ "noteIndex": 1, "phonemes": ".n ax" }
]
}Round-Trip-Ausspracheüberprüfung
Rufen Sie
set_phonemesauf, um die Zielphoneme anzuwenden.Rufen Sie
get_computed_phonemesauf, um die internen Synthesizer-Ergebnisse von Synthesizer V erneut abzufragen.Vergleichen Sie die berechneten Phoneme mit der erwarteten Aussprache, um eine exakte Übereinstimmung zu überprüfen.
MuseScore-MCP-Integrationspipeline
[ MuseScore MCP ]
│ 1. Extract note pitches, onset blicks, measure positions, and lyric syllables
▼
[ LLM Agent ]
│ 2. Perform German grapheme-to-phoneme (G2P) conversion to Synthesizer V phonemes
│ (e.g., "Freude" -> [".f r oy", "d ax"])
▼
[ Synthesizer V MCP ]
│ 3. `find_notes` or `get_notes` matching onset and measure range
│ 4. `batch_edit` with `dry_run: true` to inspect diff
│ 5. `batch_edit` with `dry_run: false` to apply notes and `set_phonemes`
│ 6. `get_computed_phonemes` to verify synthesis pronunciationSicherheit, Testlauf und Rollback-Garantien
dry_run: true: Alle Änderungswerkzeuge unterstützendry_run: true. Der Server gibt die vorhergesagten Änderungen und die Differenz zurück, ohne den Projektstatus zu ändern.Rückgängig in einem Schritt in der App (
project.newUndoRecord()): Jeder ändernde MCP-Vorgang registriert einen Projekt-Rückgängig-Datensatz. Der Benutzer kann in Synthesizer V StudioCmd+Z/Ctrl+Zdrücken, um den gesamten Vorgang sofort rückgängig zu machen.Transaktions-Rollback im Stapel: Wenn während
batch_editein Fehler auftritt, erfasst das Skript den Zustand vor der Änderung und macht geänderte Elemente automatisch rückgängig, bevor der Fehler zurückgegeben wird.Grenz- und Bereichsvalidierung:
MIDI-Tonhöhe:
0-127Lautstärke:
-48dB bis+12dBSpannung / Atmigkeit / Geschlecht:
-1.0bis+1.0Stimmhaftigkeit:
0.0bis+1.0Tonhöhenabweichung:
-1200bis+1200CentGesangsmodus:
0bis150
Referenzen & Einhaltung der offiziellen API
Offizielles Skripthandbuch: https://resource.dreamtonics.com/scripting/index.html
Wichtige offizielle APIs:
Note.getPhonemes()/Note.setPhonemes(phonemes)SV.getPhonemesForGroup(groupRef)SV.getComputedAttributesForGroup(groupRef)(SynthV 2.1.1+)Note.getAttributes()/Note.setAttributes(attributes)NoteGroupReference.getVoice()/NoteGroupReference.setVoice(voice)NoteGroup.getParameter(name)/AutomationPlaybackControl(play,pause,stop,seek,loop,getPlayhead)Project.newUndoRecord()
Lizenz
MIT-Lizenz.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server for Synthesizer V AI Vocal Studio, which allows LLMs to create/edit vocal tracks e.g. adding lyrics to the melody.612Apache 2.0
- FlicenseAqualityBmaintenanceEnables LLMs to create, edit, and manage AviUtl2 video projects, with optional real-time control via a native bridge plugin.19
- FlicenseNot gradedqualityCmaintenanceControls OpenUtau (vocal synthesis software) from Claude Desktop, enabling project creation, editing, and live note manipulation via a bridge plugin.
- AlicenseBqualityBmaintenanceEnables coding agents to compose, tune, render, mix, and audit native VOCALOID3/4 projects from scratch, acting as a production bridge between intent and finished song.221MIT
Related MCP Connectors
Create and manage cinematic AI video renders through the Future Video Studio Agent API.
Build and run visual creative-production workflows from your AI agent.
Operate your Sapiens Sintéticos AI studio: generate image, article, voice, music and video.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/shotarokawade/SV-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server