MCP-transports: stdio, Streamable HTTP en SSE
Elke MCP-verbinding draagt dezelfde berichten - JSON-RPC 2.0-requests, -responses en -notificaties - maar die kunnen op verschillende manieren worden overgebracht. De specificatie noemt dat transports, en de registervermelding van een server geeft aan welke de server ondersteunt.
- Servers via Streamable HTTP
- 16.864
- Servers via stdio (lokaal proces)
- 13.123
- Servers via SSE (HTTP + Server-Sent Events)
- 515
stdio: een programma op je eigen computer
Bij stdio start de client de server als child process op dezelfde computer. De client schrijft berichten naar de standaardinvoer van de server en leest antwoorden uit diens standaarduitvoer, één JSON-RPC-bericht per regel; de server kan logs naar standard error schrijven. Wanneer de client de verbinding sluit, stopt het proces.
Er luistert niets op een netwerkpoort, dus er is geen URL om te beveiligen - maar het programma draait met de eigen rechten van de gebruiker en kan alles lezen wat de gebruiker kan lezen. stdio-servers worden geïnstalleerd vanuit pakketten: npm, PyPI, containerimages, MCP Bundles en andere.
Streamable HTTP: één endpoint op het web
Streamable HTTP, geïntroduceerd in de specificatierevisie van 2025-03-26, gebruikt één HTTPS-endpoint, zoals https://example.com/mcp. De client verstuurt elk bericht met een HTTP POST. De server antwoordt met één JSON-response of opent een stream van Server-Sent Events, waarover hij vóór het eindresultaat meerdere berichten kan sturen - bijvoorbeeld voortgangsnotificaties. De client kan ook een GET-stream openen om berichten te ontvangen die de server uit zichzelf verstuurt.
Een server kan een sessie toewijzen, aangeduid in een Mcp-Session-Id-header die de client bij latere requests terugstuurt. Omdat het gewoon HTTPS is, werkt het met standaard inlogmethoden - de MCP-autorisatiespecificatie bouwt voort op OAuth - en met gangbare webinfrastructuur.
SSE: het eerdere HTTP-transport
De eerste gepubliceerde revisie (2024-11-05) definieerde een HTTP-transport op basis van Server-Sent Events: de client opent een langdurige GET-verbinding voor de event stream, het eerste event van de server noemt een tweede URL, en de client post zijn eigen berichten daarheen. Revisie 2025-03-26 verving het door Streamable HTTP; clients en servers mogen het voor achterwaartse compatibiliteit blijven ondersteunen, en daarom vermelden sommige servers beide.
Welk transport een server gebruikt
Een gehoste dienst die veel mensen vanuit veel assistenten bereiken, biedt normaal gesproken Streamable HTTP aan, het transport dat het protocol nu aanbeveelt voor externe servers. Een tool die lokale bestanden of applicaties moet benaderen, gebruikt stdio. Een server kan beide aanbieden: de registervermelding noemt dan een extern endpoint en een pakket, en de pagina hier toont ze allebei.
MCP-servers per transport · Extern of lokaal? · Naar de directory →
Meer: Wat is een MCP-server? · Wat is llms.txt? · Zo vinden en boeken AI-assistenten reizen · Zo worden vermeldingen gecontroleerd · Extern of lokaal: welk type MCP-server gebruiken · Zo voeg je een MCP-server toe aan een AI-assistent · Wat is de officiële MCP Registry? · Wat er in een llms.txt-bestand staat · OpenAPI voor AI-agents · Zo vinden AI-assistenten beschikbaarheid voor reizen · Voordat je een MCP-server koppelt: een checklist