MCP Server Premium

Give Claude — or any MCP-compatible AI tool — the ability to transcribe, summarize and translate media, directly from the conversation.

Turn Your AI Assistant into a Transcription Tool

TurnScribe's MCP (Model Context Protocol) server is an open standard, not a Claude-only integration — any MCP-compatible client that supports Streamable HTTP with custom headers can connect to it. We provide tested setup guides for Claude Code and Claude Desktop below, but the same server URL and API key work with any other MCP client too.

Transcribe any public URL — YouTube, TikTok, podcasts, direct media links

Transcribe an uploaded audio/video file

Check the status of a transcription job

Generate an AI summary of a transcript

Translate a transcript into 28 languages

Requires Premium

The MCP server is available on the Premium plan, same account and API key as the REST API.

View Premium plan

Setup Guide

You'll need a Premium plan and an API key. Generate a key from your dashboard once you sign up or log in.

Server URL
https://mcp.turnscribe.com/

TurnScribe's MCP server works with any MCP client that supports the Streamable HTTP transport with a custom Authorization header — not just Claude. Below are step-by-step guides for Claude Code and Claude Desktop, since those are the clients we've tested end to end, followed by the generic connection details for every other MCP client (Cursor, Windsurf, Cline, VS Code's MCP support, or your own custom client).

Claude Code

Add TurnScribe as a remote MCP server from the CLI, passing your API key as a Bearer token:

claude mcp add --transport http turnscribe https://mcp.turnscribe.com/ \
  --header "Authorization: Bearer <API_KEY>"
Claude Desktop

Claude Desktop's connector UI doesn't have a field for custom headers, so authenticating with an API key needs the mcp-remote bridge. Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "turnscribe": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.turnscribe.com/", "--header", "Authorization:Bearer <API_KEY>"]
    }
  }
}

Restart Claude Desktop after saving the config for it to pick up the new server.

Other MCP Clients

Any MCP client that supports the Streamable HTTP transport with custom headers — Cursor, Windsurf, Cline, VS Code's MCP support, or your own code using an MCP SDK — can connect with just two pieces of information:

Check your client's own documentation for exactly where to enter a remote MCP server URL and a custom header — the config field names vary, but the URL and header above are all TurnScribe needs.

Note: claude.ai's web "Add custom connector" dialog does not work with this server — it only offers a URL field plus OAuth Client ID/Secret, with no field for a custom header, and TurnScribe's MCP server authenticates with a static API key, not OAuth. Use Claude Code, Claude Desktop, or any other MCP client that supports custom headers instead.


Tool Reference

1. transcribe_url

Transcribe audio/video from a public URL (YouTube, TikTok, podcast, direct media link, etc). Returns immediately with a PENDING status and a transcript_id to poll with get_transcription_status — unless this exact URL was already transcribed, in which case it returns COMPLETED instantly.

Parameters

Returns

{ "status": "PENDING", "transcript_id": "...", "task_id": "..." }

2. transcribe_file

Transcribe an audio/video file uploaded as base64-encoded bytes. Returns a PENDING status and a transcript_id to poll with get_transcription_status.

Parameters

Returns

{ "status": "PENDING", "transcript_id": "...", "task_id": "..." }

3. get_transcription_status

Poll the status of a transcription started with transcribe_url or transcribe_file.

Parameters

Returns

{ "status": "COMPLETED", "transcript_id": "...", "content": "...", "title": "..." }

4. generate_summary Premium

Generate (or check) an AI summary of a completed transcript. Call once to trigger it, call again with the same transcript_id to check progress.

Parameters

Returns

{ "status": "COMPLETED", "summary": "..." }

5. translate_transcript Premium

Translate a completed transcript into another language. Rate-limited to once per day per transcript, regardless of target language, to control model cost.

Parameters

Returns

{ "status": "COMPLETED", "translation": "...", "target_lang": "..." }

Possible errors

Questions or need help setting it up? Reach out at [email protected].