Servidores MCP como Ferramentas no CrewAI
Aprenda como integrar servidores MCP como ferramentas nos seus agentes CrewAI usando a biblioteca crewai-tools
.
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 biblioteca crewai-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 com crewai-tools
, é necessário instalar a dependência extra mcp
do crewai-tools
com o seguinte comando:
Conceitos Chave & Primeiros Passos
A classe MCPServerAdapter
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.
Este padrão geral mostra como integrar ferramentas. Para exemplos específicos para cada transporte, consulte os guias detalhados abaixo.
Filtrando Ferramentas
Usando com CrewBase
Para usar ferramentas de servidores MCP dentro de uma classe CrewBase, utilize o método 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.
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.
Confira este repositório para demonstrações completas e exemplos de integração MCP com CrewAI! 👇
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
Sem essas proteções, invasores podem usar DNS rebinding para interagir com servidores MCP locais via sites remotos.
Para mais detalhes, consulte a documentação de Segurança de Transporte da MCP da Anthropic.
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.