Model Context Protocol

MCP server for video subtitles.

Give Claude, Cursor, Windsurf — any MCP-compatible AI agent — the ability to subtitle videos. Bytes never travel through the LLM context: the MCP hands the agent a presigned URL and the agent uploads out-of-band. Hosted endpoint or open-source self-host.

Install

One URL. Every client.

The hosted MCP is a streamable-HTTP endpoint that any spec-compliant client can register. No npm install. No Docker. No SDK.

# Hosted MCP — register the URL once
claude mcp add --transport http subtitlesking \
  https://brains.subtitlesking.com/mcp

# Or grab the open-source bridge binary
curl -L https://github.com/kirillzubovsky/subtitlesking-mcp/releases/latest/download/subtitlesking-mcp-darwin-arm64.tar.gz \
  | tar -xz
sudo mv subtitlesking-mcp /usr/local/bin/
claude mcp add subtitlesking $(which subtitlesking-mcp)

Tools

Four tools. Full lifecycle.

start_upload

Reserve an upload slot. Returns an upload_url and a ready-to-paste curl example the agent runs out-of-band — bytes never travel through the LLM context. Returns video_id and 8-digit auth_token.

Args

filename
{
  "name": "start_upload",
  "arguments": {
    "filename": "clip.mp4"
  }
}

get_video_status

Check processing status by auth_token. Returns transcript_url as soon as Whisper finishes, and download_url when the burned video is ready.

Args

auth_token
{
  "name": "get_video_status",
  "arguments": {
    "auth_token": "12345678"
  }
}

get_transcript

Return the SRT transcript inline. Available a couple of minutes before the burned video — transcript and burned video are independent products.

Args

auth_token
{
  "name": "get_transcript",
  "arguments": {
    "auth_token": "12345678"
  }
}

get_download_url

Return a 24-hour presigned URL for the finished, subtitle-burned video. The agent fetches the file out-of-band — bytes never travel through agent context.

Args

auth_token
{
  "name": "get_download_url",
  "arguments": {
    "auth_token": "12345678"
  }
}

Hosted vs self-host

Same protocol. Same tools. Your choice.

Hosted

Register one URL and you're done. We handle deployment, Whisper, ffmpeg, and the queue. Best for fast onboarding.

  • ✓ Zero setup
  • ✓ Free tier included
  • ✓ Streamable-HTTP transport
  • ✗ Requires public network

Self-host

Run the open-source Go binary on your own hardware. Best for privacy, regulated workloads, or unlimited usage.

  • ✓ Air-gapped possible
  • ✓ No rate limits
  • ✓ Full control
  • ✗ You bring Whisper + ffmpeg

Bytes never enter the LLM.

The MCP hands the agent a presigned URL. The agent uploads with curl. The downloadable binary is a thin stdio↔HTTP bridge — under 100 lines, no SDK dependencies, plain JSON-RPC.