# MCP-server koppelen

> Laat je AI-assistent transcriberen via MCP. Zo koppel je Claude, ChatGPT, Cursor, VS Code, Claude Code en andere clients.

Canonical: https://transcript1.com/nl/docs/mcp
Language: nl
Last updated: 2026-10-15

Koppel je AI-assistent aan transcript1 via [Model Context Protocol](https://modelcontextprotocol.io/). De externe MCP-server laat je assistent links van YouTube, X, TikTok, Instagram, Facebook en Bluesky transcriberen en de tekst lezen. Dat kan ook met geüploade audio- en videobestanden. Andere ondersteunde openbare opnames en de beperkingen vind je in [Bronnen en instellingen](https://transcript1.com/nl/docs/sources-and-options).

Gebruik openbare posts. Bij meerdere video’s in één post transcriberen we alleen de eerste. De ondertitelondersteuning van YouTube en X blijft gelijk. Ook voor TikTok, Bluesky, Dailymotion en LinkedIn proberen we bruikbare ondertitels in de oorspronkelijke taal. In de automatische modus gebruiken we anders AI-speech-to-text, tegen hetzelfde tarief per minuut. Buiten YouTube hebben ondertitels alleen tijdstempels per segment (`words: null`), ook als ze automatisch zijn gegenereerd.

Met `captions` (alleen ondertitels) halen we geen audio op en gebruiken we geen STT. Kies je sprekerherkenning of `source=stt`, dan slaan we de ondertitels juist over. Meer hierover staat in [Bronnen en instellingen](https://transcript1.com/nl/docs/sources-and-options).

- **Endpoint:** `https://api.transcript1.com/mcp` (streamable HTTP)
- **Inloggen:** Claude en ChatGPT gebruiken OAuth 2.1. Je logt in bij transcript1 en geeft toestemming. Voor Cursor, VS Code, Claude Code en agents gebruik je een API-sleutel in `Authorization: Bearer t1_...`. Maak die aan op [“API keys”](https://transcript1.com/dashboard/account/tokens).

De tools roepen met je sleutel of token de [REST API](https://transcript1.com/nl/docs/api-reference) onder `/v1` aan. Voor validatie, kosten en foutcodes gelden dezelfde regels. MCP gebruikt hetzelfde minutensaldo en dezelfde requestlimieten als de rest van je account.

## Beschikbare tools

| Tool | Waarvoor gebruik je die? |
|---|---|
| `transcribe` | Stuur een ondersteunde videolink in `url`. Optioneel zijn `platform`, `source`, `language`, `diarize`, `format` en `wait_seconds`. De tool herkent het platform zelf en wacht op de tekst. Je krijgt de eerste pagina van het transcript, of de `id` als het nog loopt. |
| `get_transcription` | Vraag met `id` de status of de tekst op. Je kunt ook `wait_seconds`, `format`, `from_seconds` en `max_chars` meegeven. |
| `list_transcriptions` | Bekijk recente transcripties, van nieuw naar oud, zonder de tekst. Optionele parameters zijn `status`, `platform`, `limit` en `cursor`. |
| `create_upload` | Maak een upload in chunks aan voor een lokaal bestand. Geef `filename`, `size` en `request_id` mee; voor die laatste genereer je zelf een UUID. `mime_type`, `language` en `diarize` zijn optioneel. |
| `get_upload_status` | Controleer welke chunks al binnen zijn, zodat je na een onderbreking verder kunt. |
| `complete_upload` | Laat de chunks controleren en zet de transcriptie in de wachtrij. |
| `delete_transcription` | Stop een lopende transcriptie en krijg de minuten terug, of verwijder een afgeronde transcriptie met de tekst. |
| `get_account` | Vraag je resterende minuten, abonnement en verlengingsdatum op. |

### Zo werken de standaardinstellingen

- Voor `format` gebruiken we standaard `text`. Je krijgt één regel per segment, met tijdstempel en bij sprekerherkenning ook een sprekerlabel, bijvoorbeeld `[00:01:02] Speaker 1: Good morning.` Je kunt ook `srt`, `vtt` of `json` kiezen.
- De tool wacht standaard 50 seconden via `wait_seconds`; je kunt 0 tot 55 instellen. Loopt de transcriptie daarna nog, dan krijg je die melding met de `id`. Geef die door aan `get_transcription` om opnieuw te wachten.
- Lange transcripts krijg je per pagina. Met `max_chars` kies je 1.000 tot 100.000 tekens, standaard 60.000. Een pagina eindigt altijd tussen segmenten. In de response staat `next_from_seconds`; geef die waarde als `from_seconds` door om verder te lezen.
- In `transcript_source` staat waar de tekst vandaan komt: `youtube_captions`, `x_captions`, `tiktok_captions`, `bluesky_captions`, `dailymotion_captions`, `linkedin_captions` of `speech_to_text`. Bij `caption_kind: null` is de herkomst van het ondertitelspoor onbekend. Dat betekent dus niet dat de maker het heeft geüpload.

### Bekijk eerst of de transcriptie al bestaat

`transcribe` zet altijd `reuse_recent` aan. Gebruik je binnen 24 uur dezelfde volledige videolink met dezelfde opties, dan krijg je de eerdere transcriptie terug zonder opnieuw te betalen. Met korte links werkt dit niet. De tool vermeldt wanneer die een transcriptie hergebruikt. Controleer een bestaande job liever met `get_transcription` of `list_transcriptions` dan dat je die opnieuw start.

### Bestanden uploaden via je assistent

Het bestand zelf kan niet via MCP mee. Met `create_upload` krijgt de assistent de transcriptie-`id`, een URL-template voor de chunks, een `X-Upload-Token` en de lijst met chunks. De assistent verstuurt die chunks buiten MCP om met HTTP-`PUT` en roept daarna `complete_upload` aan. Je krijgt ook een link naar de uploadpagina van het dashboard als alternatief. De stappen staan bij [Bestanden uploaden](https://transcript1.com/nl/docs/uploads).

### Geen webhooks

Een webhook instellen kan niet met de MCP-tools. Gebruik daarvoor de [REST API met webhooks](https://transcript1.com/nl/docs/webhooks).

## Claude

In Claude koppel je een externe MCP-server als eigen connector.

1. Ga in Claude naar de connectorinstellingen en voeg een eigen connector toe.
2. Geef die de naam `transcript1` en vul als server-URL `https://api.transcript1.com/mcp` in.
3. Log in bij transcript1 zodra Claude daarom vraagt en geef toestemming voor `transcriptions:read` en `transcriptions:write`.

Je kunt nu bijvoorbeeld vragen: “Transcribeer https://www.youtube.com/watch?v=dQw4w9WgXcQ”. Of je eigen connectors kunt toevoegen, hangt af van je Claude-abonnement.

## ChatGPT

Ook in ChatGPT voeg je transcript1 als eigen connector toe.

1. Ga naar de connectorinstellingen in ChatGPT en voeg een eigen connector voor een MCP-server toe.
2. Gebruik `https://api.transcript1.com/mcp` als server-URL.
3. Meld je aan bij transcript1 en geef toestemming voor toegang.

Je ChatGPT-abonnement en de instellingen van je workspace bepalen of dit kan. Mogelijk moet je eerst de ontwikkelaarsmodus inschakelen.

## Koppel Cursor via MCP

Gebruik de installatielink: [Voeg transcript1 toe aan Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=transcript1&config=eyJ1cmwiOiJodHRwczovL2FwaS50cmFuc2NyaXB0MS5jb20vbWNwIn0=)

Je kunt de configuratie ook zelf in `.cursor/mcp.json` zetten. Geef daarbij je API-sleutel mee in de `Authorization`-header:

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

## VS Code

Gebruik de installatielink: [Voeg transcript1 toe aan VS Code](vscode:mcp/install?%7B%22name%22%3A%22transcript1%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.transcript1.com%2Fmcp%22%7D)

Of zet deze configuratie zelf in `.vscode/mcp.json` van je workspace:

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

## Koppel Claude Code via MCP

Vul je eigen API-sleutel in voor `t1_YOURKEY` en voer de opdracht uit:

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

## Koppel een andere client

Ondersteunt je client externe MCP-servers, gebruik dan `https://api.transcript1.com/mcp` met de header `Authorization: Bearer t1_...`.

## MCP starten met een opdracht

Start je client een MCP-server via een opdracht, laat die dan `npx -y @transcript1/mcp` uitvoeren. Stel `TRANSCRIPT1_API_KEY` in op je API-sleutel. Dit pakket verbindt de client met de gehoste transcript1-server en heeft Node.js 18 of nieuwer nodig.

Voor Claude Desktop zet je dit in `claude_desktop_config.json`. Vervang `t1_YOURKEY` door een sleutel van [“API keys”](https://transcript1.com/dashboard/account/tokens).

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

## Agent Skill

Gebruikt je agent skills? Voeg dan de Agent Skill van transcript1 toe via [https://transcript1.com/.well-known/agent-skills/transcript1/SKILL.md](https://transcript1.com/.well-known/agent-skills/transcript1/SKILL.md). Dit korte bestand, `SKILL.md`, legt de agent uit hoe die transcript1 gebruikt.

Een agent met skill discovery kan de instructies zelf vinden via `https://transcript1.com/.well-known/agent-skills/index.json`.

## Als een tool een fout teruggeeft

Bij een fout krijgt de assistent dezelfde `code` als in de REST API, met een uitleg en een vervolgstap. De opbouw is `<code>: <message>. <next step>`. Als je minuten op zijn, ziet dat er bijvoorbeeld zo uit:

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

De uitleg per code staat bij [Fouten afhandelen](https://transcript1.com/nl/docs/errors). Ook als een transcriptie later mislukt, krijgt de assistent zo’n foutmelding, bijvoorbeeld met `media_private` of `no_captions`.
