Convert SubRip (.srt) captions to WebVTT (.vtt) and back. The direction is detected from the input by default: SRT uses a comma before the milliseconds, WebVTT uses a dot and starts with a WEBVTT header. Timestamps are normalized to HH:MM:SS with three fraction digits, VTT cue settings are preserved, and NOTE and STYLE blocks are skipped. Only the format changes; the caption text is never translated or edited.
This page documents the MCP tool findutils:srt_to_vtt. See the REST reference →
Call it over MCP
Tool name findutils:srt_to_vtt
· no API keys · 120 requests/min per IP
Claude Code
claude mcp add findutils --transport http https://mcp.findutils.com/ Claude Desktop — claude_desktop_config.json
{
"mcpServers": {
"findutils": {
"url": "https://mcp.findutils.com/"
}
}
} Raw JSON-RPC (any MCP client) — verified example
curl -X POST https://mcp.findutils.com/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "srt_to_vtt",
"arguments": {
"input": "1\n00:00:01,000 --> 00:00:04,000\nHello there.\n"
}
}
}' Input schema
| Argument | Type | Required | Description |
|---|---|---|---|
| input | string | yes | Caption file contents, either SubRip or WebVTT. |
| direction | string (auto | srt-to-vtt | vtt-to-srt) | no | Force a direction. Default: auto, detected from the input. Default: "auto". |
| keep_cue_numbers | boolean | no | Keep cue identifiers when writing WebVTT, where they are optional. Default: false. Default: false. |
Example arguments (verified)
{
"input": "1\n00:00:01,000 --> 00:00:04,000\nHello there.\n"
} Also a REST endpoint
The same tool answers plain HTTP at
POST /api/tools/srt-to-vtt/execute — no key, 60 requests/min.