Sånn gjør Model Context Protocol (MCP) språkmodeller nyttige

– Kan bli avgjørende for å løse en av de største utfordringene til AI akkurat nå: Å gjøre språkmodeller nyttige i praksis, skriver Axel Tveiten Bech, og viser hvordan.

Med MCP kan du for eksempel få en språkmodell til å gi deg reelle værmeldinger fra Yr, forteller Axel Tveiten Bech. 📸: Privat / kode24
Med MCP kan du for eksempel få en språkmodell til å gi deg reelle værmeldinger fra Yr, forteller Axel Tveiten Bech. 📸: Privat / kode24 Vis mer

Model Context Protocol (MCP) fra Anthropic er en ny standard for å koble språkmodeller til eksterne data og tjenester.

Nyvinningen er kanskje ikke like spektakulær som en ny fantasillion-parameter-modell, men nettopp denne typen protokoller kan bli avgjørende for å løse en av de største utfordringene til KI akkurat nå:

Å gjøre språkmodeller nyttige i praksis.

Samtidig som de iboende begrensningene til språkmodeller setter en stopper for AGI (inntil videre), har det også blitt tydeligere hvor språkmodeller faktisk leverer verdi.

I seg selv gir språkmodeller nytte ved å generere kode og hjelpe elever med å "bestå" eksamener.

Men det er først når man gir dem tilgang på eksterne funksjoner og data, at de virkelig begynner å se ut som de kan erstatte oss kontorrotter.

Function Calling

Inntil nylig har såkalt “function calling” vært den vanligste måten å koble sammen språkmodeller og funksjonalitet som web-crawling, kodeevaluering, og å importere dokumenter.

For hver funksjonalitet eller datakilde man ønsker å eksponere, skriver man en tool definition. Modellen bestemmer så hvilke “tools” den ønsker å ta i bruk avhengig av hva brukeren spør om.

Hvis man f.eks. ønsker at modellen skal skrive en melding på Slack, kan man skrive en funksjon med melding og kanal som input. Man må også skrive en tools-liste på et format som er forskjellig blant KI-agent leverandørene.

Model Context Protocol

Model Context Protocol (MCP), som ble gjort open-source av Anthropic i november 2024, forenkler og standardiserer koblingen mellom KI-agenter og eksterne funksjoner og data.

Tenk på MCP som REST for KI-Agenter. En MCP-server, som kan aksesseres via en KI-agent med en MCP klient, inneholder et par ting.

  • “Resources” er filinnhold, databaseinnhold, etc.
  • “Prompts” er en liste over prompts som kan danne grunnlaget for slash-kommandoer og guidet input.
  • “Tools” ligner veldig på vanlige tools, og lar agenten dra i alle slags spaker.

Det som er kult er at siden MCP protokollen er modell-agnostisk, vil en server se helt lik ut uavhengig om du bruker GPT, LLama, Gemini, eller Claude.

Det er flere store fordeler med MCP over function calling:

  1. Utviklere av KI-agenter slipper å utvikle og vedlikeholde kode for integrasjoner mot tredjepartstjenester. Istedenfor å skrive egne integrasjoner mot eksterne tjenester kan utviklere implementere en MCP klient og dermed vil KI-agenten ha tilgang på et raskt voksende sett av ferdig-implementerte integrasjoner.
  2. Hvis du som utvikler har holdt på med “function calling”, vet du hvor frustrerende det er at hver eneste eksterne tjeneste har sitt eget API, dataformat og vokabular – noe som tvinger deg til å skrive skreddersydd kode og tilpasse prompts eller parsing-logikk for hver enkelt integrasjon. MCP løser dette ved å tilby et standardisert og selvbeskrivende grensesnitt for KI-agenten.
  3. Det er langt lettere å snylte på det harde arbeidet til andre utviklere ved å mikse og matche eksisterende MCP-klienter og MCP-servere (men man kan selvfølgelig også gjøre det sjæl).

Gi Claude tilgang til YR

For å gi et eksempel, har jeg koblet opp Claude Desktop, som har innebygget støtte for MCP, med en YR MCP Server.

Man kan også legge til MCP servere i Cursor, eller skrive sin egen MCP klient, men Claude Dekstop er den kjappeste og letteste måten å teste MCP.

image: Sånn gjør Model Context Protocol (MCP) språkmodeller nyttige

Når YR MCP serveren er lagt til, kan man spørre om f.eks. værmeldingen i Oslo, og agenten vil automatisk forstå at den skal bruke “get_weather_forecast_complete” for å svare på spørsmålet.

image: Sånn gjør Model Context Protocol (MCP) språkmodeller nyttige

Styr Minecraft-Steve fra Claude

Et litt morsommere eksempel er en Minecraft MCP Server.

Som beskrevet i denne Reddit-posten, har skaperen av serveren definert tools for å flytte på en bruker, legge til og fjerne blokker osv.

image: Sånn gjør Model Context Protocol (MCP) språkmodeller nyttige

Siden botten også har send-chat endepunkt, fant den raskt ut at den kunne bruke console commands, og med det lage enkle versjoner av Eiffeltårnet og Taj Mahal basert på bilder som brukeren sendte inn.

Utbredt Støtte for MCP

image: Sånn gjør Model Context Protocol (MCP) språkmodeller nyttige

Jeg har fulgt med på utviklingen rundt MCP siden det ble lansert for snart et halvt år siden.

Da det ble lansert måtte både MCP klient og MCP server kjøre på brukerens maskin. I dag er det støtte for at klienten og serveren kjører forskjellige steder, også i skyen.

På noen få måneder har det blitt laget flere tusen MCP servere, og standarden tas i bruk av flere og flere av de store KI-aktørene.

For de som jobber i Azure, har Copilot Studio støtte for MCP. At Sam Altman kunngjør støtte for MCP i OpenAI Agents er også et sikkert tegn på at standarden er kommet for å bli.

D.I.Y

Du kan forholdsvis enkelt prøve MCP, men vær obs på at gratisversjonen av Claude Desktop ikke alltid er medgjørlig som MCP klient.

For øvrig har jeg vært med å lage et verktøy for hosting av MCP-servere, AnyContext, med bl.a. YR ferdig integrert. Det er hakket enklere enn å sette opp servere selv.

Vi har ikke lagt til bruksbegrensinger eller betalingsløsning ennå, så gå gjerne bananas og kom med tilbakemeldinger 🍌