Bygger du AI-agenter, kender du problemet: for hver funktion i en tilkoblet tjeneste skal der defineres et eget værktøj. Søge, oprette, ændre, slette en kalenderpost – det er hurtigt fire separate byggeklodser, og det bare for én enkelt tjeneste. Med mange tilkoblinger vokser vedligeholdet tilsvarende. Model Context Protocol (MCP) forfølger en anden tilgang: det standardiserer, hvordan en sprogmodel kommunikerer med en tjeneste – og reducerer antallet af nødvendige byggeklodser drastisk. Dette indlæg sammenfatter konceptet og et konkret praksiseksempel med n8n.
- MCP standardiserer, hvordan en sprogmodel forstår en tjenestes kontekst – altså hvad den kan, og hvordan man taler til den.
- I stedet for at koble hver enkelt funktion til separat rækker en MCP-server (foran tjenesten) og en MCP-klient (i agenten).
- Agenten klarer sig med to trin: liste funktioner (List Tools) og udføre funktioner (Execute Tool).
- I n8n kan det bygges efter med en miljøvariabel, en community-node og to MCP-klientværktøjer.
- MCP er en ung teknologi: der er kendte sikkerhedsbetænkeligheder – i produktionsmiljøer er forsigtighed på sin plads.

Hvad MCP overhovedet løser
Grundidéen i Model Context Protocol ligger i navnet: en sprogmodel skal forstå en applikations kontekst. Konkret betyder det: hvad kan denne applikation? Hvad er den til for? Og hvordan udfører jeg handlinger i den?
Klassisk kobler man hvert værktøj til enkeltvis, når man bygger agenter – hver funktion er en egen byggeklods. Ved Google Calendar f.eks.: et værktøj til at søge poster, et til at opdatere, et til at slette, et til at oprette. Fire funktioner for én tjeneste. Ved komplekse agenter med mange tilkoblede tjenester løber det hurtigt op i snesevis af byggeklodser.
Server, klient og det ensartede skema
MCP arbejder med to roller:
- MCP-server: lægger sig foran selve tjenesten (f.eks. Airbnb eller Google Calendar) og beskriver, hvordan man kan interagere med den.
- MCP-klient: sidder i agenten og henter og kalder serverens funktioner.
I den aktuelle implementering – f.eks. i n8n – rækker to trin i stedet for mange enkeltværktøjer:
- List Tools (liste): agenten spørger serveren, hvilke funktioner der er tilgængelige.
- Execute Tool (udføre): agenten kalder en konkret funktion med de passende parametre.
Afgørende er det ensartede skema. Uanset hvilken tjeneste der ligger bag: svaret på en List Tools-forespørgsel er altid bygget op ens. Det indeholder pr. funktion navnet, en beskrivelse og et skema med de tilladte parametre. Indhold og parametre er forskellige fra tjeneste til tjeneste – strukturen forbliver konstant. Netop det er, hvad protokollen fastlægger og standardiserer.
Et eksempel med Airbnb-værktøjet
Spørger man agenten, hvilke muligheder Airbnb-værktøjet giver, henter den selv funktionslisten via List Tools-værktøjet. Tilbage kommer blandt andet:
- Airbnb Search: søgning efter udbud med filtre og paginering – f.eks. sted, check-in- og check-ud-dato, antal voksne, børn, spædbørn og kæledyr samt prisinterval.
- Airbnb Listing Details: detaljerede oplysninger om et bestemt udbud via dets listing-id.
Agenten skulle ikke have noget foreskrevet her – den har selv skaffet sig de tilgængelige funktioner, deres beskrivelser og parameterskemaet. I skemaet ser man for eksempel et tekstfelt location (by, region osv.), datofelterne til check-in og check-ud, antallet af voksne samt minimums- og maksimumspris.
Stiller man så en konkret forespørgsel – f.eks. en indkvartering i Bangkok til seks personer for maksimalt 50 euro pr. nat – kører agenten i to trin: den kalder først List Tools (den har ikke husket noget, da der ikke er aktiv memory), aflæser de nødvendige parametre ud fra skemaet og udfører søgningen via Execute Tool. Resultatet – f.eks. en indkvartering med tre senge til ca. 35 euro pr. nat – kommer tilbage, og det med kun to tilføjede værktøjer. Hvis Airbnb tilbød flere funktioner, f.eks. til at administrere egne annoncer, kunne de afbildes via det samme skema uden at definere yderligere byggeklodser.
Sådan bygger du MCP efter i n8n
De følgende trin viser opsætningen med Airbnb-eksemplet. Det egner sig godt til at prøve af, fordi der ikke kræves nogen API-nøgle.
- Sæt miljøvariablen: sæt
N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGEtiltrue. Det giver community-noder adgang til tools. Ved en Docker-installation (f.eks. på en Hetzner-server) skriver du det i afsnittetenvironmentidocker-compose-filen og genstarter instansen. - Opret AI-agenten: opret en AI-agent og angiv en model (i videoen GPT-4.1 Mini).
- Installer community-noden: under Settings → Community Nodes installerer du pakken
n8n-nodes-mcpog bekræfter advarslen om installation af ukontrolleret kode fra offentlige kilder. - Tilføj MCP-klientværktøjet: søg efter „MCP“ via plusset ved Tools. Bemærk: må ikke forveksles med n8n’s eget MCP Client Tool – community-varianten kendes på kassesymbolet og er indtil videre mere omfattende.
- Opret adgangsoplysninger: som forbindelsestype kan man vælge Command Line, Server-Sent Events og HTTP Streamable. I eksemplet bliver det ved Command Line. De rigtige værdier står i den pågældende MCP-servers repository i afsnittet om installation. For Airbnb: command
npx, argumenter indtastet trin for trin –-y, pakken@openbnb/mcp-server-airbnbog valgfrit--ignore-robots-txt.
Bemærkning om robots.txt: muligheden
--ignore-robots-txttilsidesætter et websites adgangsregler. Til en demo er det forsvarligt – i produktionsmiljøer bør du respektere de pågældende tjenesters robots.txt.
Sæt de to operationer op
Derefter skal du bruge to MCP-klientværktøjer med forskellige operationer:
- List Tools: kald værktøjet f.eks. „Airbnb List Tools“ og angiv som beskrivelse, at det bruges til at hente alle tilgængelige Airbnb-værktøjer. Et testklik (Execute Step) bør returnere den kendte funktionsliste med navn, beskrivelse og skema.
- Execute Tool: et andet MCP-klientværktøj med operationen Execute Tool. Beskrivelse: til at udføre Airbnb-værktøjer, som kan listes via List Tools-værktøjet. Værktøjsnavnet giver du med som expression, så agenten selv bestemmer, hvilken funktion den kalder; værktøjsparametrene lader du stå frie, så den selv fastlægger dem.
Efter oprydning og gemning kan agenten testes – f.eks. igen med Bangkok-forespørgslen. Den henter funktionslisten, giver den tilbage til modellen, vælger søgningen og leverer passende indkvarteringer. Præcis den adfærd fra konceptdelen, nu i dit eget workflow.
Ud over n8n – og et ord om sikkerhed
MCP begrænser sig ikke til automatiseringsplatforme. Også desktop-programmer som Claude Desktop kan forbindes med MCP-servere. Dermed kan man i chatten uddelegere opgaver til lokalt installerede programmer – et meget citeret eksempel er styringen af 3D-softwaren Blender via MCP, hvor en person uden Blender-kendskab laver renderinger. MCP-serveren kører her lokalt, mens selve sprogmodellen fortsat kører via cloudtjenesten.
Trods al begejstring gælder: MCP er en ung udvikling. Der findes allerede sikkerhedsbetænkeligheder, og der er fundet sikkerhedshuller. Netop i produktionsmiljøer skal teknologien nydes med forsigtighed – det betaler sig at følge den videre udvikling, før man bygger kritiske processer oven på den.
Konklusion
Model Context Protocol er en pragmatisk standardiseringstilgang: en sprogmodel lærer selv via en MCP-server, hvad en tjeneste kan, og hvordan man taler til den – i stedet for at hver funktion skal defineres på forhånd. For komplekse AI-agenter betyder det mærkbart færre byggeklodser og mindre vedligehold; i n8n-eksemplet rækker to trin: liste og udføre. Tilgangen er overbevisende, men stadig ung. Prøver du den af, bør du begynde med ukritiske tjenester og tage de åbne sikkerhedsspørgsmål alvorligt i produktionsmiljøer.
Kilde: Model Context Protocol (MCP): Erklärung & n8n Tutorial (Deutsch) – YouTube-kanalen Philip Thomas, på tysk.
