Skip to main content
Glama

convert

Transforms SRT, WebVTT, ASS, and SSA subtitle files into another format or re-encodes them while preserving timing and text.

Instructions

Convert between SRT and WebVTT, turn an ASS/SSA file into SRT or VTT, or just re-encode a file (same format in and out, for example cp1254 Turkish -> UTF-8). Timing and text are kept. What cannot be carried over is listed in the answer: ASS styling (fonts, colours, positions, effects) is always dropped, WebVTT cue settings and NOTE/STYLE/REGION blocks do not exist in SRT, and blank lines inside a cue are removed because both formats end a cue at a blank line.

Args: path: .srt, .vtt, .ass or .ssa file. to_format: 'srt' or 'vtt'. output: where to write (default: .converted.). overwrite: allow replacing an existing output file (default false). encoding: force the input text encoding. output_encoding: encoding of the written file: utf-8 (default), utf-8-sig, utf-16, cp1254, cp1252, iso-8859-9, ...

Input Schema

NameRequiredDescriptionDefault
pathYes
outputNo
encodingNo
overwriteNo
to_formatYes
output_encodingNoutf-8

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so well: it discloses that timing and text are preserved, that ASS styling (fonts, colours, positions, effects) is always dropped, that WebVTT cue settings and NOTE/STYLE/REGION blocks do not exist in SRT, and that blank lines inside cues are removed. It also states overwrite defaults to false and the default output filename pattern. The remaining gap is that it never says the source file is left untouched or what happens on an unsupported/corrupt input.

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 core action is front-loaded in the first sentence, lossiness in the second, and parameters follow in a conventional Args block. It is on the long side and the lossiness sentence is dense, but each clause carries real decision-relevant information rather than restating the name.

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?

For a six-parameter file-writing tool with no annotations, the definition covers purpose, lossy-conversion behavior, defaults, and every parameter; the existence of an output schema means return values need not be described. An agent has enough to call this correctly without opening the schema.

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%, so the description must compensate, and it does: every one of the six parameters is explained with meaning and default (path restricted to .srt/.vtt/.ass/.ssa, to_format constrained to 'srt' or 'vtt' — a constraint the schema itself lacks since it declares no enum, output default <name>.converted.<new ext>, overwrite default false, encoding forced input decoding, output_encoding default utf-8 with enumerated examples).

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

Purpose5/5

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

Opens with a specific verb plus the exact resource set: 'Convert between SRT and WebVTT, turn an ASS/SSA file into SRT or VTT, or just re-encode a file'. The scope (format transcoding plus same-format re-encoding) is stated outright, which cleanly separates it from siblings like fix_common_problems, shift, or apply_translation.

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?

It gives concrete use cases ('turn an ASS/SSA file into SRT or VTT', 're-encode a file, for example cp1254 Turkish -> UTF-8'), so an agent knows when this is the right tool. It never names an alternative or an exclusion, though — nothing says to use fix_common_problems for repairs or that this tool does not resync or shift timing.

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