Shift every cue in a SubRip (.srt) or WebVTT (.vtt) caption file by one fixed offset, so a track that runs early or late lines up with the audio again. A positive offset delays the captions (they appear later); a negative one advances them. The output keeps the input format, cue text, order and WebVTT cue settings. A cue whose start would go below zero is held at zero and counted; a cue that would end before zero is dropped and counted. Timing only: nothing is stretched, translated or edited.
This page documents the MCP tool findutils:subtitle_shift. See the REST reference →
Call it over MCP
Tool name findutils:subtitle_shift
· 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": "subtitle_shift",
"arguments": {
"input": "1\n00:00:10,000 --> 00:00:12,000\nTen seconds in.\n",
"offset_ms": 1500
}
}
}' Input schema
| Argument | Type | Required | Description |
|---|---|---|---|
| input | string | yes | Caption file contents, either SubRip or WebVTT. |
| offset_ms | integer | yes | Milliseconds to add to every timestamp. Positive shows captions later, negative earlier. 1500 means one and a half seconds later. |
Example arguments (verified)
{
"input": "1\n00:00:10,000 --> 00:00:12,000\nTen seconds in.\n",
"offset_ms": 1500
} Also a REST endpoint
The same tool answers plain HTTP at
POST /api/tools/subtitle-shift/execute — no key, 60 requests/min.