Hoe bouw je een YouTube MCP-server voor Cursor en Windsurf AI-codeerassistenten
Tijdens de migratie van mijn Learn English Sounds website van een CMS naar Next.js, liep ik tegen een frustrerende hindernis aan. Ik moest YouTube-video's vinden die elke Engelse klank demonstreerden, maar mijn AI-codeerassistenten (Cursor en Windsurf) konden niet direct op YouTube zoeken.
Dit betekende dat ik elke voorgestelde video handmatig moest verifiëren, wat mijn workflow onderbrak. Ik kreeg een aanbeveling, controleerde of deze bestond, en ging toen weer coderen. Geen enorm probleem, maar zeker inefficiënt.
Om dit proces te stroomlijnen, heb ik een eenvoudige Model Control Protocol (MCP)-server voor YouTube gebouwd. Hiermee kunnen mijn AI-codeertools daadwerkelijke videogegevens zoeken en ophalen zonder mijn tussenkomst.
Deze handleiding legt uit hoe je je eigen MCP-server bouwt. Het is een eenvoudig project dat je tijd kan besparen als je vaak nodig hebt dat je AI-codeerassistent toegang heeft tot externe services zoals YouTube.
Wat is een MCP?
Stel je voor dat je een AI-assistent gebruikt zoals Claude of GPT, maar deze kan niet direct toegang krijgen tot internet of andere services. Een MCP (Model Control Protocol) is als een vertaler die de AI helpt praten met deze services.
Zie het zo: als jij Nederlands spreekt en je vriend spreekt Spaans, heb je een vertaler nodig om te communiceren. Op dezelfde manier vertaalt een MCP-server tussen een AI-tool (zoals Cursor of Windsurf) en een externe service (zoals YouTube). Het volgt specifieke regels zodat beide partijen elkaar perfect begrijpen.
Technisch gezien is het een gestandaardiseerde API-server die specifieke formaten volgt, zodat AI-tools gegevens kunnen aanvragen en ontvangen zonder menselijke tussenkomst. Het protocol definieert hoe verzoeken worden geformatteerd, hoe antwoorden moeten worden gestructureerd en hoe fouten worden afgehandeld.
Met name Anthropic heeft hun Model Context Protocol open-sourced, waardoor ontwikkelaars veilige verbindingen kunnen bouwen tussen gegevensbronnen en AI-tools. Hun implementatie bevat SDK's, lokale serverondersteuning in Claude Desktop-apps en vooraf gebouwde servers voor populaire systemen zoals Google Drive, GitHub en Slack.
Waarom ik dit nodig had
Learn English Sounds vereist video's die de juiste uitspraak voor elke klank laten zien. Zonder directe YouTube-toegang zouden Cursor of Windsurf video's suggereren die vaak niet bestonden, waardoor ik elke suggestie handmatig moest verifiëren.
Voorbeeldworkflow vóór de MCP:
Ik: "Ik heb video's nodig voor de 'th'-klank."
Cursor of Windsurf: "Ik raad 'English TH Sounds - How to pronounce TH correctly' aan."
Ik: "Bestaat dat echt? Wat is het kanaal?"
Cursor of Windsurf: "Het zou op het kanaal 'English Pronunciation' moeten staan."
Ik: *zoekt op YouTube* "Dat kanaal bestaat, maar die video niet."
De YouTube-server bouwen
Ik heb de server gebouwd met Python en FastAPI, verbonden met de YouTube Data API. Hier is het architectuurdiagram dat laat zien hoe het werkt:
De belangrijkste uitdaging was het beheren van de API-quota's van YouTube en ervoor zorgen dat de server de MCP-specificatie correct volgde.
Hoe het werkt
Met de MCP-server kunnen Cursor of Windsurf nu direct op YouTube zoeken en daadwerkelijke video's leveren met weergaveaantallen en beoordelingen. Dit vermindert het heen-en-weer verkeer en stelt me in staat me te concentreren op de ontwikkeling.
Nieuwe workflow:
Ik: "Zoek video's voor de 'th'-klank."
Cursor of Windsurf: *queryt MCP-server*
Cursor of Windsurf: "Ik heb deze opties gevonden met weergaveaantallen en beoordelingen. Welke heeft uw voorkeur?"
Ik: "De eerste."
Cursor of Windsurf: *voegt embedcode toe met de juiste video-ID*
Technische implementatiedetails
Belangrijke technische overwegingen bij het bouwen van een MCP:
1. Authenticatie: De MCP-specificatie heeft geen gestandaardiseerde authenticatiemethode. Ik heb een YouTube API-sleutel gebruikt die is opgeslagen in een omgevingsvariabele (.env-bestand).
2. Antwoordformaat: AI-tools verwachten specifieke antwoordformaten. Het formaat varieert per endpoint, maar hier is een voorbeeld van het search_videos
-endpoint:
{
"videos": [
{
"title": "How to Pronounce TH - English Pronunciation Lesson",
"videoId": "dQw4w9WgXcQ",
"channelTitle": "English Pronunciation",
"description": "Learn how to pronounce the TH sound in English correctly."
}
]
}
En hier is een voorbeeld van het get_video_details
-endpoint, dat meer uitgebreide informatie retourneert:
{
"title": "How to Pronounce TH - English Pronunciation Lesson",
"description": "Learn how to pronounce the TH sound in English correctly.",
"channelTitle": "English Pronunciation",
"publishedAt": "2023-04-15T14:30:00Z",
"duration": "PT5M30S",
"viewCount": "1234567",
"likeCount": "12345",
"commentCount": "1234"
}
3. Foutafhandeling: Consistente foutformaten zijn essentieel, omdat AI-tools verward kunnen raken door onverwachte antwoorden. Mijn implementatie bevat specifieke foutafhandeling voor verschillende scenario's:
- Ontbrekende API-sleutel: "Failed to initialize YouTube service. Check YOUTUBE_API_KEY environment variable."
- Ongeldige API-sleutel: "An HTTP error 400 occurred: [error content]. This might indicate an invalid or missing API key (YOUTUBE_API_KEY)."
- Bron niet gevonden: "Video with ID '[video_id]' not found."
- Algemene HTTP-fouten: "An HTTP error [status] occurred: [error content]"
Waarom dit belangrijk is voor AI-codeerhulpmiddelen
Wanneer je codeert met AI-assistenten zoals Cursor of Windsurf, neem je voortdurend beslissingen op basis van externe informatie. Zonder MCP's werken deze tools in feite met geblindeerde ogen als het gaat om realtime gegevens.
Dit is waarom MCP's game-changers zijn voor AI-codering:
- Minder contextwisselingen: Blijf in je codeerflow zonder tussen applicaties te hoeven wisselen
- Geverifieerde informatie: Verkrijg nauwkeurige, realtime gegevens in plaats van potentieel verouderde of verzonnen inhoud
- Gespecialiseerde kennis: Krijg toegang tot domeinspecifieke informatie waarop de AI niet is getraind
- Aangepaste workflows: Bouw MCP's voor je specifieke behoeften en ontwikkelpatronen
Volgens de OpenAI-documentatie bieden MCP's "domeinspecifieke kennis met duidelijke grenzen", waardoor ze ideaal zijn voor het uitbreiden van AI-mogelijkheden op een gecontroleerde, voorspelbare manier. Op dezelfde manier gebruikt Anthropic's Claude desktopapplicatie MCP's om Claude veilig te verbinden met services zoals Google Drive en GitHub.
Maak je eigen MCP
Als je een MCP wilt bouwen:
1. Begin met één API-endpoint die je de meeste tijd zou besparen
2. Concentreer je op het correct krijgen van het antwoordformaat
3. Implementeer correcte foutafhandeling
Mijn YouTube MCP bevat deze endpoints:
/search_videos
- Zoek video's die overeenkomen met een query/get_video_details
- Haal gedetailleerde informatie op over een specifieke video/get_related_videos
- Zoek video's die gerelateerd zijn aan een specifieke video/list_channel_videos
- Haal recente uploads van een kanaal op/get_channel_details
- Haal informatie op over een YouTube-kanaal/search_playlists
- Zoek afspeellijsten die overeenkomen met een query/get_playlist_items
- Haal video's uit een specifieke afspeellijst op
Resultaten
Het bouwen van deze MCP-server heeft mijn ontwikkeltijd aanzienlijk verkort. Cursor en Windsurf doen nu betere suggesties op basis van daadwerkelijke videogegevens, en ik kan me blijven concentreren op de ontwikkeling zonder contextwisselingen om YouTube te doorzoeken.
Populaire MCP-servers en huidig gebruik
Verschillende MCP-servers worden al gebruikt in productieomgevingen:
- GitHub MCP: Hiermee kunnen AI-tools repositories doorzoeken, code bekijken en toegang krijgen tot issues/PR's
- Google Drive MCP: Maakt document zoeken en ophalen uit Google Drive mogelijk
- Slack MCP: Biedt toegang tot kanalen, berichten en werkruimte-informatie
- Firebase MCP: Maakt het opvragen en bijwerken van Firestore-collecties en documenten mogelijk
- MongoDB MCP: Biedt toegang tot MongoDB-databases voor AI-ondersteunde data-analyse
- PostgreSQL MCP: Hiermee kunnen AI-tools relationele databases opvragen en resultaten visualiseren
- Jira MCP: Maakt het opvragen en bijwerken van tickets en projectinformatie mogelijk
- Mermaid MCP: Helpt bij het genereren van diagrammen uit tekstbeschrijvingen (vergelijkbaar met mijn Mermaid-automatiseringspost)
- Wolfram Alpha MCP: Biedt computationele en feitelijke kennis
Deze servers zijn bijzonder populair bij Claude Desktop-gebruikers en ontwikkelaars die werken met Cursor of Windsurf. Naarmate het MCP-ecosysteem groeit, zien we meer gespecialiseerde servers voor domeinen zoals data-analyse, API-testen en documentatiegeneratie.
Probeer het zelf
De code voor mijn YouTube MCP-server is beschikbaar op GitHub. Je hebt een YouTube API-sleutel nodig om deze in te stellen.