Visão Geral
Server-Sent Events (SSE) fornecem uma forma padrão para um servidor web enviar atualizações a um cliente através de uma única conexão HTTP de longa duração. No contexto do MCP, SSE é utilizado para que servidores remotos transmitam dados (como respostas de ferramentas) para sua aplicação CrewAI em tempo real.Conceitos-Chave
- Servidores Remotos: SSE é adequado para servidores MCP hospedados remotamente.
- Fluxo Unidirecional: Normalmente, SSE é um canal de comunicação de mão única, do servidor para o cliente.
- Configuração do
MCPServerAdapter: Para SSE, você fornecerá a URL do servidor e especificará o tipo de transporte.
Conectando via SSE
Você pode se conectar a um servidor MCP baseado em SSE usando duas abordagens principais para gerenciar o ciclo de vida da conexão:1. Conexão Totalmente Gerenciada (Recomendado)
Utilizar um gerenciador de contexto Python (with statement) é a abordagem recomendada. Ele lida automaticamente com o estabelecimento e o encerramento da conexão com o servidor MCP SSE.
Substitua
"http://localhost:8000/sse" pela URL real do seu servidor MCP SSE.2. Ciclo de Vida Manual da Conexão
Caso precise de um controle mais detalhado, você pode gerenciar manualmente o ciclo de vida da conexão doMCPServerAdapter.
Você DEVE chamar
mcp_server_adapter.stop() para garantir que a conexão seja encerrada e os recursos liberados. O uso de um bloco try...finally é altamente recomendado.Considerações de Segurança para SSE
Para mitigar esse risco:- As implementações do servidor MCP devem validar os cabeçalhos
Originem conexões SSE recebidas. - Ao rodar servidores MCP SSE locais para desenvolvimento, faça o bind apenas em
localhost(127.0.0.1) ao invés de todas as interfaces de rede (0.0.0.0). - Implemente autenticação adequada para todas as conexões SSE caso exponham ferramentas ou dados sensíveis.
