Skip to main content
Glama
PrismPoster Creator Tools MCP

PrismPoster Creator Tools MCP

Official
by PrismPoster

Convert subtitles between SRT, VTT and ASS

convert_subtitles
Read-onlyIdempotent

Convert subtitle file contents between SRT, WebVTT, and ASS/SSA, optionally shift cue timing, and return converted text with cue count and warnings.

Instructions

Convert subtitle text between SRT, WebVTT and ASS/SSA, optionally shifting every cue by shiftMs, and return the converted text with the cue count and any warnings. Pass the file contents, not a path. The input format is detected from the content unless fromFormat is given. Malformed blocks are skipped with a warning instead of failing the whole file; converting to ASS rounds timings to 10 ms. Errors when the format cannot be detected or no cue could be parsed.

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": {
      "input": "<input>",
      "toFormat": "<toFormat>"
    },
    "name": "convert_subtitles"
  }
}

Input Schema

NameRequiredDescriptionDefault
inputYesThe full subtitle file contents as text.
shiftMsNoMove every cue by this many ms: positive is later, negative earlier. Cues pushed before 0 clamp to 0.
toFormatYesFormat to convert to.
fromFormatNoFormat of the input. Omit to detect it from the content.

Output Schema

NameRequiredDescriptionDefault
outputYes
shiftMsYes
cueCountYes
toFormatYes
warningsYes
fromFormatYes
referenceToolUrlYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv1.0.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / fromFormat
      Added value: +{
      +  "description": "Format of the input. Omit to detect it from the content.",
      +  "enum": [
      +    "srt",
      +    "vtt",
      +    "ass"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / input / description
      Previous value: -"Raw subtitle file content (SRT, VTT, or ASS)."New value: +"The full subtitle file contents as text."
    • addedInput schema / properties / input / minLength
      Added value: +1
    • changedInput schema / properties / shiftMs / description
      Previous value: -"Optional timing offset in milliseconds (positive delays, negative advances)."New value: +"Move every cue by this many ms: positive is later, negative earlier. Cues pushed before 0 clamp to 0."
    • changedInput schema / properties / shiftMs / type
      Previous value: -"number"New value: +"integer"
    • changedInput schema / properties / toFormat / description
      Previous value: -"Target subtitle format."New value: +"Format to convert to."
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "cueCount": {
      +      "type": "integer"
      +    },
      +    "fromFormat": {
      +      "enum": [
      +        "srt",
      +        "vtt",
      +        "ass"
      +      ],
      +      "type": "string"
      +    },
      +    "output": {
      +      "type": "string"
      +    },
      +    "referenceToolUrl": {
      +      "type": "string"
      +    },
      +    "shiftMs": {
      +      "type": "integer"
      +    },
      +    "toFormat": {
      +      "enum": [
      +        "srt",
      +        "vtt",
      +        "ass"
      +      ],
      +      "type": "string"
      +    },
      +    "warnings": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "fromFormat",
      +    "toFormat",
      +    "cueCount",
      +    "shiftMs",
      +    "warnings",
      +    "output",
      +    "referenceToolUrl"
      +  ],
      +  "type": "object"
      +}
  2. First observedv0.3.0

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (which only cover read-only/idempotent safety), it discloses real behavioral traits: malformed blocks are skipped with a warning rather than failing the file, ASS output rounds timings to 10 ms, cues shifted before 0 clamp to 0, and it errors when detection fails or no cue parses. These are exactly the failure-mode details an agent needs.

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

Conciseness5/5

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

Four sentences, each carrying distinct payload: purpose, invocation rule, format detection, and error/degradation behavior. The most important constraint (contents not path) appears early rather than buried.

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?

Even with an output schema present, it summarizes the return (converted text, cue count, warnings) and enumerates the error conditions, plus the lossy-format caveat for ASS. For a pure-function conversion tool this leaves nothing an agent must infer to call it correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description still adds value by clarifying that `input` is file contents not a path and that `fromFormat` is an override for auto-detection. It restates shiftMs's clamping behavior already in the schema, hence not a 5.

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?

Names a specific verb (convert) and resource (subtitle text) with an explicit set of formats: SRT, WebVTT, ASS/SSA. No sibling tool overlaps with subtitle conversion, so the scope is unambiguous from the first clause.

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?

States the key invocation constraint up front: "Pass the file contents, not a path," and explains that input format is auto-detected unless fromFormat is supplied. It doesn't name alternatives, but no sibling tool is a plausible substitute, so the missing exclusion costs little.

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