# Collegare il server MCP

> Configura Claude, ChatGPT, Cursor, VS Code o Claude Code per trascrivere con transcript1 tramite MCP.

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

Con il server remoto [Model Context Protocol](https://modelcontextprotocol.io/) di transcript1, il tuo assistente IA può avviare trascrizioni e leggerne il testo. Puoi passargli link di YouTube, X, TikTok, Instagram, Facebook e Bluesky, oppure caricare file audio e video. Trovi le altre registrazioni pubbliche accettate e le restrizioni in [Link e opzioni di trascrizione](https://transcript1.com/it/docs/sources-and-options).

I post devono essere pubblici; se contengono più video, trascriviamo solo il primo. Come su YouTube e X, anche su TikTok, Bluesky, Dailymotion e LinkedIn cerchiamo sottotitoli adatti nella lingua originale. In modalità auto, se non possiamo usarli, trascriviamo l'audio con IA allo stesso prezzo al minuto. Fuori da YouTube, i sottotitoli hanno i timestamp dei segmenti, non delle parole (`words: null`), anche se generati automaticamente.

Con `captions` (solo sottotitoli) non scarichiamo audio e non usiamo STT. Se chiedi il riconoscimento dei parlanti o imposti `source=stt`, invece, usiamo direttamente l'audio. I dettagli sono in [Link e opzioni di trascrizione](https://transcript1.com/it/docs/sources-and-options).

- **Endpoint:** `https://api.transcript1.com/mcp` (streamable HTTP)
- **Accesso:** con Claude e ChatGPT usi OAuth 2.1: accedi a transcript1 e autorizzi il collegamento. Con Cursor, VS Code, Claude Code e gli agenti, usa una chiave API nell'header `Authorization: Bearer t1_...`. Puoi crearla in [“API keys”](https://transcript1.com/dashboard/account/tokens).

Gli strumenti MCP chiamano l'[API REST](https://transcript1.com/it/docs/api-reference) `/v1` con le tue credenziali. Restano uguali i controlli sui parametri, i costi e i codici di errore. Le chiamate MCP usano gli stessi minuti e gli stessi limiti dell'account: non hanno una quota separata.

## Gli strumenti disponibili

| Strumento | Quando usarlo |
|---|---|
| `transcribe` | Per trascrivere un video da un link supportato. Passa `url` e, se servono, `platform`, `source`, `language`, `diarize`, `format` e `wait_seconds`. Riconosce la piattaforma dal link, aspetta la trascrizione e ne restituisce la prima pagina. Se sta ancora lavorando, restituisce l'`id`. |
| `get_transcription` | Per leggere lo stato o il testo tramite `id`. Puoi aggiungere `wait_seconds`, `format`, `from_seconds` e `max_chars`. |
| `list_transcriptions` | Per trovare le trascrizioni recenti, dalla più nuova alla più vecchia, senza il testo. Puoi aggiungere `status`, `platform`, `limit` e `cursor`. |
| `create_upload` | Per aprire un caricamento in parti di un file locale. Servono `filename`, `size` e `request_id`, un UUID che generi tu. Puoi aggiungere `mime_type`, `language` e `diarize`. |
| `get_upload_status` | Per sapere quali chunk sono arrivati e riprendere un caricamento interrotto. |
| `complete_upload` | Per controllare i chunk ricevuti e mettere in coda la trascrizione. |
| `delete_transcription` | Per annullare una trascrizione in corso e riavere i minuti, oppure eliminare una trascrizione già terminata e il suo testo. |
| `get_account` | Per controllare saldo dei minuti, piano e data di rinnovo. |

### Formati, attesa e pagine

- Di default, `format` è `text`: ricevi una riga per segmento, con timestamp e, se hai attivato il riconoscimento dei parlanti, l'etichetta di chi parla. Per esempio: `[00:01:02] Speaker 1: Good morning.` Puoi scegliere anche `srt`, `vtt` o `json`.
- Con `wait_seconds` scegli quanto aspettare, da 0 a 55 secondi; il valore predefinito è 50. Se il tempo non basta, la risposta indica che la trascrizione è ancora in corso e fornisce l'`id`. Passalo a `get_transcription` per aspettare ancora.
- Il testo lungo arriva in più pagine. `max_chars` è 60.000 di default e accetta valori da 1.000 a 100.000. La pagina termina sempre tra due segmenti. Per continuare, prendi `next_from_seconds` dalla risposta e passalo come `from_seconds`.
- La risposta indica anche `transcript_source`: `youtube_captions`, `x_captions`, `tiktok_captions`, `bluesky_captions`, `dailymotion_captions`, `linkedin_captions` o `speech_to_text`. L'assistente sa così da dove arriva il testo. Con `caption_kind: null`, l'origine della traccia è sconosciuta: non significa che l'abbia caricata il creator.

### Prima di inviare di nuovo, controlla lo stato

`transcribe` attiva sempre `reuse_recent`. Con un link completo, se invii lo stesso video con le stesse opzioni entro 24 ore, recuperi la trascrizione precedente senza pagare di nuovo. La risposta segnala il riutilizzo. Non vale per i link brevi. Per sapere a che punto è un lavoro già avviato, usa `get_transcription` o `list_transcriptions` anziché inviarlo di nuovo.

### Come caricare un file

I byte del file non passano attraverso MCP. Con `create_upload` ottieni l'`id` della trascrizione, il modello di URL per le parti, `X-Upload-Token` e l'elenco dei chunk da inviare. L'assistente carica ogni chunk con un `PUT` HTTP fuori da MCP, poi chiama `complete_upload`. La risposta include anche il link alla pagina di caricamento nella dashboard, se preferisci usarla. La procedura è in [Caricare file](https://transcript1.com/it/docs/uploads).

### Per i webhook serve l'API REST

Non puoi impostare un webhook negli strumenti MCP. Se vuoi ricevere [webhook](https://transcript1.com/it/docs/webhooks), usa l'API REST.

## Claude

In Claude, aggiungi il server remoto come connettore personalizzato:

1. Dalle impostazioni dei connettori, scegli di aggiungere un connettore personalizzato.
2. Chiamalo `transcript1` e inserisci `https://api.transcript1.com/mcp` come URL.
3. Quando si apre transcript1, accedi e autorizza gli scope `transcriptions:read` e `transcriptions:write` richiesti dal connettore.

Ora puoi scrivere a Claude, ad esempio: “Trascrivi https://www.youtube.com/watch?v=dQw4w9WgXcQ”. La disponibilità dei connettori personalizzati dipende dal piano Claude.

## ChatGPT

Per ChatGPT, configura un connettore personalizzato:

1. Nelle impostazioni dei connettori, aggiungi un connettore personalizzato per MCP.
2. Come URL del server, usa `https://api.transcript1.com/mcp`.
3. Completa il collegamento accedendo a transcript1 e autorizzando l'accesso.

L'opzione dipende dal piano ChatGPT e dalle impostazioni del workspace. Potresti dover attivare la modalità sviluppatore.

## Collegare Cursor

Per la configurazione in un clic, usa [Aggiungi transcript1 a Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=transcript1&config=eyJ1cmwiOiJodHRwczovL2FwaS50cmFuc2NyaXB0MS5jb20vbWNwIn0=).

Se preferisci configurarlo a mano, aggiungi il server in `.cursor/mcp.json` e inserisci la chiave API nell'header `Authorization`:

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

## VS Code

Puoi partire da [Aggiungi transcript1 a 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) per la configurazione in un clic.

In alternativa, modifica `.vscode/mcp.json` nel workspace e aggiungi:

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

## Collegare Claude Code

Inserisci la tua chiave API al posto di `t1_YOURKEY` ed esegui il comando:

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

## Usare un altro client MCP

Se il client supporta i server MCP remoti, collegalo a `https://api.transcript1.com/mcp` con l'header `Authorization: Bearer t1_...`.

## Avvio da comando per Claude Desktop e altri client

Se il client avvia i server MCP eseguendo un comando, usa `npx -y @transcript1/mcp` e imposta `TRANSCRIPT1_API_KEY` con la tua chiave API. Il pacchetto fa da collegamento al server remoto di transcript1. Serve Node.js 18 o successivo.

Per Claude Desktop, aggiungi questa configurazione a `claude_desktop_config.json`. Al posto di `t1_YOURKEY`, usa una chiave creata in [“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

Se il tuo agente supporta le skill, puoi aggiungere l'Agent Skill di transcript1. È un breve file `SKILL.md` con le istruzioni per usare il servizio, disponibile su [https://transcript1.com/.well-known/agent-skills/transcript1/SKILL.md](https://transcript1.com/.well-known/agent-skills/transcript1/SKILL.md).

Gli agenti che scoprono le skill automaticamente possono trovarla nell'indice `https://transcript1.com/.well-known/agent-skills/index.json`.

## Leggere gli errori degli strumenti

Se una chiamata a uno strumento non riesce, ricevi lo stesso `code` dell'API REST, una spiegazione e un'indicazione per l'assistente su cosa fare dopo. La struttura è `<code>: <message>. <next step>`. Se finiscono i minuti, per esempio:

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

Consulta [Gestire gli errori](https://transcript1.com/it/docs/errors) per tutti i codici. Anche quando non riesce la trascrizione, la risposta segue questa struttura e riporta il codice specifico, ad esempio `media_private` o `no_captions`.
