Hvad der udkom den 28. juli

Model Context Protocol offentliggjorde sin femte specifikation den 28. juli, og det er den største ændring, siden protokollen blev født. Kernen er nu tilstandsløs. Forhandlingen mellem initialize og initialized bortfalder, Mcp-Session-Id-hovedet udgår, og hver forespørgsel bærer i stedet protokolversionen, klientens identitet og dens evner i et _meta-felt. Den praktiske virkning er, at en simpel round robin-belastningsfordeler er nok: enhver instans kan betjene enhver forespørgsel, og der er ikke længere noget fælles sessionslager at drive.

Flere andre brikker følger af den beslutning. Multi Round-Trip Requests afløser de serverstartede kald, som hidtil krævede en åbentholdt strøm: i stedet for at skubbe en forespørgsel gennem en åben kanal returnerer serveren resultattypen input_required, og klienten gentager det oprindelige kald med svarene vedhæftet. Streamable HTTP-forespørgsler bærer nu hovederne Mcp-Method og Mcp-Name, så en gateway eller en hastighedsbegrænser kan dirigere og måle uden at læse JSON-kroppen. Listeresultater fra værktøjer, prompter og ressourcer bærer en levetid og et cacheområde. Tasks og MCP Apps flytter over i en formel udvidelsesramme i stedet for at sidde i kernen.

Udbredelsestallene forklarer, hvorfor det rækker ud over dem, der skriver servere. Tier 1-udviklingssættene til TypeScript, Python, Go og C sharp nærmer sig tilsammen 500 millioner hentninger om måneden, og pakkerne til TypeScript og Python har hver passeret en milliard hentninger i alt. David Soria Parra, en af de ledende vedligeholdere, kaldte det den vigtigste udgivelse, siden remote MCP startede for over et år siden. Har jeres virksomhed inden for de sidste atten måneder købt et produkt, der kobler en assistent til jeres systemer, ligger denne specifikation nedenunder, uanset om nogen har nævnt navnet.

Udfasningen af Sampling flytter en inferensregning

Listen over udfasninger læses som oprydning: Roots, Sampling og Logging, alle med et vindue på tolv måneder. To af dem er reelt småting. Roots bliver til mappe- og filstier, der sendes som værktøjsparametre eller sættes i serverkonfigurationen. Logging flytter til standardfejludgangen eller til OpenTelemetry, hvor de fleste driftsansvarlige alligevel ville have det. Sampling er en anden sag, og det er det på en måde, der rører ved et budget frem for ved en kodebase.

Sampling var det middel, hvormed en MCP-server kunne bede klienten om at køre et modelsvar på sine vegne. Serveren havde brug for udgangen fra en sprogmodel, men behøvede ikke at opbevare legitimationsoplysninger, for klienten udførte inferensen, og klienten betalte for den. Det er en reel kommerciel fordeling udtrykt som en protokolfunktion. Den offentliggjorte migreringsvejledning for servere, der mister Sampling, lyder, at man skal integrere direkte med en modelleverandørs grænseflader fra serversiden. Læst som driftsansvarlig er følgen klar: den, der driver serveren, har nu brug for sin egen konto hos leverandøren, sin egen nøgle og sin egen budgetpost.

Hvilken vej pengene bevæger sig afhænger af, hvilken stol I sidder på. Driver I MCP-servere for jeres eget personale over for en leverandørs klient, lander der inferens på jeres konto, som I ikke før betalte, og for en mellemstor installation er det en ny månedlig forpligtelse på fire cifre i euro og ikke en afrundingsfejl. Bruger I en leverandørs MCP-server, så regn med en prisregulering, for en omkostning, der før blev skubbet over på jeres klient, bliver nu leverandørens egen. Intet af det bliver annonceret i en udgivelsesnote. Begge dele står på en faktura inden for et år.

Tilstandsløs flyttede tilstanden, den slettede den ikke

Leverandørernes kommentarer omkring denne udgivelse handler samstemmende om skala, og de kommer fra de virksomheder, der vinder mest, når servere bliver lette at hoste: sky- og kantleverandører, der beskriver protokollen som dirigerbar, mellemlagerbar og globalt skalerbar, og platformsselskaber, der hilser enden på sessionsstyring velkommen. Alt sammen er rigtigt. At droppe bindingen af hver session til den samme instans fjerner en fejlklasse, hvor en afbrudt strøm ødelagde hele samtalen, og det lader en server køre på serverløs infrastruktur, der aldrig kunne have holdt en session åben.

Hvad ingen af dem siger, er, at tilstanden ikke fordampede. Alt, hvad der virkelig skal bestå mellem kald, skal nu gengives udtrykkeligt: serveren udsteder en identifikator - den for en indkøbskurv, et token, en henvisning til et arbejdsforløb - og sender den tilbage i et resultat, så klienten kan sende den igen. Det er et solidt design, men det gør et usynligt protokolanliggende til en synlig del af jeres værktøjskontrakter. Nogen skal afgøre, hvad de identifikatorer betyder, hvor længe de gælder, og hvad der sker, når en klient gensender en forældet. Det arbejde forsvandt ikke sammen med sessionshovedet. Det flyttede ind i jeres skemaer, hvor jeres hold skal ramme rigtigt.

Sæt den 28. juli 2027 i planen

Den styrende regel er, at alt markeret som udfaset forbliver funktionsdygtigt i mindst tolv måneder. Det gør den 28. juli 2027 til den tidligste dato, hvor Roots, Sampling, Logging, den dynamiske klientregistrering eller den gamle transport over HTTP og SSE reelt kan fjernes, og det er den eneste dato i denne udgivelse, der fortjener at stå i en køreplan. Der går intet i stykker i denne uge. Ændringerne omkring godkendelse er ikke desto mindre dem, man skal læse først: godkendelsesservere skal nu returnere en udstederparameter, og klienter skal validere den, før de indløser en kode, klientlegitimation er bundet til den server, der udstedte den, og den dynamiske klientregistrering viger for Client ID Metadata Documents.

For en europæisk virksomhed er den brik, det betaler sig at handle tidligt på, Enterprise Managed Authorization, som ankommer som en udvidelse og lader administrationen tildele adgang til MCP-servere centralt gennem en identitetsleverandør. Hidtil er godkendelse i MCP-installationer ofte kommet til allersidst, og netop derfor er så mange interne agentprojekter gået i stå ved sikkerhedsgennemgangen. Er jeres et af dem, er årsagen til stilstanden nu adresseret i specifikationen, og det ærlige næste skridt er at spørge jeres leverandører, hvornår de understøtter udvidelsen, frem for at vente på at få det fortalt.