MCP i OpenAI Responses API: YouTube-transkripsjoner for GPT-5

OpenAI Responses API kan kalle eksterne MCP-servere direkte — du deklarerer serveren i tools, og modellen oppdager og kaller verktøyene dens på egen hånd. Koble inn MCP-serveren fra youtube2text.org, så kan GPT-5 hente enhver YouTube-transkripsjon midt i samtalen uten at du skriver et eneste fetch-kall. Jeg testet akkurat dette oppsettet mot gpt-5 i dag; konfigurasjonen nedenfor er klar til å kopieres og limes inn.
Verktøyblokken
Dette er hele integrasjonen:
{
"type": "mcp",
"server_label": "youtube2text",
"server_url": "https://youtube2text.org/mcp",
"headers": {"x-api-key": "YOUR_KEY"},
"require_approval": "never"
}
headers-feltet sender youtube2text-API-nøkkelen din videre til serveren ved hvert kall. require_approval: "never" hopper over rundturen med menneskelig godkjenning — rimelig her, siden det eneste verktøyet er en skrivebeskyttet transkripsjonshenting. Få en nøkkel via Google-innlogging på youtube2text.org/app/keys, eller hent den delte demonøkkelen fra GET https://youtube2text.org/api/demo-key (5 videoer/måned per IP).
Komplett Python-eksempel
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-5",
tools=[{
"type": "mcp",
"server_label": "youtube2text",
"server_url": "https://youtube2text.org/mcp",
"headers": {"x-api-key": "YOUR_KEY"},
"require_approval": "never",
}],
input="Summarize https://www.youtube.com/watch?v=dQw4w9WgXcQ "
"in five bullet points.",
)
print(resp.output_text)
Det var alt. Ingen kode for å hente transkripsjoner, ingen parsing, ingen prompt-sammensetning. Modellen bestemmer at den trenger transkripsjonen, kaller verktøyet, leser resultatet og skriver sammendraget.
Hva som skjer under panseret
Gå gjennom resp.output, så ser du maskineriet:
- Et
mcp_list_tools-element dukker opp først. Responses API koblet tilhttps://youtube2text.org/mcpog hentet verktøymanifestet — i vårt tilfelle ett enkelt verktøy,transcribe_video(url, maxChars?), som returnerer{title, content, contentSize, videoId, pubDate, truncated}. Denne importen skjer én gang per samtale og caches i påfølgende turer. - Når modellen bestemmer seg for å kalle det, dukker et
mcp_call-element opp med argumentene den valgte ({"url": "https://www.youtube.com/watch?v=..."}) og, når serveren svarer, hele verktøyresponsen. - Til slutt et vanlig
message-element med modellens svar, som er detoutput_textgir deg.
Serveren er streamable HTTP og tilstandsløs, så det finnes ingen sesjonshåndtrykk å administrere — hvert kall står alene. Har en video ingen undertekster, returnerer verktøyet en TRANSCRIPT_UNAVAILABLE-feil, som modellen videreformidler i klartekst i stedet for å krasje kjøringen din.
En egenhet verdt å kjenne til
GPT-5 oppsummerer, analyserer og siterer korte fragmenter fra transkripsjoner uten problemer. Ber du den derimot om å gjengi lange ordrette passasjer, kan den nekte — OpenAIs opphavsrettsrekkverk slår inn ved lengre ord-for-ord-gjengivelse av tredjepartsinnhold. I min testing i dag fungerte sammendrag, temauttrekk og Q&A friksjonsfritt; «gi meg hele transkripsjonen tilbake» gjorde det ikke. Trenger du råteksten, dropp modellen helt og gå rett på REST-endepunktet med curl — ellers betaler du tokens for å hvitvaske din egen API-respons.
Kostnadsnotat
Transkripsjoner er store. En time med snakk er omtrent 8 000–10 000 ord, som alle lander i GPT-5s kontekst som verktøy-output og faktureres som input-tokens. Oppsummerer du i volum, send maxChars i prompt-instruksjonen (modellen videresender det som verktøyargument), eller forbehandle med noe billigere.
Samme server, andre klienter
Det identiske MCP-endepunktet fungerer med Claude — via mcp_servers-blokken i Messages API eller som en claude.ai-connector og i Claude Code — så én youtube2text-nøkkel dekker hele agent-menasjeriet ditt.
Nøkler og planer (gratis 5/mnd opp til ubegrenset for $19.99) finner du på youtube2text.org/app/keys.