Skip to Content

🚛 Tipos de Transporte em MCP

O protocolo MCP (Message Communication Protocol) permite diferentes formas de transporte de mensagens entre componentes — como agentes, LLMs ou nós de execução. Os tipos de transporte definem como essas mensagens são trocadas, seja de forma síncrona, assíncrona ou via streaming.


1. stdio (Standard Input/Output)

  • Utiliza entrada e saída padrão do sistema operacional para comunicação entre processos.
  • Simples, eficiente e ideal para integração com binários locais ou scripts CLI.
  • Comunicação síncrona, sem suporte nativo a streaming parcial.

🔧 Uso comum: wrappers de ferramentas locais, scripts Python, integrações offline.


2. sse (Server-Sent Events)

  • Baseado em HTTP com conexão aberta (usando text/event-stream).
  • Permite stream unidirecional: do servidor para o cliente.
  • Recomendado para interfaces web que precisam exibir atualizações em tempo real.
  • Limitado a texto, e possui suporte inconsistente fora do navegador.

🔧 Uso comum: chatbots web, notificações em tempo real, streaming simples em frontend.


3. streamable-http

  • Utiliza o chunked transfer encoding do HTTP para transmitir partes da resposta.
  • Mais moderno e flexível do que SSE.
  • Permite stream de JSON, texto ou binários em partes progressivas.
  • Melhor suporte em ambientes de backend, APIs REST, edge functions e integrações com LLMs.

🔧 Uso comum: respostas de LLMs com streaming, aplicações em backends, APIs que demandam alto controle e robustez.


🆚 SSE vs Streamable HTTP

CaracterísticaSSEStreamable HTTP
Direção do fluxoUnidirecional (servidor → cliente)Unidirecional ou semiduplex
Suporte a dados bináriosNãoSim
Integração com backendLimitadaExcelente
Suporte a chunked JSONLimitadoTotal
Compatibilidade com proxiesProblemas frequentesBoa compatibilidade
Facilidade no frontendSimples com EventSourceRequer controle manual (ex: fetch)
Casos típicosUI em tempo real, notificaçõesStreaming LLMs, APIs assíncronas

📌 Streamable HTTP substitui o SSE?

Não exatamente. Streamable HTTP não é uma substituição formal, mas sim uma alternativa mais moderna e robusta, preferida em aplicações com:

  • Necessidade de streaming estruturado (ex: JSON).
  • Maior controle sobre o tempo de resposta.
  • Ambientes fora do navegador (ex: servidores, edge functions).

Para aplicações web simples, SSE ainda é viável. Mas para integrações com LLMs, agentes, RAG ou pipelines, o streamable-http oferece mais compatibilidade e escalabilidade.


Em resumo:

  • Use stdio para integrações locais rápidas.
  • Use sse para interfaces web que precisam de eventos simples.
  • Prefira streamable-http para APIs modernas, streaming estruturado e alto controle de execução.