How to give Claude video transcripts with MCP

Paste a YouTube link into Claude and ask "what does this video say?" and you'll get a polite version of "I can't watch that." Claude has no eyes and no ears — it can only work with text you give it (or that a tool fetches for it). A URL by itself is just a string of characters; the video behind it doesn't exist to the model until something turns it into a transcript.

That "something" is normally a script you write, run, and glue together yourself. MCP lets you skip the glue: connect a server once, and Claude can pull a transcript on its own whenever a video comes up in the conversation.

What MCP actually is

MCP (Model Context Protocol) is a standard way for an AI client — Claude, Cursor, VS Code — to call out to external tools and data sources. Instead of you writing custom integration code for every service, a server exposes a small set of named tools (functions with typed inputs and outputs), and any MCP-compatible client can call them the same way.

A "connector" is just an instance of that: you point your client at a server's URL, it lists what tools are available, and from then on the model can decide to call one mid-conversation — the same way it decides to search the web or read a file, except now "read a file" can mean "fetch a video transcript."

Adding the transcript.land connector

transcript.land runs a remote MCP server at:

TEXT
https://transcript.land/mcp

In Claude (claude.ai or Desktop): open connector settings, add a custom connector, paste that URL, and sign in — Claude handles this as an OAuth flow, so you authenticate with your transcript.land account rather than pasting an API key by hand. There's currently no one-click external link for custom connectors in Claude, so this is a manual add.

In Cursor or VS Code, both support MCP servers configured with a URL and a header, which looks like this:

JSON
{
  "mcpServers": {
    "transcript": {
      "url": "https://transcript.land/mcp",
      "headers": { "Authorization": "Bearer sk_live_…" }
    }
  }
}

The bearer token is a transcript.land API key from your dashboard. Either way — OAuth in Claude, or a pasted key in Cursor/VS Code — the connector ends up authenticated as you, not as some shared service account.

What you can ask once it's connected

With the connector added, you don't call tools yourself — you just talk about a video and let Claude decide it needs one:

TEXT
Summarize this video: https://youtu.be/VIDEO_ID

Pull the three main claims from this talk, with timestamps.

Find the part of this video where they talk about pricing.

Under the hood, Claude calls the server's get_transcript tool with the URL, reads the returned text (with timestamps if you asked for them), and answers from that — the same way it would answer from a document you pasted in.

The two tools, exactly as they work

The server exposes two tools. Nothing more is invented here — this is what's actually registered:

  • get_transcript — takes a url (the video or post link) and an optional format (json, txt, srt, or vtt; default is json, segments with timestamps). If the video has captions, the transcript comes back immediately. If it doesn't, the response is a job_id with status queued instead — the video needs AI transcription first.
  • get_job — takes the job_id from get_transcript (and the same optional format) and reports the job's status. Claude polls this every few seconds until it comes back done, then reads the transcript from it.

You never see this exchange directly, but if you ask Claude to show its work it's genuinely just those two calls — no hidden extras.

What it covers, honestly

The server handles YouTube, TikTok, X, Instagram, Bilibili, Facebook, and RedNote. When a video has no caption track, get_transcript falls back to AI transcription automatically — the tool description Claude sees says exactly that, so it knows not to give up on a video just because captions are off. That fallback isn't unique to transcript.land; other transcript tools do AI transcription too. What it saves you here is not having to know in advance which videos have captions and which don't — the tool handles both the same way.

It's in the MCP Registry

transcript.land's server is published in the official MCP Registry as the official registry (published 2026-08-18), pointing at the same https://transcript.land/mcp streamable-HTTP endpoint described above. Being listed there just means the server manifest is publicly indexed and discoverable by registry-aware clients — it isn't an endorsement or partnership with Anthropic, and nothing about this connector is special-cased by Claude.

You need an account

The connector authenticates as you, so you need a transcript.land account — there's a free tier if you just want to try it on a handful of videos. Every tool call forwards your credential to the same REST API that powers the website and CLI, so your plan's real limits apply whether you're calling it from a script, curl, or Claude mid-conversation. See the API reference if you want the same tool outside an MCP client.

Summary

  • Claude can't watch a video — it needs the transcript as text, and MCP is how you give it that automatically instead of pasting text in yourself.
  • Add the connector at https://transcript.land/mcp: OAuth sign-in in Claude, or a pasted API key in Cursor/VS Code.
  • The server exposes exactly two tools — get_transcript(url, format?) and get_job(job_id, format?) — and Claude calls them for you when a video URL comes up.
  • It covers YouTube, TikTok, X, Instagram, Bilibili, Facebook, and RedNote, with AI transcription as a fallback when captions don't exist.

Once it's connected, the fastest way to see it work is to try it on a video you actually want summarized.