DocsMCP server

MCP server

Connect the transcription MCP server to Claude, ChatGPT, VS Code or other clients. Includes Cursor MCP and Claude Code MCP setup.

Connect an AI assistant to transcript1's remote Model Context Protocol server to transcribe YouTube videos and uploaded audio or video files. The assistant can then read the transcripts.

  • Endpoint: https://api.transcript1.com/mcp (streamable HTTP)
  • Authentication: OAuth 2.1 for Claude and ChatGPT, where you sign in to transcript1 and approve access. An API key sent as Authorization: Bearer t1_... for Cursor, VS Code, Claude Code and agents. Create a key on the API keys page.

The tools use your credential to call the /v1 REST API. The same validation, charging and error codes apply. MCP requests share your account's rate limits and minutes with other requests.

Tools

ToolWhat it does
transcribeTranscribe a YouTube video by URL. Takes platform, url, and optionally source, language, diarize, format and wait_seconds. Waits for the result and returns the first page of the transcript, or the id if it is not finished.
get_transcriptionGet a transcription's status or transcript by id. Takes optional wait_seconds, format, from_seconds and max_chars.
list_transcriptionsList recent transcriptions, newest first, without transcripts. Takes optional status, platform, limit and cursor.
create_uploadReserve a chunked upload for a local file. Takes filename, size, request_id (a UUID you generate) and optionally mime_type, language and diarize.
get_upload_statusShow which chunks of an upload arrived, to resume it.
complete_uploadVerify the chunks and queue the transcription.
delete_transcriptionCancel a running transcription (minutes are refunded), or delete a finished one with its transcript.
get_accountShow minutes remaining, plan and renewal date.

Defaults

  • format is text, one line per segment with a timestamp, and the speaker when speakers were identified, for example [00:01:02] Speaker 1: Good morning. You can also ask for srt, vtt or json.
  • wait_seconds defaults to 50 and can be 0 to 55. If the transcription is not finished, the result says so and gives the id to pass to get_transcription, which waits again.
  • Long transcripts are paged. max_chars defaults to 60,000 (1,000 to 100,000). A page is cut at a segment boundary and the result includes next_from_seconds. Pass it as from_seconds to read the next page.
  • Every result names the transcript_source (youtube_captions or speech_to_text), so the assistant knows where the text came from.

Retries do not charge twice

transcribe always asks for reuse_recent. If an assistant calls it again for the same video and options within 24 hours, for example after a timeout, it gets the earlier transcription back and is not charged again. The result says when an earlier transcription was reused. Assistants are also told to use get_transcription and list_transcriptions instead of retrying.

Files

MCP cannot carry file bytes. create_upload returns the transcription id, a chunk URL template, an X-Upload-Token and the chunk list. The assistant sends each chunk with an HTTP PUT outside MCP, then calls complete_upload. The result also gives the dashboard upload page as a fallback. The protocol is described in Uploads.

No webhooks

The MCP tools have no webhook parameter. Webhooks are available through the REST API.

Claude

Claude connects to remote MCP servers as custom connectors.

  1. Open the connector settings in Claude and add a custom connector.
  2. Use transcript1 as the name and https://api.transcript1.com/mcp as the server URL.
  3. Sign in to transcript1 when asked and approve access. The connector asks for the scopes transcriptions:read and transcriptions:write.

Then ask Claude to transcribe a video, for example "Transcribe https://www.youtube.com/watch?v=dQw4w9WgXcQ". Custom connectors depend on your Claude plan.

ChatGPT

ChatGPT also connects through a custom connector.

  1. Open the connector settings in ChatGPT and add a custom connector for an MCP server.
  2. Enter https://api.transcript1.com/mcp as the server URL.
  3. Sign in to transcript1 and approve access.

Custom connectors depend on your ChatGPT plan and workspace settings, and may need developer mode.

Cursor MCP setup

Install the server with one click: Add transcript1 to Cursor

Or add it to .cursor/mcp.json yourself, with your API key in the Authorization header:

{
  "mcpServers": {
    "transcript1": {
      "url": "https://api.transcript1.com/mcp",
      "headers": {
        "Authorization": "Bearer t1_YOURKEY"
      }
    }
  }
}

VS Code

Install the server with one click: Add transcript1 to VS Code

Or add it to .vscode/mcp.json in your workspace:

{
  "servers": {
    "transcript1": {
      "type": "http",
      "url": "https://api.transcript1.com/mcp",
      "headers": {
        "Authorization": "Bearer t1_YOURKEY"
      }
    }
  }
}

Claude Code MCP setup

Replace t1_YOURKEY with your API key, then run:

claude mcp add --transport http transcript1 https://api.transcript1.com/mcp --header "Authorization: Bearer t1_YOURKEY"

Other clients

Any client that supports remote MCP servers can use https://api.transcript1.com/mcp with the header Authorization: Bearer t1_....

Command-based setup (Claude Desktop and other clients)

For clients that start MCP servers as a command, run npx -y @transcript1/mcp with TRANSCRIPT1_API_KEY set to your API key. The package connects to the hosted transcript1 server. Requires Node.js 18 or newer.

In Claude Desktop, add this to claude_desktop_config.json. Replace t1_YOURKEY with a key from the API keys page.

{
  "mcpServers": {
    "transcript1": {
      "command": "npx",
      "args": ["-y", "@transcript1/mcp"],
      "env": { "TRANSCRIPT1_API_KEY": "t1_YOURKEY" }
    }
  }
}

Agent skill

An agent skill is a short instruction file, SKILL.md, that tells an agent how to use transcript1. Add it to a skills-aware agent from https://transcript1.com/.well-known/agent-skills/transcript1/SKILL.md.

Agents that support skill discovery can find it through the index at https://transcript1.com/.well-known/agent-skills/index.json.

Errors in tools

When a tool fails, the result is an error with the same code as the REST API, the message and a next step the assistant can follow. The format is <code>: <message>. <next step>. For example, when your minutes run out:

insufficient_minutes: 20 minutes needed, 3 remaining. Top up at https://transcript1.com/dashboard/billing

Every code is described in Errors. Failed transcriptions come back the same way, with their failure code, such as media_private or no_captions.

Updated October 15, 2026