mcp-svstudio
Synthesizer V Studio 2 MCP サーバー(mcp-svstudio)
Dreamtonics Synthesizer V Studio 2 Pro 向けの本番グレードの Model Context Protocol (MCP) サーバーです。Generative AI および LLM エージェントが、公式 Dreamtonics Scripting API を介して、ノート、歌詞、音素、ボーカル属性、パラメータ、再生トランスポートを安全かつ構造的に、効果的に操作できるようにします。
アーキテクチャ概要
Synthesizer V Studio 2 Pro は、外部ネットワークソケットを持たない組み込みの Lua 5.4 / Duktape JS 環境内でスクリプトを実行します。高性能、低レイテンシ、ゼロ C ライブラリ依存を実現するため、この MCP サーバーは アトミックファイルメールボックス IPC プロトコル を使用します。
+--------------------------------------+
| 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|
+--------------------------------------+IPC プロトコルのハイライト
アトミックファイルリネーム:
<id>.tmpに書き込み、<id>.req/<id>.resにアトミックにリネームすることで、競合状態や部分的なファイル読み取りを防ぎます。一意のリクエスト ID: 高速な連続コマンド中でも、リクエストとレスポンスのペアリングを保証します。
インスタントハートビート死活監視: Lua スクリプトが 500ms ごとに
heartbeat.jsonを更新します。MCP サーバーはハートビートの鮮度をチェックし、タイムアウトでハングする代わりに、即座にオフライン状態を報告します(50ms 未満)。自動ガベージコレクション: 起動時およびポーリング中に、60 秒以上経過した古い一時ファイルを自動的にクリーンアップします。
Related MCP server: aviutl2-mcp
インストールとセットアップ
前提条件
Node.js(v18 以上。v22 および v26 でテスト済み)
Synthesizer V Studio Pro(バージョン 2.0 または 2.1 以降)
1. MCP サーバーのビルド
git clone https://github.com/shotarokawade/SV-MCP.git
cd SV-MCP
npm install
npm run build2. Lua スクリプトを Synthesizer V Studio にインストール
自動インストーラーを実行します:
npm run install-scriptsまたは、sv-scripts/ 内のファイルを 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. Synthesizer V Studio でサーバーハンドラーを起動
Synthesizer V Studio 2 Pro を起動します。
ボーカルトラックを含むプロジェクトを開くか、新規作成します。
上部メニューバーで以下を選択します: Scripts > MCP > Start MCP Server Request Handler
バックグラウンドハンドラーが実行され、応答可能な状態になります。(停止するには、Scripts > MCP > Stop MCP Server Request Handler を選択します)。
MCP クライアント設定
Antigravity(~/.gemini/config/mcp_config.json またはプロジェクト設定)
{
"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 ツールリファレンス
ツール名 | 説明 |
| 接続ステータス、スクリプトのハートビートタイムスタンプ、現在のプロジェクト情報を返します。 |
| プロジェクトのファイル名、長さ(blick 単位)、トラック数、グループ数、テンポおよび小節マークを取得します。 |
| トラック名、グループ参照数、表示色、ミキサー設定(ゲイン、パン、ミュート、ソロ)を含むトラックを一覧表示します。 |
| プロジェクトライブラリ内のすべてのノートグループを UUID とノート数とともに一覧表示します。 |
| トラックとグループ(0 ベースのインデックス)のノートを、ピッチ、オンセット、長さ、歌詞、音素、ノート属性を含めて取得します。 |
| オンセット範囲、ピッチ範囲、歌詞の部分文字列/正規表現、または音素に一致するノートを検索します。 |
| グループに 1 つ以上のノートを追加します。 |
| インデックスまたはロケーター( |
| インデックスまたはロケーターでノートを削除します。 |
| ノートに指定されたユーザー音素を取得します。 |
| 正式なスペース区切りの音素文字列を直接設定します( |
| 内部のテキストから音素への変換エンジンの結果と計算済み属性を照会します( |
| ノート属性(detune、languageOverride、phonesetOverride、musicalType、rapAccent、音素ごとのタイミング/強度)を取得します。 |
| ノート属性と音素ごとの属性( |
|
|
| トラック/グループのボイスパラメータとボーカルモードを変更します。 |
| パラメータ( |
| 範囲検証付きでオートメーションポイントを追加、置換、または削除します。 |
| 再生トランスポートを開始します。 |
| 再生ヘッドをリセットせずに再生を一時停止します。 |
| 再生を停止し、再生ヘッドを開始位置にリセットします。 |
| 再生ヘッドを秒単位の位置に移動します。 |
| 再生ヘッドの位置とステータス( |
|
|
| 事前検証と差分プレビュー付きで、複数の操作を単一のアンドゥトランザクション内でアトミックに実行します。 |
音素操作とドイツ語複数音節歌詞の修正
問題
MuseScore から MusicXML を Synthesizer V Studio にインポートする際、syllabic=begin/end を持つ複数のノートに分割されたドイツ語の複数音節語(例: schö- と -ne)が、生の音素テキストと結合されて歌詞に含まれることがよくあります:
意図したノート 1:
.sh er意図したノート 2:
.n ax歌詞に配置した場合の SynthV での結果:
.sh er.n ax(発音警告と音声エラーが発生)
解決策: MCP による直接音素注入
この MCP サーバーを使用すると、LLM は公式 API を介して歌詞と音素を直接設定できます:
{
"trackIndex": 0,
"groupIndex": 0,
"assignments": [
{ "noteIndex": 0, "phonemes": ".sh er" },
{ "noteIndex": 1, "phonemes": ".n ax" }
]
}往復発音検証
set_phonemesを呼び出して、対象の音素を適用します。get_computed_phonemesを呼び出して、Synthesizer V の内部シンセサイザーエンジンを再照会します。計算された音素を期待される発音と比較して、完全一致を検証します。
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 pronunciation安全性、ドライラン、ロールバックの保証
dry_run: true: すべての変更ツールがdry_run: trueをサポートしています。サーバーはプロジェクトの状態を変更せずに、予測される変更と差分を返します。アプリ内ワンステップアンドゥ(
project.newUndoRecord()): すべての変更を伴う MCP 操作は、プロジェクトのアンドゥレコードを登録します。ユーザーは Synthesizer V Studio 内でCmd+Z/Ctrl+Zを押すだけで、操作全体を即座に元に戻すことができます。バッチ内のトランザクションロールバック:
batch_edit中にエラーが発生した場合、スクリプトは変更前の状態をキャプチャし、エラーを返す前に変更された項目を自動的にロールバックします。境界値および範囲検証:
MIDI ピッチ:
0〜127Loudness:
-48dB 〜+12dBTension / Breathiness / Gender:
-1.0〜+1.0Voicing:
0.0〜+1.0Pitch Delta:
-1200〜+1200セントVocal Mode:
0〜150
リファレンスと公式 API 準拠
公式スクリプティングマニュアル: https://resource.dreamtonics.com/scripting/index.html
使用される主要な公式 API:
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()
ライセンス
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