Visão Geral
O Model Context Protocol (MCP) fornece uma maneira padronizada para agentes de IA fornecerem contexto para LLMs comunicando-se com serviços externos, conhecidos como Servidores MCP. O CrewAI oferece duas abordagens para integração MCP:🚀 Novo: Integração DSL Simples (Recomendado)
Use o campomcps diretamente nos agentes para integração perfeita de ferramentas MCP:
🔧 Avançado: MCPServerAdapter (Para Cenários Complexos)
Para casos de uso avançados que requerem gerenciamento manual de conexão, a bibliotecacrewai-tools fornece a classe MCPServerAdapter.
Atualmente, suportamos os seguintes mecanismos de transporte:
- HTTPS: para servidores remotos (comunicação segura via HTTPS)
- Server-Sent Events (SSE): para servidores remotos (transmissão de dados unidirecional em tempo real do servidor para o cliente via HTTP)
- Streamable HTTP: para servidores remotos (comunicação flexível e potencialmente bidirecional via HTTP, geralmente utilizando SSE para streams do servidor para o cliente)
Tutorial em Vídeo
Assista a este tutorial em vídeo para um guia abrangente sobre a integração do MCP com o CrewAI:Instalação
Antes de começar a usar MCP comcrewai-tools, é necessário instalar a dependência extra mcp do crewai-tools com o seguinte comando:
Conceitos Chave & Primeiros Passos
A classeMCPServerAdapter da crewai-tools é a principal forma de conectar-se a um servidor MCP e disponibilizar suas ferramentas aos seus agentes CrewAI. Ela suporta diferentes mecanismos de transporte e simplifica o gerenciamento de conexões.
O uso de um gerenciador de contexto Python (with) é a abordagem recomendada para o MCPServerAdapter. Ele lida automaticamente com a abertura e o fechamento da conexão com o servidor MCP.
Configuração de Conexão
OMCPServerAdapter suporta várias opções de configuração para personalizar o comportamento da conexão:
connect_timeout(opcional): Tempo máximo em segundos para aguardar o estabelecimento de uma conexão com o servidor MCP. O padrão é 30 segundos se não especificado. Isso é particularmente útil para servidores remotos que podem ter tempos de resposta variáveis.
Filtrando Ferramentas
Usando com CrewBase
Para usar ferramentas de servidores MCP dentro de uma classe CrewBase, utilize o métodoget_mcp_tools. As configurações dos servidores devem ser fornecidas via o atributo mcp_server_params. Você pode passar uma configuração única ou uma lista com múltiplas configurações.
Quando uma classe é decorada com
@CrewBase, o ciclo de vida do adaptador é controlado automaticamente:- A primeira chamada a
get_mcp_tools()cria de forma preguiçosa umMCPServerAdaptercompartilhado que é reutilizado por todos os agentes do crew. - Após a conclusão de
.kickoff(), um hook pós-kickoff injetado por@CrewBaseencerra o adaptador, dispensando qualquer limpeza manual. - Se
mcp_server_paramsnão estiver definido,get_mcp_tools()retorna uma lista vazia, permitindo manter o mesmo fluxo de código com ou sem MCP configurado.
get_mcp_tools() em vários agentes ou habilitar/desabilitar MCP dependendo do ambiente.Configuração de Timeout de Conexão
Você pode configurar o timeout de conexão para servidores MCP definindo o atributo de classemcp_connect_timeout. Se nenhum timeout for especificado, o padrão é 30 segundos.
Filtragem de Ferramentas
Você pode filtrar quais ferramentas estão disponíveis para seu agente passando uma lista de nomes de ferramentas para o métodoget_mcp_tools.
Explore Integrações MCP
Transporte Stdio
Conecte-se a servidores MCP locais via entrada/saída padrão. Ideal para scripts e executáveis locais.
Transporte SSE
Integre com servidores MCP remotos usando Server-Sent Events para streaming de dados em tempo real.
Transporte HTTP Streamable
Utilize HTTP Streamable para uma comunicação robusta com servidores MCP remotos.
Conectando a Múltiplos Servidores
Agregue ferramentas de vários servidores MCP simultaneamente usando um único adaptador.
Considerações de Segurança
Revise práticas importantes de segurança para integração MCP e mantenha seus agentes protegidos.
Repositório GitHub
Demo MCP do CrewAI
Segurança ao Usar MCP
Sempre assegure-se de confiar no servidor MCP antes de utilizá-lo.
Aviso de Segurança: Ataques de DNS Rebinding
Transportes SSE podem ser vulneráveis a ataques de DNS rebinding se não forem devidamente protegidos. Para prevenir isso:- Sempre valide os cabeçalhos Origin das conexões SSE recebidas para garantir que venham de fontes esperadas
- Evite vincular servidores a todas as interfaces de rede (0.0.0.0) quando executando localmente – faça o bind apenas para localhost (127.0.0.1)
- Implemente autenticação adequada para todas as conexões SSE
Limitações
- Primitivas Suportadas: Atualmente, o
MCPServerAdaptersuporta principalmente a adaptação detoolsMCP. Outras primitivas MCP comopromptsouresourcesnão são integradas diretamente como componentes CrewAI através deste adaptador por enquanto. - Manipulação de Saída: O adaptador normalmente processa a saída principal de texto de uma ferramenta MCP (por exemplo,
.content[0].text). Saídas complexas ou multimodais podem exigir tratamento customizado caso não se encaixem nesse padrão.
