Skip to main content
Glama

replace_lyrics

Write one lyric string per consecutive note starting at a specified index in an OpenUtau part, with no syllable splitting. Use it to set or replace lyrics across a note sequence.

Instructions

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

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "part": "<part>",
      "lyrics": "<lyrics>"
    },
    "name": "replace_lyrics"
  }
}

Input Schema

NameRequiredDescriptionDefault
partYes
startNo
lyricsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden, and it only partly does: it discloses the no-splitting rule and the consecutive placement, which is genuine behavioral information. It says nothing about overwriting existing lyrics on those notes, what happens if the lyrics array is longer than the number of remaining notes, whether the operation is reversible, or whether any permission or selected-part state is required for a mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core statement is front-loaded and the scoping constraint is stated in one breath, which is good. However, the text is duplicated verbatim in Japanese, so the informational payload is single while the length is doubled, and no space is used for the missing parameter or overwrite semantics.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is an unannotated mutation tool with an undocumented required `part` parameter, no output schema, and no statement about return values or error behavior when the lyrics array exceeds available notes. Given that complexity and the absence of any structured behavioral metadata, the description is too thin to let an agent call it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, with all three parameters exposed only as bare titles, so the description must compensate. It does explain `start` as the note index (schema gives only a default of 0) and clarifies that `lyrics` maps one array element to one note with no splitting, but the required `part` integer — likely a part/track index — is never explained in the description or the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: write lyrics onto consecutive notes beginning at note index `start`, one item per note. The 'no splitting' clause hints at how it differs from a splitting variant, but the description never names `assign_lyrics`, `set_lyrics`, or `split_lyrics`, so the agent must infer the distinction from the sibling names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: writing one lyric per note without splitting suggests this is the tool for straight sequential lyric assignment rather than for splitting or distributing syllables. There is no explicit statement of when to prefer it over `assign_lyrics` or `set_lyrics`, and no mention of prerequisites such as a note selection or existing notes at those indices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.