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. A bibliotecacrewai-tools
expande as capacidades do CrewAI permitindo que você integre facilmente ferramentas desses servidores MCP em seus agentes.
Isso oferece às suas crews acesso a um vasto ecossistema de funcionalidades.
Atualmente, suportamos os seguintes mecanismos de transporte:
- Stdio: para servidores locais (comunicação via entrada/saída padrão entre processos na mesma máquina)
- 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.
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
MCPServerAdapter
suporta principalmente a adaptação detools
MCP. Outras primitivas MCP comoprompts
ouresources
nã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.