# Serveur MCP

> Branchez transcript1 sur votre assistant IA. Configuration du serveur MCP pour Claude, ChatGPT, Cursor, VS Code, Claude Code et les autres clients compatibles.

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

Votre assistant IA peut demander une transcription à transcript1, puis en lire le texte. Connectez-le à notre serveur distant [Model Context Protocol](https://modelcontextprotocol.io/) pour lui donner accès aux liens YouTube, X, TikTok, Instagram, Facebook et Bluesky, ainsi qu'aux fichiers audio et vidéo importés. La page [Sources et options](https://transcript1.com/fr/docs/sources-and-options) détaille les autres enregistrements publics acceptés et leurs restrictions.

Utilisez un post public ; s'il contient plusieurs vidéos, nous prenons seulement la première. Les sous-titres YouTube et X restent disponibles, comme ceux de TikTok, Bluesky, Dailymotion et LinkedIn, dans la langue d'origine. En mode auto, si ces sous-titres ne sont pas exploitables, nous transcrivons l'audio par IA au même tarif par minute.

Hors YouTube, les sous-titres donnent les temps par segment, jamais par mot (`words: null`), même pour les pistes générées automatiquement. Avec `captions` (sous-titres uniquement), nous ne téléchargeons pas l'audio et ne lançons pas le STT. À l'inverse, demander l'identification des locuteurs ou choisir `source=stt` lance directement le traitement audio. Les détails sont dans [Sources et options](https://transcript1.com/fr/docs/sources-and-options).

- **Endpoint :** `https://api.transcript1.com/mcp` (transport streamable HTTP).
- **Authentification :** avec Claude ou ChatGPT, connectez-vous à transcript1 et autorisez l'accès via OAuth 2.1. Avec Cursor, VS Code, Claude Code ou un agent, utilisez une clé API dans `Authorization: Bearer t1_...`. Vous pouvez en créer une dans [« API keys »](https://transcript1.com/dashboard/account/tokens).

Les outils MCP appellent l'[API REST](https://transcript1.com/fr/docs/api-reference) `/v1` avec votre clé ou votre token. Ils suivent les mêmes règles de validation et de facturation, avec les mêmes codes d'erreur. Vos appels MCP et vos autres appels utilisent le même solde de minutes et les mêmes limites de requêtes.

## Outils

| Outil | Utilisation |
|---|---|
| `transcribe` | Envoyez un lien vidéo dans `url`. Vous pouvez préciser `platform`, `source`, `language`, `diarize`, `format` et `wait_seconds`. L'API reconnaît la plateforme dans le lien. L'outil attend et renvoie la première page du texte, ou l'`id` si la transcription n'est pas encore prête. |
| `get_transcription` | Consultez l'état d'une transcription ou récupérez son texte avec son `id`. Options disponibles : `wait_seconds`, `format`, `from_seconds` et `max_chars`. |
| `list_transcriptions` | Retrouvez vos transcriptions, de la plus récente à la plus ancienne, sans le texte. Filtres et pagination en option : `status`, `platform`, `limit` et `cursor`. |
| `create_upload` | Préparez l'envoi d'un fichier local en blocs. Fournissez `filename`, `size` et `request_id` (un UUID que vous générez). Vous pouvez ajouter `mime_type`, `language` et `diarize`. |
| `get_upload_status` | Vérifiez quels blocs sont déjà arrivés pour reprendre un upload interrompu. |
| `complete_upload` | Faites vérifier les blocs reçus, puis mettez la transcription en file d'attente. |
| `delete_transcription` | Annulez un traitement en cours pour récupérer vos minutes, ou supprimez une transcription terminée avec son texte. |
| `get_account` | Consultez votre solde de minutes, votre offre et sa date de renouvellement. |

### Valeurs par défaut

- Sans autre choix de `format`, vous recevez du `text` : une ligne par segment avec son horodatage et, si nous avons identifié les locuteurs, l'étiquette correspondante. Exemple : `[00:01:02] Speaker 1: Good morning.` Les formats `srt`, `vtt` et `json` sont aussi disponibles.
- L'outil attend 50 secondes par défaut. Réglez `wait_seconds` entre 0 et 55 pour changer ce délai. Si le texte n'est pas prêt, la réponse vous le signale et fournit l'`id`. Passez-le à `get_transcription` pour attendre de nouveau.
- Pour un texte long, la réponse arrive par pages. `max_chars` vaut 60 000 par défaut et accepte de 1 000 à 100 000 caractères. Une page s'arrête entre deux segments, jamais au milieu. Utilisez la valeur `next_from_seconds` reçue comme `from_seconds` au prochain appel pour lire la suite.
- Le champ `transcript_source` indique à l'assistant d'où vient le texte : `youtube_captions`, `x_captions`, `tiktok_captions`, `bluesky_captions`, `dailymotion_captions`, `linkedin_captions` ou `speech_to_text`. Si vous recevez `caption_kind: null`, l'origine des sous-titres est inconnue ; cela ne signifie pas que le créateur les a ajoutés.

### Retrouver une transcription plutôt que la relancer

L'outil `transcribe` demande systématiquement `reuse_recent`. Avec un lien complet, un nouvel appel pour la même vidéo et les mêmes options retrouve votre transcription des dernières 24 heures, sans consommer de nouvelles minutes. La réponse précise quand elle réutilise une transcription. Ce mécanisme ne fonctionne pas avec les liens courts. Pour suivre un traitement déjà lancé, utilisez plutôt `get_transcription` ou `list_transcriptions`.

### Envoyer un fichier

Les fichiers ne passent pas directement dans MCP. Appelez `create_upload` pour obtenir l'`id` de transcription, le modèle d'URL des blocs, le token `X-Upload-Token` et la liste des blocs à envoyer. L'assistant les transmet ensuite par `PUT` HTTP, en dehors de MCP, puis appelle `complete_upload`. Si cet envoi n'est pas possible, la réponse fournit aussi un lien vers la page d'import du tableau de bord. La page [Importer des fichiers](https://transcript1.com/fr/docs/uploads) décrit le protocole.

### Webhooks via l'API REST uniquement

Pour recevoir un [webhook](https://transcript1.com/fr/docs/webhooks), passez par l'API REST. Aucun outil MCP ne propose ce paramètre.

## Claude

Dans Claude, ajoutez le serveur distant comme connecteur personnalisé :

1. Allez dans les paramètres des connecteurs et créez un connecteur personnalisé.
2. Nommez-le `transcript1` et indiquez `https://api.transcript1.com/mcp` comme URL.
3. Connectez-vous à votre compte transcript1, puis autorisez l'accès. Le connecteur demande les scopes `transcriptions:read` et `transcriptions:write`.

Vous pouvez ensuite écrire à Claude : « Fais la transcription de https://www.youtube.com/watch?v=dQw4w9WgXcQ ». L'accès aux connecteurs personnalisés dépend de votre offre Claude.

## ChatGPT

Dans ChatGPT, utilisez également un connecteur personnalisé :

1. Dans les paramètres des connecteurs, ajoutez un connecteur personnalisé pour serveur MCP.
2. Pour l'URL du serveur, indiquez `https://api.transcript1.com/mcp`.
3. Identifiez-vous sur transcript1 et autorisez la connexion.

Votre offre ChatGPT et la configuration de votre espace de travail déterminent si vous pouvez ajouter ce connecteur. Vous devrez peut-être activer le mode développeur.

## Ajouter le serveur MCP dans Cursor

Pour l'ajouter en un clic, ouvrez [Ajouter transcript1 à Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=transcript1&config=eyJ1cmwiOiJodHRwczovL2FwaS50cmFuc2NyaXB0MS5jb20vbWNwIn0=).

Pour une configuration manuelle, ajoutez ceci dans `.cursor/mcp.json` et renseignez votre clé API dans `Authorization` :

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

## VS Code

Vous pouvez l'ajouter directement avec [Ajouter transcript1 à 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).

Sinon, placez cette configuration dans `.vscode/mcp.json`, à la racine de votre espace de travail :

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

## Ajouter le serveur MCP dans Claude Code

Lancez cette commande après avoir remplacé `t1_YOURKEY` par votre clé API :

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

## Autres clients

Si votre client accepte les serveurs MCP distants, indiquez `https://api.transcript1.com/mcp` et ajoutez l'en-tête `Authorization: Bearer t1_...`.

## Clients qui lancent MCP par une commande

Certains clients, dont Claude Desktop, lancent MCP à partir d'une commande locale. Utilisez `npx -y @transcript1/mcp` et définissez `TRANSCRIPT1_API_KEY` avec votre clé API. Ce paquet se connecte au serveur hébergé de transcript1. Il demande Node.js 18 ou une version plus récente.

Pour Claude Desktop, ajoutez la configuration suivante à `claude_desktop_config.json`. À la place de `t1_YOURKEY`, utilisez une clé créée dans [« 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

Un Agent Skill fournit à l'agent les instructions pour utiliser transcript1 dans un court fichier `SKILL.md`. Si votre agent sait utiliser ces fichiers, ajoutez celui de transcript1 : [https://transcript1.com/.well-known/agent-skills/transcript1/SKILL.md](https://transcript1.com/.well-known/agent-skills/transcript1/SKILL.md).

Les agents capables de découvrir automatiquement les skills le trouveront dans l'index `https://transcript1.com/.well-known/agent-skills/index.json`.

## Comprendre les erreurs des outils

En cas d'erreur, l'outil renvoie le même `code` que l'API REST, accompagné d'un message et d'une action à proposer à l'assistant. Le tout suit le format `<code>: <message>. <next step>`. Voici ce que reçoit l'assistant si votre solde ne suffit pas :

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

Consultez [Erreurs](https://transcript1.com/fr/docs/errors) pour le détail des codes. Si le traitement échoue après son lancement, l'outil utilise le même format avec le code correspondant, par exemple `media_private` ou `no_captions`.
