Model Context Protocol Advanced Topics
← Alle lessen
Les 09Model Context Protocol Advanced Topics

State and the StreamableHTTP transport

Samenvatting (audio)

Geen audio-samenvatting voor deze les.

Studienotities

📝 Studieopmerkingen: Stateless en JSON Response Flags

Context: Horizontale Schaling

  • Wanneer een MCP-server populair wordt, is horizontale schaling noodzakelijk (meerdere server-instanties achter een load balancer).
  • Bij load balancing kan een client-request naar een willekeurige server worden gerouteerd, wat het bijhouden van client-toestanden (state) extreem moeilijk maakt.

Flag: stateless (Stateloos)

  • Wat het doet: Als deze flag op true wordt gezet, ontvangt de client geen sessie-ID. De server kan een client nooit bijhouden.
  • Gevolgen (Nadelen):
  • De server kan de Git SSE response pathway niet gebruiken (geen client-naar-server communicatie).
  • Functionaliteit zoals sampling, progress logging en subscriptions kan niet worden gebruikt.
  • Voordelen:
  • Geen client initialisatie of notificatie-requests meer nodig → vermindert het verkeer naar de server.
  • Trade-off: Geen client-toestand (state) ↔ Minder infrastructuurcomplexiteit.

Flag: json response (JSON Response)

  • Wat het doet: Als deze flag op true wordt gezet, wordt er geen streaming ingeschakeld voor POST-requests naar de client.
  • Gevolgen:
  • De server stuurt alleen het definitieve resultaat als platte JSON.
  • Geen tussenliggende berichten of log-statements worden verzonden.
  • De client moet wachten tot de toolcall volledig is voltooid.

Aanbevelingen

  • Ontwikkeling: Gebruik tijdens de ontwikkeling (op lokale machine) altijd de transportmethode die je in productie wilt gebruiken (bijv. streamable HTTP).
  • Doel: Dit voorkomt problemen bij de overgang van ontwikkeling naar productie.

Takeaways

  • Horizontale schaling vereist stateloosheid omdat load balancing het bijhouden van client-toestanden (state) onmogelijk maakt.
  • De flag stateless=true elimineert sessie-ID's en vermindert verkeer, maar maakt functies zoals Git SSE, sampling en progress logging onbruikbaar.
  • De flag json response=true schakelt streaming uit voor POST-requests en zorgt ervoor dat de server alleen het definitieve, platte JSON-resultaat stuurt.
  • Tijdens de ontwikkeling moet altijd de transportmethode die in productie gebruikt zal worden, worden toegepast om overgangsproblemen te voorkomen.
Flashcards 8 kaarten
Vraag
klik om te onthullen · ←/→
Antwoord
klik om terug te draaien
Exporteren naar Anki (.tsv) ↓
Kenniscontrole 0 vragen

No quiz for this lesson yet.