Skip to main content
Glama

ass_karaoke_split

Splits a karaoke line into syllables using marker, character, word, or regex modes to enable precise timing and editing in ASS subtitles.

Instructions

Split a karaoke line into syllables.

Arguments

text / index + doc_id Either the raw override text, or a 0-based line index in an open document. "text_source" in the result says which was used. mode "marker" (split on marker, the usual | workflow), "char" (one visible character per syllable, combining marks stay attached to their base character), "word" (whitespace) or "regex" (split on pattern). marker the marker string for mode="marker". Default "|". pattern regex for mode="regex" (a capture-free split pattern). keep_bom keep a leading U+FEFF in the text (default: strip it).

Returns

{"text_source": "text"|"line", "index", "doc_id", "mode", "marker", "pattern", "had_bom", "plain_text", "expected_visible_text", "reconstruction": {"ok", "reconstructed", "expected"}, "syllable_count", "syllables": [{"index", "raw", "text", "prefix", "prefix_tags", "leading_whitespace", "trailing_whitespace", "char_count"}]}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNomarker
textNo
indexNo
doc_idNo
markerNo|
patternNo
keep_bomNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden, and it does substantial work: it explains that 'text_source' reports which input path was used, that combining marks stay attached to their base character in 'char' mode, that 'pattern' must be capture-free, and that 'keep_bom' defaults to stripping the leading U+FEFF. It does not state whether the operation is purely read-only or has any side effects, which is the main remaining gap.

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

Conciseness4/5

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

The purpose is front-loaded in the first line, followed by clearly sectioned Arguments and Returns blocks. The Returns enumeration is lengthy, but it is justified because no output schema exists to carry that information. Little of the text is filler.

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

Completeness5/5

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

With no output schema and 0% schema coverage across 7 parameters, the description supplies everything an agent needs: input path selection, mode semantics, defaults, and a full field listing of the return object including the reconstruction check. Nothing required for a correct call is missing.

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

Parameters5/5

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

Schema description coverage is 0% with 7 undocumented parameters, and the description compensates fully: it defines text vs index+doc_id precedence, all four mode values, marker's default of '|', the capture-free constraint on pattern, and keep_bom's default stripping behavior. Every parameter gains meaning beyond its bare type in 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 first line states a specific verb and resource: 'Split a karaoke line into syllables.' It is unambiguous against siblings such as ass_karaoke_generate or ass_karaoke_retime, which mutate timing rather than decompose text. It stops short of explicitly naming those siblings, but the operation itself is unmistakable.

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

Usage Guidelines4/5

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

The description sets out the invocation choice clearly: either supply raw 'text' or 'index' + 'doc_id', and it enumerates the four split 'mode' values with their semantics ('marker' described as the usual '|' workflow). What it lacks is any when-to-use framing versus alternatives like ass_karaoke_generate, but the operational context is well established.

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

Deploy Server

Other Tools