MCP(AIエージェント連携)
MCP(Model Context Protocol)を使うと、対応するAIエージェントから、開いているskulptonのプロジェクトを確認・編集できます。たとえば「BPMを120にして」「このクリップを1/16でクオンタイズして」と依頼できます。
MCPを有効にする
Section titled “MCPを有効にする”- skulptonの Preferences → AI Agent を開きます。
- Enable MCP bridge をオンにします。
- プロジェクトを変更する操作も許可する場合は、Allow write operations をオンにします。初期設定ではオフです。
- MCPクライアントに
skulpton-mcpをstdioサーバーとして登録します。
ブリッジはlocalhostだけで待ち受け、接続情報と一時トークンは有効中だけdescriptorファイルへ保存されます。MCPクライアントは skulpton-mcp を介してこの接続情報を読み取ります。
書き込み操作の安全確認
Section titled “書き込み操作の安全確認”書き込み操作には confirm: true が必要です。変更前の内容を確認したい場合は、同じ操作を dryRun: true で呼び出せます。dryRun でも引数と対象 ID は検証され、変更対象の entity・件数・runtime への影響・上書きされるファイルを含む変更計画が返ります。プロジェクトやファイルは変更されません。読み取り操作に書き込み許可や確認は必要ありません。
対応している操作
Section titled “対応している操作”「読み取り」はプロジェクトを変更しません。「書き込み」は Allow write operations と confirm: true が必要です。
| 分類 | MCPツール | 種別 | 操作 |
|---|---|---|---|
| プロジェクト | project.get_current | 読み取り | 制作向けに整理した現在のプロジェクト、選択状態、Transportを取得 |
| プロジェクト | project.get_raw | 読み取り | 現在のプロジェクト状態を完全な形式で取得 |
| 履歴 | history.get_status | 読み取り | undo/redoの可否と履歴件数を取得 |
| 履歴 | history.undo | 書き込み | 直前のプロジェクト編集を取り消す |
| 履歴 | history.redo | 書き込み | 取り消したプロジェクト編集をやり直す |
| タイムライン | project.get_timeline | 読み取り | tempo、拍子、track順、clip範囲の要約を取得 |
| ミキサー | mixer.get_state | 読み取り | 保存対象のミキサーとrouting状態を取得 |
| ミキサー | mixer.master.update | 書き込み | Masterのgain、pan、mute、nameを更新 |
| ミキサー | mixer.return.add | 書き込み | Return Busを追加 |
| ミキサー | mixer.return.update | 書き込み | Return Busのgain、pan、mute、nameを更新 |
| ミキサー | mixer.return.remove | 書き込み | Return Busと依存send/routingを削除 |
| ミキサー | mixer.track.set_send | 書き込み | Track sendの宛先、gain、pre/post-faderを設定または解除 |
| ミキサー | mixer.bus.set_send | 書き込み | Return Busの送出先をcycle検証付きで設定またはMasterへ戻す |
| Automation | automation.get_state | 読み取り | 対象アレンジのautomation laneとpointを取得 |
| プラグイン | plugin.get_chains | 読み取り | track/busごとのplugin chainを取得 |
| MIDIポート | midi.get_ports | 読み取り | 接続中のMIDI入出力ポートを取得 |
| プロジェクト | project.save_current | 書き込み | 現在の保存先または指定パスへ保存 |
| プロジェクト | project.set_name | 書き込み | プロジェクト名を変更 |
| プロジェクト | project.set_bpm | 書き込み | BPMを変更 |
| プロジェクト | project.set_tempo_map | 書き込み | tempo mapを置換 |
| プロジェクト | project.set_time_signature_map | 書き込み | 拍子mapを置換 |
| プロジェクト | project.set_quantize_settings | 書き込み | projectのquantize設定を置換 |
| プロジェクト | project.set_length_bars | 書き込み | プロジェクトの長さ(小節数)を変更 |
| プロジェクト | project.set_scale | 書き込み | スケールを設定または解除 |
| プロジェクト | project.set_notes | 書き込み | プロジェクトのメモを更新または消去 |
| MIDI書き出し | midi.export_clip | 書き込み | MIDIクリップをStandard MIDI Fileへ書き出し |
| MIDI書き出し | midi.export_project | 書き込み | 現在のアレンジをStandard MIDI Fileへ書き出し |
| プラグイン | plugin.list_available | 読み取り | キャッシュ済みの利用可能なプラグインを取得 |
| プラグイン | track.assign_instrument | 書き込み | Instrument Trackへ音源プラグインを割り当て |
| アレンジ | arrangement.create | 書き込み | アレンジを新規作成 |
| アレンジ | arrangement.duplicate | 書き込み | 既存のアレンジを複製 |
| アレンジ | arrangement.set_active | 書き込み | 使用するアレンジを切り替え |
| アレンジ | arrangement.rename | 書き込み | アレンジ名を変更 |
| アレンジ | arrangement.remove | 書き込み | Scratch Padを削除 |
| アレンジ | arrangement.copy_clips | 書き込み | active arrangementのclipを別アレンジへコピー |
| トラック | track.add | 書き込み | MIDI、Audio、Instrument Trackを追加 |
| トラック | track.update | 書き込み | トラック名、色、MIDIルーティングなどを更新 |
| トラック | track.remove | 書き込み | trackと依存するclip/routingを削除 |
| トラック | track.reorder | 書き込み | track順を変更 |
| トラック | track.set_initial_program | 書き込み | 再生開始時のMIDI Program Changeを設定 |
| トラック | track.set_output_bus | 書き込み | main outputのmaster/folder bus routingを設定 |
| トラック | track.set_mixer_input | 書き込み | audio/instrument trackの入力routingを設定 |
| MIDIクリップ | midi_clip.add | 書き込み | アクティブなアレンジへMIDIクリップを追加 |
| Automation lane | automation_lane.add | 書き込み | trackへgain/pan/MIDI CC/plugin parameter laneを追加 |
| Automation lane | automation_lane.update | 書き込み | lane名または権威targetを更新し、所属clip targetも同期 |
| Automation lane | automation_lane.remove | 書き込み | laneと全arrangementの所属clipを削除 |
| Automation clip | automation_clip.add | 書き込み | 既存laneへ検証済みenvelope clipを追加 |
| Automation clip | automation_clip.update | 書き込み | clip名、範囲、point envelopeをatomicに更新 |
| Automation clip | automation_clip.remove | 書き込み | active arrangementからclipを削除 |
| Automation clip | automation_clip.move | 書き込み | 複数clipを1 transactionで絶対beatへ移動 |
| Automation clip | automation_clip.duplicate | 書き込み | stable IDでclipを直後へ複製 |
| Automation clip | automation_clip.slice | 書き込み | 絶対beatで補間点を挿入し、再生値を連続に保って分割 |
| Automation clip | automation_clip.merge | 書き込み | 同一track/lane/targetのclipを境界挙動を保って結合 |
| Automation point | automation_point.add_many | 書き込み | clip-local beat/正規化値/curveのpointを一括追加 |
| Automation point | automation_point.update_many | 書き込み | index指定のpointを全件検証して一括更新 |
| Automation point | automation_point.delete_many | 書き込み | index指定のpointを全件検証して一括削除 |
| Automation point | automation_point.replace_all | 書き込み | clip内のpoint envelopeを検証済みpointで全置換 |
| Automation point | automation_point.simplify | 書き込み | clip全体またはindex部分集合を決定的に簡略化 |
| MIDIクリップ | midi_clip.update | 書き込み | 開始位置、長さ、名前を更新 |
| AudioClip | audio_clip.add | 書き込み | AudioFileRefを指定してAudioClipを追加 |
| AudioClip | audio_clip.update | 書き込み | 配置、長さ、素材参照などを更新 |
| AudioClip | audio_clip.update_edit | 書き込み | source native frameのtrim、gain、fade、gain envelopeを更新 |
| AudioClip | audio_clip.set_warp | 書き込み | source native frameとbeatでwarp定義を設定 |
| AudioClip | audio_clip.remove | 書き込み | AudioClipを削除 |
| AudioClip | audio_clip.move | 書き込み | AudioClipをaudio track間で移動 |
| AudioClip | audio_clip.duplicate | 書き込み | stable IDでAudioClipを複製 |
| AudioClip | audio_clip.slice_many | 書き込み | 複数beat位置で1 transaction分割(全入力atomic validation) |
| AudioClip | audio_clip.merge | 書き込み | 同一素材の連続sliceを1 transactionで再結合 |
| AudioClip | audio_clip.toggle_crossfade | 書き込み | 重なる2 clipのequal-power crossfadeをトグル |
| AudioClip | audio_clip.consolidate | 書き込み | offline render成功後だけ元clip群を1 clipへ置換 |
| AudioClip | audio_clip.bounce_instrument | 書き込み | instrument clipをoffline renderし新規AudioTrackへ配置 |
| MIDIクリップ | midi_clip.move | 書き込み | 別トラックまたは別の開始位置へ移動 |
| MIDIクリップ | midi_clip.duplicate | 書き込み | 1つ以上のクリップをまとまりとして複製 |
| MIDIクリップ | midi_clip.slice | 書き込み | 指定した絶対beat位置で分割 |
| MIDIクリップ | midi_clip.merge | 書き込み | 同じトラック上のクリップを結合 |
| MIDIクリップ | midi_clip.bounce | 書き込み | レンダリング済みノートをMIDIクリップとして固定 |
| coding note | coding_note.set_code | 書き込み | クリップのcoding noteコードを更新 |
| coding note | coding_note.render | 書き込み | coding noteを実行し、ノートとCC laneを生成 |
| coding note | coding_note.clear_render | 書き込み | 保存されたレンダリング結果を消去 |
| coding note | coding_note.set_loaded_libs | 書き込み | クリップが読み込む libs/codes を設定 |
| coding note | coding_note.set_disabled_factory_libs | 書き込み | クリップで無効にするfactory libを設定 |
| coding note | coding_note.bounce_render | 書き込み | レンダリング結果を編集可能なsource noteへ固定 |
| ノート | note.add_many | 書き込み | 1つ以上のsource noteを追加 |
| ノート | note.update_many | 書き込み | 1つ以上のsource noteを更新 |
| ノート | note.delete_many | 書き込み | 1つ以上のsource noteを削除 |
| ノート | note.replace_all | 書き込み | クリップ内のsource noteをすべて置換 |
| ノート | note.quantize | 書き込み | 選択したノートをbeat gridへクオンタイズ |
| ノート | note.nudge | 書き込み | 選択したノートの位置やpitchを相対移動 |
| ノート | note.copy_bar | 書き込み | 指定小節のノートを別の小節へコピー |
| チャンネルlane | channel_lane.add | 書き込み | CC、pitch bend、channel aftertouch laneを追加 |
| チャンネルlane | channel_lane.update | 書き込み | チャンネルlaneを更新 |
| チャンネルlane | channel_lane.delete | 書き込み | チャンネルlaneを削除 |
| チャンネルevent | channel_event.add | 書き込み | CC、pitch bend、channel aftertouch eventを追加 |
| チャンネルevent | channel_event.update | 書き込み | チャンネルeventを更新 |
| チャンネルevent | channel_event.delete | 書き込み | チャンネルeventを削除 |
| Transport | transport.play | 書き込み | insertion markerから再生 |
| Transport | transport.pause | 書き込み | 現在位置で一時停止 |
| Transport | transport.stop | 書き込み | 再生を停止 |
| Transport | transport.seek | 書き込み | 指定した絶対beat位置へ移動 |
| Transport | transport.set_loop | 書き込み | ループ範囲の設定、更新、解除 |
現在の対象外
Section titled “現在の対象外”MCP v1では、プラグインのスキャンや管理、プラグイン画面の操作、デバイス操作には対応していません。ミキサーはMaster・Return Bus・sendの永続編集に対応しますが、メーターなどのruntime表示は対象外です。plugin.list_available が返すのは、skulptonがすでにキャッシュしているプラグイン情報です。
接続できないとき
Section titled “接続できないとき”- skulptonが起動しているか確認する
- Enable MCP bridge がオンか確認する
- PreferencesのStatusが Listening になっているか確認する
- MCPクライアントを再起動して、descriptorを読み直す
- 編集だけ失敗する場合は Allow write operations と確認パラメーターを確認する