Trasporti MCP: stdio, Streamable HTTP e SSE

Ogni connessione MCP trasporta gli stessi messaggi - richieste, risposte e notifiche JSON-RPC 2.0 - ma questi possono viaggiare in modi diversi. La specifica li chiama trasporti, e la voce di un server nel registro indica quali supporta.

Server su Streamable HTTP
16.864
Server su stdio (processo locale)
13.123
Server su SSE (HTTP + Server-Sent Events)
515

stdio: un programma sul proprio computer

Con stdio, il client avvia il server come processo figlio sullo stesso computer. Il client scrive i messaggi sullo standard input del server e legge le risposte dal suo standard output, un messaggio JSON-RPC per riga; il server può scrivere i log sullo standard error. Quando il client chiude la connessione, il processo termina.

Nessun processo resta in ascolto su una porta di rete, quindi non c’è un URL da proteggere - ma il programma gira con le autorizzazioni dell’utente e può leggere tutto ciò che l’utente può leggere. I server stdio si installano da pacchetti: npm, PyPI, immagini container, MCP Bundle e altri.

Streamable HTTP: un solo endpoint sul web

Introdotto nella revisione della specifica del 2025-03-26, Streamable HTTP usa un unico endpoint HTTPS, per esempio https://example.com/mcp. Il client invia ogni messaggio con una richiesta HTTP POST. Il server risponde con una singola risposta JSON oppure aprendo uno stream di Server-Sent Events, su cui può inviare più messaggi - per esempio notifiche di avanzamento - prima del risultato finale. Il client può anche aprire uno stream GET per ricevere i messaggi che il server invia di propria iniziativa.

Un server può assegnare una sessione, identificata in un header Mcp-Session-Id che il client rimanda nelle richieste successive. Poiché si tratta di normale HTTPS, funziona con i sistemi di accesso standard - la specifica di autorizzazione MCP si basa su OAuth - e con la comune infrastruttura web.

SSE: il trasporto HTTP precedente

La prima revisione pubblicata (2024-11-05) definiva un trasporto HTTP basato su Server-Sent Events: il client apre una connessione GET di lunga durata per lo stream di eventi, il primo evento del server indica un secondo URL e il client invia lì i propri messaggi. La revisione 2025-03-26 lo ha sostituito con Streamable HTTP; client e server possono continuare a supportarlo per retrocompatibilità, ed è per questo che alcuni server li elencano entrambi.

Quale usa un server

Un servizio ospitato, raggiunto da molte persone attraverso molti assistenti, offre di norma Streamable HTTP, il trasporto che il protocollo raccomanda oggi per i server remoti. Uno strumento che deve accedere a file o applicazioni locali usa stdio. Un server può offrire entrambi: in tal caso la sua voce nel registro elenca un endpoint remoto e un pacchetto, e la sua pagina qui li mostra tutti e due.

Server MCP per trasporto · Remoto o locale? · Sfoglia la directory →

Altri approfondimenti: Che cos’è un server MCP? · Che cos’è llms.txt? · Come gli assistenti IA trovano e prenotano viaggi · Come vengono verificate le schede · Server MCP remoto o locale: quale usare · Come aggiungere un server MCP a un assistente IA · Che cos’è il MCP Registry ufficiale? · Cosa contiene un file llms.txt · OpenAPI per gli agenti IA · Come gli assistenti IA trovano la disponibilità per i viaggi · Prima di collegare un server MCP: una checklist