Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
pingA

Check that the bridge script inside Synthesizer V Studio is running. Returns host information (SV edition, version, OS) on success. Call this first if other tools time out.

get_project_infoA

Get an overview of the project currently open in Synthesizer V Studio: file name, tempo marks, time signatures, and the track list with note counts. Track indices returned here are used by all other tools.

add_trackA

Add a new track to the current Synthesizer V Studio project and return its 1-based track index. New tracks and groups inherit SV's default singer; if no singer is configured, the user must pick one in the SV UI.

create_groupA

Create a new empty note group on a track and return its group index. In SV Studio 2 the singer is assigned per group, so this is the usual first step before insert_notes when no suitable group exists yet (insert_notes also auto-creates a group when the track has none). The group inherits SV's default singer.

get_notesA

List the notes of a track in the current Synthesizer V Studio project. Track indices are 1-based (see get_project_info). Note indices are ordered by onset and SHIFT whenever notes are inserted, deleted or moved, so always re-read before editing. Positions are formatted as measure.beat (both 1-based); phonemes is only present when a user override is set on the note.

insert_notesA

Insert notes into a track (1-based index) of the current Synthesizer V Studio project. Each note needs lyrics, pitch, duration, and a start position; when start is omitted the note begins right after the previous note in this call (the first note must have an explicit start). The insertion is one undo step. Lyric conventions: Japanese lyrics use ONE kana (or small-kana cluster like きゃ) per note; use "-" as the lyric to extend the previous vowel across a note; use "+" to continue a multi-syllable English word. Returns a snapshot of all notes overlapping the inserted range, with fresh indices.

update_notesA

Edit existing notes by their current onset-order index (from get_notes). Only the provided fields change. Moving a note in time can re-sort the group, so use the returned snapshot (fresh indices) for any follow-up edits instead of the old indices. One undo step.

delete_notesA

Delete notes by their current onset-order indices (from get_notes). Remaining notes are renumbered afterwards, so re-read with get_notes before further edits. One undo step.

set_lyricsA

Assign lyrics to consecutive existing notes, starting at a note index (from get_notes) — the typical way to put lyrics on an existing melody. Each array element goes to one note, in onset order. Japanese: ONE kana (or small-kana cluster like きゃ) per note; "-" extends the previous vowel; "+" continues a multi-syllable English word. Fails if the array runs past the last note. One undo step.

get_phonemesA

Get the phonemes actually used for synthesis for every note in a group (SV's text-to-phoneme output), alongside any user overrides. Useful to check pronunciation before or after edits. If complete is false the converter was still running — retry after a moment.

set_phonemesA

Override the phonemes of specific notes (by onset-order index from get_notes). Phonemes are space-separated, e.g. Japanese "k a", English "hh ah l ow" (romaji-style for Japanese, ARPABET-style for English). Pass an empty string to remove the override and return to the automatic pronunciation. One undo step.

set_languageA

Set a per-note language override for mixed-language songs (e.g. an English word inside Japanese lyrics). Applies to the given note indices. Pass an empty string to reset notes to the group/track default language.

set_time_signatureA

Add, update or remove time signature marks so SV's grid matches the music (useful after importing MIDI without meter information; see get_phrases for inferring the real meter from the notes). Removals are applied before additions. NOTE: this changes how measure/beat positions map to time for every other tool, so set signatures before doing position-based work. One undo step. Returns the resulting signature list.

get_phrasesA

Analyze a track's melody into phrases by finding rests between notes — the recommended first step when flowing lyrics onto an imported melody. Each phrase reports its note index range, note count (= syllables needed), position, pitch range, current lyrics, and a shape label — phrases sharing a letter have an identical melody, which usually means they carry the same (or parallel) lyric line. Long rests are flagged as likely section boundaries. Then assign lyrics phrase by phrase with set_lyrics using each phrase's firstNote index.

open_lyrics_editorA

Open a local browser page where the user can review and adjust the proposed lyric syllable boundaries BEFORE they are applied (per the lyric workflow, readings must be confirmed first). Each phrase is one editable line of space-separated syllables (e.g. fixing あし た to あ した) with a live count against the phrase's note count. After the user says they submitted, call get_lyrics_editor_result and apply the edited plan with set_lyrics.

get_lyrics_editor_resultA

Fetch the syllable plan the user submitted from the lyrics editor page (see open_lyrics_editor). Returns submitted=false when nothing has been submitted yet — ask the user to press the submit button.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/tatat/svs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server