Saiba mais sobre as principais melhores práticas de segurança ao integrar servidores MCP com seus agentes CrewAI.
Stdio
se o servidor puder controlar o comando executado).MCPServerAdapter
para conectar a um servidor MCP, certifique-se de saber:
StdioServerParameters
é de uma fonte confiável e possui permissões de sistema de arquivos adequadas. Um script Stdio servidor malicioso pode ainda prejudicar seu sistema local.MCP-Proxy
) permite que seu agente interaja com o ThirdPartyAPI
.MCP-Proxy
usa seu próprio client_id
estático ao comunicar-se com o servidor de autorização do ThirdPartyAPI
.MCP-Proxy
a acessar o ThirdPartyAPI
em seu nome. Durante esse processo, o servidor de autenticação pode definir um cookie no seu navegador indicando seu consentimento para o client_id
do MCP-Proxy
.MCP-Proxy
, mas é projetado para enganar o servidor de autenticação do ThirdPartyAPI
.ThirdPartyAPI
encontrar seu cookie de consentimento existente para o client_id
do MCP-Proxy
, pode deixar de pedir seu consentimento novamente.MCP-Proxy
pode, então, ser enganado a encaminhar um código de autorização (para o ThirdPartyAPI
) para o atacante, ou um código de autorização MCP que o atacante possa usar para se passar por você perante o MCP-Proxy
.MCP-Proxy
deve exibir uma tela de consentimento.localhost
) ou intranet. Isso é particularmente arriscado se você roda um servidor MCP localmente (ex: para desenvolvimento) e um agente em um ambiente do tipo navegador (embora menos comum no backend CrewAI) ou se o servidor MCP está em uma rede interna.
Estratégias de Mitigação para Implementadores de Servidores MCP:
Origin
e Host
: Servidores MCP (especialmente com SSE) devem validar os headers HTTP Origin
e/ou Host
para garantir que as requisições venham dos domínios/clientes esperados.localhost
(127.0.0.1): Ao rodar servidores MCP localmente para desenvolvimento, conecte-se a 127.0.0.1
em vez de 0.0.0.0
. Isso impede que sejam acessíveis por outras máquinas na rede.MCPServerAdapter
respeitará o esquema (http
ou https
) fornecido na URL.ServiceA
) e simplesmente o repassa para outra API ( ServiceB
) downstream sem validação adequada. Especificamente, ServiceB
(ou o próprio servidor MCP) só deveria aceitar tokens explicitamente emitidos para eles (ou seja, o claim ‘audience’ no token deve corresponder ao servidor/serviço).
Riscos:
MCPServerAdapter
(se houver) tenham apenas as permissões necessárias para acessar as ferramentas requeridas.../
).Stdio
) tenha apenas as permissões mínimas necessárias. As próprias ferramentas também devem operar com o mínimo de privilégio necessário para executar sua função.