mcp-svstudio
Synthesizer V Studio 2 MCP Server (mcp-svstudio)
Un servidor Model Context Protocol (MCP) de grado de producción para Dreamtonics Synthesizer V Studio 2 Pro, que permite a agentes de IA generativa y LLM manipular de forma segura, estructural y efectiva notas, letras, fonemas, atributos vocales, parámetros y el transporte de reproducción mediante la API oficial de scripting de Dreamtonics.
Descripción general de la arquitectura
Synthesizer V Studio 2 Pro ejecuta scripts dentro de un entorno embebido de Lua 5.4 / Duktape JS sin sockets de red externos. Para lograr alto rendimiento, baja latencia y cero dependencias de bibliotecas C, este servidor MCP utiliza un Protocolo IPC de buzón de archivos atómico:
+--------------------------------------+
| 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|
+--------------------------------------+Aspectos destacados del protocolo IPC
Renombrados atómicos de archivos: Escribe en
<id>.tmpy renombra atómicamente a<id>.req/<id>.respara evitar condiciones de carrera y lecturas parciales de archivos.IDs de solicitud únicos: Garantiza el emparejamiento solicitud-respuesta incluso durante comandos secuenciales rápidos.
Latido instantáneo de actividad: El script Lua actualiza
heartbeat.jsoncada 500 ms. El servidor MCP comprueba la frescura del latido e informa inmediatamente del estado sin conexión (<50 ms) en lugar de quedarse colgado en tiempos de espera.Recolección automática de basura: Limpia automáticamente archivos temporales obsoletos de más de 60 segundos al inicio y durante el sondeo.
Related MCP server: aviutl2-mcp
Instalación y configuración
Requisitos previos
Node.js (v18 o superior; probado en v22 y v26)
Synthesizer V Studio Pro (Versión 2.0 o 2.1+)
1. Compilar el servidor MCP
git clone https://github.com/shotarokawade/SV-MCP.git
cd SV-MCP
npm install
npm run build2. Instalar los scripts Lua en Synthesizer V Studio
Ejecute el instalador automatizado:
npm run install-scriptsO copie manualmente los archivos de sv-scripts/ a su carpeta de scripts de Synthesizer V Studio:
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. Iniciar el manejador del servidor en Synthesizer V Studio
Inicie Synthesizer V Studio 2 Pro.
Abra o cree un proyecto con pistas vocales.
En la barra de menú superior, seleccione: Scripts > MCP > Start MCP Server Request Handler
El manejador en segundo plano ahora está en ejecución y responde. (Para detenerlo, seleccione Scripts > MCP > Stop MCP Server Request Handler).
Configuración del cliente MCP
Antigravity (~/.gemini/config/mcp_config.json o configuración del proyecto)
{
"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"]
}
}
}Referencia de herramientas MCP
Nombre de la herramienta | Descripción |
| Devuelve el estado de la conexión, la marca de tiempo del latido del script y la información del proyecto actual. |
| Recupera el nombre del archivo del proyecto, la duración (en blicks), el número de pistas, el número de grupos y las marcas de tempo y compás. |
| Lista las pistas con nombres, recuentos de referencias de grupo, colores de visualización y ajustes de mezclador (ganancia, paneo, silencio, solo). |
| Lista todos los grupos de notas en la biblioteca del proyecto con UUIDs y recuentos de notas. |
| Recupera notas para una pista y grupo (índices basados en 0) incluyendo tono, inicio, duración, letras, fonemas y atributos de nota. |
| Busca notas que coincidan con el rango de inicio, rango de tono, subcadena/regex de letras o fonemas. |
| Añade una o más notas a un grupo. Soporta |
| Actualiza notas existentes por índice o localizador ( |
| Elimina notas por índices o localizador. Soporta |
| Recupera los fonemas especificados por el usuario para la(s) nota(s). |
| Establece directamente cadenas de fonemas formales separadas por espacios ( |
| Consulta los resultados internos del motor de texto a fonemas y los atributos calculados ( |
| Obtiene atributos de nota (desafinación, anulación de idioma, anulación de conjunto de fonemas, tipo musical, acento de rap, sincronización/fuerza por fonema). |
| Modifica atributos de nota y atributos por fonema ( |
| Obtiene parámetros de voz en |
| Modifica los parámetros de voz de pista/grupo y los modos vocales. |
| Lee puntos de curva de automatización para parámetros ( |
| Añade, reemplaza o elimina puntos de automatización con validación de rango. |
| Inicia el transporte de reproducción. |
| Pausa la reproducción sin restablecer el cabezal de reproducción. |
| Detiene la reproducción y restablece el cabezal a la posición inicial. |
| Mueve el cabezal de reproducción a la posición en segundos. |
| Lee la posición del cabezal y el estado ( |
| Establece la región de reproducción en bucle entre |
| Ejecuta múltiples operaciones atómicamente en una única transacción de deshacer con prevalidación y vista previa de diferencias. |
Manipulación de fonemas y corrección de letras alemanas multisilábicas
El problema
Al importar MusicXML desde MuseScore a Synthesizer V Studio, las palabras alemanas multisilábicas divididas entre notas (por ejemplo, schö- y -ne) con syllabic=begin/end a menudo se fusionan con el texto de fonemas crudo en las letras:
Nota 1 prevista:
.sh erNota 2 prevista:
.n axResultado en SynthV si se coloca en las letras:
.sh er.n ax(causando advertencias de pronunciación y errores fonéticos).
La solución: Inyección directa de fonemas mediante MCP
Usando este servidor MCP, el LLM establece letras y fonemas directamente mediante las API oficiales:
{
"trackIndex": 0,
"groupIndex": 0,
"assignments": [
{ "noteIndex": 0, "phonemes": ".sh er" },
{ "noteIndex": 1, "phonemes": ".n ax" }
]
}Verificación de pronunciación de ida y vuelta
Llame a
set_phonemespara aplicar los fonemas objetivo.Llame a
get_computed_phonemespara volver a consultar el motor sintetizador interno de Synthesizer V.Compare los fonemas calculados con la pronunciación esperada para verificar la coincidencia exacta.
Pipeline de integración con MuseScore MCP
[ 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 pronunciationGarantías de seguridad, ejecución en seco y reversión
dry_run: true: Todas las herramientas de mutación soportandry_run: true. El servidor devuelve los cambios previstos y la diferencia sin modificar el estado del proyecto.Deshacer en un solo paso dentro de la aplicación (
project.newUndoRecord()): Cada operación MCP que muta registra un registro de deshacer del proyecto. El usuario puede pulsarCmd+Z/Ctrl+Zdentro de Synthesizer V Studio para revertir instantáneamente toda la operación.Reversión de transacción en lote: Si se produce un error durante
batch_edit, el script captura el estado anterior a la mutación y revierte automáticamente los elementos modificados antes de devolver el error.Validación de límites y rangos:
Tono MIDI:
0-127Volumen:
-48dB a+12dBTensión / Respiración / Género:
-1.0a+1.0Sonoridad:
0.0a+1.0Desviación de tono:
-1200a+1200centsModo vocal:
0a150
Referencias y cumplimiento de la API oficial
Manual oficial de scripting: https://resource.dreamtonics.com/scripting/index.html
APIs oficiales clave utilizadas:
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()
Licencia
Licencia MIT.
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