MCP – Model Context Protocol

MCP (Model Context Protocol) er en åben standard, der giver AI-modeller mulighed for at kalde ekstern kode som værktøjer. I stedet for at AI’en kun svarer ud fra sin træning, kan den med MCP aktivt kalde din kode, hente data og udføre handlinger i din applikation.

Hvad er MCP?
#

MCP er konceptuelt beslægtet med REST, men rettet mod AI-klienter frem for browsere og frontends:

  • REST → frontend kalder din backend
  • MCP → AI-modellen kalder din backend

En MCP-server eksponerer tools – funktioner med et navn, en beskrivelse og et JSON Schema der definerer input. AI-klienten (f.eks. Claude CLI eller Codex) opdager automatisk disse tools og kan kalde dem, når en brugers naturlige sprog passer til det, de gør.

Kommunikationen sker typisk via STDIO – standard input/output – hvilket betyder, at AI-klienten starter din server som en subprocess og taler med den direkte via stdin/stdout. Det er den enkleste opsætning og standard for lokale MCP-servere.

Hvad vi lavede i undervisningen
#

Vi byggede en MCP-server i Java ved hjælp af det officielle io.modelcontextprotocol.sdk. Serveren eksponerede to tools:

ToolHvad den gør
add_numbersTager to heltal og returnerer summen
current_timeReturnerer serverens aktuelle tidspunkt i ISO-8601

Opsætning
#

Projektet blev sat op som et Maven-projekt i IntelliJ. Vi brugte:

  • McpServer.sync(...) til at bygge en synkron server
  • StdioServerTransportProvider til STDIO-transport
  • JSON Schema-strenge til at beskrive tool-input
  • maven-shade-plugin til at pakke alt i én kørbar .jar-fil

Registrering i klienterne
#

Når .jar-filen var bygget, registrerede vi serveren i begge AI-klienter:

# Codex
codex mcp add demo-server -- java -jar /path/to/mcp-demo-1.0-SNAPSHOT.jar

# Claude CLI
claude mcp add demo-server --command java --arg -jar --arg /path/to/mcp-demo-1.0-SNAPSHOT.jar

Herefter kunne vi fra naturligt sprog bede klienterne om at bruge vores tools – og de kaldte automatisk vores Java-kode og returnerede resultatet.

Hvad det betyder i praksis
#

Den centrale pointe er, at MCP er endnu ét interface til din backend-logik – ligesom REST eller gRPC, men designet til AI som klient. Det betyder, at du kan:

  • Lade AI-modeller tilgå interne systemer (databaser, APIs, filsystemer) på en kontrolleret måde
  • Kombinere AI-ræsonnering med deterministisk kode – AI’en beslutter hvornår den kalder et tool, din kode afgør hvad der sker
  • Bygge AI-drevne features oven på eksisterende backend-infrastruktur uden at skulle ændre selve forretningslogikken

Refleksion
#

Det mest interessante ved øvelsen var at se, hvordan AI-klienterne selv opdagede og valgte at bruge vores tools ud fra naturligt sprog. Vi bad ikke eksplicit om at kalde add_numbers – vi spurgte bare “hvad er 5 plus 7?”, og klienten matchede det til vores tool selv.

Det illustrerer en fundamental forskel fra REST: ved REST kalder mennesket de rigtige endpoints. Med MCP er det AI’en, der vælger hvornår og hvordan den bruger de tilgængelige tools – og dermed bliver beskrivelsen af et tool lige så vigtig som selve implementationen.

There are no articles to list here yet.