Transcribe Video API

MCP server

Transcribe from Claude.ai, ChatGPT, Claude Code, Cursor, Codex, and Claude Desktop.

The MCP server exposes transcription as tools your AI agent can call directly. Two ways to connect: a remote server (hosted, for Claude.ai / ChatGPT web and any HTTP client) and a local server (runs over stdio via npx, for Claude Code / Cursor / Codex / Claude Desktop).

Remote server (Claude.ai / ChatGPT)

The hosted server lives at https://mcp.transcribevideototext.com/mcp and authenticates with OAuth — you sign in once, no API key to paste.

  1. In Claude.ai: Settings → Connectors → Add custom connector (in ChatGPT: Settings → Connectors → Developer mode → Create).
  2. Enter the URL https://mcp.transcribevideototext.com/mcp.
  3. Connect and sign in. The transcription tools appear in your chat.

Remote from Claude Code (or any HTTP client)

Programmatic clients can use the same endpoint with an API-key header instead of OAuth:

claude mcp add vtt --transport http https://mcp.transcribevideototext.com/mcp --header "Authorization: Bearer vtt_your_key"

The remote transcribe tool accepts a url or storagePath (no local file path) and returns a job id immediately — poll it with get_transcription. The url is fetched server-side, so use a direct media link (see Transcribe from a link).

Local server (stdio)

Runs locally over stdio and authenticates with your API key — no hosting needed.

Claude Code

claude mcp add vtt -e VTT_API_KEY=vtt_your_key -- npx -y @transcribevideototext/mcp-server

Restart Claude Code, then ask: "Transcribe ./interview.mp4 with speaker labels."

Cursor / Claude Desktop

Add to your MCP config:

{
  "mcpServers": {
    "vtt": {
      "command": "npx",
      "args": ["-y", "@transcribevideototext/mcp-server"],
      "env": { "VTT_API_KEY": "vtt_your_key" }
    }
  }
}

Codex

Add to ~/.codex/config.toml:

[mcp_servers.vtt]
command = "npx"
args = ["-y", "@transcribevideototext/mcp-server"]
env = { VTT_API_KEY = "vtt_your_key" }

Paste a url into transcribe and it's handled one of two ways:

  • A direct media link — a URL ending in a media file like .mp3 or .mp4 — is fetched server-side, with no download. This works on both the remote and local servers.
  • A page from a video or social site — YouTube, X, LinkedIn, TikTok, Vimeo, and hundreds of other sites — can't be read server-side (datacenter IPs get blocked). The local (stdio) server downloads these on your own machine first, so it uses your own IP, then uploads and transcribes. The downloader is fetched automatically on first use (~30 MB, cached); audio is preferred to keep downloads small.

Downloading from a page link works only on the local server — the hosted remote server fetches every url server-side, so paste a direct media link there. Public content only: gated, private, or age-restricted posts (which require a login) aren't supported.

Tools

ToolDescription
transcribeTranscribe a url, local filePath, or storagePath. Waits for the transcript by default.
get_transcriptionFetch a job's status and result by id.
list_transcriptionsList the account's transcriptions.
delete_transcriptionDelete a job (refunds if in progress).
create_upload_urlAdvanced: sign an upload URL to PUT bytes yourself.

Environment

VarDescription
VTT_API_KEYRequired. A key from Developers → API Keys.

On this page