Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENUTAU_EXENoPath to OpenUtau.exe
OPENUTAU_DATA_DIRNoOpenUtau data directory (default `Documents\OpenUtau`)
OPENUTAU_MCP_PORTNoPort for the OpenUtau MCP bridge (default 51128; set the same variable for OpenUtau to move the plugin)

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Control OpenUtau (singing synthesis) in English or Japanese.

  1. Call openutau_status first. Live tools need OpenUtau running with the OpenUtauMcp plugin (the "bridge"). If it is not running, call launch_openutau. ustx_* / ust_* / voicebank tools work with OpenUtau closed.

  2. Time is in ticks: 480 ticks = one quarter note (1920 = one 4/4 bar). Note positions are relative to their part.

  3. Pitch: MIDI number or name. C4 = 60 (middle C), A4 = 69, C#4/Db4 = 61, C-1 = 0.

  4. Indexes: "track" = track number; "part" = index among voice parts only; "note" = index in the part, sorted by position.

  5. Lyrics (assign_lyrics / set_lyrics / ustx_assign_lyrics): Japanese = one mora per note (きゃ is one note; っ is its own note; ー becomes a "+" note that holds the previous vowel; punctuation is dropped; kanji become hiragana when pykakasi is installed). English = one word per note; write hyphens for syllables ("hel-lo") and the extra syllables become "+" extender notes.

  6. Phonemizer by voicebank: Japanese UTAU bank -> OpenUtau.Plugin.Builtin.JapanesePresampPhonemizer ("JA VCV & CVVC"); English ARPAsing bank -> ArpasingPhonemizer ("EN ARPA"); English VCCV bank -> EnglishVCCVPhonemizer ("EN VCCV"); English X-SAMPA bank -> EnXSampaPhonemizer ("EN X-SAMPA"); English lyrics on a Japanese bank -> ENtoJAPhonemizer ("EN to JA"). Check list_phonemes: has_oto=false means the voicebank has no sample for that phoneme.

  7. Each live edit is one undo step (undo / redo). Save with save_project.

OpenUtau(歌声合成)を英語・日本語で操作します。

  1. まず openutau_status を呼んでください。ライブ操作には OpenUtauMcp プラグイン(ブリッジ)入りの OpenUtau が必要です。 起動していなければ launch_openutau。ustx_* / ust_* / 音源ツールは OpenUtau を閉じたままでも使えます。

  2. 時間はティック単位:四分音符 = 480(4/4 の1小節 = 1920)。音符の位置はパートの先頭からの相対値です。

  3. 音高は MIDI 番号か音名:C4 = 60(中央ド)、A4 = 69、C#4/Db4 = 61、C-1 = 0。

  4. 番号:track はトラック番号、part はボイスパートだけを数えた番号、note はパート内の位置順の番号です。

  5. 歌詞:日本語は1音符1モーラ(「きゃ」で1音符、「っ」は単独の音符、「ー」は前の母音を伸ばす「+」音符、句読点は除去、pykakasi があれば漢字をひらがなに)。 英語は1音符1単語。音節はハイフンで区切ると(hel-lo)、残りの音節が「+」の延長音符になります。

  6. 音源に合う音素化器:日本語 UTAU 音源 → JapanesePresampPhonemizer、英語 ARPAsing → ArpasingPhonemizer、 英語 VCCV → EnglishVCCVPhonemizer、英語 X-SAMPA→ EnXSampaPhonemizer、 日本語音源で英語歌詞 → ENtoJAPhonemizer。list_phonemes の has_oto=false は音源に該当サンプルがないことを示します。

  7. ライブ編集は1回の呼び出しが1回の取り消し単位です(undo / redo)。保存は save_project。

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
openutau_statusA

Is OpenUtau running, is the bridge reachable, and how to fix it if not. Call this first. / OpenUtau が起動しているか、ブリッジに接続できるか、できない場合の対処法。最初に呼んでください。

launch_openutauA

Start OpenUtau (optionally with a project). If it is already running with the bridge, opens the project there. / OpenUtau を起動します(プロジェクト指定可)。起動済みならそのプロジェクトを開きます。

close_openutauA

Close OpenUtau. Refuses if there are unsaved changes unless force=true (force discards them). / OpenUtau を終了します。未保存の変更がある場合は force=true が必要です(変更は破棄されます)。

get_projectB

Summary of the open project: file, saved state, key, tempos, time signatures, tracks, voice parts. / 開いているプロジェクトの概要(ファイル、保存状態、キー、テンポ、拍子、トラック、ボイスパート)。

new_projectA

Start a new empty project. force=true discards unsaved changes. / 新規プロジェクトを作成します。force=true で未保存の変更を破棄します。

open_projectA

Open a project file (.ustx, .ust, .vsqx, .mid, .musicxml, .svp, ...). force=true discards unsaved changes. / プロジェクトを開きます(.ustx .ust .vsqx .mid .musicxml .svp など)。force=true で未保存の変更を破棄します。

save_projectB

Save as .ustx to path, or to the current file if path is omitted. / .ustx として保存します。path 省略時は現在のファイルに上書き保存します。

import_tracksC

Import the tracks of another project file into the open project. / 別のプロジェクトファイルのトラックを現在のプロジェクトに読み込みます。

undoB

Undo the last edit. / 直前の編集を取り消します。

redoA

Redo the last undone edit. / 取り消した編集をやり直します。

set_tempoB

Set the tempo at tick 0, or add/replace a tempo change at a tick. / テンポを設定します(tick 0)。tick を指定するとその位置にテンポ変更を追加・置換します。

remove_tempoB

Remove the tempo change at a tick (not tick 0). / 指定ティックのテンポ変更を削除します(tick 0 は不可)。

set_time_signatureA

Set the time signature at bar 0, or add a change at a bar (e.g. 3/4 = 3, 4). / 拍子を設定します(bar 0)。bar を指定するとその小節に拍子変更を追加します(例:3/4 は 3, 4)。

set_keyB

Set the project key: 0 = C ... 11 = B, or a name like "F#" / "Bb". / プロジェクトのキー:0 = C 〜 11 = B、または "F#"・"Bb" などの音名。

list_singersA

Singers OpenUtau has loaded: id, name, type, location, default phonemizer, supported renderers. Singers without a default phonemizer get a "suggested_phonemizer" (a guess: confirm with rank_phonemizers). / OpenUtau が読み込んだ歌手一覧(ID、名前、種類、場所、既定の音素化器、対応レンダラー)。 既定の音素化器が無い歌手には "suggested_phonemizer" を付けます。

list_phonemizersA

Installed phonemizers (type, name, tag, language, author); filter by language such as "EN" or "JA". / インストール済みの音素化器一覧。language("EN"・"JA" など)で絞り込めます。

rank_phonemizersA

Find the best phonemizer for a singer by trying each installed classic phonemizer on sample lyrics and counting how many of the sounds it asks for exist in the voicebank (score 1.0 = every sound has a sample). language: "EN", "JA" or omitted for both; text: your own lyrics instead of the built-in samples. Nothing in the project changes. / 各音素化器でサンプル歌詞を音素化し、音源にサンプルがある音の割合で順位付けします (1.0 = すべての音にサンプルあり)。プロジェクトは変更しません。

list_expressionsB

Project expressions (abbr, name, type, min, max, default). / プロジェクトの表情パラメータ一覧。

add_trackC

Add a track. Setting a singer also applies its default phonemizer and a suitable renderer unless given. Phonemizer may be a full type name, class name or tag ("EN ARPA", "JA VCV & CVVC"). / トラックを追加します。歌手を指定すると既定の音素化器とレンダラーも設定されます。 音素化器は型名・クラス名・タグ("EN ARPA" など)で指定できます。

update_trackB

Change a track: singer, phonemizer, name, renderer, volume (dB, -24..12), pan (-100..100), mute, solo. / トラックを変更します:歌手、音素化器、名前、レンダラー、音量(dB)、パン、ミュート、ソロ。

remove_trackC

Remove a track and its parts. / トラックとそのパートを削除します。

add_partC

Add an empty voice part to a track (position/duration in ticks; 7680 = 4 bars of 4/4). / トラックに空のボイスパートを追加します(位置・長さはティック、7680 = 4/4 で4小節)。

update_partC

Rename, move (position / track) or resize a voice part. / ボイスパートの名前変更・移動(位置・トラック)・長さ変更。

remove_partC

Remove a voice part. / ボイスパートを削除します。

list_notesB

Notes of a voice part: index, position, duration, tone, lyric, tuning, vibrato. / ボイスパートの音符一覧(番号、位置、長さ、音高、歌詞、微調整、ビブラート)。

add_notesC

Add notes to a voice part (positions relative to the part); the part grows if needed. / ボイスパートに音符を追加します(位置はパート相対)。必要ならパートを延長します。

edit_notesC

Edit notes in place by index (position, duration, tone, lyric, tuning, vibrato); pitch curves are kept. / 番号で指定した音符をその場で編集します(位置・長さ・音高・歌詞・微調整・ビブラート)。ピッチ曲線は保持されます。

replace_lyricsB

Write lyrics onto consecutive notes starting at note index start (one item per note, no splitting). / 音符番号 start から順に歌詞を書き込みます(1要素 = 1音符、分割なし)。

delete_notesB

Delete notes by index; no indices = delete all notes in the part. / 番号で音符を削除します。indices を省略するとパートの全音符を削除します。

set_note_expressionB

Set a note expression (e.g. vel, vol, atk, dec, gen, bre, clr) on notes; no indices = all notes; value null = reset to default. / 音符の表情(vel・vol・atk など)を設定します。indices 省略で全音符、value=null で既定値に戻します。

set_pitchA

Replace the pitch curve of notes (scoops, falls, drifts, overshoot). At least 2 points. snap_first=true makes the first point start from the previous note's pitch, overriding its y (a normal slide); use false for a scoop or any start you set yourself. Examples: scoop up into a note (snap_first=false): [{x:-40,y:-20},{x:60,y:0}]; fall at a phrase end on a 600 ms note: [{x:-40,y:0},{x:40,y:0},{x:420,y:0},{x:600,y:-30,shape:"i"}]. / 音符のピッチ曲線を置き換えます(しゃくり・フォール・揺れ)。点は2つ以上。

get_curveA

Read an expression curve of a part (e.g. dyn, pitd, tenc, brec, genc, voic): [tick, value] points, min/max/default. / パートの表情カーブを読みます(dyn・tenc・brec など)。

set_curveA

Draw an expression curve through [tick, value] points (part-relative ticks), straight lines between them; values are clamped to the curve's range. Use for dynamics (dyn), DiffSinger tension (tenc), breathiness (brec), gender (genc), voicing (voic), pitch deviation (pitd, cents). / [ティック, 値] の点を直線で結んで表情カーブを描きます。

clear_curveB

Reset an expression curve of a part to its default. / 表情カーブを既定値に戻します。

refresh_singersA

Rescan the Singers folder so newly installed voicebanks appear without restarting OpenUtau. / Singers フォルダを再読み込みし、新しく入れた音源を OpenUtau の再起動なしで使えるようにします。

list_phonemesB

Phonemes OpenUtau produced for a part (note index, lyric, position, duration, phoneme, has_oto). Use it to check pronunciation. / パートについて OpenUtau が生成した音素一覧。発音の確認に使います。

assign_lyricsB

Split text into lyrics and lay out new consecutive notes from start_tick. durations / tones may be one value or a list (the last value repeats). / テキストを歌詞に分割し、start_tick から連続する新しい音符を作ります。 durations・tones は単一値かリスト(最後の値を繰り返し)。

set_lyricsC

Split text into lyrics and write them onto existing notes from start_index. / テキストを歌詞に分割し、start_index 番目からの既存の音符に書き込みます。

add_melodyB

Add a melody with its lyrics in one call. melody: space-separated PITCH:BEATS (r = rest). lyrics are split like set_lyrics and must give one lyric per sounding note (use "+" for held syllables). / メロディと歌詞を一度に追加します。melody は「音名:拍」(r = 休符)。歌詞は set_lyrics と同じ規則で分割され、 音の数と一致する必要があります(伸ばす音節は「+」)。

fit_partB

Resize a voice part to end on the first bar line after its last note. / ボイスパートの長さを、最後の音符の後の最初の小節線までに合わせます。

playB

Start playback (from tick, optionally until end_tick, optionally one track only). / 再生します(tick から、end_tick まで、track 指定でそのトラックのみ)。

pauseB

Pause playback. / 再生を一時停止します。

stopB

Stop playback. / 再生を停止します。

seekC

Move the playback cursor. / 再生位置を移動します。

export_wavA

Render the mixdown to a WAV file, or one WAV per track (per_track=true). Can take minutes. / ミックスダウンを WAV に書き出します。per_track=true でトラックごとに書き出します。数分かかることがあります。

export_midiC

Export the project as a MIDI file. / プロジェクトを MIDI ファイルに書き出します。

ustx_createC

Create a new .ustx file (one track, no parts). singer = voicebank id or name. / 新しい .ustx ファイルを作成します(1トラック、パートなし)。singer は音源 ID か名前。

ustx_summaryB

Summary of a .ustx file (tempos, tracks, voice parts). / .ustx ファイルの概要。

ustx_set_tempoB

Set the tempo at tick 0 or a tempo change at a tick in a .ustx file. / .ustx ファイルのテンポ(tick 0)またはテンポ変更を設定します。

ustx_add_trackC

Add a track to a .ustx file. / .ustx ファイルにトラックを追加します。

ustx_set_track_singerB

Set the singer (and phonemizer: given > voicebank default > Japanese presamp) of a track in a .ustx file. / .ustx ファイルのトラックの歌手(と音素化器)を設定します。

ustx_add_voice_partC

Add an empty voice part to a .ustx file. / .ustx ファイルに空のボイスパートを追加します。

ustx_add_notesB

Add notes to a voice part in a .ustx file (the part grows if needed). / .ustx ファイルのボイスパートに音符を追加します(必要ならパートを延長)。

ustx_list_notesC

List the notes of a voice part in a .ustx file. / .ustx ファイルのボイスパートの音符一覧。

ustx_edit_notesC

Edit notes by index in a .ustx file (position, duration, tone, lyric, tuning, vibrato). / .ustx ファイルの音符を番号で編集します。

ustx_delete_notesC

Delete notes by index from a .ustx file (no indices = all). / .ustx ファイルの音符を削除します(省略で全部)。

ustx_set_vibratoB

Set vibrato fields on notes in a .ustx file (no indices = all notes). length > 0 turns vibrato on. / .ustx ファイルの音符にビブラートを設定します(省略で全音符)。length > 0 で有効。

ustx_assign_lyricsC

Split text into lyrics and add consecutive notes to a voice part in a .ustx file. / テキストを歌詞に分割し、.ustx ファイルのボイスパートに連続する音符を追加します。

ustx_add_melodyD

add_melody for a .ustx file. / .ustx ファイル版の add_melody。

ustx_fit_partD

fit_part for a .ustx file. / .ustx ファイル版の fit_part。

ust_importC

Convert a classic UTAU .ust (Shift_JIS unless Charset= says otherwise) into a new .ustx file. / UTAU の .ust(既定は Shift_JIS、Charset= 行があれば従う)を新しい .ustx に変換します。

ust_exportB

Export one voice part of a .ustx as a classic .ust (gaps become R rests; Shift_JIS by default). / .ustx のボイスパートを UTAU の .ust に書き出します(隙間は休符 R、既定は Shift_JIS)。

list_voicebanksB

Voicebanks in the Singers folder and AdditionalSingerPath (id as OpenUtau uses it, name, author, default phonemizer). / Singers フォルダーと AdditionalSingerPath の音源一覧(OpenUtau と同じ ID)。

get_voicebankB

Details of a voicebank: info, oto sets and alias count. / 音源の詳細(情報、oto セット、エイリアス数)。

search_otoB

Search oto.ini aliases of a voicebank (substring match). / 音源の oto.ini エイリアスを検索します(部分一致)。

note_to_midiB

Note name to MIDI number (C4 = 60). / 音名を MIDI 番号に変換します(C4 = 60)。

midi_to_noteB

MIDI number to note name (60 = C4). / MIDI 番号を音名に変換します(60 = C4)。

beats_to_ticksA

Quarter-note beats to ticks (1 beat = 480). / 拍数(四分音符)をティックに変換します(1拍 = 480)。

ticks_to_beatsC

Ticks to quarter-note beats. / ティックを拍数に変換します。

split_lyricsB

Preview how text is split into one lyric per note (language auto / ja / en). / テキストが1音符ずつの歌詞にどう分割されるかを確認します(auto / ja / en)。

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

C2.7/5.0

Scored across 70 tools

Disambiguation2/5

The surface is split into two near-parallel families — live-editor tools (add_notes, edit_notes, set_curve, play) and .ustx file tools (ustx_add_notes, ustx_edit_notes, ustx_assign_lyrics) — with identical purposes distinguished only by whether the project is open in the app. On top of that, lyric entry has five overlapping variants (replace_lyrics, set_lyrics, assign_lyrics, add_melody, split_lyrics), so an agent can easily pick the wrong layer or the wrong lyric tool.

Naming Consistency4/5

Almost everything is snake_case verb_noun (add_track, remove_part, set_tempo, get_curve), and the ustx_/ust_ prefixes act as readable namespaces. Minor deviations exist: new_project instead of create_project, noun-only tools like pause/stop/seek/undo, and converter-style names (ticks_to_beats, note_to_midi) that break the verb pattern.

Tool Count2/5

70 tools is heavy for a DAW integration and is inflated mainly by duplicating ~15 operations for offline .ustx editing alongside the live-editor equivalents. A single mode-switched or file-path-parameterized surface could halve the count; as listed it is well past the reasonable 3-15 range.

Completeness4/5

Coverage is genuinely broad: project lifecycle (new/open/save/launch/close), tracks, parts, notes, expressions and curves, pitch curves, playback, WAV/MIDI export, voicebank and oto inspection, and UST import/export. Gaps are minor — no explicit part-level get beyond list_notes, and no project settings/track-level expression defaults tool — but agents can work around them.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues