svs-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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); |
| 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 |
| 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 |
| 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 |
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/tatat/svs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server