Skip to main content
Glama

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 build

2. 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 でサーバーハンドラーを起動

  1. Synthesizer V Studio 2 Pro を起動します。

  2. ボーカルトラックを含むプロジェクトを開くか、新規作成します。

  3. 上部メニューバーで以下を選択します: Scripts > MCP > Start MCP Server Request Handler

  4. バックグラウンドハンドラーが実行され、応答可能な状態になります。(停止するには、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 ツールリファレンス

ツール名

説明

get_server_status

接続ステータス、スクリプトのハートビートタイムスタンプ、現在のプロジェクト情報を返します。

get_project_info

プロジェクトのファイル名、長さ(blick 単位)、トラック数、グループ数、テンポおよび小節マークを取得します。

list_tracks

トラック名、グループ参照数、表示色、ミキサー設定(ゲイン、パン、ミュート、ソロ)を含むトラックを一覧表示します。

list_groups

プロジェクトライブラリ内のすべてのノートグループを UUID とノート数とともに一覧表示します。

get_notes

トラックとグループ(0 ベースのインデックス)のノートを、ピッチ、オンセット、長さ、歌詞、音素、ノート属性を含めて取得します。

find_notes

オンセット範囲、ピッチ範囲、歌詞の部分文字列/正規表現、または音素に一致するノートを検索します。

add_notes

グループに 1 つ以上のノートを追加します。dry_run: true をサポートします。

update_notes

インデックスまたはロケーター({ onset, pitch })で既存のノートを更新します。dry_run: true をサポートします。

delete_notes

インデックスまたはロケーターでノートを削除します。dry_run: true をサポートします。

get_phonemes

ノートに指定されたユーザー音素を取得します。

set_phonemes

正式なスペース区切りの音素文字列を直接設定します(Note.setPhonemes())。

get_computed_phonemes

内部のテキストから音素への変換エンジンの結果と計算済み属性を照会します(SV.getComputedAttributesForGroup)。

get_note_attributes

ノート属性(detune、languageOverride、phonesetOverride、musicalType、rapAccent、音素ごとのタイミング/強度)を取得します。

set_note_attributes

ノート属性と音素ごとの属性(phonemes: [{ leftOffset, position, activity, strength }])を変更します。

get_voice

NoteGroupReference のボイスパラメータ(loudness、tension、breathiness、gender、toneShift、vocalModeParams)を取得します。

set_voice

トラック/グループのボイスパラメータとボーカルモードを変更します。

get_parameters

パラメータ(pitchDeltaloudnesstensionbreathinessvoicinggendervocalMode_*)のオートメーションカーブポイントを読み取ります。

set_parameters

範囲検証付きでオートメーションポイントを追加、置換、または削除します。

play

再生トランスポートを開始します。

pause

再生ヘッドをリセットせずに再生を一時停止します。

stop

再生を停止し、再生ヘッドを開始位置にリセットします。

seek

再生ヘッドを秒単位の位置に移動します。

get_playhead

再生ヘッドの位置とステータス("playing""looping""stopped")を読み取ります。

loop

tBegintEnd(秒)の間のループ再生領域を設定します。

batch_edit

事前検証と差分プレビュー付きで、複数の操作を単一のアンドゥトランザクション内でアトミックに実行します。


音素操作とドイツ語複数音節歌詞の修正

問題

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" }
  ]
}

往復発音検証

  1. set_phonemes を呼び出して、対象の音素を適用します。

  2. get_computed_phonemes を呼び出して、Synthesizer V の内部シンセサイザーエンジンを再照会します。

  3. 計算された音素を期待される発音と比較して、完全一致を検証します。


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

安全性、ドライラン、ロールバックの保証

  1. dry_run: true: すべての変更ツールが dry_run: true をサポートしています。サーバーはプロジェクトの状態を変更せずに、予測される変更と差分を返します。

  2. アプリ内ワンステップアンドゥ(project.newUndoRecord(): すべての変更を伴う MCP 操作は、プロジェクトのアンドゥレコードを登録します。ユーザーは Synthesizer V Studio 内で Cmd+Z / Ctrl+Z を押すだけで、操作全体を即座に元に戻すことができます。

  3. バッチ内のトランザクションロールバック: batch_edit 中にエラーが発生した場合、スクリプトは変更前の状態をキャプチャし、エラーを返す前に変更された項目を自動的にロールバックします。

  4. 境界値および範囲検証:

    • MIDI ピッチ: 0127

    • Loudness: -48 dB 〜 +12 dB

    • Tension / Breathiness / Gender: -1.0+1.0

    • Voicing: 0.0+1.0

    • Pitch Delta: -1200+1200 セント

    • Vocal Mode: 0150


リファレンスと公式 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) / Automation

    • PlaybackControlplaypausestopseekloopgetPlayhead

    • Project.newUndoRecord()


ライセンス

MIT ライセンス。

Install Server
F
license - not found
A
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    C
    maintenance
    Controls OpenUtau (vocal synthesis software) from Claude Desktop, enabling project creation, editing, and live note manipulation via a bridge plugin.
  • A
    license
    B
    quality
    B
    maintenance
    Enables 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.
    22
    1
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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