> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bestvideotranscriptapi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MCP server

> Let Claude, ChatGPT, Cursor or any MCP client read video transcripts.

Paste a video link into a chat and your agent reads what's said in it.

**Server URL:** `https://app.bestvideotranscriptapi.com/mcp` (Streamable HTTP)

![Claude Code calling get\_transcript on a YouTube link](https://mintcdn.com/tatsat-bodhaa-opc-private-limited/YVscscAdRf-4dZpR/images/claude-code-mcp.gif?s=f387ef1e2caeb02096a31c6c8ce84e4f)

Claude Code fetching a transcript over MCP

The MCP server runs the same transcript pipeline as the REST API. Both draw on one account, usage balance and rate limit.

```mermaid theme={null}
flowchart TD
  A["Your agent"] -->|"MCP tool call"| B["MCP server /mcp"]
  C["Your code"] -->|"HTTP"| D["REST API /v1"]
  B --> E["Same transcript pipeline"]
  D --> E
```

## Sign-in

| Method | How | For |
| - | - | - |
| API key | `Authorization: Bearer sdt_...` header | Clients where you can set headers. |
| OAuth | Sign in to your account on first use | Apps that connect by URL only, like claude.ai and ChatGPT. |

## Connect a client

> [tab] Claude Code
>
> ```bash theme={null}
> claude mcp add --transport http video-transcript-api https://app.bestvideotranscriptapi.com/mcp \
>   --header "Authorization: Bearer <your key>"
> ```

> [tab] Cursor and others
>
> Add this to the client's MCP config (for Cursor, `~/.cursor/mcp.json`):
>
> ```json theme={null}
> {
>    "mcpServers": {
>       "video-transcript-api": {
>          "type": "http",
>          "url": "https://app.bestvideotranscriptapi.com/mcp",
>          "headers": { "Authorization": "Bearer <your key>" }
>       }
>    }
> }
> ```

> [tab] claude.ai and ChatGPT
>
> Add a custom connector with the server URL `https://app.bestvideotranscriptapi.com/mcp`, then
> sign in when asked. You don't need an API key.

## Tools

| Tool | What it does |
| - | - |
| `get_transcript` | Gets the transcript of a video or audio link. |
| `get_transcript_status` | Checks a job that `get_transcript` started. |
| `create_upload` | Lets the agent upload and transcribe a file from your computer. |

### get\_transcript

| Argument | Required | Description |
| - | - | - |
| `url` | Yes | Any [supported link](https://docs.bestvideotranscriptapi.com/concepts/supported-links.md), or the `url` from `create_upload`. |
| `lang` | No | A language code like `en` or `es-US`. See [Language](https://docs.bestvideotranscriptapi.com/concepts/modes.md#language). |
| `mode` | No | `auto` (default), `native` or `generate`. See [Captions or AI](https://docs.bestvideotranscriptapi.com/concepts/modes.md). |
| `format` | No | `text` (default): one `[mm:ss] text` line per segment. `json`: the REST response as JSON. |

The `text` format starts with a language line:

```text theme={null}
Language: en (available: en, de)

[00:01] All right, so here we are in front of the elephants
[00:05] the cool thing about these guys is that they have really...
```

Videos an hour or longer use `[hh:mm:ss]`. If the transcript takes more than 25 seconds, the tool returns a job ID and tells the agent to call `get_transcript_status`.

### get\_transcript\_status

Takes `jobId` and an optional `format`. Returns the transcript when it's done, or the current status (`queued` or `active`) while it runs.

### create\_upload

Takes no arguments. Returns a `curl` command that uploads the file, and the `url` to pass to `get_transcript`. See [Uploading files](https://docs.bestvideotranscriptapi.com/concepts/uploads.md) for how long the links last.

## Errors

A failed tool call returns the same message as the [REST API](https://docs.bestvideotranscriptapi.com/errors.md), followed by the request ID:

```text theme={null}
No captions found. Use mode=auto or mode=generate to transcribe the audio instead. (request id: …)
```

MCP calls show up on the [Logs](https://app.bestvideotranscriptapi.com/dashboard/logs) page and count toward your [usage and rate limit](https://docs.bestvideotranscriptapi.com/concepts/usage-and-limits.md#rate-limits).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.